Pergunta

Eu tenho um objeto COM escrito usando a biblioteca MS ATL. Eu anunciei um monte de enumerações no IDL, mas eles não aparecem quando visualizar a biblioteca de tipos usando a ferramenta Visualizador de objeto MS COM. O problema parece ser que os enums em falta não são realmente utilizados como parâmetros por qualquer um dos métodos COM - como posso forçar esses enums a aparecer

Por exemplo, no 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);

Mesmo que os enums em questão não são usados ??diretamente por quaisquer métodos, eles ainda será útil para qualquer pessoa usando o objeto, mas não posso levá-los a exportação.

Alguém viu isso antes?

Foi útil?

Solução

Será que você colocá-los na seção library do IDL? Apenas tipos mencionado na seção library ir para a TLB.

library MyLib {
    // ...
    enum BAR;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top