16,472
社区成员
发帖
与我相关
我的任务
分享
//测试调用webbrowser打印功能
// Initialize COM
CoInitialize(NULL);
IWebBrowser2* m_pInetExplorer = NULL;
HRESULT hr;
hr = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_SERVER,
IID_IWebBrowser2, (LPVOID*)&m_pInetExplorer);
if (SUCCEEDED(hr))
{
m_pInetExplorer->put_Visible(VARIANT_TRUE);
m_pInetExplorer->GoHome(); //加载主页
::Sleep(10*1000);
m_pInetExplorer->ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER, NULL, NULL);
}
if (m_pInetExplorer)
{
m_pInetExplorer->Release();
m_pInetExplorer = NULL;
}
// Uninitialize COM.
CoUninitialize();
LPVOID lpMsgBuf;
DWORD dw = 0x800706F4;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
MessageBox(NULL, lpMsgBuf, "Error", MB_OK);
LocalFree(lpMsgBuf);
HRESULT hrExec = m_pInetExplorer->ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER, NULL, NULL);
if (!SUCCEEDED(hrExec)) //ExecWB调用失败
{
char szLog[100] = {0};
sprintf(szLog, "ExecWB failed! hrExec=%lX", hrExec);
MessageBox(szLog); //这里输出了ExecWB failed! hrExec=800706F4
}