Alert me
|
Edit
|
Delete
|
Change type
Question
You cannot vote on your own post
0
我自己创建了一个atl控件,用来实现PPT的播放、保存的功能(office 2013版本);然后将该控件嵌入MFC对话框程序里面,但是播放PPT的出现了问题:播放幻灯片的时候,能够正常播放,但是按下ESC按钮结束幻灯片播放的时候,整个PPT都退出了。我的需求是按下ESC按键的时候,播放幻灯片的页面退出,但是ppt不退出,我不清楚该如何解决这个问题,求指教
流程:我这边是用的OleCreateFromFile()方式创建的PPT对象,自己调用接口SlideShowWindowPtr的Run()来播放幻灯片;参考代码如下:
BOOL CInstanceFactory::OpenOfficeDoc(REFCLSID rclsid,const CString &strPath)
{
pItem = new CAxDocConCntrItem(pDoc);
ASSERT_VALID(pItem);
CString strPath1 = strPath;
LPCTSTR lpszPath1 = strPath1.GetBuffer();
pItem->CreateFromFile(lpszPath1, rclsid,OLERENDER_DRAW,CF_TEXT,NULL);
m_pItem = pItem;
LPDISPATCH lpDisp = m_pItem->GetDispatch_PowerPoint();
PowerPoint::_PresentationPtr _appPresent = lpDisp;
DocumentWindowsPtr docsPtr = _appPresent->GetWindows();
PowerPoint::SlideShowSettingsPtr appSlideRun = _appPresent->GetSlideShowSettings();
SlideShowWindowPtr slideShowWidnowPtr = appSlideRun->Run();
slideShowWidnowPtr->Activate();
}
BOOL CAxDocConCntrItem::CreateFromFile(LPCTSTR lpszFileName, REFCLSID clsid,
OLERENDER render, CLIPFORMAT cfFormat, LPFORMATETC lpFormatEtc)
{
SCODE sc = ::OleCreateFromFile(clsid, T2COLE(lpszFileName),
IID_IUnknown, render, lpFormatEtc, m_lpClientSite, m_lpStorage,
(LPLP)&m_lpObject);
}