PPT 自动化开发,PPT嵌入MFC对话框后,按下ESC,幻灯片播放的窗口退出,PPT窗口也同时退出

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);

}