ObjectContext::CreateInstance メソッド (comsvcs.h)

現在のオブジェクトのコンテキストを使用してオブジェクトを作成します。

オブジェクトは、そのコンポーネントが COM+ に登録されている場合にのみコンテキストを持ちます。

構文

HRESULT CreateInstance(
  [in]  BSTR    bstrProgID,
  [out] VARIANT *pObject
);

パラメーター

[in] bstrProgID

インスタンス化するオブジェクトの種類の ProgID。

[out] pObject

新しいオブジェクトへの参照。

戻り値

このメソッドは、E_INVALIDARG、E_OUTOFMEMORY、E_FAILの標準戻り値と、次の値を返すことができます。

リターン コード 説明
S_OK
メソッドは正常に完了しました。
E_UNEXPECTED
予期しないエラーが発生しました。 これは、あるオブジェクトが ObjectContext ポインターを別のオブジェクトに渡し、もう一方のオブジェクトがこのポインターを使用して CreateInstance を 呼び出した場合に発生する可能性があります。 ObjectContext ポインターは、最初に取得したオブジェクトのコンテキスト外では無効です。

注釈

CreateInstance を使用してオブジェクトを作成すると、新しいオブジェクトのコンテキストは、現在のオブジェクトの ObjectContext と、新しいオブジェクトのコンポーネントの宣言型プロパティから派生します。 新しいオブジェクトは、作成したオブジェクトと同じアクティビティ内で常に実行されます。 現在のオブジェクトにトランザクションがある場合、新しいオブジェクトのコンポーネントの transaction 属性によって、そのトランザクションのスコープ内で新しいオブジェクトが実行されるかどうかを判断します。

コンポーネントのトランザクション属性設定でトランザクションが必要な場合、またはトランザクションをサポートしている場合、新しいオブジェクトはその作成者のトランザクションを継承します。 コンポーネントのトランザクション属性に新しいトランザクションが必要な場合、COM+ は新しいオブジェクトの新しいトランザクションを開始します。 コンポーネントのトランザクション属性がトランザクションをサポートしていない場合、新しいオブジェクトはどのトランザクションでも実行されません。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー comsvcs.h

こちらもご覧ください

Objectcontext