Compartilhar via


Classe CHandle

Essa classe fornece métodos para criar e usar um objeto de identificador.

Sintaxe

class CHandle

Membros

Construtores públicos

Nome Descrição
CHandle::CHandle O construtor .
CHandle::~CHandle O destruidor.

Métodos públicos

Nome Descrição
CHandle::Attach Chame esse método para anexar o objeto CHandle a um identificador existente.
CHandle::Close Chame esse método para fechar um objeto CHandle.
CHandle::Detach Chame esse método para desanexar um identificador de um objeto CHandle.

Operadores públicos

Nome Descrição
CHandle::operator HANDLE Retorna o valor do identificador armazenado.
CHandle::operator = Operador de atribuição.

Membros de Dados Públicos

Nome Descrição
CHandle::m_h A variável de membro que armazena o identificador.

Comentários

Um objeto CHandle pode ser usado sempre que um identificador é obrigatório: a principal diferença é que o objeto CHandle será excluído automaticamente.

Observação

Algumas funções de API usarão NULL como um identificador vazio ou inválido, enquanto outras usam o INVALID_HANDLE_VALUE. CHandle usa apenas NULL e tratará o INVALID_HANDLE_VALUE como um identificador verdadeiro. Se você chamar uma API que pode retornar o INVALID_HANDLE_VALUE, verifique esse valor antes de chamar CHandle::Attach ou passá-lo para o construtor CHandle e, em vez disso, passar como NULL.

Requisitos

Cabeçalho: atlbase.h

CHandle::Attach

Chame esse método para anexar o objeto CHandle a um identificador existente.

void Attach(HANDLE h) throw();

Parâmetros

h
CHandle assumirá a propriedade do identificador h.

Comentários

Atribui o objeto CHandle ao identificador h e, em seguida, chama h.Detach(). Em compilações de depurações, um ATLASSERT será criado se h for NULL. Nenhuma outra verificação quanto à validade do identificador é feita.

CHandle::CHandle

O construtor .

CHandle() throw();
CHandle(CHandle& h) throw();
explicit CHandle(HANDLE h) throw();

Parâmetros

h
Um identificador existente ou CHandle.

Comentários

Cria um novo objeto CHandle, opcionalmente usando um identificador ou objeto CHandle existente.

CHandle::~CHandle

O destruidor.

~CHandle() throw();

Comentários

Libera o objeto CHandle chamando CHandle::Close.

CHandle::Close

Chame esse método para fechar um objeto CHandle.

void Close() throw();

Comentários

Fecha um identificador de objeto aberto. Se o identificador for NULL, que será o caso se Close já tiver sido chamado, um ATLASSERT será gerado em compilações de depuração.

CHandle::Detach

Chame esse método para desanexar um identificador de um objeto CHandle.

HANDLE Detach() throw();

Valor de retorno

Retorna o identificador que está sendo desanexado.

Comentários

Libera a propriedade do identificador.

CHandle::m_h

A variável de membro que armazena o identificador.

HANDLE m_h;

CHandle::operator =

O operador de atribuição.

CHandle& operator=(CHandle& h) throw();

Parâmetros

h
CHandle assumirá a propriedade do identificador h.

Valor de retorno

Retorna uma referência ao novo objeto CHandle.

Comentários

Se o objeto CHandle contiver atualmente um identificador, ele será fechado. O objeto CHandle que está sendo passado terá sua referência de identificador definida como NULL. Isso garante que dois objetos CHandle nunca conterão o mesmo identificador ativo.

CHandle::operator HANDLE

Retorna o valor do identificador armazenado.

operator HANDLE() const throw();

Comentários

Retorna o valor armazenado em CHandle::m_h.

Confira também

Visão geral da aula