У меня есть две библиотеки типов с интерфейсами COM, которые я написал с использованием ATL и Microsoft IDL.Я хотел бы, чтобы интерфейс в одной библиотеке наследовал от интерфейса в другой.
По сути, я хотел бы сделать то же самое, что Стивен описал на Как создавать методы интерфейса с использованием типов .tlbв VS C ++? .Единственный, кто ответил на него, похоже, не понял вопроса.
Вот что я хотел бы сделать в коде:
SomeLibrary DLL / TLB
ISomeInterface.idl
interface ISomeInterface : IDispatch { ... };
SomeLibrary.idl
import "ISomeInterface.idl";
library SomeLibrary
{
interface ISomeInterface;
};
SomeOtherLibrary DLL / TLB
ISomeOtherInterface.idl
// What do I put here so that the MIDL compiler knows
// what to do when it encounters the ISomeInterface type?
interface ISomeOtherInterface : ISomeInterface { ... };
SomeOtherLibrary.idl
import "ISomeOtherInterface.idl";
library SomeOtherLibrary
{
interface ISomeOtherInterface;
};
Директива MIDL import
работает только при импорте файлов IDL, и у меня есть только DLL и TLB.Я не могу использовать importlib
, потому что это работает только в пределах определения library
.Компилятор MIDL не понимает атрибуты Microsoft C ++ import
, importidl
и importlib
.
Что делать