次のような IDL のスニペットがあります。
[ object, uuid(...), pointer_default(unique) ]
interface IVirtualMachine { /* ... */ }
[ object, uuid(...), pointer_default(unique) ]
interface IVirtualServer : IUnknown
{
HRESULT FindVirtualMachine(
[in] BSTR configurationName,
[out,retval] IVirtualMachine **virtualMachine);
};
[ uuid(...), version(1.0) ]
library VirtualServerLib
{
[ uuid(...) ]
coclass VirtualServer
{
[default] interface IVirtualServer;
};
[ uuid(...) ]
coclass VirtualMachine
{
[default] interface IVirtualMachine;
};
};
...MIDL でコンパイルし、生成されたタイプ ライブラリを調べると、VirtualMachine
(大文字の V) が (小文字の V) に変わっていvirtualMachine
ます。
たとえば、自分の coclass を呼び出すと、XirtualMachine
すべて問題ありません。
なんてこったい?