Énumération IDL non affichée dans la bibliothèque de types
Question
J'ai un objet COM écrit en utilisant la bibliothèque MS ATL. J'ai déclaré un tas d'énumérations dans l'IDL, mais elles n'apparaissent PAS lorsque vous visualisez 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 pas réellement utilisées comme paramètres par aucune des méthodes COM. Comment puis-je forcer ces énumérations à apparaître?
Par exemple, dans l'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 méthodes en question ne sont directement utilisées par aucune méthode, elles seront néanmoins utiles à toute personne utilisant l'objet, mais je ne parviens pas à les exporter.
Quelqu'un a-t-il déjà vu cela auparavant?
La solution
Les avez-vous mis dans la section bibliothèque
de l'IDL? Seuls les types mentionnés dans la section bibliothèque
sont placés dans le TLB.
library MyLib {
// ...
enum BAR;