指定されたCLSIDに関連付けられたクラスの1つの未初期化オブジェクトを作成します。ローカルシステム上で1オブジェクトを作成したい場合に呼び出します。リモートシステム上で1つのオブジェクトを作成する場合にはCoCreateInstanceEx関数を呼び出します。1つのCLSIDをもとに複数のオブジェクトを作成す場合にはCoGetClassObject関数を使用します。
STDAPI CoCreateInstance( REFCLSID rclsid, // オブジェクトのCLSID LPUNKNOWN pUnkOuter, // アグリゲートオブジェクト DWORD dwClsContext, // コンテキスト REFIID riid, // 取得するIID PVOID *ppv // 変数アドレス );
OLE32.DLL
オブジェクトの作成に使用するデータおよびコードに関連付けられているCLSIDを指定します。
オブジェクトがアグリゲートオブジェクトの一部として作成する場合はアグリゲートオブジェクトのIUnknownインターフェイス (制御側IUnknown) へのポインタを指定します。
0 (NULL) を指定すると、オブジェクトはアグリゲートオブジェクトの一部として作成されません。
新しく作成されるオブジェクトの管理コードを実行するコンテキストを指定します。以下の値の組み合わせで指定します。
このクラスのオブジェクトを作成および管理するコードは、呼び出し側と同じプロセスで実行されるDLLです。
このクラスのオブジェクトを管理するコードはプロセス内ハンドラです。これはクライアントプロセス内で実行されるDLLで、クラスのインスタンスがリモートでアクセスされる際にこのクラスのクライアントサイド構造を作成します。
このクラスのオブジェクトを作成および管理するEXEコードは同じマシン上で実行されますが、別のプロセス空間にロードされます。
上記の3つのフラグをすべて含んでいます。
オブジェクトとの通信に使用するインターフェースのインターフェースID (IID) の参照(アドレス)を指定します。
riidパラメータで要求されたインターフェースポインタを格納するための変数のアドレスを指定します。オブジェクトのインスタンスが正常に作成されると、この変数に要求したインターフェースポインタが格納されます。作成に失敗した場合は、この変数に0 (NULL) が格納されます。
Windows 95 以降 / Windows NT 3.1 以降