C ++ MS Word — OleAutomation

Я создаю IDispatch как это:

IDispatch *m_pWApp = NULL;
CoInitialize(NULL);
CLSID clsid;
m_hr = CLSIDFromProgID(L"Word.Application", &clsid);
if(SUCCEEDED(m_hr))
{

m_hr = CoCreateInstance(clsid, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void **)&m_pWApp);
if(FAILED(m_hr)) m_pWApp=NULL;
}

Я использую это для автоматизации слов, как в пример

Но теперь мне нужно использовать метод из интерфейса IOleCommandTarget::Exec для скрытия строки меню для открытия слова. Я знаю, что с этим методом это возможно.

Мой вопрос, как я могу получить IOleCommandTarget использовать его для вызова Exec и, конечно, иметь возможность использовать IDispatch строка в примере.

2

Решение

Ваш код правильный, просто добавьте:

LPOLECOMMANDTARGET lpOleCommandTarget = NULL;
lpDispatch->QueryInterface(IID_IOleCommandTarget, (void**)&lpOleCommandTarget);

или же

IOleCommandTarget* target;
disp->QueryInterface (IID_IOleCommandTarget, (void **) &target);

затем **lpOleCommandTarget->Exec(...);**

Например:

lpOleCommandTarget->Exec(NULL, OLECMDID_PRINT, 0, NULL,NULL);
2

Другие решения


По вопросам рекламы [email protected]