Ich habe ein ActiveX-Steuerelement, das in Internet Explorer und dem ActiveX Control Test Container-Programm einwandfrei funktioniert. Das tatsächliche Verhalten des Steuerelements ist in zwei Teile aufgeteilt, wobei ein Teil das ATL-Gunk ist, das mit dem OLE-Host verbunden ist, und der andere Teil das echte Fleisch ist, das nur Rückrufe für Fensteranfügung, Größenanpassung, Zeichnung und Maus/Tastatur empfängt Veranstaltungen.Ein Firefox XPCOM Plug-In mit einer nativen Fensterschnittstelle schreiben? (wie ActiveX-Steuerelement)
Nun möchte ich das Äquivalent des ATL-Gunks für ein Firefox-Plug-in schreiben (idealerweise in der gleichen Binärdatei, also muss ich nicht zwei Binärdateien verbinden, aber ich kann hier flexibel sein). Ich habe das Gecko-SDK heruntergeladen und verwendet, um eine XPCOM-Komponente zu erstellen, und das scheint zu funktionieren, aber ich kann nicht herausfinden, welche Schnittstellen implementiert werden müssen, um die Komponente als eingebettete native UI-Komponente in Firefox verfügbar zu machen. Dies ist vergleichbar mit dem Flash-Player-Plug-in, dem PDF-Viewer-Plug-in, dem QuickTime-Player-Plug-In usw. - Javascript und XUL reichen nicht aus.
Ich habe nach Beispielen im Web gesucht, aber die einzigen Beispiele, die ich finden kann, basieren auf der scheinbar alten NS_PluginInitialize()/NS_NewPluginInstance() Schnittstelle, die nicht XPCOM ist (aber hat einen anderen Namen?).
Gibt es eine Möglichkeit, dasselbe durch XPCOM zu erreichen? Wenn das so ist, wie? Und gibt es überhaupt eine Übersichtsdokumentation (nicht nur Schnittstellen-Listen), wie man das macht?