指定したエラーコードに対応するエラーメッセージ文字列を取得します。
lpSource
dwMessageId
dwLanguageId
lpBuffer
nSize
Arguments
戻り値
文字列のバイト数が返ります。
環境情報
インクルード ファイル: api_system.sbp 内で定義済み
サンプル
定義
Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" _
(dwFlags As DWord, _
lpSource As VoidPtr, _
dwMessageId As DWord, _
dwLanguageId As DWord, _
lpBuffer As BytePtr, _
nSize As DWord, _
Arguments As DWordPtr) As DWord
dwFlags
オプションフラグを、以下の定数の組み合わせで指定します。
定数 説明 FORMAT_MESSAGE_ALLOCATE_BUFFER FormatMessage関数に、エラーメッセージを格納するための文字列バッファの確保を要求します。このフラグを指定した場合、lpBuffer パラメータには、文字列ポインタへのポインタを指定します。また、このフラグにより取得したバッファが不要になったときは、LocalFree関数でメモリから解放する必要があります。 FORMAT_MESSAGE_IGNORE_INSERTS Arguments パラメータを無視します。 FORMAT_MESSAGE_FROM_STRING lpSource パラメータを有効にします。lpSource パラメータでは、NULLで終わる文字列を指定します。FORMAT_MESSAGE_FROM_HMODULE、FORMAT_MESSAGE_FROM_SYSTEM と同時に指定することはできません。 FORMAT_MESSAGE_FROM_HMODULE lpSource パラメータを有効にし、メッセージ定義リソースを使用するようにします。lpSource パラメータには、モジュールハンドルを指定します。FORMAT_MESSAGE_FROM_SYSTEM と同時に指定することはできません。 FORMAT_MESSAGE_FROM_SYSTEM システム定義のメッセージを取得します。 FORMAT_MESSAGE_ARGUMENT_ARRAY Arguments パラメータを、32ビット値の配列へのポインタとします。
FORMAT_MESSAGE_FROM_STRING フラグを指定したときは、NULL で終わる文字列へのポインタを指定します。
FORMAT_MESSAGE_FROM_HMODULE フラグを指定したときは、モジュールハンドルを指定します。
それ以外の場合は無視されます。
メッセージID(エラーコード)を指定します。エラーコードを取得するには、GetLastError関数を使用します。
言語IDを指定します。現在のユーザーのデフォルトの言語を使用する場合は、LANG_USER_DEFAULT を指定します。
メッセージを格納するたのバッファへのポインタを指定します。
FORMAT_MESSAGE_ALLOCATE_BUFFER フラグを指定したときは、バッファポインタへのポインタを指定します。
lpBuffer パラメータで指定したバッファのサイズを指定します。
FORMAT_MESSAGE_ALLOCATE_BUFFER フラグを指定したときは、FormatMessage関数に割り当てさせるバッファの最小サイズを指定します。
挿入句を、32ビット値の配列へのポインタとして指定します。
DLLファイル: kernel32.dll'lpMsgBufにエラーメッセージが格納されます。
Dim lpMsgBuf As BytePtr
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS, _
NULL, _
GetLastError(), _
LANG_USER_DEFAULT, _
VarPtr(lpMsgBuf), _
0, _
NULL)
MessageBox(0,lpMsgBuf,"Error msg",MB_OK)
LocalFree(lpMsgBuf)
GetLastError関数