2009-08-23 8 views
0

Ich habe eine Typelib, die einige Schnittstellen beschreibt. Da einige dieser Schnittstellen als Kategorie verwendet werden, möchte ich die Kategorie-IDs zur Typelib hinzufügen. Also die Frage ist:Ist es möglich, einer Typelib zusätzliche GUIDs hinzuzufügen?

a) Wie kann dies in Delphi (2007 und höher) getan werden?

oder als Alternative

b) ist es möglich und sinnvoll, die Schnittstelle GUID für die CATID zu benutzen?

Antwort

1

Für a), ich kenne Delphi nicht. Aber in C++ wird einfach die Schnittstellenbeschreibung zur MIDL-Datei hinzugefügt. Da Sie scheinbar nur die Schnittstelle verwenden, benötigen Sie wahrscheinlich auch keine CoClass-Implementierung, daher würde dies bereits ausreichen. Wie haben Sie die anderen Schnittstellen zur Typelib hinzugefügt? Mach es jetzt genauso.

[Bearbeiten] Ich habe ein kurzes Tutorial über die Verwendung der typelib-editor gefunden. Scheint, dass das Hinzufügen von Schnittstellen ist nur eine Frage des richtigen Schlüsselwortes. [0]

Wie für b), sehe ich kein Problem, Schnittstellen als Kategorie-ID zu verwenden, aber diese Frage ist ein bisschen vage .. Da die Menge der möglichen Kategorien festgelegt ist und Sie kein vererbungsähnliches Verhalten verwenden (zumindest denke ich, dass Sie die GUID der Schnittstelle und nicht die Schnittstelle selbst verwenden), warum verwenden Sie nicht einfach einen Enumerator? Die Verwendung von Schnittstellen usw. scheint eine überentwickelte Lösung zu sein, außer wenn die Schnittstellen tatsächlich als solche verwendet werden, d. H. Den Zugriff auf ein kategoriespezifisches Verhalten bereitstellen.

[Bearbeiten] Wie Sie sprechen über ICatRegister et al., Sehe ich, warum Sie GUIDs verwenden möchten. Da sich die Kategorie-GUIDs in einem anderen Namespace als die GUIDs der COM-Schnittstelle befinden, verwenden Sie das gleiche. Ihre Interface-GUIDs müssen im gleichen Umfang eindeutig sein wie die Kategorie-IDs und ein 1: 1-Mapping scheint auch ein einfaches Modell für die Wartung zu sein.

+0

a) Delphi hat eine eingebaute Typelib Editor - normalerweise müssen Sie MIDL-Dateien nicht bearbeiten. Aber wenn das die Lösung ist - also dann. b) Ich spreche tatsächlich über die Komponentenkategorien, die mit ICatRegister und ICatInformation behandelt werden können. Die Idee ist, ein etabliertes Verhalten zu verwenden. –

+0

Nun, dann sind GUIDs in Ordnung, und geben Sie den Typbibliothek-Editor noch nicht auf. Scheint, dass der typelib-editor tun kann, was Sie wollen (siehe Link in der Antwort). – gimpf