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/Class或InProcessServer/ClassReference元素中提供 inproc 伺服器詳細資料,並從SurrogateServer/InProcessServerClassReference元素參考它們。
規格需求
Item | 值 |
---|---|
Namespace | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
OS 最低版本 | Windows 10 (組建 20348) |