C++ コンポーネントの IDL ファイルには、次のようなものがあり、プロパティを COM で表示できるようになっています。
interface IInterface
{
[propget, id(1), helpstring("the ID")]
HRESULT ID([out, retval] long *pVal);
}
dll をビルドして OLEView で開くと、次のようなメッセージが表示されます!?
interface IInterface
{
[propget, id(0x00000001), helpstring("the ID")]
HRESULT id([out, retval] long *pVal);
}
IDがidとして表示されていることに注意してください。ただし、このコードを「ID2」に変更すると、ID2が期待どおりに表示されます。次に、「ID」に戻すと、再びidが表示されます。これは私にはかなり不可解です。このプロパティの DLL で公開されている名前が小文字であることを意味する何かがマシン上にあるはずですが、これに関するレジストリが見つかりません。
何か案は?非常に混乱...