15,440
社区成员
发帖
与我相关
我的任务
分享
HRESULT hr;
hr = CoInitialize(NULL);
if(FAILED(hr))
{
AfxMessageBox(_T("Failed to call Coinitialize()" ));
}
COleVariant vFalse(short(FALSE));
COleVariant vOpt(DISP_E_PARAMNOTFOUND,VT_ERROR);
COleVariant vTrue(short(TRUE));
_Application m_app;
try
{
if(!m_app.CreateDispatch(_T("Word.Application")))
{
AfxMessageBox(_T("无法启动Word"));
return FALSE;
}
}
catch(COleException *e)
{
LPVOID lpMsg;
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, e->m_sc,
MAKELANGID(LANG_NEUTRAL,
SUBLANG_DEFAULT),(LPTSTR) &lpMsg,
0, NULL);
::MessageBox(NULL, (LPCTSTR)lpMsg, "COM错误,无法与MSWord取得联系",
MB_OK | MB_SETFOREGROUND);
::LocalFree( lpMsg );
m_app.Quit(vFalse, vOpt, vOpt);
}
catch(COleDispatchException *e)
{
char msg[512];
sprintf(msg, "运行时错误'%d':\n\n%s",
e->m_scError & 0x0000FFFF, e->m_strDescription);
::MessageBox(NULL, msg, "服务器错误",
MB_OK | MB_SETFOREGROUND);
m_app.Quit(vFalse, vOpt, vOpt);
}
catch(CException *e)
{
AfxMessageBox("未知错误");
m_app.Quit(vFalse, vOpt, vOpt);
}