7

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

問題の列挙型はどのメソッドでも直接使用されていませんが、オブジェクトを使用するすべての人にとって有用ですが、エクスポートすることはできません。

誰もこれを見たことがありますか?

4

1 に答える 1

14

libraryそれらをIDLのセクションに入れましたか?このセクションで言及されているタイプのみlibraryが TLB に入ります。

library MyLib {
    // ...
    enum BAR;
于 2008-09-24T06:54:37.873 に答える