com4:InProcessServerClassReference
指定与注册的进程内服务器关联的类或类引用,并设置注册详细信息。
元素层次结构
<com4:InProcessServerClassReference>
语法
<com4:InProcessServerClassReference
EnableOleDefaultHandler = 'A boolean value.'
Id = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.' />
特性和元素
属性
属性 | 说明 | 数据类型 | 必须 | 默认值 |
---|---|---|---|---|
EnableOleDefaultHandler | 如果 InprocHandler32 键的默认值为 Ole32.dll ,则应将其设置为 true。 否则,应省略它。 |
布尔值。 | 是 | False |
Id | 所引用的 类 的 ID。 | 格式为 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 的 GUID。 | 是 |
子元素
无。
父元素
父元素 | 描述 |
---|---|
com4:SurrogateServer | 使用一个或多个类注册注册代理服务器。 |
注解
通过 COM 注册表布局中的 CLSID 密钥] (/windows/win32/com/clsid-key-hklm) ,可以注册 CLSID 以 (CLSCTX_INPROC_SERVER) , 并在代理服务器 (CLSCTX_LOCAL_SERVER) 中注册 outproc 激活,方法是指定:
- InprocServer32 子项中的过程激活详细信息。
- 通过 CLSID 键的 AppID 值对 AppID 密钥的引用,其中 AppID 键通过 DllSurrogate 值指定代理项。 请注意,对于代理服务器中的 outproc 激活,inproc 服务器注册详细信息(例如 dll 路径和 ThreadingModel)也用于 outofproc 激活。 InProcessServer 元素的 ClassReference 子元素允许一个包为 inproc 和 outofproc 激活注册 CLSID,以一次将 inproc 服务器详细信息指定为 InProcessServer/Class 或 InProcessServer/ClassReference 元素,并从支持 CLSID 的 outproc 激活的 SurrogateServer 中引用此元素。 与在 InProcessServer/ClassReference 和 SurrogateServer/ClassReference 元素中独立指定 dll 路径和 ThreadingModel 相比,inproc/outofproc 注册的此结构更能反映 COM 注册表布局。
使用在代理服务器中注册的 CLSID 打包应用程序时,通常建议在清单中仅注册代理服务器。 例如,代理项注册通常用于支持基于 COM 的扩展点,这些扩展点以前启用了过程内服务器实现,但现在建议将异常服务器注册作为隔离的最佳做法。 对于打包的应用程序, (有关进程内服务器的其他功能限制,请参阅 In-ProcessServers 了解) 的详细信息,而具有 runFullTrust 受限功能 的任何包都可以成功注册代理服务器,并且对于大多数注册代理服务器的扩展点,就足以启用扩展的功能。 但是,如果打包的应用程序需要支持其 CLSID 的在过程内激活,以便与请求过程内激活的其他应用程序兼容 (CLSCTX_INPROC_SERVER) ,并且满足注册过程内服务器的要求,则它可以在代理项中注册用于过程内激活和外部过程激活的 CLSID。 在这种情况下,建议在 InProcessServer/Class 或 InProcessServer/ClassReference 元素中提供进程内服务器详细信息,并从 SurrogateServer/InProcessServerClassReference 元素引用它们。
示例
以下示例演示如何使用 InProcessServerClassreference 在代理项服务器注册中引用类。
<com4:Class Id="d57899b9-1334-4600-904a-719df0512988" DisplayName="CLSID_Baz"/>
<com4:InProcessServer Path="MyServer.dll">
<com4:ClassReference Id="d57899b9-1334-4600-904a-719df0512988" ThreadingModel="Apartment"/>
</com4:InProcessServer>
<com:SurrogateServer DisplayName="My surrogate server">
<com4:InProcessServerClassReference Id="d57899b9-1334-4600-904a-719df0512988"/>
</com:SurrogateServer>
要求
项 | 值 |
---|---|
Namespace | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
Minimum OS Version | Windows 10 (内部版本 20348) |