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::FtmBase
TInterfaces
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á IUnknown
de , 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();