Класс RuntimeClass
Представляет класс WinRT или COM, наследующий указанные интерфейсы и предоставляющий указанные среда выполнения Windows, классическую поддержку COM и слабую поддержку ссылок.
Этот класс предоставляет стандартную реализацию классов WinRT и COM, обеспечивая реализацию QueryInterface
, AddRef
Release
и т. д., управляет счетчиком ссылок модуля и поддерживает предоставление фабрики классов для активируемых объектов.
Синтаксис
template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;
Параметры
classFlags
Необязательный параметр. Сочетание одного или нескольких RuntimeClassType
значений перечисления. Макрос __WRL_CONFIGURATION_LEGACY__
можно определить, чтобы изменить значение classFlags
по умолчанию для всех классов среды выполнения в проекте. Если определено, RuntimeClass
экземпляры по умолчанию не являются гибкими. Если это не определено, RuntimeClass
экземпляры по умолчанию являются гибкими. Чтобы избежать неоднозначности, всегда укажите вход Microsoft::WRL::FtmBase
TInterfaces
или RuntimeClassType::InhibitFtmBase
. Если InhibitFtmBase
и FtmBase
оба используются, объект будет гибким.
TInterfaces
Список интерфейсов, которые объект реализует за пределами IUnknown
или другие интерфейсы, IInspectable
RuntimeClassType
управляемые. Он также может выводить другие классы, производные от, в частности 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();