FormatMessageW

メッセージ文字列を書式化する。

FormatMessageW dwFlags, lpSource, dwMessageId, dwLanguageId, lpBuffer, nSize, Arguments

dwFlags : [int] 書式化オプションおよび lpSource の解釈方法。dwFlags の下位バイトは出力バッファ内の改行の扱いを指定する。また、書式化された出力行の最大幅も指定できる。
lpSource : [intptr] メッセージ定義の場所。このパラメータの型は dwFlags の設定に依存する。
dwMessageId : [int] 要求するメッセージの識別子。dwFlags に FORMAT_MESSAGE_FROM_STRING が含まれる場合は無視される。
dwLanguageId : [int] 要求するメッセージの言語識別子。dwFlags に FORMAT_MESSAGE_FROM_STRING が含まれる場合は無視される。特定の LANGID を渡すとその LANGID のメッセージのみを返す。見つからない場合は Last-Error を ERROR_RESOURCE_LANG_NOT_FOUND に設定する。0 を渡すと順次複数の LANGID を検索する。
lpBuffer : [wstr] 書式化済みメッセージを指定する NULL 終端文字列を受け取るバッファへのポインタ。dwFlags に FORMAT_MESSAGE_ALLOCATE_BUFFER が含まれる場合、関数は LocalAlloc でバッファを割り当て、指定アドレスにポインタを格納する。64K バイトを超えてはならない。
nSize : [int] FORMAT_MESSAGE_ALLOCATE_BUFFER が設定されていない場合、このパラメータは出力バッファのサイズ(TCHAR 単位)。設定されている場合、割り当てる最小 TCHAR 数。64K バイトを超えてはならない。
Arguments : [var] 書式化メッセージ内の挿入値として使用される値の配列。書式文字列内の %1 は Arguments 配列の最初の値を、%2 は 2 番目を示す。既定では各値を NULL 終端文字列へのポインタとして扱う。通常型は va_list*。FORMAT_MESSAGE_ARGUMENT_ARRAY フラグを指定すると DWORD_PTR 配列へのポインタを渡す。

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

解説

メッセージ文字列を書式化する。

[戻り値]
関数が成功した場合、戻り値は終端 NULL を含まない出力バッファに格納された TCHAR 数。失敗した場合は 0。拡張エラー情報は
GetLastError で取得する。

[備考]
メッセージテキスト内では動的書式化のためにパーセント文字(%)で始まるいくつかのエスケープシーケンスがサポートされる。
(以下省略)

情報

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