COMメモ10 インスタンス生成まとめ

1. クライアント COMライブラリ関数 CoCreateInstance() 実行開始
2. COMライブラリ関数 CoGetClassObject()実行開始
3. CoGetClassObject() CLSIDをキーにレジストリからDLLを探してロード
3. CoGetClassObject() DLL内関数 DllGetClassObject()実行開始
4. DllGetClassObject() 内でCLSIDに応じたクラスファクトリインスタンスを作成
5. DllGetClassObject() 作成したクラスファクトリをIClassFactoryへのポインタとして返し終了
6. CoGetClassObject() IClassFactoryへのポインタを返し終了
7. CoCreateInstance() IClassFactory::CreateInstance()を呼び出す
8. IClassFactory::CreateInstance() コンポーネントのインスタンスを作成
9.IClassFactory::CreateInstance() コンポーネントをインターフェイスへのポインタとして返して終了
10.IClassFactory::Release() クラスファクトリを解放
11.CoCreateInstance() インターフェイスへのポインタを返し終了
12. インスタンス生成完了
※ CoCreateInstance()を使わずに直接CoGetClassObject()を使ってもよい。

広告

akatukisiden について

フリーランスプログラマ 使用言語はC++,C#とそのつなぎのC++/CLI 専門はクライアントアプリ開発
カテゴリー: その他, C++, COM タグ: , , , , , , , パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中