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