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
Tipo: 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 não semeadas desabilitadas ou invisíveis, 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 System-Defined Mensagens.
[in] wParam
Tipo: WPARAM
Informações adicionais específicas da mensagem.
[in] lParam
Tipo: LPARAM
Informações adicionais específicas da mensagem.
[in] lpResultCallBack
Tipo: SENDASYNCPROC
Um ponteiro para uma função de retorno de chamada que o sistema chama após o procedimento de janela processar a mensagem. Para obter mais informações, consulte SendAsyncProc.
Se hWnd for HWND_BROADCAST (HWND)0xffff), o sistema chamará a função SendAsyncProc retorno de chamada 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.
Valor de retorno
Tipo: BOOL
Se a função for bem-sucedida, o valor retornado não será zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Observações
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, PeekMessageou 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 marshalling para mensagens do sistema (aquelas no intervalo de 0 a (WM_USER-1)). Para enviar outras mensagens (aquelas >= WM_USER) para outro processo, você deve fazer o marshalling personalizado.
Nota
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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | winuser.h (inclua Windows.h) |
biblioteca | User32.lib |
de DLL |
User32.dll |
conjunto de API | ext-ms-win-ntuser-message-l1-1-0 (introduzido no Windows 8) |
Consulte também
Conceitual
mensagens e filas de mensagens
de referência de