Pregunta

Tengo un objeto COM escrito usando la biblioteca MS ATL.He declarado un montón de enumeraciones en el IDL pero NO aparecen al visualizar la biblioteca de tipos usando la herramienta MS COM Object Viewer.El problema parece ser que las enumeraciones que faltan en realidad no se utilizan como parámetros en ninguno de los métodos COM. ¿Cómo puedo forzar la aparición de estas enumeraciones?

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 son utilizadas directamente por ningún método, seguirán siendo útiles para cualquiera que use el objeto, pero no puedo exportarlas.

¿Alguien ha visto esto antes?

¿Fue útil?

Solución

¿Los pusiste en el library sección del IDL?Sólo los tipos mencionados en el library sección vaya al TLB.

library MyLib {
    // ...
    enum BAR;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top