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
このウィンドウはモニターにのみ表示されます。 他の場所では、ウィンドウはまったく表示されません。

このアフィニティの用途の 1 つは、コントロールがキャプチャに含まれないように、ビデオ記録コントロールを表示するウィンドウ用です。

Windows 10 バージョン 2004 で導入されました。 以前のバージョンの Windows に関する互換性に関する解説を参照してください。

戻り値

種類: BOOL

関数が成功すると、 TRUE が返されます。それ以外の場合は、たとえば、最上位以外のウィンドウで関数呼び出しが行われた場合に FALSE を 返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

この関数と GetWindowDisplayAffinity は、Windows 7 の新機能であるウィンドウ コンテンツ保護機能をサポートするように設計されています。 この機能を使用すると、アプリケーションは、特定のパブリック オペレーティング システム機能と API のセットを介してキャプチャまたはコピーされないように、独自の画面上のウィンドウ コンテンツを保護できます。 ただし、デスクトップ ウィンドウ マネージャー (DWM) がデスクトップを作成している場合にのみ機能します。

セキュリティ機能や Digital Rights Management (DRM) の実装とは異なり、 SetWindowDisplayAffinityGetWindowDisplayAffinity、および DwmIsCompositionEnabled などの他の必要な機能を使用すると、ユーザーが画面の写真を撮る場合など、ウィンドウコンテンツが厳密に保護されるという保証はありません。

Windows 10 バージョン 2004 以降では、WDA_EXCLUDEFROMCAPTUREはサポートされる値です。 以前のバージョンの Windows で表示アフィニティを WDA_EXCLUDEFROMCAPTURE に設定すると、WDA_MONITORが適用されているかのように動作します。

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
API セット ext-ms-win-ntuser-window-l1-1-1 (Windows 8.1 で導入)

こちらもご覧ください

SetWindowDisplayAffinityWindows