FormatMessage |
Declare Function Api_FormatMessage& Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags&, lpSource As Any, ByVal dwMessageId&, ByVal dwLanguageId&, ByVal lpBuffer$, ByVal nSize&, Arguments&) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
メッセージ文字列を書式化する(書式を割り当てる)。この関数は、入力としてメッセージ定義を受け取る。メッセージ定義は、この関数に渡すバッファ経由で渡すことができる。代わりに、ロード済みのモジュール内のメッセージテーブルリソースを使うよう指示することもできる。または、システムのメッセージテーブルリソースからメッセージ定義を検索するよう指示することもできる。この関数は、メッセージ識別子と言語識別子に基づいて、メッセージテーブルリソース内のメッセージ定義を検索する。要求に応じて、埋め込まれた挿入シーケンスを処理し、書式化されたメッセージテキストを出力バッファへコピーする。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
パラメータ dwFlags の下位バイト(low-order byte)は、この関数がメッセージ定義テキスト内の改行記号を出力バッファへ反映する方法
(2 番目の表)を指定する。また、下位バイトで、書式化後の出力行の最大幅を指定することもできる。
dwFlags パラメータの下位バイトで、書式化が終わった出力対象のメッセージの 1 行の長さの最大値を指定できる。
この最大値の幅の設定と取得を行うには、FORMAT_MESSAGE_MAX_WIDTH_MASK 値とビット単位の Bool 演算を利用する。
dwFlags パラメータで、前記の 2 つのフラグのどちらも指定されていなかった場合、lpSource
パラメータは無視される。
wFlags パラメータで FORMAT_MESSAGE_FROM_STRING フラグを指定した場合は、dwMessageId
パラメータは無視される。
dwFlags パラメータで FORMAT_MESSAGE_FROM_STRING フラグを指定した場合は、dwLanguageId
パラメータは無視される。 LANGID に一致するメッセージが見つからなかった場合、ERROR_RESOURCE_LANG_NOT_FOUND が返る。
このパラメータで 0 を指定すると、FormatMessage は次の順序で、メッセージ指定に使う LANGID を参照する。
返す。そのような文字列も見つからなかった場合は、ERROR_RESOURCE_LANG_NOT_FOUND を返す。 される。dwFlags パラメータで FORMAT_MESSAGE_ALLOCATE_BUFFER フラグを指定した場合、この関数は LocalAlloc 関数を使っ
て 1 個のバッファを割り当て、lpBuffer で指定されたアドレスに、そのバッファへのポインタを書き込む。 に格納できる最大の文字数を TCHAR 単位で指定する。dwFlags パラメータで FORMAT_MESSAGE_ALLOCATE_BUFFER フラグを
指定した場合は、出力バッファに割り当てる最小の文字数を TCHAR 単位で指定する。
書式文字列の %1 は Arguments 配列の最初の要素、、%2 は次の要素を意味する。以下同様。
既定では、各値を、NULL で終わる文字列へのポインタとして扱う。 va_list* 型へのポインタを用意していない場合は、FORMAT_MESSAGE_ARGUMENT_ARRAY フラグを指定し、複数の値からなる 1 つの配列へのポインタを渡す。これらの値は、書式化対象のメッセージへの入力として扱われ、挿入シーケンスの役割を果たす。
配列内に、各挿入シーケンスに対応する要素が存在していなければならない。 |