Поделиться через


Класс CHandle

Этот класс предоставляет методы для создания и использования объекта дескриптора.

Синтаксис

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.

См. также

Общие сведения о классе