SetWindowDisplayAffinity 関数 (winuser.h)
ウィンドウの内容を表示できる場所を指定します。
構文
BOOL SetWindowDisplayAffinity(
[in] HWND hWnd,
[in] DWORD dwAffinity
);
パラメーター
[in] hWnd
型: HWND
最上位ウィンドウへのハンドル。 ウィンドウは現在のプロセスに属している必要があります。
[in] dwAffinity
型: DWORD
ウィンドウの内容を表示できる場所を指定する表示アフィニティ設定。
このパラメーターには、次の値のいずれかを指定できます。
戻り値
種類: BOOL
関数が成功すると、 TRUE が返されます。それ以外の場合は、たとえば、最上位以外のウィンドウで関数呼び出しが行われた場合に FALSE を 返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
この関数と GetWindowDisplayAffinity は、Windows 7 の新機能であるウィンドウ コンテンツ保護機能をサポートするように設計されています。 この機能を使用すると、アプリケーションは、特定のパブリック オペレーティング システム機能と API のセットを介してキャプチャまたはコピーされないように、独自の画面上のウィンドウ コンテンツを保護できます。 ただし、デスクトップ ウィンドウ マネージャー (DWM) がデスクトップを作成している場合にのみ機能します。
セキュリティ機能や Digital Rights Management (DRM) の実装とは異なり、 SetWindowDisplayAffinity と GetWindowDisplayAffinity、および 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 で導入) |