Função SendMessageCallbackA (winuser.h)

Envia a mensagem especificada para uma janela ou janela. Ele chama o procedimento de janela para a janela especificada e retorna imediatamente se a janela pertence a outro thread. Depois que o procedimento de janela processa a mensagem, o sistema chama a função de retorno de chamada especificada, passando o resultado do processamento da mensagem e um valor definido pelo aplicativo para a função de retorno de chamada.

Sintaxe

BOOL SendMessageCallbackA(
  [in] HWND          hWnd,
  [in] UINT          Msg,
  [in] WPARAM        wParam,
  [in] LPARAM        lParam,
  [in] SENDASYNCPROC lpResultCallBack,
  [in] ULONG_PTR     dwData
);

Parâmetros

[in] hWnd

Digite: HWND

Um identificador para a janela cujo procedimento de janela receberá a mensagem. Se esse parâmetro for HWND_BROADCAST (HWND)0xffff), a mensagem será enviada para todas as janelas de nível superior do sistema, incluindo janelas desabilitadas ou invisíveis sem proprietário, janelas sobrepostas e janelas pop-up; mas a mensagem não é enviada para janelas filho.

[in] Msg

Tipo: UINT

A mensagem a ser enviada.

Para obter listas das mensagens fornecidas pelo sistema, consulte Mensagens definidas pelo sistema.

[in] wParam

Tipo: WPARAM

Obter informações adicionais específicas de mensagem.

[in] lParam

Tipo: LPARAM

Obter informações adicionais específicas de mensagem.

[in] lpResultCallBack

Tipo: SENDASYNCPROC

Um ponteiro para uma função de retorno de chamada que o sistema chama depois que o procedimento de janela processa a mensagem. Para obter mais informações, consulte SendAsyncProc.

Se hWnd for HWND_BROADCAST ((HWND)0xffff), o sistema chamará a função de retorno de chamada SendAsyncProc uma vez para cada janela de nível superior.

[in] dwData

Tipo: ULONG_PTR

Um valor definido pelo aplicativo a ser enviado para a função de retorno de chamada apontada pelo parâmetro lpCallBack .

Retornar valor

Tipo: BOOL

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

Se a janela de destino pertencer ao mesmo thread que o chamador, o procedimento de janela será chamado de forma síncrona e a função de retorno de chamada será chamada imediatamente após o retorno do procedimento de janela. Se a janela de destino pertencer a um thread diferente do chamador, a função de retorno de chamada será chamada somente quando o thread chamado SendMessageCallback também chamar GetMessage, PeekMessage ou WaitMessage.

Se você enviar uma mensagem no intervalo abaixo WM_USER para as funções de mensagem assíncronas (PostMessage, SendNotifyMessage e SendMessageCallback), seus parâmetros de mensagem não poderão incluir ponteiros. Caso contrário, a operação falhará. As funções retornarão antes que o thread de recebimento tenha tido a chance de processar a mensagem e o remetente liberará a memória antes de ser usada.

Os aplicativos que precisam se comunicar usando HWND_BROADCAST devem usar a função RegisterWindowMessage para obter uma mensagem exclusiva para comunicação entre aplicativos.

O sistema só faz marshaling para mensagens do sistema (aquelas no intervalo de 0 a (WM_USER-1)). Para enviar outras mensagens (essas >= WM_USER) para outro processo, você deve fazer marshalling personalizado.

Observação

O cabeçalho winuser.h define SendMessageCallback como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll
Conjunto de APIs ext-ms-win-ntuser-message-l1-1-0 (introduzido em Windows 8)

Confira também

Conceitual

Mensagens e filas de mensagens

PostMessage

Referência

Registerwindowmessage

SendAsyncProc

SendMessageCallback

Sendnotifymessage