Класс ComPtr
Создает тип умный указатель — тип интеллектуального указателя, который представляет интерфейс, определяемый параметром шаблона. ComPtr автоматически поддерживает счетчик ссылок для указателя базового интерфейса и освобождает интерфейс, когда счетчик ссылок становится равен нулю.
template <
typename T
>
class ComPtr;
template<
class U
>
friend class ComPtr;
Параметры
T
Интерфейс, который представляет ComPtr.U
Класс, которому текущий ComPtr является другом. (Шаблон, который использует этот параметр, является защищенным).
Примечания
ComPtr<> объявляет тип, который представляет основной указатель интерфейса. Используйте ComPtr<> для объявления переменной, а затем используйте оператор доступа к членам класса в виде стрелки (->) для доступа к функции-члену интерфейса.
Дополнительные сведения об интеллектуальных указателях см. в подразделе «Интеллектуальные указатели модели COM» раздела COM Coding Practices в библиотеке MSDN.
Члены
Общедоступные Typedefs
Имя |
Описание |
---|---|
InterfaceType |
Синоним для типа, указанного в параметре шаблона T. |
Открытые конструкторы
Имя |
Описание |
---|---|
Инициализирует новый экземпляр класса ComPtr. Перегрузки предоставляют конструкторы по умолчанию, копирования, перемещения и преобразования. |
|
Деинициализирует экземпляр ComPtr. |
Открытые методы
Имя |
Описание |
---|---|
Возвращает объект ComPtr, представляющий интерфейс, определенный указанным параметром шаблона. |
|
Возвращает объект ComPtr, представляющий интерфейс, определенный указанным идентификатором интерфейса. |
|
Извлекает слабую ссылку на текущий объект. |
|
Связывает этот ComPtr с типом интерфейса, указанным текущим параметром типа шаблона. |
|
Копирует текущий или указанный интерфейс, связанный с этим ComPtr, в заданный выходной указатель. |
|
Отделяет этот ComPtr от интерфейса, который он представляет. |
|
Извлекает указатель на интерфейс, который связан с этим ComPtr. |
|
Извлекает адрес элемента данных ptr_, который содержит указатель на интерфейс, представленный данным ComPtr. |
|
Освобождает интерфейс, связанный с данным ComPtr, а затем извлекает адрес данных-члена ptr_, который содержит указатель на интерфейс, который был освобожден. |
|
Меняет местами интерфейс, управляемый текущим ComPtr с интерфейсом, управляемым указанным ComPtr. |
Защищенные методы
Имя |
Описание |
---|---|
Увеличивает счетчик ссылок интерфейса, связанного с данным классом ComPtr. |
|
Выполняет операцию освобождения модели COM на интерфейсе, связанном с этим ComPtr. |
Открытые операторы
Имя |
Описание |
---|---|
Указывает, управляет ли ComPtr временем существования объекта интерфейса. |
|
Извлекает адрес текущего ComPtr. |
|
Присваивает значение текущему ComPtr. |
|
Извлекает указатель на тип, указанный в текущем параметре шаблона. |
|
Определяет равенство двух объектов ComPtr. |
|
Определяет неравенство двух объектов СomPtr. |
Защищенные члены данных
Имя |
Описание |
---|---|
Содержит указатель на интерфейс, который связан и управляется текущим ComPtr. |
Иерархия наследования
ComPtr
Требования
Заголовок: client.h
Пространство имен: Microsoft::WRL