Klasa RuntimeClass
Reprezentuje klasę WinRT lub COM, która dziedziczy określone interfejsy i zapewnia określoną środowisko wykonawcze systemu Windows, klasyczną obsługę modelu COM i słabych odwołań.
Ta klasa zapewnia implementację standardowych klas WinRT i COM, zapewniając implementację QueryInterface
, AddRef
Release
itp., zarządza liczbą odwołań modułu i obsługuje dostarczanie fabryki klas do aktywowalnych obiektów.
Składnia
template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;
Parametry
classFlags
Opcjonalny parametr. Kombinacja co najmniej jednej RuntimeClassType
wartości wyliczenia. Makro __WRL_CONFIGURATION_LEGACY__
można zdefiniować, aby zmienić wartość classFlags
domyślną dla wszystkich klas środowiska uruchomieniowego w projekcie. Jeśli jest zdefiniowana, RuntimeClass
wystąpienia są domyślnie niezwinne. Gdy nie zdefiniowano, RuntimeClass
wystąpienia są domyślnie zwinne. Aby uniknąć niejednoznaczności, należy zawsze określać Microsoft::WRL::FtmBase
wartość in TInterfaces
lub RuntimeClassType::InhibitFtmBase
. Jeśli InhibitFtmBase
i FtmBase
są używane, obiekt będzie zwinny.
TInterfaces
Lista interfejsów, które obiekt implementuje poza IUnknown
interfejsami , IInspectable
lub innymi interfejsami kontrolowanymi przez RuntimeClassType
program . Może również zawierać listę innych klas, z których mają pochodzić, zwłaszcza Microsoft::WRL::FtmBase
w celu zwinności obiektu i spowodować jego zaimplementowanie IMarshal
.
Elementy członkowskie
RuntimeClassInitialize
Funkcja, która inicjuje obiekt, jeśli MakeAndInitialize
szablon funkcji jest używany do konstruowania obiektu. Zwraca wartość S_OK
, jeśli obiekt został pomyślnie zainicjowany lub kod błędu COM, jeśli inicjowanie nie powiodło się. Kod błędu COM jest propagowany jako zwracana wartość MakeAndInitialize
. Metoda RuntimeClassInitialize
nie jest wywoływana, jeśli Make
szablon funkcji jest używany do konstruowania obiektu.
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
RuntimeClass::RuntimeClass |
Inicjuje bieżące wystąpienie RuntimeClass klasy. |
RuntimeClass::~RuntimeClass |
Deinitializuje bieżące wystąpienie RuntimeClass klasy. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
RuntimeClass::AddRef |
Zwiększa liczbę odwołań dla bieżącego RuntimeClass obiektu. |
RuntimeClass::DecrementReference |
Dekrementuje liczbę odwołań dla bieżącego RuntimeClass obiektu. |
RuntimeClass::GetIids |
Pobiera tablicę, która może zawierać identyfikatory interfejsu zaimplementowane przez bieżący RuntimeClass obiekt. |
RuntimeClass::GetRuntimeClassName |
Pobiera nazwę klasy środowiska uruchomieniowego bieżącego RuntimeClass obiektu. |
RuntimeClass::GetTrustLevel |
Pobiera poziom zaufania bieżącego RuntimeClass obiektu. |
RuntimeClass::GetWeakReference |
Pobiera wskaźnik do słabego obiektu odniesienia dla bieżącego RuntimeClass obiektu. |
RuntimeClass::InternalAddRef |
Zwiększa liczbę odwołań do bieżącego RuntimeClass obiektu. |
RuntimeClass::QueryInterface |
Pobiera wskaźnik do określonego identyfikatora interfejsu. |
RuntimeClass::Release |
Wykonuje operację wydania COM na bieżącym RuntimeClass obiekcie. |
Hierarchia dziedziczenia
Hierarchia jest szczegółem implementacji.
Wymagania
Nagłówek: implements.h
Przestrzeń nazw: Microsoft::WRL
RuntimeClass::~RuntimeClass
Deinitializuje bieżące wystąpienie RuntimeClass
klasy.
virtual ~RuntimeClass();
RuntimeClass::AddRef
Zwiększa liczbę odwołań dla bieżącego RuntimeClass
obiektu.
STDMETHOD_(
ULONG,
AddRef
)();
Wartość zwracana
S_OK
w przypadku powodzenia; w przeciwnym razie element HRESULT
wskazujący błąd.
RuntimeClass::DecrementReference
Dekrementuje liczbę odwołań dla bieżącego RuntimeClass
obiektu.
ULONG DecrementReference();
Wartość zwracana
S_OK
w przypadku powodzenia; w przeciwnym razie element HRESULT
wskazujący błąd.
RuntimeClass::GetIids
Pobiera tablicę, która może zawierać identyfikatory interfejsu zaimplementowane przez bieżący RuntimeClass
obiekt.
STDMETHOD(
GetIids
)
(_Out_ ULONG *iidCount,
_Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);
Parametry
iidCount
Po zakończeniu tej operacji całkowita liczba elementów w tablicy iids
.
iids
Po zakończeniu tej operacji wskaźnik do tablicy identyfikatorów interfejsu.
Wartość zwracana
Wartość S_OK
w przypadku powodzenia; w przeciwnym razie wartość E_OUTOFMEMORY
.
RuntimeClass::GetRuntimeClassName
Pobiera nazwę klasy środowiska uruchomieniowego bieżącego RuntimeClass
obiektu.
STDMETHOD( GetRuntimeClassName )(
_Out_ HSTRING* runtimeName
);
Parametry
runtimeName
Po zakończeniu tej operacji nazwa klasy środowiska uruchomieniowego.
Wartość zwracana
S_OK
w przypadku powodzenia; w przeciwnym razie element HRESULT
wskazujący błąd.
Uwagi
Błąd potwierdzenia jest emitowany, jeśli __WRL_STRICT__
nie __WRL_FORCE_INSPECTABLE_CLASS_MACRO__
jest zdefiniowany.
RuntimeClass::GetTrustLevel
Pobiera poziom zaufania bieżącego RuntimeClass
obiektu.
STDMETHOD(GetTrustLevel)(
_Out_ TrustLevel* trustLvl
);
Parametry
trustLvl
Po zakończeniu tej operacji poziom zaufania bieżącego RuntimeClass
obiektu.
Wartość zwracana
Zawsze wartość S_OK
.
Uwagi
Błąd potwierdzenia jest emitowany, jeśli __WRL_STRICT__
nie __WRL_FORCE_INSPECTABLE_CLASS_MACRO__
jest zdefiniowany.
RuntimeClass::GetWeakReference
Pobiera wskaźnik do słabego obiektu odniesienia dla bieżącego RuntimeClass
obiektu.
STDMETHOD(
GetWeakReference
)(_Deref_out_ IWeakReference **weakReference);
Parametry
weakReference
Po zakończeniu tej operacji wskaźnik do słabego obiektu odwołania.
Wartość zwracana
Zawsze wartość S_OK
.
RuntimeClass::InternalAddRef
Zwiększa liczbę odwołań do bieżącego RuntimeClass
obiektu.
ULONG InternalAddRef();
Wartość zwracana
Wynikowa liczba odwołań.
RuntimeClass::QueryInterface
Pobiera wskaźnik do określonego identyfikatora interfejsu.
STDMETHOD(
QueryInterface
)
(REFIID riid,
_Deref_out_ void **ppvObject);
Parametry
riid
Identyfikator interfejsu.
ppvObject
Po zakończeniu tej operacji wskaźnik do interfejsu określonego riid
przez parametr .
Wartość zwracana
S_OK
w przypadku powodzenia; w przeciwnym razie element HRESULT
wskazujący błąd.
RuntimeClass::Release
Wykonuje operację wydania COM na bieżącym RuntimeClass
obiekcie.
STDMETHOD_(
ULONG,
Release
)();
Wartość zwracana
S_OK
w przypadku powodzenia; w przeciwnym razie element HRESULT
wskazujący błąd.
Uwagi
Jeśli liczba odwołań zmieni się na zero, RuntimeClass
obiekt zostanie usunięty.
RuntimeClass::RuntimeClass
Inicjuje bieżące wystąpienie RuntimeClass
klasy.
RuntimeClass();