COleTemplateServer 类

用于 OLE 可视编辑服务器、自动化服务器和链接容器(支持链接到嵌入的应用程序)。

语法

class COleTemplateServer : public COleObjectFactory

成员

公共构造函数

名称 描述
COleTemplateServer::COleTemplateServer 构造 COleTemplateServer 对象。

公共方法

名称 描述
COleTemplateServer::ConnectTemplate 将文档模板连接到基础 COleObjectFactory 对象。
COleTemplateServer::Unregister 取消注册关联的文档模板。
COleTemplateServer::UpdateRegistry 将文档类型注册到 OLE 系统注册表。

备注

此类派生自 COleObjectFactory 类;通常可以直接使用 COleTemplateServer,而不是派生自己的类。 COleTemplateServer 使用 CDocTemplate 对象来管理服务器文档。 在实现完全服务器(即可以作为独立应用程序运行的服务器)时使用 COleTemplateServer。 完全服务器通常是多文档界面 (MDI) 应用程序,但是单文档界面 (SDI) 应用程序也受支持。 应用程序支持的每种类型的服务器文档都需要一个 COleTemplateServer 对象;也就是说,如果服务器应用程序同时支持工作表和图表,则必须有两个 COleTemplateServer 对象。

COleTemplateServer 覆盖由 COleObjectFactory 定义的 OnCreateInstance 成员函数。 通过框架调用此成员函数,用于创建正确类型的 C++ 对象。

有关服务器的详细信息,请参阅服务器:实现服务器一文。

继承层次结构

CObject

CCmdTarget

COleObjectFactory

COleTemplateServer

要求

标头:afxdisp.h

COleTemplateServer::COleTemplateServer

构造 COleTemplateServer 对象。

COleTemplateServer();

注解

有关使用 COleTemplateServer 类的简要说明,请参阅 COleLinkingDoc 类概述。

COleTemplateServer::ConnectTemplate

将 pDocTemplate 指向的文档模板连接到基础 COleObjectFactory 对象

void ConnectTemplate(
    REFCLSID clsid,
    CDocTemplate* pDocTemplate,
    BOOL bMultiInstance);

参数

clsid
对模板请求的 OLE 类 ID 的引用。

pDocTemplate
指向文档模板的指针。

bMultiInstance
指示应用程序的单个实例是否可支持多个实例化。 如果为 TRUE,则为每个请求启动应用程序的多个实例以创建对象。

备注

有关详细信息,请参阅 Windows SDK 中的 CLSID 项

COleTemplateServer::Unregister

取消注册关联的文档模板。

BOOL Unregister();

返回值

若成功,则为 TRUE;否则为 FALSE。

备注

EnterRemarks

COleTemplateServer::UpdateRegistry

从文档模板字符串加载文件类型信息,并将该信息置于 OLE 系统注册表中。

void UpdateRegistry(
    OLE_APPTYPE nAppType = OAT_INPLACE_SERVER,
    LPCTSTR* rglpszRegister = NULL,
    LPCTSTR* rglpszOverwrite = NULL,
    BOOL bRegister = TRUE);

参数

nAppType
OLE_APPTYPE 枚举中的一个值,该值在 AFXDISP.H 中进行定义。 它可以具有以下任一值:

  • OAT_INPLACE_SERVER:服务器具有完整的服务器用户界面。

  • OAT_SERVER:服务器仅支持嵌入。

  • OAT_CONTAINER 容器支持链接到嵌入对象。

  • OAT_DISPATCH_OBJECT 对象支持 IDispatch

  • OAT_DOC_OBJECT_SERVER 服务器支持嵌入和文档对象组件模型。

rglpszRegister
仅当不存在条目时才会写入注册表的条目列表。

rglpszOverwrite
无论前面是否存在任何条目,都会写入注册表的条目列表。

bRegister
确定是否要注册该类。 如果 bRegister 为 TRUE,则在系统注册表中注册该类。 否则,它会取消注册该类。

注解

注册信息通过调用 CDocTemplate::GetDocString 进行加载。 检索到的子字符串是由索引 regFileTypeIdregFileTypeNamefileNewName 标识的子字符串,如 GetDocString 参考页中所述。

如果 regFileTypeId 子字符串为空或对 GetDocString 的调用因任何其他原因失败,则此函数会失败并且文件信息不会输入到注册表中。

通过调用 AfxOleRegisterServerClass 将参数 rglpszRegister 和 rglpszOverwrite 中的信息写入注册表。 默认信息(两个参数为 NULL 时注册)适用于大多数应用程序。 有关这些参数中信息结构的信息,请参阅 AfxOleRegisterServerClass

有关更多信息,请参见 Implementing the IDispatch Interface

另请参阅

MFC 示例 HIERSVR
COleObjectFactory 类
层次结构图
COleServerDoc 类
COleServerItem 类