1

COM で、ある COM サーバー オブジェクトのインスタンスを作成したい場合、最初にその IUnknown インターフェイスへのポインタを取得してから、CoGetClassObject を使用してクラス オブジェクトを作成する必要がありますか?

私が理解している限り、IUnknown はオブジェクトの有効期間を管理するために使用されるため、クライアントが作成したいオブジェクトが何であれ、最初に IUnknown インターフェイスの実装へのポインターが必要です。

正しく聞こえますか?そうでない場合、誰かがそれがどのように機能するか教えてもらえますか?

4

1 に答える 1

3

IUnknown既存のCOM オブジェクトの寿命を管理します。オブジェクトが作成される前は、IUnknown言及するポインターはありません。

CoGetClassObjectIUnknown対象のオブジェクトを作成すると予想されるオブジェクトのインターフェースを取得するために使用されます。つまり、これは object factoryであり、通常は implementsであり、オブジェクトの作成に使用するメソッドIClassFactoryを宣言します。CreateInstance

クラス ファクトリを明示的に使用する代わりに、単に を呼び出す方が簡単なことがよくありますCoCreateInstance

于 2010-05-16T12:17:31.757 に答える