COleLinkingDoc选件类

OLE容器的基类文档支持链接到嵌入项它们包含。

class COleLinkingDoc : public COleDocument

成员

zz0aa7az.collapse_all(zh-cn,VS.110).gif公共构造函数

名称

说明

COleLinkingDoc::COleLinkingDoc

构造 COleLinkingDoc 对象。

zz0aa7az.collapse_all(zh-cn,VS.110).gif公共方法

名称

说明

COleLinkingDoc::Register

注册OLE系统DLL的文档。

COleLinkingDoc::Revoke

移除文档中注册。

zz0aa7az.collapse_all(zh-cn,VS.110).gif受保护的方法

名称

说明

COleLinkingDoc::OnFindEmbeddedItem

查找已指定的嵌入项。

COleLinkingDoc::OnGetLinkedItem

查找已指定的链接的项。

备注

支持连接到嵌入项的容器应用程序称为“链接容器”。OCLIENT 示例应用程序是链接容器的示例。

当链接项的源是在另一个了一个嵌入项文档,其中包含的文档必须加载才能编辑该嵌入项。 因此,那么,当用户编辑链接项时,的源链接容器必须能够由另一个容器应用程序生成。 您的应用程序也必须使用 COleTemplateServer 选件类,以便它可以创建文档,当生成程序模型。

要使您的容器链接容器,则派生自己文档从 COleLinkingDoc 的选件类而不是 COleDocument。 与其他OLE容器,则必须设计您的存储应用程序的本机数据以及嵌入或链接的项目选件类。 此外,您必须将您的本机数据模型数据结构。 如果定义 CDocItem-应用程序的本机数据的派生类,可以使用 COleDocument 定义的接口存储您的本机数据)中的OLE数据。

若要允许应用程序由另一个容器生成程序模型,请声明 COleTemplateServer 对象作为应用程序的 CWinApp的成员派生类:

class COleContainerApp : public CWinApp
{
protected:
   COleTemplateServer m_server;
   // remainder of class declaration ommitted

在您的 CWinAppInitInstance 成员函数的派生类,请创建一个文档模板并指定您的 COleLinkingDoc派生类,文档选件类:

   // CMyLinkDoc is derived from COleLinkingDoc
   CMultiDocTemplate* pDocTemplate = new CMultiDocTemplate(IDR_LINKDOCTYPE,
      RUNTIME_CLASS(CMyLinkDoc),
      RUNTIME_CLASS(CChildFrame),
      RUNTIME_CLASS(CMyLinkView));
    if (!pDocTemplate)
        return FALSE;
   pDocTemplate->SetContainerInfo(IDR_OLECONTTYPE_CNTR_IP);
   AddDocTemplate(pDocTemplate);

连接到您的 COleTemplateServer 对象通过调用对象的成员函数 ConnectTemplate 文档模板和注册OLE系统的所有选件类对象是通过调用 COleTemplateServer::RegisterAll:

m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);
COleTemplateServer::RegisterAll();

对于样本 CWinApp派生类定义和 InitInstance 功能,请参见OCLIENT.H和OCLIENT.CPP在MFC示例 OCLIENT

有关使用 COleLinkingDoc的更多信息,请参见位于 容器:实现容器容器:高级功能

继承层次结构

CObject

CCmdTarget

CDocument

COleDocument

COleLinkingDoc

要求

Header: afxole.h

请参见

参考

COleDocument选件类

层次结构图

CDocTemplate选件类

概念

MFC示例OCLIENT