共用方式為


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,以及下列值。

傳回碼 描述
S_OK
已成功建立授權。
E_NOTIMPL
無法實作這個方法,因為物件只能透過 IClassFactory::CreateInstance 在完全授權的電腦上建立。
E_POINTER
傳入 bstrKeyppvObj 的指標無效。 例如,它可能是 NULL
E_NOINTERFACE
您可以 (建立物件,而且授權密鑰有效) ,但對象不支援 riid 指定的介面。
CLASS_E_NOAGGREGATION
pUnkOuter 參數為非 NULL,但這個物件類別不支持匯總。
CLASS_E_NOTLICENSED
bstrKey 中提供的金鑰不是有效的授權金鑰。

備註

實作者的注意事項

如果類別處理站未提供授權密鑰 (亦即 IClassFactory2::RequestLicKey 會傳回 E_NOTIMPL,而且 LICINFO 中的 fRuntimeKeyAvail 成員在 IClassFactory2::GetLicInfo) 中設定為 FALSE,則此方法也可以傳回E_NOTIMPL。 在這種情況下,類別處理站會實作 IClassFactory2,只是為了指定機器是否完全透過 LICINFOfLicVerified 成員授權。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 ocidl.h

另請參閱

IClassFactory2

LICINFO