com4:SurrogateServer
SurrogateServer を 1 つまたは複数のクラス登録に登録します。
要素の階層
<com4:SurrogateServer>
構文
<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 では変更できません。 | で終わる必要があり、 で終わる .exe 必要がある 1 から 256 文字の値を持つ文字列( < 、 > 、 : 、 " 、、 | 、 ? 、または * ) を含めることはできません。 |
Yes | |
DisplayName | DisplayName は、既定の AppID キー値に対応するローカライズ可能な文字列です。 | 長さが 1 ~ 256 文字の値を持つ文字列。 | Yes | |
LaunchAndActivationPermission | AppID キーの LaunchPermission 値に対応する SDDL 文字列 。 | SDDL 文字列値。 | Yes | |
AppId | 関連付けられた AppId キーを参照する AppId。 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 形式の GUID。 | Yes | |
SystemSurrogate | AppId キーの DllSurrogate 値の既知の値に対応する 値。 これは、CustomSurrogateExecutable では変更できません。 | "PreviewHost" という省略可能な値を持つ文字列。 | Yes |
子要素
子要素 | 説明 |
---|---|
クラス | サロゲート サーバー クラスの登録を定義します。 |
InProcessServerClassReference | マネージド インプロセス サーバーが関連付けられているクラスを指定し、登録の詳細を設定します。 |
ClassReference | 登録されたインプロセス サーバーが関連付けられているクラスを指定し、登録の詳細を設定します。 |
親要素
親要素 | 説明 |
---|---|
拡張機能 | アプリの 1 つ以上の拡張ポイントを定義します。 |
注釈
COM レジストリ レイアウトの CLSID キー](/windows/win32/com/clsid-key-hklm) を使用すると、次を指定して、代理サーバー (CLSCTX_LOCAL_SERVER) でインプロックアクティブ化 (CLSCTX_INPROC_SERVER) と outofproc アクティブ化のために CLSID を登録できます。
- InprocServer32 サブキー内の Inproc アクティブ化の詳細。
- CLSID キーの AppID 値を介した AppID キーへの参照。ここで、AppID キーは DllSurrogate 値を介してサロゲートを指定します。 サロゲート サーバーでの outofproc アクティブ化では、inproc サーバーの登録の詳細 (dll パスや ThreadingModel など) も outofproc アクティブ化で使用されることに注意してください。 InProcessServer 要素の ClassReference 子を使用すると、inproc と outofproc の両方のアクティブ化に CLSID を登録するパッケージで、InProcessServer/Class 要素または InProcessServer/ClassReference 要素として inproc サーバーの詳細を 1 回指定し、CLSID の outofproc アクティブ化をサポートする SurrogateServer からこの要素を参照できます。 inproc/outofproc 登録のこの構造体は、InProcessServer/ClassReference 要素と SurrogateServer/ClassReference 要素の両方で dll パスと ThreadingModel を個別に指定するよりも、COM レジストリ レイアウトをより厳密に反映しています。
サロゲート サーバーで outofproc アクティブ化用に登録された CLSID を使用してアプリケーションをパッケージ化する場合は、通常、代理サーバーのみがマニフェストに登録することをお勧めします。 たとえば、サロゲート登録は、従来は inproc サーバーの実装を有効にしていた COM ベースの拡張ポイントをサポートするためによく使用されますが、分離のベスト プラクティスとして outofproc サーバー登録が推奨されるようになりました。 パッケージ化されたアプリケーションの場合、inproc サーバーには追加の機能制限があります (詳細については 「In-ProcessServers 」を参照してください)。一方、 runFullTrust 制限付き機能 を持つパッケージはサロゲート サーバーを正常に登録できます。また、サロゲート サーバーを登録するほとんどの拡張機能ポイントでは、拡張機能の機能を有効にするのに十分です。 ただし、パッケージ 化されたアプリケーションが、inproc アクティブ化 (CLSCTX_INPROC_SERVER) を要求する他のアプリケーションとの互換性のために CLID のインプロック アクティブ化をサポートする必要があり、inproc サーバーを登録するための要件を満たしている場合は、インプロクティングと outofproc アクティブ化の CLSID をサロゲートに登録できます。 この場合は、InProcessServer/Class 要素または InProcessServer/ClassReference 要素に inproc サーバーの詳細を指定し、SurrogateServer/InProcessServerClassReference 要素から参照することをお勧めします。
必要条件
Item | 値 |
---|---|
Namespace | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
Minimum OS Version | Windows 10 (ビルド 20348) |