最終更新:2018-09-21 (金) 10:08:15 (2034d)  

CoCreateInstance
Top / CoCreateInstance

指定されたCLSIDに関連付けられたクラスの1つの未初期化オブジェクトを作成します。

STDAPI CoCreateInstance(
    REFCLSID  rclsid,     // オブジェクトのCLSID
    LPUNKNOWN pUnkOuter,  // アグリゲートオブジェクト
    DWORD   dwClsContext, // コンテキスト
    REFIID  riid,         // 取得するIID
    PVOID   *ppv          // 変数アドレス
);

引数

rclsid

dwClsContext?

新しく作成されるオブジェクトの管理コードを実行するコンテキストを指定します。以下の値の組み合わせで指定します。

  • 0x1 (CLSCTX_INPROC_SERVER)
    • このクラスのオブジェクトを作成および管理するコードは、呼び出し側と同じプロセスで実行されるDLLです。
  • 0x2 (CLSCTX_INPROC_HANDLER)
    • このクラスのオブジェクトを管理するコードはプロセス内ハンドラです。これはクライアントプロセス内で実行されるDLLで、クラスのインスタンスがリモートでアクセスされる際にこのクラスのクライアントサイド構造を作成します。
  • 0x4 (CLSCTX_LOCAL_SERVER)
    • このクラスのオブジェクトを作成および管理するEXEコードは同じマシン上で実行されますが、別のプロセス空間にロードされます。
  • 0x17 (CLSCTX_ALL)
    • 上記の3つのフラグをすべて含んでいます。

メモ

  • CoCreateInstanceは引数としてCLSIDIID?を指定します。
  • CoCreateInstanceCSLID?で指定したオブジェクトを生成し、そのオブジェクトのIID?で指定したインターフェースを返します。

参考