Classe RuntimeClass
Rappresenta una classe WinRT o COM che eredita le interfacce specificate e fornisce il supporto di Riferimento debole, COM classico e Windows Runtime specificato.
Questa classe fornisce l'implementazione boilerplate delle classi WinRT e COM, fornendo l'implementazione di QueryInterface
, AddRef
e Release
così via, gestisce il conteggio dei riferimenti del modulo e supporta la fornitura della class factory per gli oggetti attivabili.
Sintassi
template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;
Parametri
classFlags
Parametro facoltativo. Combinazione di uno o più RuntimeClassType
valori di enumerazione. È possibile definire la __WRL_CONFIGURATION_LEGACY__
macro per modificare il valore predefinito di classFlags
per tutte le classi di runtime nel progetto. Se definito, RuntimeClass
le istanze non sono agile per impostazione predefinita. Se non definito, RuntimeClass
le istanze sono agile per impostazione predefinita. Per evitare ambiguità, specificare sempre in Microsoft::WRL::FtmBase
TInterfaces
o RuntimeClassType::InhibitFtmBase
. Se InhibitFtmBase
e FtmBase
vengono usati entrambi, l'oggetto sarà agile.
TInterfaces
L'elenco di interfacce implementate dall'oggetto oltre IUnknown
a IInspectable
o altre interfacce controllate da RuntimeClassType
. Può anche elencare altre classi da derivare, in particolare Microsoft::WRL::FtmBase
per rendere agile l'oggetto e causare l'implementazione IMarshal
di .
Membri
RuntimeClassInitialize
Funzione che inizializza l'oggetto se viene utilizzato il MakeAndInitialize
modello di funzione per costruire l'oggetto. Restituisce S_OK
se l'oggetto è stato inizializzato correttamente o un codice di errore COM se l'inizializzazione non è riuscita. Il codice di errore COM viene propagato come valore restituito di MakeAndInitialize
. Il RuntimeClassInitialize
metodo non viene chiamato se il Make
modello di funzione viene usato per costruire l'oggetto.
Costruttori pubblici
Nome | Descrizione |
---|---|
RuntimeClass::RuntimeClass |
Inizializza l'istanza corrente della RuntimeClass classe . |
RuntimeClass::~RuntimeClass |
Deinitialize l'istanza corrente della RuntimeClass classe . |
Metodi pubblici
Nome | Descrizione |
---|---|
RuntimeClass::AddRef |
Incrementa il conteggio dei riferimenti per l'oggetto corrente RuntimeClass . |
RuntimeClass::DecrementReference |
Decrementa il conteggio dei riferimenti per l'oggetto corrente RuntimeClass . |
RuntimeClass::GetIids |
Ottiene una matrice che può contenere gli ID di interfaccia implementati dall'oggetto corrente RuntimeClass . |
RuntimeClass::GetRuntimeClassName |
Ottiene il nome della classe di runtime dell'oggetto corrente RuntimeClass . |
RuntimeClass::GetTrustLevel |
Ottiene il livello di attendibilità dell'oggetto corrente RuntimeClass . |
RuntimeClass::GetWeakReference |
Ottiene un puntatore all'oggetto riferimento debole per l'oggetto corrente RuntimeClass . |
RuntimeClass::InternalAddRef |
Incrementa il conteggio dei riferimenti all'oggetto corrente RuntimeClass . |
RuntimeClass::QueryInterface |
Recupera un puntatore all'ID di interfaccia specificato. |
RuntimeClass::Release |
Esegue un'operazione COM Release sull'oggetto corrente RuntimeClass . |
Gerarchia di ereditarietà
La gerarchia è un dettaglio di implementazione.
Requisiti
Intestazione: implements.h
Spazio dei nomi: Microsoft::WRL
RuntimeClass::~RuntimeClass
Deinitialize l'istanza corrente della RuntimeClass
classe .
virtual ~RuntimeClass();
RuntimeClass::AddRef
Incrementa il conteggio dei riferimenti per l'oggetto corrente RuntimeClass
.
STDMETHOD_(
ULONG,
AddRef
)();
Valore restituito
S_OK
se ha esito positivo; in caso contrario, che HRESULT
indica l'errore.
RuntimeClass::DecrementReference
Decrementa il conteggio dei riferimenti per l'oggetto corrente RuntimeClass
.
ULONG DecrementReference();
Valore restituito
S_OK
se ha esito positivo; in caso contrario, che HRESULT
indica l'errore.
RuntimeClass::GetIids
Ottiene una matrice che può contenere gli ID di interfaccia implementati dall'oggetto corrente RuntimeClass
.
STDMETHOD(
GetIids
)
(_Out_ ULONG *iidCount,
_Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);
Parametri
iidCount
Al termine di questa operazione, il numero totale di elementi nella matrice iids
.
iids
Al termine di questa operazione, un puntatore a una matrice di ID di interfaccia.
Valore restituito
S_OK
se ha esito positivo; in caso contrario, E_OUTOFMEMORY
.
RuntimeClass::GetRuntimeClassName
Ottiene il nome della classe di runtime dell'oggetto corrente RuntimeClass
.
STDMETHOD( GetRuntimeClassName )(
_Out_ HSTRING* runtimeName
);
Parametri
runtimeName
Al termine dell'operazione, il nome della classe di runtime.
Valore restituito
S_OK
se ha esito positivo; in caso contrario, che HRESULT
indica l'errore.
Osservazioni:
Se o __WRL_FORCE_INSPECTABLE_CLASS_MACRO__
non è definito, viene generato __WRL_STRICT__
un errore di asserzione.
RuntimeClass::GetTrustLevel
Ottiene il livello di attendibilità dell'oggetto corrente RuntimeClass
.
STDMETHOD(GetTrustLevel)(
_Out_ TrustLevel* trustLvl
);
Parametri
trustLvl
Al termine dell'operazione, il livello di attendibilità dell'oggetto corrente RuntimeClass
.
Valore restituito
Sempre S_OK
.
Osservazioni:
Se o __WRL_FORCE_INSPECTABLE_CLASS_MACRO__
non è definito, viene generato __WRL_STRICT__
un errore di asserzione.
RuntimeClass::GetWeakReference
Ottiene un puntatore all'oggetto riferimento debole per l'oggetto corrente RuntimeClass
.
STDMETHOD(
GetWeakReference
)(_Deref_out_ IWeakReference **weakReference);
Parametri
weakReference
Al termine di questa operazione, un puntatore a un oggetto riferimento debole.
Valore restituito
Sempre S_OK
.
RuntimeClass::InternalAddRef
Incrementa il conteggio dei riferimenti all'oggetto corrente RuntimeClass
.
ULONG InternalAddRef();
Valore restituito
Conteggio dei riferimenti risultante.
RuntimeClass::QueryInterface
Recupera un puntatore all'ID di interfaccia specificato.
STDMETHOD(
QueryInterface
)
(REFIID riid,
_Deref_out_ void **ppvObject);
Parametri
riid
ID di interfaccia.
ppvObject
Al termine di questa operazione, un puntatore all'interfaccia specificata dal riid
parametro .
Valore restituito
S_OK
se ha esito positivo; in caso contrario, che HRESULT
indica l'errore.
RuntimeClass::Release
Esegue un'operazione COM Release sull'oggetto corrente RuntimeClass
.
STDMETHOD_(
ULONG,
Release
)();
Valore restituito
S_OK
se ha esito positivo; in caso contrario, che HRESULT
indica l'errore.
Osservazioni:
Se il conteggio dei riferimenti diventa zero, l'oggetto RuntimeClass
viene eliminato.
RuntimeClass::RuntimeClass
Inizializza l'istanza corrente della RuntimeClass
classe .
RuntimeClass();