Função BroadcastSystemMessageExA (winuser.h)
Envia uma mensagem para os destinatários especificados. Os destinatários podem ser aplicativos, drivers instaláveis, drivers de rede, drivers de dispositivo no nível do sistema ou qualquer combinação desses componentes do sistema.
Essa função é semelhante a BroadcastSystemMessage , exceto que essa função pode retornar mais informações dos destinatários.
Sintaxe
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
A opção de transmissão. Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
|
Permite que o destinatário defina a janela em primeiro plano durante o processamento da mensagem. |
|
Libera o disco depois que cada destinatário processa a mensagem. |
|
Continua transmitindo a mensagem, mesmo que o período de tempo limite se esvaia ou um dos destinatários não esteja respondendo. |
|
Não envia a mensagem para janelas que pertencem à tarefa atual. Isso impede que um aplicativo receba sua própria mensagem. |
|
Se BSF_LUID estiver definido, a mensagem será enviada para a janela que tem o mesmo LUID especificado no membro luid da estrutura BSMINFO .
Windows 2000: Não há suporte para esse sinalizador. |
|
Força um aplicativo não responsável a atingir o tempo limite. Se um dos destinatários atingir o tempo limite, não continue transmitindo a mensagem. |
|
Aguarda uma resposta à mensagem, desde que o destinatário não esteja respondendo. Não faz tempo limite. |
|
Posta a mensagem. Não use em combinação com BSF_QUERY. |
|
Se o acesso for negado e esse e BSF_QUERY estiverem definidos, o BSMINFO retornará o identificador da área de trabalho e o identificador da janela. Se o acesso for negado e apenas BSF_QUERY estiver definido, somente o identificador de janela será retornado pelo BSMINFO.
Windows 2000: Não há suporte para esse sinalizador. |
|
Envia a mensagem para um destinatário de cada vez, enviando para um destinatário subsequente somente se o destinatário atual retornar TRUE. |
|
Envia a mensagem usando a função SendNotifyMessage . Não use em combinação com BSF_QUERY. |
[in, out, optional] lpInfo
Tipo: LPDWORD
Um ponteiro para uma variável que contém e recebe informações sobre os destinatários da mensagem.
Quando a função retorna, essa variável recebe uma combinação desses valores identificando quais destinatários realmente receberam a mensagem.
Se esse parâmetro for NULL, a função transmitirá para todos os componentes.
Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
|
Difundir para todos os componentes do sistema. |
|
Difundir para todas as áreas de trabalho. Requer o privilégio SE_TCB_NAME . |
|
Difundir para aplicativos. |
[in] Msg
Tipo: UINT
A mensagem a ser enviada.
Para obter listas das mensagens fornecidas pelo sistema, consulte Mensagens definidas pelo sistema.
[in] wParam
Tipo: WPARAM
Obter informações adicionais específicas de mensagem.
[in] lParam
Tipo: LPARAM
Obter informações adicionais específicas de mensagem.
[out, optional] pbsmInfo
Tipo: PBSMINFO
Um ponteiro para uma estrutura BSMINFO que contém informações adicionais se a solicitação for negada e dwFlags estiver definido como BSF_QUERY.
Retornar valor
Tipo: long
Se a função for bem-sucedida, o valor retornado será um valor positivo.
Se a função não puder transmitir a mensagem, o valor retornado será –1.
Se o parâmetro dwFlags for BSF_QUERY e pelo menos um destinatário retornar BROADCAST_QUERY_DENY para a mensagem correspondente, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Comentários
Se BSF_QUERY não for especificado, a função enviará a mensagem especificada a todos os destinatários solicitados, ignorando os valores retornados por esses destinatários.
Se o thread do chamador estiver em uma área de trabalho diferente da janela que negou a solicitação, o chamador deverá chamar SetThreadDesktop(hdesk) para consultar qualquer coisa nessa janela. Além disso, o chamador deve chamar CloseDesktop no identificador hdesk retornado.
O sistema só faz marshaling para mensagens do sistema (aquelas no intervalo de 0 a (WM_USER-1)). Para enviar outras mensagens (essas >= WM_USER) para outro processo, você deve fazer marshalling personalizado.
Observação
O cabeçalho winuser.h define BroadcastSystemMessageEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winuser.h (inclua Windows.h) |
Biblioteca | User32.lib |
DLL | User32.dll |
Confira também
Conceitual
Mensagens e filas de mensagens
Referência