Compartir a través de


Función SendMessageCallbackW (winuser.h)

Envía el mensaje especificado a una ventana o ventana. Llama al procedimiento de ventana para la ventana especificada y devuelve inmediatamente si la ventana pertenece a otro subproceso. Una vez que el procedimiento de ventana procesa el mensaje, el sistema llama a la función de devolución de llamada especificada, pasando el resultado del procesamiento de mensajes y un valor definido por la aplicación a la función de devolución de llamada.

Sintaxis

BOOL SendMessageCallbackW(
  [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

Identificador de la ventana cuyo procedimiento de ventana recibirá el mensaje. Si este parámetro es HWND_BROADCAST ((HWND)0xffff), el mensaje se envía a todas las ventanas de nivel superior del sistema, incluidas las ventanas deshabilitadas o invisibles, las ventanas superpuestas y las ventanas emergentes; pero el mensaje no se envía a ventanas secundarias.

[in] Msg

Tipo: UINT

Mensaje que se va a enviar.

Para obtener listas de los mensajes proporcionados por el sistema, consulte System-Defined Mensajes.

[in] wParam

Tipo: WPARAM de

Información adicional específica del mensaje.

[in] lParam

Tipo: LPARAM

Información adicional específica del mensaje.

[in] lpResultCallBack

Tipo: SENDASYNCPROC

Puntero a una función de devolución de llamada a la que el sistema llama después de que el procedimiento de ventana procese el mensaje. Para obtener más información, vea SendAsyncProc.

Si hWnd es HWND_BROADCAST ((HWND)0xffff), el sistema llama a la función de devolución de llamada SendAsyncProc una vez para cada ventana de nivel superior.

[in] dwData

Tipo: ULONG_PTR

Valor definido por la aplicación que se va a enviar a la función de devolución de llamada a la que apunta el parámetro lpCallBack.

Valor devuelto

Tipo: BOOL de

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero.

Si se produce un error en la función, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Observaciones

Si la ventana de destino pertenece al mismo subproceso que el autor de la llamada, se llama al procedimiento de ventana de forma sincrónica y se llama a la función de devolución de llamada inmediatamente después de que se devuelva el procedimiento de ventana. Si la ventana de destino pertenece a un subproceso diferente del autor de la llamada, solo se llama a la función de devolución de llamada cuando el subproceso que llamó a SendMessageCallback también llama a GetMessage, PeekMessageo WaitMessage.

Si envía un mensaje en el intervalo siguiente WM_USER a las funciones de mensaje asincrónicas (PostMessage, SendNotifyMessagey SendMessageCallback), sus parámetros de mensaje no pueden incluir punteros. De lo contrario, se producirá un error en la operación. Las funciones devolverán antes de que el subproceso receptor haya tenido la oportunidad de procesar el mensaje y el remitente liberará la memoria antes de que se use.

Las aplicaciones que necesitan comunicarse mediante HWND_BROADCAST deben usar la función RegisterWindowMessage para obtener un mensaje único para la comunicación entre aplicaciones.

El sistema solo realiza la serialización de mensajes del sistema (los del intervalo de 0 a (WM_USER-1)). Para enviar otros mensajes (los >= WM_USER) a otro proceso, debe realizar la serialización personalizada.

Nota

El encabezado winuser.h define SendMessageCallback como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winuser.h (incluya Windows.h)
biblioteca de User32.lib
DLL de User32.dll
conjunto de API de ext-ms-win-ntuser-message-l1-1-0 (introducido en Windows 8)

Consulte también

conceptual de

mensajes y colas de mensajes

PostMessage

de referencia de

registerWindowMessage

SendAsyncProc

SendMessageCallback

SendNotifyMessage