com idl

com - Enumeración de IDL no se muestra en la biblioteca de tipos



(1)

¿Los pones en la sección de la library del IDL? Solo los tipos mencionados en la sección de la library entran en el TLB.

library MyLib { // ... enum BAR;

Tengo un objeto COM escrito utilizando la biblioteca MS ATL. He declarado varias enumeraciones en IDL pero NO aparecen cuando veo la biblioteca de tipos con la herramienta MS COM Object Viewer. El problema parece ser que las enumeraciones faltantes no se usan realmente como parámetros por ninguno de los métodos COM. ¿Cómo puedo forzar estas enumeraciones para que aparezcan?

Por ejemplo, en el 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);

Aunque las enumeraciones en cuestión no se usan directamente con ningún método, seguirán siendo útiles para cualquiera que use el objeto, pero no puedo hacer que se exporten.

¿Alguien ha visto esto antes?