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, AddRefRelease 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 IUnknowninterfejsami , IInspectable lub innymi interfejsami kontrolowanymi przez RuntimeClassTypeprogram . 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.

Członkowie

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

Obszaru 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();