CoCreateInstanceFromApp 関数 (combaseapi.h)
アプリ コンテナー内から、特定のコンピューター上の特定のクラスのインスタンスを作成します。
構文
HRESULT CoCreateInstanceFromApp(
[in] REFCLSID Clsid,
[in, optional] IUnknown *punkOuter,
[in] DWORD dwClsCtx,
[in, optional] PVOID reserved,
[in] DWORD dwCount,
[in, out] MULTI_QI *pResults
);
パラメーター
[in] Clsid
作成するオブジェクトの CLSID。
[in, optional] punkOuter
このパラメーターが NULL 以外の場合は、インスタンスが集計の一部として作成され、 punkOuter が新しいインスタンスの制御 IUnknown として使用されることを示します。 現在、集計はクロスプロセスまたはコンピューター間ではサポートされていません。 プロセス外でオブジェクトをインスタンス化すると、 punkOuter が NULL 以外の場合、CLASS_E_NOAGGREGATIONが返されます。
[in] dwClsCtx
CLSCTX 列挙からの値。
[in, optional] reserved
将来利用するために予約されています。
[in] dwCount
pResults 内の構造体の数。 この値は 0 より大きくする必要があります。
[in, out] pResults
MULTI_QI構造体の配列。 各構造体には、要求されたインターフェイス (pIID) の識別子、インターフェイス ポインター (pItf) を返す場所、 QueryInterface (hr) の呼び出しの戻り値の 3 つのメンバーがあります。
戻り値
この関数は、E_INVALIDARG標準の戻り値と、次の値を返すことができます。
リターン コード | 説明 |
---|---|
|
成功を示します。 |
|
指定したクラスが登録データベースに登録されていないか、クラスがアプリ コンテナーでサポートされていません。 CLSCTX 列挙で要求したサーバーの種類が登録されていないか、レジストリ内のサーバーの種類の値が破損していることを示すこともできます。 |
|
このクラスを集計の一部として作成することはできません。 |
|
少なくとも 1 つが、 pResults 配列で要求されたすべてのインターフェイスが正常に取得されたわけではありません。 pResults の各MULTI_QI構造体の hr メンバーは、特定のインターフェイスが返されたかどうかをS_OKまたはE_NOINTERFACEで示します。 |
|
pResults 配列で要求されたインターフェイスはいずれも正常に取得されませんでした。 |
注釈
CoCreateInstanceFromApp 関数は、CoCreateInstanceEx 関数と同じですが、次の違いがあります。
- CoCreateInstanceFromApp 関数は、アプリケーション コンテキストと HKLM\SOFTWARE\Classes\CLSID レジストリ ハイブからのみクラス登録を読み取ります。
- アプリ コンテナーでサポートされている組み込みクラスのみが提供されます。 サード パーティコードによってインストールされたすべてのクラスと多くの Windows クラスを含む、サポートされていないクラスをアクティブ化しようとすると、エラー コード がREGDB_E_CLASSNOTREG。
- CoCreateInstanceFromApp 関数は、Windows ストア アプリで使用できます。 デスクトップ アプリケーションはこの関数を呼び出すことができますが、Windows ストア アプリと同じ制限があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | combaseapi.h |
Library | Combase.lib |
[DLL] | Combase.dll |