Compartir a través de


Función BroadcastSystemMessageA (winuser.h)

Envía un mensaje a los destinatarios especificados. Los destinatarios pueden ser aplicaciones, controladores instalables, controladores de red, controladores de dispositivo de nivel de sistema o cualquier combinación de estos componentes del sistema.

Para recibir información adicional si se define la solicitud, use la función BroadcastSystemMessageEx .

Sintaxis

long BroadcastSystemMessageA(
  [in]                DWORD   flags,
  [in, out, optional] LPDWORD lpInfo,
  [in]                UINT    Msg,
  [in]                WPARAM  wParam,
  [in]                LPARAM  lParam
);

Parámetros

[in] flags

Tipo: DWORD

Opción de difusión. Este parámetro puede ser uno o más de los siguientes valores.

Valor Significado
BSF_ALLOWSFW
0x00000080
Permite al destinatario establecer la ventana de primer plano mientras se procesa el mensaje.
BSF_FLUSHDISK
0x00000004
Vacía el disco después de que cada destinatario procese el mensaje.
BSF_FORCEIFHUNG
0x00000020
Continúa difundiendo el mensaje, incluso si el período de tiempo de espera transcurre o uno de los destinatarios no responde.
BSF_IGNORECURRENTTASK
0x00000002
No envía el mensaje a las ventanas que pertenecen a la tarea actual. Esto impide que una aplicación reciba su propio mensaje.
BSF_NOHANG
0x00000008
Fuerza a una aplicación que no responde para agotar el tiempo de espera. Si uno de los destinatarios agota el tiempo de espera, no continúe difundiendo el mensaje.
BSF_NOTIMEOUTIFNOTHUNG
0x00000040
Espera una respuesta al mensaje, siempre y cuando el destinatario no responda. No agota el tiempo de espera.
BSF_POSTMESSAGE
0x00000010
Publica el mensaje. No use en combinación con BSF_QUERY.
BSF_QUERY
0x00000001
Envía el mensaje a un destinatario cada vez, enviando a un destinatario posterior solo si el destinatario actual devuelve TRUE.
BSF_SENDNOTIFYMESSAGE
0x00000100
Envía el mensaje mediante la función SendNotifyMessage . No use en combinación con BSF_QUERY.

[in, out, optional] lpInfo

Tipo: LPDWORD

Puntero a una variable que contiene y recibe información sobre los destinatarios del mensaje.

Cuando la función devuelve, esta variable recibe una combinación de estos valores que identifican qué destinatarios recibieron realmente el mensaje.

Si este parámetro es NULL, la función transmite a todos los componentes.

Este parámetro puede ser uno o más de los siguientes valores.

Valor Significado
BSM_ALLCOMPONENTS
0x00000000
Difundir a todos los componentes del sistema.
BSM_ALLDESKTOPS
0x00000010
Difundir a todos los escritorios. Requiere el privilegio SE_TCB_NAME .
BSM_APPLICATIONS
0x00000008
Difusión a aplicaciones.

[in] Msg

Tipo: UINT

El mensaje que se debe enviar.

Para obtener listas de los mensajes proporcionados por el sistema, consulte Mensajes definidos por el sistema.

[in] wParam

Tipo: WPARAM

Información adicional específica del mensaje.

[in] lParam

Tipo: LPARAM

Información adicional específica del mensaje.

Valor devuelto

Tipo: long

Si la función se ejecuta correctamente, el valor devuelto es un valor positivo.

Si la función no puede difundir el mensaje, el valor devuelto es –1.

Si el parámetro dwFlags es BSF_QUERY y al menos un destinatario devolvió BROADCAST_QUERY_DENY al mensaje correspondiente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Si no se especifica BSF_QUERY , la función envía el mensaje especificado a todos los destinatarios solicitados, ignorando los valores devueltos por esos destinatarios.

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

Para obtener un ejemplo, consulte Terminación de un proceso.

Nota

El encabezado winuser.h define BroadcastSystemMessage 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
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 (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también

BroadcastSystemMessageEx

Conceptual

Mensajes y colas de mensajes

Referencia

SendNotifyMessage