com4:InProcessServerClassReference

指定与注册的进程内服务器关联的类或类引用,并设置注册详细信息。

元素层次结构

<包>

    <应用程序>

         <应用程序>

              <扩展>

                   <com4:SurrogateServer>

                        <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/ClassInProcessServer/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)