2008-09-24 6 views
6

J'ai un objet COM écrit à l'aide de la bibliothèque MS ATL. J'ai déclaré un tas d'énumérations dans l'IDL mais elles n'apparaissent PAS lors de l'affichage de la bibliothèque de types à l'aide de l'outil MS COM Object Viewer. Le problème semble être que les énumérations manquantes ne sont réellement utilisées comme paramètres par aucune des méthodes COM - comment puis-je forcer ces énumérations à apparaître?L'énumération IDL ne s'affiche pas dans la bibliothèque de types

Par exemple, dans le IDL:

// Used by Foo method, so appears in the type library 
typedef enum FOO 
{ 
    FOO_1, 
    FOO_2, 
} FOO; 

// Not used by any method, so won't appear in the type library 
typedef enum BAR 
{ 
    BAR_1, 
    BAR_2, 
} BAR; 

[id(1)] HRESULT Foo([in] FOO eFoo); 

Même si les énumérations en question ne sont pas directement utilisés par des méthodes, ils seront toujours utiles à toute personne utilisant l'objet, mais je ne peux pas obtenir les exporter.

Quelqu'un at-il déjà vu cela?

Répondre

13

Les avez-vous placés dans la section library de l'IDL? Seuls les types mentionnés dans la section library entrent dans le TLB.

library MyLib { 
    // ... 
    enum BAR; 
+0

Cela a fait l'affaire! Je vous remercie. – Rob

+0

Bon à entendre. Que savez-vous, StackOverflow aide les gens à trouver de l'aide! : 0) – Motti

+0

Grande recherche de même seulement – thatsalok

Questions connexes