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
S_OK
La licencia se creó correctamente.
E_NOTIMPL
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.
E_POINTER
Un puntero pasado en bstrKey o ppvObj no es válido. Por ejemplo, puede ser NULL.
E_NOINTERFACE
El objeto se puede crear (y la clave de licencia es válida), excepto que el objeto no admite la interfaz especificada por riid.
CLASS_E_NOAGGREGATION
El parámetro pUnkOuter no es NULL, pero esta clase de objeto no admite la agregación.
CLASS_E_NOTLICENSED
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

Consulte también

IClassFactory2

LICINFO