Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Этот класс предоставляет методы для создания и использования объекта дескриптора.
Синтаксис
class CHandle
Участники
Открытые конструкторы
| Имя | Описание |
|---|---|
| CHandle::CHandle | Конструктор. |
| CHandle::~CHandle | Деструктор |
Открытые методы
| Имя | Описание |
|---|---|
| CHandle::Attach | Вызовите этот метод, чтобы подключить CHandle объект к существующему дескриптору. |
| CHandle::Close | Вызовите этот метод, чтобы закрыть CHandle объект. |
| CHandle::D etach | Вызовите этот метод, чтобы отсоединить дескриптор CHandle от объекта. |
Открытые операторы
| Имя | Описание |
|---|---|
| CHandle::operator HANDLE | Возвращает значение хранимого дескриптора. |
| CHandle::operator = | Оператор присвоения. |
Открытые члены данных
| Имя | Описание |
|---|---|
| CHandle::m_h | Переменная-член, в которой хранится дескриптор. |
Замечания
CHandle Объект можно использовать всякий раз, когда требуется дескриптор: основное различие заключается в том, что CHandle объект будет автоматически удален.
Примечание.
Некоторые функции API будут использовать NULL в качестве пустого или недопустимого дескриптора, а другие используют INVALID_HANDLE_VALUE.
CHandle использует значение NULL и будет обрабатывать INVALID_HANDLE_VALUE как реальный дескриптор. При вызове API, который может возвращать INVALID_HANDLE_VALUE, необходимо проверить это значение перед вызовом CHandle::Attach или передать его конструктору CHandle и вместо этого передать значение NULL.
Требования
Заголовок: atlbase.h
CHandle::Attach
Вызовите этот метод, чтобы подключить CHandle объект к существующему дескриптору.
void Attach(HANDLE h) throw();
Параметры
ч
CHandle будет иметь право владения дескриптором h.
Замечания
Назначает объект дескриптору CHandleh , а затем вызывает h.Detach(). При сборках отладки будет возникать функция ATLASSERT, если h имеет значение NULL. Никаких других проверок на допустимость дескриптора не выполняется.
CHandle::CHandle
Конструктор.
CHandle() throw();
CHandle(CHandle& h) throw();
explicit CHandle(HANDLE h) throw();
Параметры
ч
Существующий дескриптор или CHandle.
Замечания
Создает новый CHandle объект, при необходимости используя существующий дескриптор или CHandle объект.
CHandle::~CHandle
Деструктор
~CHandle() throw();
Замечания
CHandle Освобождает объект путем вызова CHandle::Close.
CHandle::Close
Вызовите этот метод, чтобы закрыть CHandle объект.
void Close() throw();
Замечания
Закрывает открытый дескриптор объекта. Если дескриптор имеет значение NULL, то Close если он уже вызван, в отладочных сборках будет возникать функция ATLASSERT.
CHandle::D etach
Вызовите этот метод, чтобы отсоединить дескриптор CHandle от объекта.
HANDLE Detach() throw();
Возвращаемое значение
Возвращает отсоединяемый дескриптор.
Замечания
Освобождает владение дескриптором.
CHandle::m_h
Переменная-член, в которой хранится дескриптор.
HANDLE m_h;
CHandle::operator =
Оператор присваивания .
CHandle& operator=(CHandle& h) throw();
Параметры
ч
CHandle будет иметь право владения дескриптором h.
Возвращаемое значение
Возвращает ссылку на новый CHandle объект.
Замечания
CHandle Если объект в настоящее время содержит дескриптор, он будет закрыт. Передаваемый CHandle объект будет иметь ссылку на дескриптор null. Это гарантирует, что два CHandle объекта никогда не будут содержать один и тот же активный дескриптор.
CHandle::operator HANDLE
Возвращает значение хранимого дескриптора.
operator HANDLE() const throw();
Замечания
Возвращает значение, хранящееся в CHandle::m_h.