描述:
最近一个工程中,我采用VC6.0写了一个控制Word的基于Dialog的Dll程序,供主工程调用。在Dll的InitInstance函数中,调用AfxOleInit()初始化COM(此处编译通过)。但是,在按下按钮创建Word对象时,CreateDispatch语句出错。编辑环境: Win2000 Server+VC6.0(sp5)+Word2000.调试了很久,怎么也通不过。还请各位高手不吝赐教,本人感激不尽!
附:(创建代码)
HRESULT hr;
hr=CoInitialize(NULL);
ASSERT(!FAILED(hr));
IUnknown *pUnk;
IDispatch *pDisp;
CLSID clsid;
_Application m_wordApp;
CLSIDFromProgID(L"Word.Application", &clsid);
//查看是否有已经打开的Word对象
hr = GetActiveObject(clsid, NULL, (IUnknown**)&pUnk);
if (!FAILED(hr))
{
hr = pUnk->QueryInterface(IID_IDispatch, (void **)&pDisp);
ASSERT(!FAILED(hr));
m_wordApp.AttachDispatch(pDisp,TRUE);
pUnk->Release();
}
else
// 若无,则新建一个Word对象
{
if(!m_wordApp.CreateDispatch("Word.Application",NULL))
{
AfxMessageBox("创建ms_word对象失败");
exit(1);
}
}