Класс RuntimeClass

Представляет класс WinRT или COM, наследующий указанные интерфейсы и предоставляющий указанные среда выполнения Windows, классическую поддержку COM и слабую поддержку ссылок.

Этот класс предоставляет стандартную реализацию классов WinRT и COM, обеспечивая реализацию QueryInterface, AddRefRelease и т. д., управляет счетчиком ссылок модуля и поддерживает предоставление фабрики классов для активируемых объектов.

Синтаксис

template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;

Параметры

classFlags
Необязательный параметр. Сочетание одного или нескольких RuntimeClassType значений перечисления. Макрос __WRL_CONFIGURATION_LEGACY__ можно определить, чтобы изменить значение classFlags по умолчанию для всех классов среды выполнения в проекте. Если определено, RuntimeClass экземпляры по умолчанию не являются гибкими. Если это не определено, RuntimeClass экземпляры по умолчанию являются гибкими. Чтобы избежать неоднозначности, всегда укажите вход Microsoft::WRL::FtmBaseTInterfaces или RuntimeClassType::InhibitFtmBase. Если InhibitFtmBase и FtmBase оба используются, объект будет гибким.

TInterfaces
Список интерфейсов, которые объект реализует за пределами IUnknownили другие интерфейсы, IInspectableRuntimeClassTypeуправляемые. Он также может выводить другие классы, производные от, в частности Microsoft::WRL::FtmBase , чтобы сделать объект гибким и привести его к реализации IMarshal.

Участники

RuntimeClassInitialize
Функция, которая инициализирует объект, если MakeAndInitialize шаблон функции используется для создания объекта. Возвращается S_OK , если объект был успешно инициализирован или код ошибки COM, если инициализация завершилась ошибкой. Код ошибки COM распространяется как возвращаемое значение MakeAndInitialize. Метод RuntimeClassInitialize не вызывается, если Make шаблон функции используется для создания объекта.

Открытые конструкторы

Имя Описание
RuntimeClass::RuntimeClass Инициализирует текущий RuntimeClass экземпляр класса.
RuntimeClass::~RuntimeClass Деинициализирует текущий RuntimeClass экземпляр класса.

Открытые методы

Имя Описание
RuntimeClass::AddRef Увеличивает число ссылок для текущего RuntimeClass объекта.
RuntimeClass::DecrementReference Уменьшает число ссылок для текущего RuntimeClass объекта.
RuntimeClass::GetIids Возвращает массив, который может содержать идентификаторы интерфейса, реализованные текущим RuntimeClass объектом.
RuntimeClass::GetRuntimeClassName Возвращает имя класса среды выполнения текущего RuntimeClass объекта.
RuntimeClass::GetTrustLevel Возвращает уровень доверия текущего RuntimeClass объекта.
RuntimeClass::GetWeakReference Возвращает указатель на слабый ссылочный объект для текущего RuntimeClass объекта.
RuntimeClass::InternalAddRef Увеличивает число ссылок к текущему RuntimeClass объекту.
RuntimeClass::QueryInterface Извлекает указатель на указанный идентификатор интерфейса.
RuntimeClass::Release Выполняет операцию выпуска COM для текущего RuntimeClass объекта.

Иерархия наследования

Иерархия — это сведения о реализации.

Требования

Заголовок: implements.h

Пространство именMicrosoft::WRL:

RuntimeClass::~RuntimeClass

Деинициализирует текущий RuntimeClass экземпляр класса.

virtual ~RuntimeClass();

RuntimeClass::AddRef

Увеличивает число ссылок для текущего RuntimeClass объекта.

STDMETHOD_(
   ULONG,
   AddRef
)();

Возвращаемое значение

S_OK в случае успешного выполнения; в противном случае — значение HRESULT , указывающее на ошибку.

RuntimeClass::DecrementReference

Уменьшает число ссылок для текущего RuntimeClass объекта.

ULONG DecrementReference();

Возвращаемое значение

S_OK в случае успешного выполнения; в противном случае — значение HRESULT , указывающее на ошибку.

RuntimeClass::GetIids

Возвращает массив, который может содержать идентификаторы интерфейса, реализованные текущим RuntimeClass объектом.

STDMETHOD(
   GetIids
)
   (_Out_ ULONG *iidCount,
   _Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);

Параметры

iidCount
По завершении этой операции общее количество элементов в массиве iids.

iids
После завершения операции представляет указатель на массив идентификаторов интерфейса.

Возвращаемое значение

Значение S_OK при успешном завершении. В противном случае — значение E_OUTOFMEMORY.

RuntimeClass::GetRuntimeClassName

Возвращает имя класса среды выполнения текущего RuntimeClass объекта.

STDMETHOD( GetRuntimeClassName )(
    _Out_ HSTRING* runtimeName
);

Параметры

runtimeName
После завершения операции представляет имя класса среды выполнения.

Возвращаемое значение

S_OK в случае успешного выполнения; в противном случае — значение HRESULT , указывающее на ошибку.

Замечания

Ошибка утверждения возникает, если __WRL_STRICT__ или __WRL_FORCE_INSPECTABLE_CLASS_MACRO__ не определена.

RuntimeClass::GetTrustLevel

Возвращает уровень доверия текущего RuntimeClass объекта.

STDMETHOD(GetTrustLevel)(
    _Out_ TrustLevel* trustLvl
);

Параметры

trustLvl
По завершении этой операции уровень доверия текущего RuntimeClass объекта.

Возвращаемое значение

ВсегдаS_OK.

Замечания

Ошибка утверждения возникает, если __WRL_STRICT__ или __WRL_FORCE_INSPECTABLE_CLASS_MACRO__ не определена.

RuntimeClass::GetWeakReference

Возвращает указатель на слабый ссылочный объект для текущего RuntimeClass объекта.

STDMETHOD(
   GetWeakReference
)(_Deref_out_ IWeakReference **weakReference);

Параметры

weakReference
После завершения операции представляет указатель на объект слабой ссылки.

Возвращаемое значение

ВсегдаS_OK.

RuntimeClass::InternalAddRef

Увеличивает число ссылок к текущему RuntimeClass объекту.

ULONG InternalAddRef();

Возвращаемое значение

Результирующий счетчик ссылок.

RuntimeClass::QueryInterface

Извлекает указатель на указанный идентификатор интерфейса.

STDMETHOD(
   QueryInterface
)
   (REFIID riid,
   _Deref_out_ void **ppvObject);

Параметры

riid
Идентификатор интерфейса.

ppvObject
После завершения этой операции указатель на интерфейс, указанный параметром riid .

Возвращаемое значение

S_OK в случае успешного выполнения; в противном случае — значение HRESULT , указывающее на ошибку.

RuntimeClass::Release

Выполняет операцию выпуска COM для текущего RuntimeClass объекта.

STDMETHOD_(
   ULONG,
   Release
)();

Возвращаемое значение

S_OK в случае успешного выполнения; в противном случае — значение HRESULT , указывающее на ошибку.

Замечания

Если число ссылок становится нулевым, RuntimeClass объект удаляется.

RuntimeClass::RuntimeClass

Инициализирует текущий RuntimeClass экземпляр класса.

RuntimeClass();