IClassFactory2::CreateInstanceLic メソッド (ocidl.h)

指定したライセンス キーのライセンス オブジェクトのインスタンスを作成します。 このメソッドは、それ以外のライセンスのないマシン上にオブジェクトを作成する唯一の方法です。

構文

HRESULT CreateInstanceLic(
  [in]  IUnknown *pUnkOuter,
  [in]  IUnknown *pUnkReserved,
  [in]  REFIID   riid,
  [in]  BSTR     bstrKey,
  [out] PVOID    *ppvObj
);

パラメーター

[in] pUnkOuter

このオブジェクトが集計の一部として作成されている場合は、外側の不明な上の制御する IUnknown インターフェイスへのポインター。 オブジェクトが集計の一部でない場合、このパラメーターは NULL である必要があります。

[in] pUnkReserved

このパラメーターは使用されず、 NULL である必要があります。

[in] riid

新しく作成されたオブジェクトとの通信に使用されるインターフェイスの識別子への参照。

[in] bstrKey

オブジェクトの作成に必要な IClassFactory2::RequestLicKey から以前に取得したランタイム ライセンス キー。

[out] ppvObj

riid で要求されたインターフェイス ポインターを受け取るポインター変数のアドレス。 正常に戻ると、*ppvObj には要求されたインターフェイス ポインターが含まれます。 エラーが発生した場合、実装では *ppvObjNULL に設定する必要があります。

戻り値

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

リターン コード 説明
S_OK
ライセンスが正常に作成されました。
E_NOTIMPL
オブジェクトは IClassFactory::CreateInstance を使用して完全にライセンスされたマシンでのみ作成できるため、このメソッドは実装されません。
E_POINTER
bstrKey または ppvObj で渡されたポインターが無効です。 たとえば、 NULL にすることができます。
E_NOINTERFACE
オブジェクトは、 riid で指定されたインターフェイスをサポートしていない場合を除き、オブジェクトを作成できます (ライセンス キーは有効です)。
CLASS_E_NOAGGREGATION
pUnkOuter パラメーターは NULL 以外ですが、このオブジェクト クラスは集計をサポートしていません。
CLASS_E_NOTLICENSED
bstrKey で指定されたキーが有効なライセンス キーではありません。

注釈

実装者へのメモ

クラス ファクトリがライセンス キーを提供しない場合 (つまり、IClassFactory2::RequestLicKey はE_NOTIMPLを返し、IClassFactory2::GetLicInfo では LICINFOfRuntimeKeyAvail メンバーが FALSE に設定されている場合、このメソッドはE_NOTIMPLを返すこともできます。 このような場合、クラス ファクトリは IClassFactory2 を実装し、マシンが LICINFOfLicVerified メンバーを通じてまったくライセンスされているかどうかを指定するだけです。

要件

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

こちらもご覧ください

IClassFactory2

LICINFO