VC下的OLE项目注意了,这段代码很重要

cqust640326 2009-11-17 11:10:59
从COleClientItem类派生的项目类中添加这段宏
//内嵌套类
IOleDocumentView* m_pWordView;
BEGIN_INTERFACE_PART(OleDocumentSite,IOleDocumentSite)
INIT_INTERFACE_PART(CCyzStkSysCntrItem,OleDocumentSite)
STDMETHOD(ActivateMe)(LPOLEDOCUMENTVIEW);
END_INTERFACE_PART(OleDocumentSite)
在实现文件件中添加
BEGIN_INTERFACE_MAP(CCyzStkSysCntrItem,COleClientItem)
INTERFACE_PART(CCyzStkSysCntrItem,IID_IOleDocumentSite,OleDocumentSite)
END_INTERFACE_MAP()

STDMETHODIMP_(ULONG) CCyzStkSysCntrItem::XOleDocumentSite::AddRef()
{
METHOD_PROLOGUE_EX(CCyzStkSysCntrItem,OleDocumentSite)
return pThis->ExternalAddRef();

}
STDMETHODIMP_(ULONG) CCyzStkSysCntrItem::XOleDocumentSite::Release()
{
METHOD_PROLOGUE_EX (CCyzStkSysCntrItem,OleDocumentSite)
return pThis->ExternalRelease();
}

STDMETHODIMP CCyzStkSysCntrItem::XOleDocumentSite::QueryInterface(REFIID iid,void** ppvObj)
{
METHOD_PROLOGUE_EX (CCyzStkSysCntrItem,OleDocumentSite)
return pThis->ExternalQueryInterface(&iid,ppvObj);
}
STDMETHODIMP CCyzStkSysCntrItem::XOleDocumentSite::ActivateMe(LPOLEDOCUMENTVIEW pDocView)
{
// IOleDocument* pDoc=NULL;
IOleInPlaceSite* pIOleInPlaceSite;
METHOD_PROLOGUE_EX(CCyzStkSysCntrItem,OleDocumentSite);
pThis->InternalQueryInterface(&IID_IOleInPlaceSite,(void**)&pIOleInPlaceSite);
if(pDocView==NULL)
{
if(FAILED(pThis->m_lpObject->QueryInterface(IID_IOleDocument,(void**)&(pThis->m_pDoc))))
return E_FAIL;
if(FAILED(pThis->m_pDoc->CreateView(pIOleInPlaceSite,NULL,0,&pDocView)))
return E_OUTOFMEMORY;
pThis->m_pDoc->Release();
}
else
{
pDocView->AddRef();
}
pThis->m_pWordView=pDocView;
pDocView->UIActivate(TRUE);
RECT rect={0,1024,0,768};

pDocView->GetRect(&rect);
pThis->GetActiveView()->GetClientRect(&rect);
pDocView->SetRect(&rect);
pDocView->Show(TRUE);
pThis->GetDocument()->UpdateAllViews(NULL);
return NOERROR;
}
你会发现你插入的OLE项目的服务程序将自动激活
...全文
78 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
这不是鸭头 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 toperray 的回复:]
恩,jf
[/Quote]恩。
ToperRay 2009-11-18
  • 打赏
  • 举报
回复
恩,jf
feng0hua0 2009-11-18
  • 打赏
  • 举报
回复
楼主想表达的就是,散分了...
zoulie 2009-11-17
  • 打赏
  • 举报
回复
up
WaistCoat14 2009-11-17
  • 打赏
  • 举报
回复
楼主想表达啥?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧