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++ 对象。
有关服务器的详细信息,请参阅服务器:实现服务器一文。
继承层次结构
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 进行加载。 检索到的子字符串是由索引 regFileTypeId
、regFileTypeName
和 fileNewName
标识的子字符串,如 GetDocString
参考页中所述。
如果 regFileTypeId
子字符串为空或对 GetDocString
的调用因任何其他原因失败,则此函数会失败并且文件信息不会输入到注册表中。
通过调用 AfxOleRegisterServerClass 将参数 rglpszRegister 和 rglpszOverwrite 中的信息写入注册表。 默认信息(两个参数为 NULL 时注册)适用于大多数应用程序。 有关这些参数中信息结构的信息,请参阅 AfxOleRegisterServerClass
。
有关更多信息,请参见 Implementing the IDispatch Interface。
另请参阅
MFC 示例 HIERSVR
COleObjectFactory 类
层次结构图
COleServerDoc 类
COleServerItem 类