次の方法で共有


com4:InProcessServerClassReference

登録されたインプロセス サーバーが関連付けられているクラスまたはクラス参照を指定し、登録の詳細を設定します。

要素の階層

<パッケージ>

    <アプリケーション>

         <Application>

              <拡張機能>

                   <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 に設定する必要があります。 それ以外の場合は省略する必要があります。 ブール値。 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)