COleLinkingDoc选件类
OLE容器的基类文档支持链接到嵌入项它们包含。
class COleLinkingDoc : public COleDocument
成员
公共构造函数
名称 |
说明 |
---|---|
构造 COleLinkingDoc 对象。 |
公共方法
名称 |
说明 |
---|---|
注册OLE系统DLL的文档。 |
|
移除文档中注册。 |
受保护的方法
名称 |
说明 |
---|---|
查找已指定的嵌入项。 |
|
查找已指定的链接的项。 |
备注
支持连接到嵌入项的容器应用程序称为“链接容器”。OCLIENT 示例应用程序是链接容器的示例。
当链接项的源是在另一个了一个嵌入项文档,其中包含的文档必须加载才能编辑该嵌入项。 因此,那么,当用户编辑链接项时,的源链接容器必须能够由另一个容器应用程序生成。 您的应用程序也必须使用 COleTemplateServer 选件类,以便它可以创建文档,当生成程序模型。
要使您的容器链接容器,则派生自己文档从 COleLinkingDoc 的选件类而不是 COleDocument。 与其他OLE容器,则必须设计您的存储应用程序的本机数据以及嵌入或链接的项目选件类。 此外,您必须将您的本机数据模型数据结构。 如果定义 CDocItem-应用程序的本机数据的派生类,可以使用 COleDocument 定义的接口存储您的本机数据)中的OLE数据。
若要允许应用程序由另一个容器生成程序模型,请声明 COleTemplateServer 对象作为应用程序的 CWinApp的成员派生类:
class COleContainerApp : public CWinApp
{
protected:
COleTemplateServer m_server;
// remainder of class declaration ommitted
在您的 CWinApp的 InitInstance 成员函数的派生类,请创建一个文档模板并指定您的 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的更多信息,请参见位于 容器:实现容器 和 容器:高级功能。
继承层次结构
COleLinkingDoc
要求
Header: afxole.h