Třída RuntimeClass
Představuje WinRT nebo COM třídy, která dědí zadaná rozhraní a poskytuje zadanou prostředí Windows Runtime, klasickou modelu COM a slabou referenční podporu.
Tato třída poskytuje často používané implementace WinRT a TŘÍDY COM, poskytuje implementaci QueryInterface
, AddRef
Release
atd., spravuje referenční počet modulu a má podporu pro poskytování objektu třídy pro aktivaci objektů.
Syntaxe
template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;
Parametry
classFlags
Volitelný parametr. Kombinace jedné nebo více RuntimeClassType
hodnot výčtu. Makro __WRL_CONFIGURATION_LEGACY__
lze definovat tak, aby změnilo výchozí hodnotu classFlags
pro všechny třídy modulu runtime v projektu. Pokud jsou definované, RuntimeClass
instance nejsou ve výchozím nastavení agilní. Pokud nejsou definované, RuntimeClass
instance jsou ve výchozím nastavení agilní. Chcete-li předejít nejednoznačnosti, vždy zadejte in Microsoft::WRL::FtmBase
TInterfaces
nebo RuntimeClassType::InhibitFtmBase
. Pokud InhibitFtmBase
se FtmBase
oba používají, bude objekt agilní.
TInterfaces
Seznam rozhraní, která objekt implementuje nad IUnknown
rámec , IInspectable
nebo jiné rozhraní řízené RuntimeClassType
. Může také uvést další třídy, které mají být odvozeny, zejména Microsoft::WRL::FtmBase
aby byl objekt agilní a způsobit jeho implementaci IMarshal
.
Členové
RuntimeClassInitialize
Funkce, která inicializuje objekt, pokud MakeAndInitialize
je šablona funkce použita k vytvoření objektu. S_OK
Vrátí, pokud byl objekt úspěšně inicializován, nebo kód chyby modelu COM, pokud inicializace selhala. Kód chyby modelu COM se rozšíří jako návratová MakeAndInitialize
hodnota . Metoda RuntimeClassInitialize
není volána, pokud Make
se šablona funkce používá k vytvoření objektu.
Veřejné konstruktory
Název | Popis |
---|---|
RuntimeClass::RuntimeClass |
Inicializuje aktuální instanci RuntimeClass třídy. |
RuntimeClass::~RuntimeClass |
Deinicializuje aktuální instanci RuntimeClass třídy. |
Veřejné metody
Název | Popis |
---|---|
RuntimeClass::AddRef |
Zvýší počet odkazů pro aktuální RuntimeClass objekt. |
RuntimeClass::DecrementReference |
Sníží počet odkazů pro aktuální RuntimeClass objekt. |
RuntimeClass::GetIids |
Získá pole, které může obsahovat ID rozhraní implementované aktuálním RuntimeClass objektem. |
RuntimeClass::GetRuntimeClassName |
Získá název třídy runtime aktuálního RuntimeClass objektu. |
RuntimeClass::GetTrustLevel |
Získá úroveň důvěryhodnosti aktuálního RuntimeClass objektu. |
RuntimeClass::GetWeakReference |
Získá ukazatel na slabý odkaz objekt pro aktuální RuntimeClass objekt. |
RuntimeClass::InternalAddRef |
Zvýší počet odkazů na aktuální RuntimeClass objekt. |
RuntimeClass::QueryInterface |
Načte ukazatel na zadané ID rozhraní. |
RuntimeClass::Release |
Provede operaci uvolnění modelu COM u aktuálního RuntimeClass objektu. |
Hierarchie dědičnosti
Hierarchie je podrobnosti implementace.
Požadavky
Hlavička: implements.h
Obor názvů: Microsoft::WRL
RuntimeClass::~RuntimeClass
Deinicializuje aktuální instanci RuntimeClass
třídy.
virtual ~RuntimeClass();
RuntimeClass::AddRef
Zvýší počet odkazů pro aktuální RuntimeClass
objekt.
STDMETHOD_(
ULONG,
AddRef
)();
Vrácená hodnota
S_OK
v případě úspěchu; jinak označuje HRESULT
chybu.
RuntimeClass::DecrementReference
Sníží počet odkazů pro aktuální RuntimeClass
objekt.
ULONG DecrementReference();
Vrácená hodnota
S_OK
v případě úspěchu; jinak označuje HRESULT
chybu.
RuntimeClass::GetIids
Získá pole, které může obsahovat ID rozhraní implementované aktuálním RuntimeClass
objektem.
STDMETHOD(
GetIids
)
(_Out_ ULONG *iidCount,
_Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);
Parametry
iidCount
Po dokončení této operace celkový počet prvků v poli iids
.
iids
Po dokončení této operace se ukazatel na pole ID rozhraní.
Vrácená hodnota
V případě úspěchu nabývá hodnoty S_OK
, v opačném případě hodnoty E_OUTOFMEMORY
.
RuntimeClass::GetRuntimeClassName
Získá název třídy runtime aktuálního RuntimeClass
objektu.
STDMETHOD( GetRuntimeClassName )(
_Out_ HSTRING* runtimeName
);
Parametry
runtimeName
Po dokončení této operace název třídy modulu runtime.
Vrácená hodnota
S_OK
v případě úspěchu; jinak označuje HRESULT
chybu.
Poznámky
Chyba assert se vygeneruje, pokud __WRL_STRICT__
není __WRL_FORCE_INSPECTABLE_CLASS_MACRO__
definovaná.
RuntimeClass::GetTrustLevel
Získá úroveň důvěryhodnosti aktuálního RuntimeClass
objektu.
STDMETHOD(GetTrustLevel)(
_Out_ TrustLevel* trustLvl
);
Parametry
trustLvl
Po dokončení této operace je úroveň důvěryhodnosti aktuálního RuntimeClass
objektu.
Vrácená hodnota
Vždy hodnota S_OK
.
Poznámky
Chyba assert se vygeneruje, pokud __WRL_STRICT__
není __WRL_FORCE_INSPECTABLE_CLASS_MACRO__
definovaná.
RuntimeClass::GetWeakReference
Získá ukazatel na slabý odkaz objekt pro aktuální RuntimeClass
objekt.
STDMETHOD(
GetWeakReference
)(_Deref_out_ IWeakReference **weakReference);
Parametry
weakReference
Po dokončení této operace je ukazatel na slabý referenční objekt.
Vrácená hodnota
Vždy hodnota S_OK
.
RuntimeClass::InternalAddRef
Zvýší počet odkazů na aktuální RuntimeClass
objekt.
ULONG InternalAddRef();
Vrácená hodnota
Výsledný počet odkazů.
RuntimeClass::QueryInterface
Načte ukazatel na zadané ID rozhraní.
STDMETHOD(
QueryInterface
)
(REFIID riid,
_Deref_out_ void **ppvObject);
Parametry
riid
ID rozhraní.
ppvObject
Po dokončení této operace ukazatel na rozhraní určené parametrem riid
.
Vrácená hodnota
S_OK
v případě úspěchu; jinak označuje HRESULT
chybu.
RuntimeClass::Release
Provede operaci uvolnění modelu COM u aktuálního RuntimeClass
objektu.
STDMETHOD_(
ULONG,
Release
)();
Vrácená hodnota
S_OK
v případě úspěchu; jinak označuje HRESULT
chybu.
Poznámky
Pokud se počet odkazů změní na nulu RuntimeClass
, objekt se odstraní.
RuntimeClass::RuntimeClass
Inicializuje aktuální instanci RuntimeClass
třídy.
RuntimeClass();