COleTemplateServer Class

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

Syntax

class COleTemplateServer : public COleObjectFactory

Members

Public Constructors

Name Description
COleTemplateServer::COleTemplateServer 构造 COleTemplateServer 对象。

Public Methods

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

Remarks

This class is derived from the class COleObjectFactory; usually, you can use COleTemplateServer directly rather than deriving your own class. COleTemplateServer uses a CDocTemplate object to manage the server documents. 在实现完全服务器(即可以作为独立应用程序运行的服务器)时使用 COleTemplateServer。 完全服务器通常是多文档界面 (MDI) 应用程序,但是单文档界面 (SDI) 应用程序也受支持。 应用程序支持的每种类型的服务器文档都需要一个 COleTemplateServer 对象;也就是说,如果服务器应用程序同时支持工作表和图表,则必须有两个 COleTemplateServer 对象。

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

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

Inheritance Hierarchy

CObject

CCmdTarget

COleObjectFactory

COleTemplateServer

Requirements

Header: afxdisp.h

COleTemplateServer::COleTemplateServer

构造 COleTemplateServer 对象。

COleTemplateServer();

Remarks

For a brief description of the use of the COleTemplateServer class, see the COleLinkingDoc class overview.

COleTemplateServer::ConnectTemplate

Connects the document template pointed to by pDocTemplate to the underlying COleObjectFactory object.

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

Parameters

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

pDocTemplate
指向文档模板的指针。

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

Remarks

For more information, see CLSID Key in the Windows SDK.

COleTemplateServer::Unregister

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

BOOL Unregister();

Return Value

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

COleTemplateServer::UpdateRegistry

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

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

Parameters

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

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

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

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

  • OAT_DISPATCH_OBJECT 对象支持 IDispatch

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

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

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

bRegister
确定是否要注册该类。 If bRegister is TRUE, the class is registered with the system registry. 否则,它会取消注册该类。

Remarks

The registration information is loaded by means of a call to CDocTemplate::GetDocString. 检索到的子字符串是由索引 regFileTypeIdregFileTypeNamefileNewName 标识的子字符串,如 GetDocString 参考页中所述。

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

The information in the arguments rglpszRegister and rglpszOverwrite is written to the registry through a call to AfxOleRegisterServerClass. 默认信息(两个参数为 NULL 时注册)适用于大多数应用程序。 有关这些参数中信息结构的信息,请参阅 AfxOleRegisterServerClass

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

See also

MFC 示例 HIERSVR
COleObjectFactory Class
Hierarchy Chart
COleServerDoc Class
COleServerItem Class