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 には要求されたインターフェイス ポインターが含まれます。 エラーが発生した場合、実装では *ppvObj を NULL に設定する必要があります。
戻り値
このメソッドは、E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTEDの標準戻り値と、次の値を返すことができます。
リターン コード | 説明 |
---|---|
|
ライセンスが正常に作成されました。 |
|
オブジェクトは IClassFactory::CreateInstance を使用して完全にライセンスされたマシンでのみ作成できるため、このメソッドは実装されません。 |
|
bstrKey または ppvObj で渡されたポインターが無効です。 たとえば、 NULL にすることができます。 |
|
オブジェクトは、 riid で指定されたインターフェイスをサポートしていない場合を除き、オブジェクトを作成できます (ライセンス キーは有効です)。 |
|
pUnkOuter パラメーターは NULL 以外ですが、このオブジェクト クラスは集計をサポートしていません。 |
|
bstrKey で指定されたキーが有効なライセンス キーではありません。 |
注釈
実装者へのメモ
クラス ファクトリがライセンス キーを提供しない場合 (つまり、IClassFactory2::RequestLicKey はE_NOTIMPLを返し、IClassFactory2::GetLicInfo では LICINFO の fRuntimeKeyAvail メンバーが FALSE に設定されている場合、このメソッドはE_NOTIMPLを返すこともできます。 このような場合、クラス ファクトリは IClassFactory2 を実装し、マシンが LICINFO の fLicVerified メンバーを通じてまったくライセンスされているかどうかを指定するだけです。要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ocidl.h |