Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот класс предоставляет методы для создания и использования объекта дескриптора.
Синтаксис
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.
Замечания
Назначает объект дескриптору CHandle h , а затем вызывает 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.