IClassFactory の実装

クライアントが CLSID を使用してオブジェクト インスタンスの作成を要求する場合、最初の手順はクラス オブジェクト (IClassFactory インターフェイスのメソッドの実装を含む中間オブジェクト) の作成です。 COM にはいくつかのインスタンス作成関数が用意されていますが、これらの関数の実装の最初のステップはクラス オブジェクトの作成です。

その結果、すべてのサーバーは、次の 2 つのメソッドを含む IClassFactory インターフェイスのメソッドを実装する必要があります。

  • CreateInstance. このメソッドは、オブジェクトの初期化されていないインスタンスを作成し、オブジェクト上の要求されたインターフェイスへのポインターを返す必要があります。
  • LockServer。 このメソッドは、クラス オブジェクトの参照カウントをインクリメントするだけで、サーバーがメモリ内に留まり、クライアントの準備が整う前にシャットダウンしないようにします。

サーバーが独自のライセンスを担当できるようにするために、COM は IClassFactory2 を定義し、IClassFactory からその定義を継承します。 したがって、IClassFactory2 を実装するサーバーは、定義上、IClassFactory のメソッドを実装する必要があります。

COM には、アウトプロセス サーバーを実装するためのヘルパー関数も用意されています。 詳細については、「アウトプロセス サーバー実装ヘルパー」を参照してください。

COM サーバーの責任

ライセンスと IClassFactory2