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);
問題の列挙型はどのメソッドでも直接使用されていませんが、オブジェクトを使用するすべての人にとって有用ですが、エクスポートすることはできません。
誰もこれを見たことがありますか?