对了,是不是我前几次忘了调用releasedispatch()函数释放掉ppt接口阿但问题是我现在在CNewApp::ExitInstance()中写了 ppt.ReleaseDispatch(); 但仍然不能成功执行ppt.CreateDispatch("msppt.Application.9");而我要是换成调用excel的话就可以了;这种情况怎么处理阿???
调试欢乐多
你的机器安装了powerpoint 吗?
pUnk->QueryInterface(IID_IDispatch,
(void**)&pDisp);
改为
pUnk->QueryInterface(IID_IDispatch,
reinterpret_cast<void**>(&pDisp));试试。
ppt.CreateDispatch("msppt.Application.9")前面那一句绝对没问题!!~~~~~~~~~~~~~各位继续阿!~~~~~
LPUNKNOWN pUnk;
CLSID clsid;
BeginWaitCursor();
::CLSIDFromProgID(L"PowerPoint.Application",&clsid);
if(::GetActiveObject(clsid,NULL,&pUnk)==S_OK)
{
VERIFY(pUnk->QueryInterface(IID_IDispatch,
(void**)&pDisp)==S_OK);
ppt.AttachDispatch(pDisp);
pUnk->Release();
}
else
{
if(!ppt.CreateDispatch("PowerPoint.Application"))
{
AfxMessageBox("ppt failed!!");
return ;
}
AfxMessageBox("god is with me!!");
ppt.SetVisible(true);
}