У меня есть, как мне кажется, довольно простой интерфейс в COM. Я хотел бы реализовать это в activeqt. Я могу заставить работать прототип ATL, но я бы предпочел использовать виджеты и сигналы qt, а не элементы управления COM.
Я могу загрузить ATL COM dll в python-комтипе и запустить help(ATLDll)
, а соответствующее расширение интерфейса -
Methods inherited from comtypes.gen.<guid>.ITest:
Init(...)
method Init
Я не уверен, как получить то же самое в activeqt. ATL использует этот код для определения интерфейса (я думаю, это в автоматически сгенерированном файле _i.h):
MIDL_INTERFACE(<guid>)
ITest : public IDispatch
{
public:
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Init(
/* [in] */ IDispatch *obj) = 0;
};
, а затем определение класса наследуется от
public IDispatchImpl<ITest>
Я пытался смешать activeqt и ATL, но пока что безуспешно. Должен ли я использовать dumpcpp вместо этого? [edit] dumpcpp полезен, если вы хотите вызвать существующий COM-объект из Qt, но не помогает извлечь интерфейс для использования в activeQt. [/ edit] Это способ переопределить интерфейс без смешивания ATL и activeqt? Мне интересно, являются ли инструменты моей работы qt и ATL, пытающиеся генерировать idl, источником моей борьбы ...
Спасибо!