When you start exposing COM objects into XPCOM you can use COM::GetInterfaces() to determine the interfaces supported by the COM object. When trying to export objects in the other direction, XPCOM to COM, you'll find that XPCOM does not implement a standard way to enumerate the interfaces the object implements. XPCOM does define GetInterfaces() but only 3 out of the 1,000 objects in Mozilla implement it.
http://bugzilla.mozilla.org/show_bug.cgi?id=102874 Missing GetInterfaces() messes up things like a COM/XPCOM bridge and building a WSDL tool for XPCOM objects, plus a number of other things. -- Jon Smirl [EMAIL PROTECTED]
