Función SendMessageTimeoutA (winuser.h)
Envía el mensaje especificado a una o varias ventanas.
Sintaxis
LRESULT SendMessageTimeoutA(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[in] UINT fuFlags,
[in] UINT uTimeout,
[out, optional] PDWORD_PTR lpdwResult
);
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 no visibles o deshabilitadas. La función no vuelve hasta que se agota el tiempo de espera de cada ventana. Por lo tanto, el tiempo de espera total puede ser hasta el valor de uTimeout multiplicado por el número de ventanas de nivel superior.
[in] Msg
Tipo: UINT
El mensaje que se debe enviar.
Para obtener listas de los mensajes proporcionados por el sistema, vea Mensajes definidos por el sistema.
[in] wParam
Tipo: WPARAM
Cualquier información adicional específica del mensaje.
[in] lParam
Tipo: LPARAM
Cualquier información adicional específica del mensaje.
[in] fuFlags
Tipo: UINT
El comportamiento de esta función. Este parámetro puede ser uno o más de los siguientes valores.
[in] uTimeout
Tipo: UINT
Duración del período de tiempo de espera, en milisegundos. Si el mensaje es un mensaje de difusión, cada ventana puede usar el período de tiempo de espera completo. Por ejemplo, si especifica un período de tiempo de espera de cinco segundos y hay tres ventanas de nivel superior que no pueden procesar el mensaje, podría tener hasta un retraso de 15 segundos.
[out, optional] lpdwResult
Tipo: PDWORD_PTR
Resultado del procesamiento de mensajes. El valor de este parámetro depende del mensaje especificado.
Valor devuelto
Tipo: LRESULT
Si la función se realiza correctamente, el valor devuelto es distinto de cero. SendMessageTimeout no proporciona información sobre el tiempo de espera de ventanas individuales si se usa HWND_BROADCAST .
Si se produce un error en la función o se agota el tiempo de espera, el valor devuelto es 0. Para obtener información de error extendida, llame a GetLastError. Si GetLastError devuelve ERROR_TIMEOUT, se agota el tiempo de espera de la función.
Windows 2000: Si GetLastError devuelve 0, se agota el tiempo de espera de la función.
Observaciones
La función llama al procedimiento de ventana para la ventana especificada y, si la ventana especificada pertenece a un subproceso diferente, no vuelve hasta que el procedimiento de ventana haya procesado el mensaje o haya transcurrido el período de tiempo de espera especificado. Si la ventana que recibe el mensaje pertenece a la misma cola que el subproceso actual, se llama directamente al procedimiento de ventana, se omite el valor de tiempo de espera.
Esta función considera que un subproceso no responde si no ha llamado a GetMessage o a una función similar en un plazo de cinco segundos.
El sistema solo realiza la serialización de los mensajes del sistema (los del intervalo de 0 a (WM_USER-1)). Para enviar otros mensajes (aquellos >= WM_USER) a otro proceso, debe realizar la serialización personalizada.
Nota
El encabezado winuser.h define SendMessageTimeout 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 Convenciones para prototipos de función.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winuser.h (incluir Windows.h) |
Library | User32.lib |
Archivo DLL | User32.dll |
Conjunto de API | ext-ms-win-ntuser-message-l1-1-0 (introducido en Windows 8) |
Consulte también
Conceptual
Referencia
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de