Função ChangeWindowMessageFilter (winuser.h)

[Não é recomendável usar a função ChangeWindowMessageFilter , pois ela tem escopo em todo o processo. Em vez disso, use a função ChangeWindowMessageFilterEx para controlar o acesso a janelas específicas, conforme necessário. ChangeWindowMessageFilter pode não ter suporte em versões futuras do Windows.]

Adiciona ou remove uma mensagem do filtro de mensagem Isolamento de Privilégio de Interface do Usuário (UIPI).

Sintaxe

BOOL ChangeWindowMessageFilter(
  [in] UINT  message,
  [in] DWORD dwFlag
);

Parâmetros

[in] message

Tipo: UINT

A mensagem a ser adicionada ou removida do filtro.

[in] dwFlag

Tipo: DWORD

A ação a ser executada. Um dos valores a seguir.

Valor Significado
MSGFLT_ADD
1
Adiciona a mensagem ao filtro. Isso tem o efeito de permitir que a mensagem seja recebida.
MSGFLT_REMOVE
2
Remove a mensagem do filtro. Isso tem o efeito de bloquear a mensagem.

Retornar valor

Tipo: BOOL

TRUE se tiver êxito; caso contrário, FALSE. Para obter informações de erro estendidas, chame GetLastError.

Nota Uma mensagem pode ser removida com êxito do filtro, mas isso não é uma garantia de que a mensagem será bloqueada. Para obter mais detalhes, consulte a seção Comentários.
 

Comentários

A UIPI é um recurso de segurança que impede que mensagens sejam recebidas de um remetente de nível de integridade inferior. Todas essas mensagens com um valor acima WM_USER são bloqueadas por padrão. O filtro, um pouco contrário à intuição, é uma lista de mensagens que são permitidas. Portanto, adicionar uma mensagem ao filtro permite que essa mensagem seja recebida de um remetente de integridade inferior, ao mesmo tempo em que a remoção de uma mensagem impede que essa mensagem seja recebida.

Determinadas mensagens com um valor menor que WM_USER são necessárias para passar pelo filtro, independentemente da configuração do filtro. Você pode chamar essa função para remover uma dessas mensagens do filtro e ela retornará TRUE. No entanto, a mensagem ainda será recebida pelo processo de chamada.

Processos em SECURITY_MANDATORY_LOW_RID ou abaixo não têm permissão para alterar o filtro. Se esses processos chamarem essa função, ela falhará.

Para obter mais informações sobre níveis de integridade, consulte Noções básicas e trabalho no modo protegido Explorer internet.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll