Clase RuntimeClass

Representa una clase WinRT o COM que hereda el las interfaces proporcionadas y ofrece la compatibilidad especificada con Windows Runtime, COM clásico y referencia débil.

Esta clase proporciona la implementación reutilizable de clases WINRT y COM, proporcionando la implementación de QueryInterface, AddRef, Release, etc., administra el recuento de referencias del módulo y tiene compatibilidad para proporcionar el generador de clases para objetos activables.

Sintaxis

template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;

Parámetros

classFlags
Parámetro opcional. Combinación de uno o varios RuntimeClassType valores de enumeración. La __WRL_CONFIGURATION_LEGACY__ macro se puede definir para cambiar el valor predeterminado de para todas las clases en tiempo de classFlags ejecución del proyecto. Si se define, RuntimeClass las instancias no son ágiles de forma predeterminada. Cuando no se define, RuntimeClass las instancias son ágiles de forma predeterminada. Para evitar ambigüedad, especifique siempre en Microsoft::WRL::FtmBaseTInterfaces o RuntimeClassType::InhibitFtmBase. Si InhibitFtmBase se usan y FtmBase , el objeto será ágil.

TInterfaces
La lista de interfaces que el objeto implementa más allá IUnknownde , IInspectable u otras interfaces controladas por RuntimeClassType. También puede enumerar otras clases de las que se van a derivar, especialmente Microsoft::WRL::FtmBase para que el objeto sea ágil y hacer que implemente IMarshal.

Miembros

RuntimeClassInitialize
Función que inicializa el objeto si se usa la MakeAndInitialize plantilla de función para construir el objeto. Devuelve S_OK si el objeto se inicializó correctamente o un código de error COM si se produjo un error en la inicialización. El código de error COM se propaga como el valor devuelto de MakeAndInitialize. No RuntimeClassInitialize se llama al método si se usa la Make plantilla de función para construir el objeto .

Constructores públicos

Nombre Descripción
RuntimeClass::RuntimeClass Inicializa la instancia actual de la clase RuntimeClass.
RuntimeClass::~RuntimeClass Desinicializa la instancia actual de la clase RuntimeClass.

Métodos públicos

Nombre Descripción
RuntimeClass::AddRef Incrementa el recuento de referencias del objeto RuntimeClass actual.
RuntimeClass::DecrementReference Disminuye el recuento de referencias del objeto RuntimeClass actual.
RuntimeClass::GetIids Obtiene una matriz que puede contener los identificadores de interfaz implementados por el objeto RuntimeClass actual.
RuntimeClass::GetRuntimeClassName Obtiene el nombre de clase del entorno de ejecución del objeto RuntimeClass actual.
RuntimeClass::GetTrustLevel Obtiene el nivel de confianza del objeto RuntimeClass actual.
RuntimeClass::GetWeakReference Obtiene un puntero al objeto de referencia débil del objeto RuntimeClass actual.
RuntimeClass::InternalAddRef Incrementa el recuento de referencias al objeto RuntimeClass actual.
RuntimeClass::QueryInterface Recupera un puntero al identificador de interfaz especificado.
RuntimeClass::Release Realiza una operación de versión COM en el objeto RuntimeClass actual.

Jerarquía de herencia

La jerarquía es un detalle de implementación.

Requisitos

Encabezado: implements.h

Espacio de nombres:Microsoft::WRL

RuntimeClass::~RuntimeClass

Desinicializa la instancia actual de la clase RuntimeClass.

virtual ~RuntimeClass();

RuntimeClass::AddRef

Incrementa el recuento de referencias del objeto RuntimeClass actual.

STDMETHOD_(
   ULONG,
   AddRef
)();

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, devuelve HRESULT que indica el error.

RuntimeClass::DecrementReference

Disminuye el recuento de referencias del objeto RuntimeClass actual.

ULONG DecrementReference();

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, devuelve HRESULT que indica el error.

RuntimeClass::GetIids

Obtiene una matriz que puede contener los identificadores de interfaz implementados por el objeto RuntimeClass actual.

STDMETHOD(
   GetIids
)
   (_Out_ ULONG *iidCount,
   _Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);

Parámetros

iidCount
Cuando se completa esta operación, el número total de elementos de la matriz iids.

iids
Cuando se completa esta operación, un puntero a una matriz de identificadores de interfaz.

Valor devuelto

S_OK, si es correcto; en caso contrario, E_OUTOFMEMORY.

RuntimeClass::GetRuntimeClassName

Obtiene el nombre de clase del entorno de ejecución del objeto RuntimeClass actual.

STDMETHOD( GetRuntimeClassName )(
    _Out_ HSTRING* runtimeName
);

Parámetros

runtimeName
Cuando se completa esta operación, es el nombre de clase del runtime.

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, devuelve HRESULT que indica el error.

Comentarios

Se genera un error de aserción si no se define __WRL_STRICT__ o __WRL_FORCE_INSPECTABLE_CLASS_MACRO__.

RuntimeClass::GetTrustLevel

Obtiene el nivel de confianza del objeto RuntimeClass actual.

STDMETHOD(GetTrustLevel)(
    _Out_ TrustLevel* trustLvl
);

Parámetros

trustLvl
Cuando se completa esta operación, el nivel de confianza del objeto RuntimeClass actual.

Valor devuelto

Siempre S_OK.

Comentarios

Se genera un error de aserción si no se define __WRL_STRICT__ o __WRL_FORCE_INSPECTABLE_CLASS_MACRO__.

RuntimeClass::GetWeakReference

Obtiene un puntero al objeto de referencia débil del objeto RuntimeClass actual.

STDMETHOD(
   GetWeakReference
)(_Deref_out_ IWeakReference **weakReference);

Parámetros

weakReference
Cuando se completa esta operación, devuelve un puntero a un objeto de referencia débil.

Valor devuelto

Siempre S_OK.

RuntimeClass::InternalAddRef

Incrementa el recuento de referencias al objeto RuntimeClass actual.

ULONG InternalAddRef();

Valor devuelto

Recuento de referencias resultante.

RuntimeClass::QueryInterface

Recupera un puntero al identificador de interfaz especificado.

STDMETHOD(
   QueryInterface
)
   (REFIID riid,
   _Deref_out_ void **ppvObject);

Parámetros

riid
Id. de interfaz.

ppvObject
Cuando se completa esta operación, un puntero a la interfaz especificada por el riid parámetro .

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, devuelve HRESULT que indica el error.

RuntimeClass::Release

Realiza una operación de versión COM en el objeto RuntimeClass actual.

STDMETHOD_(
   ULONG,
   Release
)();

Valor devuelto

S_OK si se realiza correctamente; de lo contrario, devuelve HRESULT que indica el error.

Comentarios

Si el recuento de referencias se convierte en cero, se elimina el objeto RuntimeClass.

RuntimeClass::RuntimeClass

Inicializa la instancia actual de la clase RuntimeClass.

RuntimeClass();