<Return[G]><Top>

GetPrivateProfileString

Declare Function Api_GetPrivateProfileString& Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName$, ByVal lpKeyName As Any, ByVal lpDefault$, ByVal lpBuffurnedString$, ByVal nSize&, ByVal lpFileName$)

Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

指定された .ini ファイル(初期化ファイル)の指定されたセクション内にある、指定されたキーに関連付けられている文字列を取得する。
この関数は、16 ビット Windows ベースのアプリケーションとの互換性を保つ目的でのみ提供されている。Win32 ベースのアプリケーションでは、初期化情報をレジストリに格納する。

パラメータ
lpAppName
    目的のキーが所属しているセクションの名前を保持している、NULL で終わる文字列へのポインタを指定する。

    NULL を指定すると、この関数は、lpFileName パラメータで指定したファイル内のすべてのセクション名をバッファへコピーする。
lpKeyName
    1 個のキーの名前を保持している、NULL で終わる文字列へのポインタを指定する。

    このキーに関連付けられている文字列が、バッファに格納される。

    NULL を指定すると、この関数は、lpAppName パラメータで指定したセクション内にあるすべてのキー名を、lpReturnedString パラメータ

    で指定したバッファに格納する。
lpDefault
    NULL で終わる既定の文字列へのポインタを指定する。

    lpKeyName パラメータで指定したキーが .ini ファイル内に見つからなかった場合、GetPrivateProfileString 関数はこの既定の文字列を、

    lpReturnedString パラメータが指すバッファへコピーする。lpDefault パラメータで NULL を指定することはできない。
    半角スペースで終わる文字列を既定の文字列として指定することは避けること。

    この関数は、lpReturnedString パラメータが指すバッファへ文字列をコピーする際に、文字列の最後に NULL を追加するが、このとき、

    文字列の最後にある任意の数の半角スペースは削除される。
    Windows 95:lpDefault は定数パラメータ(LPTSTR ではなく LPCTSTR)と宣言されているが、システムは lpDefault パラメータが指す

    文字列に NULL を追加した上で、lpReturnedString パラメータが指すバッファへこの文字列をコピーすることにより、文字列の最後にある

    任意の数の半角スペースを削除する。
    Windows NT/2000:システムは、lpDefault パラメータが指す文字列に変更を加えない。

    既定の文字列の最後に半角スペースが存在する場合、lstrcmp 関数を使って lpReturnedString と lpDefault の各文字列を比較すると、

    これらの文字列が一致しないことを意味する。
lpReturnedString
    1 個のバッファへのポインタを指定する。関数から制御が返ると、このバッファに、取得した文字列が格納される。
nSize
    lpReturnedString パラメータが指すバッファのサイズを、TCHAR 単位で指定する。
lpFileName
    .ini ファイルの名前を保持している、NULL で終わる文字列へのポインタを指定する。

    ファイルのフルパス名を指定しなかった場合、システムは Windows ディレクトリ内でこのファイルを検索する。
 

戻り値
    関数が成功すると、バッファに格納された文字数が返る(終端の NULL 文字は含まない)。
    lpAppName と lpKeyName パラメータのどちらも NULL ではない場合、バッファのサイズが不足して、要求された文字列全体を格納でき

    ないと、文字列は途中で切り捨てられ、最後に 1 個の NULL 文字が追加され、戻り値は nSize-1 の値になる。
    lpAppName または lpKeyName パラメータのどちらかが NULL の場合、バッファのサイズが不足して、要求された文字列全体を格納でき

    ないと、文字列は途中で切り捨てられ、最後に 2 個の NULL 文字が追加され、戻り値は nSize-2 の値になる。