注册
当用户插入一个 OLE 项添加到应用程序中时, OLE 存在目标类型的列表中选择自。 OLE 获取从系统注册数据库列表,包含所有服务器应用程序提供的信息。 当服务器注册,它放入系统注册数据库的项 (注册表) 描述对象的每种类型,它提供文件扩展名和路径本身的,在其他信息中。
框架和 OLE 系统动态链接库 (DLL)使用此注册表确定哪种类型的 OLE 项系统中可用的。 激活时,时,该 OLE 系统 DLL 还使用此注册表确定如何生成服务器应用一个链接的或嵌入的对象。
本文介绍了每个服务器应用程序需要执行,同时安装,并在每次执行。
服务器安装
在首次安装您的服务器应用程序时,它应注册它支持 OLE 项的所有类型。 ,在执行作为独立的应用程序时,还可以让服务器更新系统注册数据库。 ,如果服务器的可执行文件移动,这保证注册数据库最新。
备注
应用程序向导注册自动生成的 MFC 应用程序,当测试运行作为独立应用程序。
如果要注册您的应用程序在安装时,请使用 RegEdit.exe 程序。 (在 Windows 95、 Windows 98 和 Windows ME, RegEdit 在 windows 目录。 在 Windows NT 和 Windows 2000 上, RegEdit 在窗口 System32 目录。)如果随您的应用程序的安装程序,使安装程序运行 “REGEDIT /S appname.reg”。 (/S 标志指示无提示操作,也就是说,它不显示报告的对话框命令的成功完成。)否则,将提示用户手动运行 RegEdit。
备注
应用程序向导创建的 .reg 文件不包含可执行文件的完整路径。安装程序必须修改 .reg 文件包括完整路径可执行文件或修改 PATH 环境变量以包括安装目录。
RegEdit 将 .reg 文本文件的内容注册数据库。 若要验证该数据库或修复它,请使用注册表编辑器。 要避免删除重要 OLE 项。 (在 Windows 95、 Windows 98 和 Windows ME,注册表编辑器是 RegEdit.exe。 在 Windows NT 和 Windows 2000,它是 RegEdit32.exe。)
服务器初始化
当您使用应用程序向导时创建服务器应用程序,向导会自动为您执行所有初始化任务。 本节描述您必须执行,如果您编写的服务器应用手动。
当服务器应用程序由容器应用程序时生成,该 OLE 系统 DLL 添加 “/Embedding”选项到服务器的命令行。 服务器应用程序的行为不同根据是否由容器生成,因此,第一点应用程序应执行,当开始执行是 “/Embedding”检查或 “时 - 嵌入”命令行中的选项。 如果此开关存在,加载其他资源组用于显示服务器作为就地活动或完全打开。 有关更多信息,请参见 菜单和资源:添加服务器。
您的服务器应用程序还应调用其 CWinApp::RunEmbedded 函数分析命令行。 如果返回非零值,应用程序不应显示窗口,因为它从容器应用程序运行,不作为独立应用程序。 此函数在系统注册数据库中更新服务器的项并调用您的 RegisterAll 成员函数,执行实例注册。
当您的服务器应用程序启动时,必须确保它可以执行实例注册。 实例注册通知 OLE 系统 DLL 服务器活动和准备接收来自容器的请求。 它不将项添加到注册数据库。 通过调用 ConnectTemplate 成员函数执行服务器的实例注册定义的由 COleTemplateServer。 此连接到 COleTemplateServer 对象的 CDocTemplate 对象。
ConnectTemplate 函数采用三个参数:服务器的 CLSID、指向 CDocTemplate 对象并指示服务器是否的标志支持多个实例。 miniserver 必须能够支持多个实例,也就是说,服务器的多个实例同时运行,则每个容器的绑定是可能的。 因此,此标志通过 TRUE ,将会 miniserver 时。
如果您正在编写一个 miniserver,它将由容器始终按照定义生成。 您仍应分析命令行检查 “/Embedding”选项。 关于命令行使用此选项意味着用户尝试生成 miniserver 作为独立应用程序。 如果发生这种情况,注册了系统注册数据库的服务器来显示通知用户的消息框会从容器应用程序的 miniserver。