http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnie55/html/printtemplate2.asp
Скачал их пример. Вот кодик:
- Код: Выделить всё
STDMETHODIMP CPTLauncher::LaunchPT()
{
CComPtr<IOleContainer> spContainer;
CComPtr<IServiceProvider> spSP;
CComPtr<IWebBrowser2> spWB;
CComPtr<IDispatch> spDisp;
CComPtr<IHTMLDocument2> spDoc;
CComPtr<IOleCommandTarget> spCT;
CComVariant vPTPath = "res:/BrochureMachine.dll/PT.htm";
m_spClientSite->GetContainer(&spContainer);
spContainer->QueryInterface(IID_IServiceProvider, (void**)&spSP);
spSP->QueryService(SID_SWebBrowserApp, IID_IWebBrowser, (void**)&spWB);
spWB->get_Document(&spDisp);
spDisp->QueryInterface(IID_IHTMLDocument2, (void**)&spDoc);
spDoc->QueryInterface(IID_IOleCommandTarget, (void**)&spCT);
spCT->Exec(&CGID_MSHTML, IDM_PRINTPREVIEW, NULL, &vPTPath, NULL);
return S_OK;
}
CGID_MSHTML если честно я не нашел, Amed где-то нарыл его значение равное {DE4BA900-59CA-11CF-9592-444553540000}, но при этом выходит ошибка
Automation error
Trying to revoke a drop target that has not been registered
Что делать то? Видимо, я неправильно задаю этот самый guid, но в header'ах его нет....