Die XPCOM-Komponente wird unter einem einprägsamen Namen registriert. Die Contract ID bei XPCOM entspricht der ProgID für Microsoft COM-Komponenten. In diesem Beispiel lautet sie „@mozilla.org/MyComponent;1“.
Contract IDs greifen auf das Konzept von Namensräumen zurück, um sich zu identifizieren. Daher ist es wichtig, der Contract ID ein „@mozilla.org/“ voranzustellen. Die CID einer Komponente ist eine 128-Bit-UUID, welche die Komponente eindeutig identifiziert. Die Methode ID() des Components-Objekts erwartet einen UUID-String und gibt ein nsID-Objekt zurück, welches für die Registrierung und Instantiierung verwendet wird. (Die UUID kann man unter Windows zum Beispiel mit Hilfe des Utilities GUIDGen.exe erzeugen.) Dann gibt es noch die Interface ID (IID) der Komponente, das ist der Name der Schnittstelle, wie sie in der XPT-Datei beschrieben ist, in diesem Beispiel nsIMyComponent.
Beim Analysieren des Codes wird auffallen, dass die eigentliche Logik in der Methode reverseIt() der nsMyComponent-Klasse besteht. Der Rest des Codes wird benötigt, um die Komponente innerhalb von XPCOM zum Laufen zu bringen. Wenn man an Hand des Beispielcodes eigene Komponenten erstellen will, kopiert man einfach den gesamten Code und fügt der nsMyComponent-Klasse eigene Methoden und Eigenschaften hinzu.
Damit das XPCOM-System die nsIMyComponent-Schnittstelle sowie die exportierte Methode erkennt, muss man eine XPT-Type-Library bereitstellen. Dies erreicht man durch das Erstellen einer IDL-Datei, die mit Hilfe von xpidl.exe kompiliert wird. Listing B enthält die IDL für MyComponent.
Listing B
Die IDL-Datei bindet per include die Datei nsISupports.idl ein, um die nsISupports-Schnittstelle basierend auf der nsIMyComponent-Schnittstelle zu implementieren. Die Methode reverseIt() wird deklariert und der Rückgabe-Typ sowie der erwartete Parameter spezifiziert.
Die Datei xpidl.exe war als Download bisher nirgends zu finden, so dass der Autor dieses Artikels sie aus heruntergeladenen Einzelteilen von der Mozilla.org-Website zusammengestellt hat. Unter Windows 2000 und XP lief das Tool erfolgreich. Die Datei gibt es bei ZDNet als Download . Diese Datei entpackt man in ein separates Verzeichnis. Durch Aufruf mit dem Parameter -h erhält man Informationen zur Benutzung des Tools.
Neueste Kommentare
Noch keine Kommentare zu XPCOM-Komponenten mit Javascript
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.