共用方式為


com4:SurrogateServer

向一或多個類別註冊註冊 SurrogateServer。

元素階層

<套件>

    <應用程式>

         <應用程式>

              <擴充功能>

                   <com4:SurrogateServer>

Syntax

<com4:SurrogateServer
  CustomSurrogateExecutable = 'A string with a value between 1 and 256 characters in length that must end with ".exe" and cannot contain these characters: <, >, :, ", |, ?, or *.'
  DisplayName = 'A string with a value between 1 and 256 characters in length. This string is localizable.'
  LaunchAndActivationPermission = 'An [SDDL string](/windows/win32/secauthz/security-descriptor-string-format) value.'
  AppId = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
  SystemSurrogate = 'A string with the following optional value: "PreviewHost".' >

  <!-- Child elements -->
  Class
  InProcessServerClassReference
  ClassReference

</com4:SurrogateServer>

屬性和元素

屬性

屬性 描述 資料類型 必要 預設值
CustomSurrogateExecutable AppId 機碼中 DllSurrogate 的路徑。 此路徑相對於封裝根目錄,而且必須參考封裝中的檔案。 這是與 SystemSurrogate 互斥的。 長度介於 1 到 256 個字元之間的字串,必須以 .exe 結尾且不能包含下列字元: < 、、 >: 、、 "|?* Yes
DisplayName DisplayName 是對應至預設 AppID 索引鍵值的可當地語系化字串。 長度介於 1 到 256 個字元之間的字串。 Yes
LaunchAndActivationPermission 對應至 AppID 索引鍵之 LaunchPermission 值的 SDDL 字串 SDDL 字串值。 Yes
AppId 參考相關聯 AppId 索引鍵的 AppId。 格式為 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx 的 GUID。 Yes
SystemSurrogate 值,對應至 AppId 索引鍵之 DllSurrogate 值的已知值。 這與 CustomSurrogateExecutable 互斥。 具有下列選擇性值的字串:「PreviewHost」。 Yes

子元素

子項目 Description
類別 定義 Surrogate 伺服器類別註冊。
InProcessServerClassReference 指定與 Managed 同進程伺服器相關聯的類別,並設定註冊詳細資料。
ClassReference 指定與已註冊同進程伺服器相關聯的類別,並設定註冊詳細資料。

父元素

父元素 描述
延伸模組 定義應用程式的一或多個擴充點。

備註

CLSID 機碼] (/windows/win32/com/clsid-key-hklm) COM 登錄配置中的 CLSID 可藉由指定下列專案,在代理伺服器 ( (CLSCTX_INPROC_SERVER) ,以及在 Surrogate 伺服器 (CLSCTX_LOCAL_SERVER) 註冊 CLSID:

  • InprocServer32子機碼中的 Inproc 啟用詳細資料。
  • 透過 CLSID 索引鍵的 AppID 值來參考 AppID 金鑰,其中 AppID 索引鍵會透過 DllSurrogate 值指定 Surrogate 。 請注意,針對 Surrogate 伺服器中的 outofproc 啟用,inproc 伺服器註冊詳細資料,例如 dll 路徑和 ThreadingModel也會用於 outofproc 啟用。 InProcessServer元素的ClassReference子系可讓封裝註冊 inproc 和 outofproc 啟用的 CLSID,以指定 inproc 伺服器詳細資料一次,做為InProcessServer/Class 或 InProcessServer/ClassReference元素,並從支援 CLSID outofproc 啟用的 SurrogateServer 參考這個專案。 inproc/outofproc 註冊的這個結構會比在 InProcessServer/ClassReference 和 SurrogateServer/ClassReference 元素中獨立指定 dll 路徑和 ThreadingModel 更緊密地反映 COM 登錄配置。

在代理伺服器中封裝註冊為 outofproc 啟用註冊的 CLSID 應用程式時,通常建議只在資訊清單中註冊 Surrogate 伺服器。 例如,代理註冊通常用於支援過去啟用 inproc 伺服器實作的 COM 型擴充點,但現在建議 outofproc 伺服器註冊作為隔離的最佳做法。 對於封裝的應用程式,inproc 伺服器有額外的功能限制, (請參閱 In-ProcessServers 以取得詳細資料) ,而具有 runFullTrust 限制功能 的任何套件都可以成功註冊代理伺服器,而大部分註冊 Surrogate 伺服器的擴充點就足以啟用擴充功能。 不過,如果封裝的應用程式需要支援其 CLSID 的內建啟用,以便與要求 inproc 啟用的其他應用程式相容, (CLSCTX_INPROC_SERVER) ,並滿足註冊 inproc 伺服器的需求,它可以在代理中註冊 INproc 啟用和 outofproc 啟用的 CLSID。 在此情況下,建議您在InProcessServer/ClassInProcessServer/ClassReference元素中提供 inproc 伺服器詳細資料,並從SurrogateServer/InProcessServerClassReference元素參考它們。

規格需求

Item
Namespace http://schemas.microsoft.com/appx/manifest/com/windows10/4
OS 最低版本 Windows 10 (組建 20348)