次の方法で共有


アプリケーション設計の制限事項

一部のアプリケーションは、アプリケーションの複数のインスタンスがコンピューターにインストールされないように設計されています。 このような制限により、アプリケーションではパーティション機能を利用することができません。 次のアプリケーション設計機能では、そのアプリケーションでパーティションを使用する前に変更を行う必要がある場合があります。

テーブルと配列

一部のアプリケーションでは、CLSID を一意のレジストリ キーとして使用するデータベース テーブル、メモリ内テーブル、または配列が作成されます。 パーティションのないコンピューターでは、通常、このレジストリ キーはコンピューター/CLSID (コンピューターごとに 1 つの CLSID) です。

逆に、パーティションがあるコンピューターでは、このレジストリ キーはコンピューター/パーティション ID/アプリケーション ID/CLSID (コンピューターごとに 1 つの CLSID の複数のインスタンス) です。 パーティション機能を使用すると、CLSID の複数のインスタンスがコンピューターに存在することが可能となるため、コンピューターごとに一意の CLSID を必要とする設計要素を含むアプリケーションが、悪影響を受ける可能性があります。

グローバル リソース

一部のアプリケーションでは、共有メモリ、データ ファイル、レジストリ エントリなどのグローバル リソースが使用されます。 これにより、このようなアプリケーションの複数のインスタンスが同時に実行されている場合に問題が発生する可能性があります。

たとえば、コンポーネントが他のコンポーネントとの対話に共有メモリを使用する場合、コンポーネントの各インスタンスがそれ自身の共有メモリを割り当てるように、コンポーネントに変更を行う必要が生じてきます。

タイプ ライブラリ

タイプ ライブラリは、コンポーネントのインターフェイスとメソッドに関する情報を提供します。 この情報は、次のようないくつかの目的で使用されます。

  • 関数呼び出しが行われるときに、コンポーネント間でデータをマーシャリングする
  • COM+ キュー コンポーネントと COM+ イベント サービスの支援
  • Microsoft Visual Basic エディター内での正しい情報の提供

タイプ ライブラリへの参照は、コンピューターのレジストリにインストールされます。 パーティション内から呼び出されるアプリケーションを開発するときは、最新バージョンのタイプ ライブラリがレジストリにインストールされていることが重要です。 これにより、使用されている Visual Basic エディターは、そのコンポーネントで使用できるメソッドに関する正確な情報を取得することができます。

COM+ キューに登録されたコンポーネントとパーティション

パーティションの実装

パーティション内のコンポーネントの登録とアクティブ化

COM+ パーティションとは