次の方法で共有


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 として使用されることを示します。 現在、集計はクロスプロセスまたはコンピューター間ではサポートされていません。 プロセス外でオブジェクトをインスタンス化すると、 punkOuterNULL 以外の場合、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標準の戻り値と、次の値を返すことができます。

リターン コード 説明
S_OK
成功を示します。
REGDB_E_CLASSNOTREG
指定したクラスが登録データベースに登録されていないか、クラスがアプリ コンテナーでサポートされていません。 CLSCTX 列挙で要求したサーバーの種類が登録されていないか、レジストリ内のサーバーの種類の値が破損していることを示すこともできます。
CLASS_E_NOAGGREGATION
このクラスを集計の一部として作成することはできません。
CO_S_NOTALLINTERFACES
少なくとも 1 つが、 pResults 配列で要求されたすべてのインターフェイスが正常に取得されたわけではありません。 pResults各MULTI_QI構造体の hr メンバーは、特定のインターフェイスが返されたかどうかをS_OKまたはE_NOINTERFACEで示します。
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

こちらもご覧ください

CoCreateInstanceEx

fusion (アンマネージ API リファレンス)