CreateDialogIndirectParamW

メモリ内のダイアログテンプレートからモードレスダイアログを作成する。(Unicode)

CreateDialogIndirectParamW hInstance, lpTemplate, hWndParent, lpDialogFunc, dwInitParam

hInstance : [intptr] 型: HINSTANCE ダイアログテンプレートを含むモジュールへのハンドル。NULL の場合、現在の実行可能ファイルが使われる。
lpTemplate : [var] 型: LPCDLGTEMPLATE CreateDialogIndirectParam がダイアログ作成に使用するテンプレート。ダイアログテンプレートは、ダイアログを記述するヘッダと、それに続くダイアログ内の各コントロールを記述する 1 つ以上のデータブロックで構成される。テンプレートは標準形式または拡張形式を使える。
hWndParent : [intptr] 型: HWND ダイアログを所有するウィンドウへのハンドル。
lpDialogFunc : [int] 型: DLGPROC ダイアログプロシージャへのポインタ。詳細は DialogProc を参照。
dwInitParam : [intptr] 型: LPARAM WM_INITDIALOG メッセージの lParam パラメータでダイアログに渡す値。

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

解説

メモリ内のダイアログテンプレートからモードレスダイアログを作成する。(Unicode)

[戻り値]
型: HWND 関数が成功した場合、戻り値はダイアログのウィンドウハンドル。関数が失敗した場合、戻り値は
NULL。拡張エラー情報を取得するには GetLastError を呼ぶ。

[備考]
CreateDialogIndirectParam 関数は CreateWindowEx 関数を使ってダイアログを作成する。次に
CreateDialogIndirectParam はダイアログプロシージャに WM_INITDIALOG
メッセージを送信する。テンプレートが DS_SETFONT または DS_SHELLFONT スタイルを指定している場合、関数は
WM_SETFONT メッセージもダイアログプロシージャに送信する。テンプレートが WS_VISIBLE
スタイルを指定している場合、関数はダイアログを表示する。最後に CreateDialogIndirectParam
はダイアログのウィンドウハンドルを返す。CreateDialogIndirectParam が戻った後、ShowWindow
関数を使ってダイアログを表示できる (まだ表示されていない場合)。ダイアログを破棄するには DestroyWindow
関数を使う。キーボードナビゲーションやその他のダイアログ機能をサポートするには、ダイアログのメッセージループから
IsDialogMessage 関数を呼ばなければならない。標準ダイアログテンプレートでは、DLGTEMPLATE 構造体および各
DLGITEMTEMPLATE 構造体は DWORD 境界に整列される必要がある。DLGITEMTEMPLATE
構造体に続く作成データ配列も DWORD 境界に整列される必要がある。テンプレート内の他のすべての可変長配列は WORD
境界に整列される必要がある。拡張ダイアログテンプレートでは、DLGTEMPLATEEX ヘッダと各 DLGITEMTEMPLATEEX
コントロール定義は DWORD 境界に整列される必要がある。DLGITEMTEMPLATEEX 構造体に続く作成データ配列があれば、それも
DWORD 境界に整列される必要がある。テンプレート内の他のすべての可変長配列は WORD
境界に整列される必要がある。ダイアログテンプレート内のすべての文字列 (ダイアログやボタンのタイトルなど) は Unicode
文字列でなければならない。
> [!NOTE] > winuser.h ヘッダは CreateDialogIndirectParam
をエイリアスとして定義しており、UNICODE プリプロセッサ定数の定義に基づき自動的に ANSI/Unicode
版を選択する。エンコーディング非依存のエイリアスとそうでないコードを混在させると、コンパイル時または実行時のエラーにつながる不一致が生じる可能性がある。詳細は
Conventions for Function Prototypes を参照。

情報

プラグイン / モジュール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