Поделиться через


Структура CHANGEFILTERSTRUCT (winuser.h)

Содержит расширенные сведения о результатах, полученные при вызове функции ChangeWindowMessageFilterEx .

Синтаксис

typedef struct tagCHANGEFILTERSTRUCT {
  DWORD cbSize;
  DWORD ExtStatus;
} CHANGEFILTERSTRUCT, *PCHANGEFILTERSTRUCT;

Члены

cbSize

Тип: DWORD

Размер структуры в байтах. Должен иметь значение , в sizeof(CHANGEFILTERSTRUCT)противном случае функция завершается сбоем с ERROR_INVALID_PARAMETER.

ExtStatus

Тип: DWORD

Если функция выполняется успешно, это поле содержит одно из следующих значений.

Значение Значение
MSGFLTINFO_NONE
0
См. раздел «Примечания». Применимо к MSGFLT_ALLOW и MSGFLT_DISALLOW.
MSGFLTINFO_ALLOWED_HIGHER
3
Сообщение разрешено в область выше, чем окно. Применимо к MSGFLT_DISALLOW.
MSGFLTINFO_ALREADYALLOWED_FORWND
1
Сообщение уже разрешено фильтром сообщений этого окна, поэтому функция выполнена успешно без изменений в фильтре сообщений окна. Применимо к MSGFLT_ALLOW.
MSGFLTINFO_ALREADYDISALLOWED_FORWND
2
Сообщение уже заблокировано фильтром сообщений этого окна, поэтому функция была успешно выполнена без изменений в фильтре сообщений окна. Применимо к MSGFLT_DISALLOW.

Комментарии

Некоторые сообщения, значение которых меньше WM_USER , должны проходить через фильтр независимо от параметра фильтра. При попытке использовать эту функцию для разрешения или блокировки таких сообщений не будет никакого эффекта.

Приложение может использовать функцию ChangeWindowMessageFilter , чтобы разрешить или заблокировать сообщение на уровне всего процесса. Если сообщение разрешено фильтром сообщений процесса или фильтром сообщений окна, оно будет доставлено в окно.

В следующей таблице перечислены возможные значения, возвращаемые в ExtStatus.

Сообщение уже разрешено в более область Сообщение уже разрешено фильтром сообщений окна Запрошенная операция Индикатор возвращается в ExtStatus при успешном выполнении
Нет Нет MSGFLT_ALLOW MSGFLTINFO_NONE
Нет Нет MSGFLT_DISALLOW MSGFLTINFO_ALREADYDISALLOWED_FORWND
Нет Нет MSGFLT_RESET MSGFLTINFO_NONE
Нет Да MSGFLT_ALLOW MSGFLTINFO_ALREADYALLOWED_FORWND
Нет Да MSGFLT_DISALLOW MSGFLTINFO_NONE
Нет Да MSGFLT_RESET MSGFLTINFO_NONE
Да Нет MSGFLT_ALLOW MSGFLTINFO_NONE
Да Нет MSGFLT_DISALLOW MSGFLTINFO_ALLOWED_HIGHER
Да Нет MSGFLT_RESET MSGFLTINFO_NONE
Да Да MSGFLT_ALLOW MSGFLTINFO_ALREADYALLOWED_FORWND
Да Да MSGFLT_DISALLOW MSGFLTINFO_ALLOWED_HIGHER
Да Да MSGFLT_RESET MSGFLTINFO_NONE

Требования

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Верхняя часть winuser.h (включая Windows.h)

См. также раздел

ChangeWindowMessageFilterEx