Metodo IClassFactory2::CreateInstanceLic (ocidl.h)
Crea un'istanza dell'oggetto concesso in licenza per il codice di licenza specificato. Questo metodo è l'unico mezzo possibile per creare un oggetto in un computer altrimenti senza licenza.
Sintassi
HRESULT CreateInstanceLic(
[in] IUnknown *pUnkOuter,
[in] IUnknown *pUnkReserved,
[in] REFIID riid,
[in] BSTR bstrKey,
[out] PVOID *ppvObj
);
Parametri
[in] pUnkOuter
Puntatore all'interfaccia IUnknown di controllo sull'oggetto sconosciuto esterno se questo oggetto viene creato come parte di un'aggregazione. Se l'oggetto non fa parte di un'aggregazione, questo parametro deve essere NULL.
[in] pUnkReserved
Questo parametro è inutilizzato e deve essere NULL.
[in] riid
Riferimento all'identificatore dell'interfaccia da utilizzare per comunicare con l'oggetto appena creato.
[in] bstrKey
Chiave di licenza di runtime ottenuta in precedenza da IClassFactory2::RequestLicKey necessaria per creare un oggetto.
[out] ppvObj
Indirizzo della variabile del puntatore che riceve il puntatore di interfaccia richiesto in riid. Al termine della restituzione, *ppvObj contiene il puntatore all'interfaccia richiesto. Se si verifica un errore, l'implementazione deve impostare *ppvObj su NULL.
Valore restituito
Questo metodo può restituire i valori restituiti standard E_INVALIDARG, E_OUTOFMEMORY e E_UNEXPECTED, nonché i valori seguenti.
Codice restituito | Descrizione |
---|---|
|
La licenza è stata creata correttamente. |
|
Questo metodo non viene implementato perché gli oggetti possono essere creati solo in computer con licenza completa tramite IClassFactory::CreateInstance. |
|
Un puntatore passato in bstrKey o ppvObj non è valido. Ad esempio, può essere NULL. |
|
L'oggetto può essere creato (e la chiave di licenza è valida), ad eccezione dell'oggetto non supporta l'interfaccia specificata da riid. |
|
Il parametro pUnkOuter è diverso da NULL, ma questa classe oggetto non supporta l'aggregazione. |
|
La chiave fornita in bstrKey non è una chiave di licenza valida. |
Commenti
Note per gli implementatori
Se la class factory non fornisce un codice di licenza (ovvero IClassFactory2::RequestLicKey restituisce E_NOTIMPL e il membro fRuntimeKeyAvail in LICINFO è impostato su FALSE in IClassFactory2::GetLicInfo), questo metodo può anche restituire E_NOTIMPL. In questi casi, la class factory implementa semplicemente IClassFactory2 per specificare se il computer è concesso in licenza tramite il membro fLicVerified di LICINFO.Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | ocidl.h |