2008-09-24 10 views
6

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?Enumeración IDL no se muestra en la biblioteca de tipos

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); 

A pesar de que las enumeraciones en cuestión no son utilizados directamente por cualquiera de los métodos, que seguirá siendo útil para cualquier persona que utilice el objeto, pero no puedo conseguir ellos para exportar

¿Alguien ha visto esto antes?

Respuesta

13

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

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

¡Eso hizo el truco! Gracias. – Rob

+0

Bueno para escuchar. ¡Qué sabes, StackOverflow realmente ayuda a las personas a encontrar ayuda! : o) – Motti

+0

Excelente búsqueda de lo mismo solo – thatsalok

Cuestiones relacionadas