Вот тестовый файл IDL:
import "unknwn.idl";
[uuid(f531223f-43bb-49d4-80fc-30ceb5f4f990)]
coclass test
{
interface Itest;
}
[uuid(deb8730f-f811-4cb3-bd8f-b1601926bd48)]
interface Itest : IUnknown
{
HRESULT function(int var);
};
Когда я запускаю команду midl test.idl
, она не добавляет CLSID в заголовочный файл test.h
. Но WIDL из mingw-w64 (производной от Wine) добавляет CLSID и IID в заголовочный файл.
После использования атрибута библиотеки следующим образом:
import "unknwn.idl";
[uuid(82c87f04-887a-41b2-9c2d-0f3a6a973efd)]
library testLib
{
[uuid(f531223f-43bb-49d4-80fc-30ceb5f4f990)]
coclass test
{
interface Itest;
}
};
[uuid(deb8730f-f811-4cb3-bd8f-b1601926bd48)]
interface Itest : IUnknown
{
HRESULT function(int var);
};
Эти GUID включены в C ++ и EXTERN_C. И упоминается в отдельном файле C, но не в заголовочном файле.
Как я могу сделать то же самое с MIDL? Или я что-то не так делаю в файле IDL?