Freigeben über


IClassFactory2::CreateInstanceLic-Methode (ocidl.h)

Erstellt eine instance des lizenzierten Objekts für den angegebenen Lizenzschlüssel. Diese Methode ist die einzige möglichkeit, ein Objekt auf einem ansonsten nicht lizenzierten Computer zu erstellen.

Syntax

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

Parameter

[in] pUnkOuter

Ein Zeiger auf die steuernde IUnknown-Schnittstelle im äußeren Unbekannten, wenn dieses Objekt als Teil eines Aggregats erstellt wird. Wenn das Objekt nicht Teil eines Aggregats ist, muss dieser Parameter NULL sein.

[in] pUnkReserved

Dieser Parameter wird nicht verwendet und muss NULL sein.

[in] riid

Ein Verweis auf den Bezeichner der Schnittstelle, die für die Kommunikation mit dem neu erstellten Objekt verwendet werden soll.

[in] bstrKey

Laufzeitlizenzschlüssel, der zuvor von IClassFactory2::RequestLicKey abgerufen wurde, der zum Erstellen eines Objekts erforderlich ist.

[out] ppvObj

Adresse der Zeigervariablen, die den in riid angeforderten Schnittstellenzeiger empfängt. Nach erfolgreicher Rückgabe enthält *ppvObj den angeforderten Schnittstellenzeiger. Wenn ein Fehler auftritt, muss die Implementierung *ppvObj auf NULL festlegen.

Rückgabewert

Diese Methode kann die Standardrückgabewerte E_INVALIDARG, E_OUTOFMEMORY und E_UNEXPECTED sowie die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Lizenz wurde erfolgreich erstellt.
E_NOTIMPL
Diese Methode ist nicht implementiert, da Objekte nur auf vollständig lizenzierten Computern über IClassFactory::CreateInstance erstellt werden können.
E_POINTER
Ein in bstrKey oder ppvObj übergebener Zeiger ist ungültig. Es kann z. B. NULL sein.
E_NOINTERFACE
Das -Objekt kann erstellt werden (und der Lizenzschlüssel ist gültig), es sei denn, das Objekt unterstützt die durch riid angegebene Schnittstelle nicht.
CLASS_E_NOAGGREGATION
Der pUnkOuter-Parameter ist nicht NULL, aber diese Objektklasse unterstützt keine Aggregation.
CLASS_E_NOTLICENSED
Der in bstrKey bereitgestellte Schlüssel ist kein gültiger Lizenzschlüssel.

Hinweise

Hinweise für Implementierer

Wenn die Klassenfactory keinen Lizenzschlüssel bereitstellt (d. h. IClassFactory2::RequestLicKey gibt E_NOTIMPL zurück, und das fRuntimeKeyAvail-Element in LICINFO ist in IClassFactory2::GetLicInfo auf FALSE festgelegt), kann diese Methode auch E_NOTIMPL zurückgeben. In solchen Fällen implementiert die Klassenfactory IClassFactory2 , um anzugeben, ob der Computer überhaupt über das fLicVerified-Member von LICINFO lizenziert ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ocidl.h

Weitere Informationen

IClassFactory2

LICINFO