Com IDL枚举未显示在类型库中

Com IDL枚举未显示在类型库中,com,idl,Com,Idl,我使用MS ATL库编写了一个COM对象。我已经在IDL中声明了一组枚举,但是在使用MS COM对象查看器工具查看类型库时,它们不会出现。问题似乎是缺少的枚举实际上没有被任何COM方法用作参数-如何强制这些枚举出现 例如,在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

我使用MS ATL库编写了一个COM对象。我已经在IDL中声明了一组枚举,但是在使用MS COM对象查看器工具查看类型库时,它们不会出现。问题似乎是缺少的枚举实际上没有被任何COM方法用作参数-如何强制这些枚举出现

例如,在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);
即使有问题的枚举没有被任何方法直接使用,它们对任何使用该对象的人都是有用的,但我无法将它们导出


以前有人见过这个吗?

你把它们放在IDL的
库中了吗?只有
库中提到的类型才能进入TLB

library MyLib {
    // ...
    enum BAR;

很高兴听到。你知道吗,StackOverflow实际上帮助人们找到帮助!:o) 在2003年,我似乎只有在提到标记名时才能使它起作用。