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 に設定する必要があります。 それ以外の場合は省略する必要があります。 |
ブール値。 | Yes | False |
Id | 参照されている クラス の ID。 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx という形式の GUID。 | Yes |
子要素
なし。
親要素
親要素 | 説明 |
---|---|
com4:SurrogateServer | SurrogateServer を 1 つまたは複数のクラス登録に登録します。 |
注釈
COM レジストリ レイアウトの CLSID キー](/windows/win32/com/clsid-key-hklm) を使用すると、CLSID を代理サーバー (CLSCTX_LOCAL_SERVER) でインプロック アクティブ化 (CLSCTX_INPROC_SERVER) および outofproc アクティブ化に登録できます。
- 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) を要求する他のアプリケーションとの互換性のために CL SID のインプロック アクティブ化をサポートする必要があり、inproc サーバーを登録するための要件を満たしている場合は、代理でインプロック アクティブ化と outofproc アクティブ化のために CLSID を登録できます。 この場合は、InProcessServer/Class 要素または InProcessServer/ClassReference 要素に inproc サーバーの詳細を指定し、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>
必要条件
Item | 値 |
---|---|
Namespace | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
Minimum OS Version | Windows 10 (ビルド 20348) |