SetWindowDisplayAffinity function

Stores the display affinity setting in kernel mode on the hWnd associated with the window.


BOOL SetWindowDisplayAffinity(
  HWND  hWnd,
  DWORD dwAffinity



Type: HWND

A handle to the window.



The display affinity setting that specifies where the content of the window can be displayed.

Set this value to WDA_MONITOR to display the content only on a monitor.

Set this value to WDA_NONE to remove the monitor-only affinity.

Return value

Type: BOOL

If the function succeeds, it returns TRUE; otherwise, it returns FALSE when, for example, the function call is made on a non top-level window. To get extended error information, call GetLastError.


This function and GetWindowDisplayAffinity are designed to support the window content protection feature that is new to Windows 7. This feature enables applications to protect their own onscreen window content from being captured or copied through a specific set of public operating system features and APIs. However, it works only when the Desktop Window Manager(DWM) is composing the desktop.

It is important to note that unlike a security feature or an implementation of Digital Rights Management (DRM), there is no guarantee that using SetWindowDisplayAffinity and GetWindowDisplayAffinity, and other necessary functions such as DwmIsCompositionEnabled, will strictly protect windowed content, for example where someone takes a photograph of the screen.


Minimum supported client Windows 7 [desktop apps only]
Minimum supported server Windows Server 2008 R2 [desktop apps only]
Target Platform Windows
Header winuser.h (include Windows.h)
Library User32.lib
DLL User32.dll

See also

SetWindowDisplayAffinity, Windows