Função WaitCommEvent (winbase.h)
Aguarda que um evento ocorra para um dispositivo de comunicação especificado. O conjunto de eventos monitorados por essa função está contido na máscara de eventos associada ao identificador do dispositivo.
Sintaxe
BOOL WaitCommEvent(
[in] HANDLE hFile,
[out] LPDWORD lpEvtMask,
[in] LPOVERLAPPED lpOverlapped
);
Parâmetros
[in] hFile
Um identificador para o dispositivo de comunicações. A função CreateFile retorna esse identificador.
[out] lpEvtMask
Um ponteiro para uma variável que recebe uma máscara que indica o tipo de evento que ocorreu. Se ocorrer um erro, o valor será zero; caso contrário, ele é um dos valores a seguir.
Valor | Significado |
---|---|
|
Uma quebra na entrada foi detectada. |
|
O sinal CTS (limpar para enviar) alterou o estado. |
|
O sinal DSR (pronto para conjunto de dados) alterou o estado. |
|
Ocorreu um erro de status de linha. Os erros de status de linha são CE_FRAME, CE_OVERRUN e CE_RXPARITY. |
|
Um indicador de anel foi detectado. |
|
O sinal RLSD (receive-line-signal-detect) alterou o estado. |
|
Um caractere foi recebido e colocado no buffer de entrada. |
|
O caractere de evento foi recebido e colocado no buffer de entrada. O caractere de evento é especificado na estrutura DCB do dispositivo, que é aplicada a uma porta serial usando a função SetCommState . |
|
O último caractere no buffer de saída foi enviado. |
[in] lpOverlapped
Um ponteiro para uma estrutura OVERLAPPED. Essa estrutura será necessária se o hFile tiver sido aberto com FILE_FLAG_OVERLAPPED.
Se hFile foi aberto com FILE_FLAG_OVERLAPPED, o parâmetro lpOverlapped não deve ser NULL. Ele deve apontar para uma estrutura OVERLAPPED válida. Se hFile foi aberto com FILE_FLAG_OVERLAPPED e lpOverlapped é NULL, a função pode relatar incorretamente que a operação está concluída.
Se hFile foi aberto com FILE_FLAG_OVERLAPPED e lpOverlapped não é NULL, WaitCommEvent é executado como uma operação sobreposta. Nesse caso, a estrutura OVERLAPPED deve conter um identificador para um objeto de evento de redefinição manual (criado usando a função CreateEvent ).
Se hFile não tiver sido aberto com FILE_FLAG_OVERLAPPED, WaitCommEvent não retornará até que ocorra um dos eventos especificados ou um erro.
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Comentários
A função WaitCommEvent monitora um conjunto de eventos para um recurso de comunicação especificado. Para definir e consultar a máscara de evento atual de um recurso de comunicação, use as funções SetCommMask e GetCommMask .
Se a operação sobreposta não puder ser concluída imediatamente, a função retornará FALSE e a função GetLastError retornará ERROR_IO_PENDING, indicando que a operação está sendo executada em segundo plano. Quando isso acontece, o sistema define o membro hEvent da estrutura OVERLAPPED como o estado não sinalizado antes de WaitCommEvent retornar e, em seguida, define-o para o estado sinalizado quando ocorre um dos eventos especificados ou um erro. O processo de chamada pode usar uma das funções de espera para determinar o estado do objeto de evento e, em seguida, usar a função GetOverlappedResult para determinar os resultados da operação WaitCommEvent . GetOverlappedResult relata o êxito ou a falha da operação e a variável apontada pelo parâmetro lpEvtMask é definida para indicar o evento que ocorreu.
Se um processo tentar alterar a máscara de evento do identificador do dispositivo usando a função SetCommMask enquanto uma operação WaitCommEvent sobreposta estiver em andamento, WaitCommEvent retornará imediatamente. A variável apontada pelo parâmetro lpEvtMask é definida como zero.
Exemplos
Para obter um exemplo, consulte Monitorando eventos de comunicações.
Requisitos
Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | winbase.h (inclua Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |