Compartir a través de


Función BroadcastSystemMessageExA (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.

Esta función es similar a BroadcastSystemMessage excepto que esta función puede devolver más información de los destinatarios.

Sintaxis

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

Parámetros

[in] flags

Tipo: DWORD de

Opción de difusión. Este parámetro puede ser uno o varios 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 transcurrido 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_LUID
0x00000400
Si se establece BSF_LUID, el mensaje se envía a la ventana que tiene el mismo LUID especificado en el miembro luid de la estructura de BSMINFO.

Windows 2000: Esta marca no se admite.

BSF_NOHANG
0x00000008
Obliga a una aplicación que no responde para que se agote el tiempo de espera. Si se agota el tiempo de espera de uno de los destinatarios, no continúe transmitiendo el mensaje.
BSF_NOTIMEOUTIFNOTHUNG
0x00000040
Espera una respuesta al mensaje, siempre que 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_RETURNHDESK
0x00000200
Si se deniega el acceso y se establecen tanto este como BSF_QUERY, BSMINFO devuelve tanto el identificador de escritorio como el identificador de ventana. Si se deniega el acceso y solo se establece BSF_QUERY, solo se devuelve el identificador de ventana BSMINFO.

Windows 2000: Esta marca no se admite.

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 función sendNotifyMessage. No use en combinación con BSF_QUERY.

[in, out, optional] lpInfo

Tipo: LPDWORD de

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 han recibido realmente el mensaje.

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

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

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

[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.

[out, optional] pbsmInfo

Tipo: PBSMINFO

Puntero a una estructura de BSMINFO de que contiene información adicional si se deniega la solicitud y dwFlags se establece en BSF_QUERY.

Valor devuelto

Tipo: largo

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.

Observaciones

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.

Si el subproceso del autor de la llamada está en un escritorio distinto del de la ventana que denegó la solicitud, el autor de la llamada debe llamar a SetThreadDesktop(hdesk) para consultar cualquier cosa en esa ventana. Además, el autor de la llamada debe llamar a closeDesktop en el identificador de de hdesk devuelto.

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 BroadcastSystemMessageEx 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 XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [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

Consulte también

BSMINFO

broadcastSystemMessage

conceptual de

mensajes y colas de mensajes

de referencia de

SendNotifyMessage