IDL enumeração não é exibido na biblioteca de tipos
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?
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