Método IClassFactory2::CreateInstanceLic (ocidl.h)
Crea una instancia del objeto con licencia para la clave de licencia especificada. Este método es el único medio posible para crear un objeto en un equipo sin licencia.
Sintaxis
HRESULT CreateInstanceLic(
[in] IUnknown *pUnkOuter,
[in] IUnknown *pUnkReserved,
[in] REFIID riid,
[in] BSTR bstrKey,
[out] PVOID *ppvObj
);
Parámetros
[in] pUnkOuter
Puntero a la interfaz IUnknown de control en el desconocido externo si este objeto se crea como parte de un agregado. Si el objeto no forma parte de un agregado, este parámetro debe ser NULL.
[in] pUnkReserved
Este parámetro no se usa y debe ser NULL.
[in] riid
Referencia al identificador de la interfaz que se va a usar para comunicarse con el objeto recién creado.
[in] bstrKey
Clave de licencia en tiempo de ejecución obtenida anteriormente de IClassFactory2::RequestLicKey necesaria para crear un objeto.
[out] ppvObj
Dirección de la variable de puntero que recibe el puntero de interfaz solicitado en riid. Tras la devolución correcta, *ppvObj contiene el puntero de interfaz solicitado. Si se produce un error, la implementación debe establecer *ppvObj en NULL.
Valor devuelto
Este método puede devolver los valores devueltos estándar E_INVALIDARG, E_OUTOFMEMORY y E_UNEXPECTED, así como los siguientes valores.
Código devuelto | Descripción |
---|---|
|
La licencia se creó correctamente. |
|
Este método no se implementa porque los objetos solo se pueden crear en máquinas con licencia completa a través de IClassFactory::CreateInstance. |
|
Un puntero pasado en bstrKey o ppvObj no es válido. Por ejemplo, puede ser NULL. |
|
El objeto se puede crear (y la clave de licencia es válida), excepto que el objeto no admite la interfaz especificada por riid. |
|
El parámetro pUnkOuter no es NULL, pero esta clase de objeto no admite la agregación. |
|
La clave proporcionada en bstrKey no es una clave de licencia válida. |
Comentarios
Notas para los implementadores
Si el generador de clases no proporciona una clave de licencia (es decir, IClassFactory2::RequestLicKey devuelve E_NOTIMPL y el miembro fRuntimeKeyAvail de LICINFO se establece en FALSE en IClassFactory2::GetLicInfo), este método también puede devolver E_NOTIMPL. En tales casos, el generador de clases implementa IClassFactory2 simplemente para especificar si la máquina tiene licencia en absoluto a través del miembro fLicVerified de LICINFO.Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | ocidl.h |