ChangeDisplaySettingsExW

ChangeDisplaySettingsEx 関数は、指定したディスプレイデバイスの設定を指定したグラフィックモードに変更する。(Unicode)

ChangeDisplaySettingsExW lpszDeviceName, lpDevMode, hwnd, dwflags, lParam

lpszDeviceName : [wstr] グラフィックモードを変更するディスプレイデバイスを指定する null 終端文字列へのポインタ。EnumDisplayDevices が返すディスプレイデバイス名のみ有効。これらに関連付けられた名前の詳細については EnumDisplayDevices を参照。lpszDeviceName は NULL でもよい。NULL は既定のディスプレイデバイスを指定する。既定のデバイスは EnumDisplayDevices を呼んで DISPLAY_DEVICE_PRIMARY_DEVICE フラグを確認することで判別できる。
lpDevMode : [var] 新しいグラフィックモードを記述する DEVMODE 構造体へのポインタ。lpDevMode が NULL の場合、レジストリに現在ある値がディスプレイ設定に使われる。lpDevMode に NULL、dwFlags に 0 を渡すのは、動的なモード変更後に既定モードに戻す最も簡単な方法である。dmSize メンバには DEVMODE 構造体のサイズ (バイト) を初期化する必要がある。dmDriverExtra メンバには、DEVMODE 構造体に続くプライベートドライバデータのバイト数を示す値を初期化する必要がある。さらに、DEVMODE 構造体の以下のメンバを使用できる。
hwnd : [intptr] 予約されており、NULL でなければならない。
dwflags : [int] 
lParam : [intptr] dwFlags が CDS_VIDEOPARAMETERS の場合、lParam は VIDEOPARAMETERS 構造体へのポインタ。それ以外の場合、lParam は NULL でなければならない。

(プラグイン / モジュール : user32.dll)

解説

ChangeDisplaySettingsEx
関数は、指定したディスプレイデバイスの設定を指定したグラフィックモードに変更する。(Unicode)

[戻り値]
ChangeDisplaySettingsEx 関数は次のいずれかの値を返す。
(以下省略)

[備考]
ChangeDisplaySettingsEx に渡す DEVMODE
構造体が有効でディスプレイドライバがサポートする値のみを含むことを保証するには、EnumDisplaySettings 関数が返した
DEVMODE を使用する。プログラムによって複数モニタシステムにディスプレイモニタを追加する場合、DEVMODE.dmFields に
DM_POSITION を設定し、追加するモニタの位置 (DEVMODE.dmPosition) を、既存モニタの表示領域の少なくとも 1
ピクセルに隣接するように指定する。モニタを切り離すには DEVMODE.dmFields に DM_POSITION
を設定し、DEVMODE.dmPelsWidth と DEVMODE.dmPelsHeight を 0 にする。詳細は Multiple
Display Monitors を参照。ディスプレイモードが動的に変更されると、次のメッセージパラメータで
WM_DISPLAYCHANGE メッセージが実行中のすべてのアプリケーションに送られる。
(以下省略)

情報

プラグイン / モジュールuser32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の user32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_user32_gen2.hs