Доброго времени суток!
Использую QAxWidget и QAxObject для автоматизации MS Office Word.
Мне необходимо открыть word в QAxWidget, это проше всего
QAxWidget *WordDocument=new QAxWidget("Word.Document",this->ui->centralWidget);
WordDocument->setGeometry(QRect(410, 10, 421, 271));
WordDocument->show();
или
QAxWidget *WordDocument=new QAxWidget(this->ui->centralWidget);
WordDocument->setGeometry(QRect(410, 10, 421, 271));
WordDocument->setControl("D:\\doc.docx");
WordDocument->show();
...
После открытия документа мне необходимо проводит некоторые действия т.е считывать текст, работать с COM объектами которые находится в документе, для это мне нужен Selection, InlineShapes ...
Если запустить Word c помошью QAxWidget необходимо возвращать Application и через Application вызывать нужными мне классами например Selection.
QAxObject *Application=WordDocument->querySubObject("Application()");
QAxObject *Selection =Application->querySubObject("Selection()");
...
Вот тут понятно что Application будет работать не адекватно, и я решил воспользоваться IDispatch
QAxObject *Application=new QAxObject("Word.Application");
QAxObject *Documents=Application->querySubObject("Documents()");
QAxObject *Document=Documents->querySubObject("Open(QVariant)",QVariant(file));
IDispatch *idispatch=0;
Document->queryInterface(IID_IDispatch, (void**)&idispatch);
QAxWidget*WidgetDocument= new QAxWidget((IUnknown*)idispatch,this->ui->centralWidget);
WordDocument->show();
...
В этом случае можно работать с WordDocument как с Document и все работает на 99.99%

, но QAxWidget не отображается
Я думаю что я делаю что то не то, когда вызываю IDispatch.
Как мне показать Word в своем окне?