Compartilhar via


Evento PBT_APMQUERYSUSPEND

PBT_APMQUERYSUSPEND está disponível para uso nos sistemas operacionais especificados na seção Requisitos. O suporte para esse evento foi removido no Windows Vista. Em vez disso, use SetThreadExecutionState.]

Solicita permissão para suspender o computador. Um aplicativo que concede permissão deve realizar preparações para a suspensão antes de retornar.

Uma janela recebe esse evento por meio da mensagem WM_POWERBROADCAST. Os parâmetros wParam e lParam são definidos conforme descrito a seguir.

LRESULT 
CALLBACK 
WindowProc( HWND   hwnd,    // handle to window
            UINT   uMsg,    // WM_POWERBROADCAST
            WPARAM wParam,  // PBT_APMQUERYSUSPEND
            LPARAM lParam); // action flags

Parâmetros

hwnd

Uma alça para a janela.

uMsg

Valor Significado
WM_POWERBROADCAST
536 (0x218)
Identificador de mensagem.

wParam

Valor Significado
PBT_APMQUERYSUSPEND
0 (0x0)
Identificador de evento.

lParam

Os sinalizadores de ação. Se o bit 0 for 1, o aplicativo poderá solicitar ao usuário instruções sobre como se preparar para a suspensão; caso contrário, o aplicativo deverá se preparar sem a interação do usuário. Todos os outros valores de bits são reservados.

Valor retornado

Retorna TRUE para conceder a solicitação de suspensão. Para negar a solicitação, retorne BROADCAST_QUERY_DENY.

Comentários

Um aplicativo deve processar esse evento o mais rápido possível. O aplicativo pode solicitar ao usuário instruções sobre como se preparar para a suspensão somente se o bit 0 no parâmetro Flags estiver definido. No entanto, se essa mensagem for emitida porque o usuário está fechando a tampa do laptop, não será possível avisar o usuário. Os aplicativos devem respeitar o fato de que o usuário espera um determinado comportamento quando fecha a tampa do laptop ou pressiona o botão liga/desliga e permitir que a transição seja bem-sucedida.

O sistema permite aproximadamente 20 segundos para que um aplicativo remova a mensagem WM_POWERBROADCAST que está enviando o evento PBT_APMQUERYSUSPEND a partir da fila de mensagens do aplicativo. Se um aplicativo não remover a mensagem da fila em menos de 20 segundos, o sistema presumirá que o aplicativo está em um estado não responsivo e que ele concorda com a solicitação de suspensão. Os aplicativos que não processam suas filas de mensagens podem ter suas operações interrompidas. Depois de remover a mensagem da fila de mensagens, um aplicativo pode levar o tempo que for necessário para executar as operações necessárias antes de entrar no estado de suspensão. Todas as operações que possam levar mais de 20 segundos devem ser executadas nesse momento, pois o sistema permite que apenas 20 segundos para as operações sejam concluídas durante o processamento de PBT_APMSUSPEND.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003 [somente aplicativos da área de trabalho]
Fim do suporte ao cliente
Windows XP
Encerramento do suporte ao servidor
Windows Server 2003
Cabeçalho
WinUser.h (incluir o Windows.h)

Confira também