Функция SetWindowDisplayAffinity (winuser.h)

Указывает, где может отображаться содержимое окна.

Синтаксис

BOOL SetWindowDisplayAffinity(
  [in] HWND  hWnd,
  [in] DWORD dwAffinity
);

Параметры

[in] hWnd

Тип: HWND

Дескриптор окна верхнего уровня. Окно должно принадлежать текущему процессу.

[in] dwAffinity

Тип: DWORD

Параметр сопоставления отображения, указывающий, где может отображаться содержимое окна.

Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
WDA_NONE
0x00000000
Не накладывает ограничений на место отображения окна.
WDA_MONITOR
0x00000001
Содержимое окна отображается только на мониторе. В других местах окно отображается без содержимого.
WDA_EXCLUDEFROMCAPTURE
0x00000011
Окно отображается только на мониторе. В других местах окно не отображается вообще.

Одно из применений этого сходства — для окон, в которых отображаются элементы управления записью видео, поэтому элементы управления не включаются в запись.

Появилось в Windows 10 версии 2004. См. замечания о совместимости предыдущих версий Windows.

Возвращаемое значение

Тип: BOOL

Если функция выполняется успешно, возвращается значение TRUE; В противном случае возвращается значение FALSE , если, например, вызов функции выполняется в окне, отличном от верхнего уровня. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Эта функция и GetWindowDisplayAffinity предназначены для поддержки функции защиты содержимого окна, которая является новой в Windows 7. Эта функция позволяет приложениям защищать собственное содержимое экранного окна от захвата или копирования с помощью определенного набора общедоступных функций и API-интерфейсов операционной системы. Однако он работает, только если диспетчер окон рабочего стола (DWM) составляет рабочий стол.

Важно отметить, что в отличие от функции безопасности или реализации управления цифровыми правами (DRM), нет никакой гарантии, что использование SetWindowDisplayAffinity и GetWindowDisplayAffinity, а также других необходимых функций, таких как DwmIsCompositionEnabled, будет строго защищать содержимое окна, например когда кто-то делает фотографию экрана.

Начиная с Windows 10 версии 2004, WDA_EXCLUDEFROMCAPTURE является поддерживаемым значением. Настройка сопоставления отображения WDA_EXCLUDEFROMCAPTURE в предыдущей версии Windows будет вести себя так, как если бы применялся WDA_MONITOR.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Набор API ext-ms-win-ntuser-window-l1-1-1 (появилось в Windows 8.1)

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

SetWindowDisplayAffinity, Windows