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 |
---|---|
|
Die Lizenz wurde erfolgreich erstellt. |
|
Diese Methode ist nicht implementiert, da Objekte nur auf vollständig lizenzierten Computern über IClassFactory::CreateInstance erstellt werden können. |
|
Ein in bstrKey oder ppvObj übergebener Zeiger ist ungültig. Es kann z. B. NULL sein. |
|
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. |
|
Der pUnkOuter-Parameter ist nicht NULL, aber diese Objektklasse unterstützt keine Aggregation. |
|
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 |