<Return[G]><Top>

GetProfileString

Declare Function Api_GetProfileString& Lib "Kernel32" Alias "GetProfileStringA" (ByVal lpAppName$, ByVal lpKeyName$, ByVal lpDefault$, ByVal lpReturnedString$, ByVal nSize&)

Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long

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

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

    NULL を指定すると、この関数は、ファイル内のすべてのセクション名をバッファへコピーする。

    各セクション名の後に NULL が追加される。バッファの最後に、もう 1 つの NULL が追加される。
lpKeyName
    1 個のキーの名前を保持している、NULL で終わる文字列へのポインタを指定する。

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

    NULL を指定すると、この関数は、lpAppName パラメータで指定されたセクション内にあるすべてのキー名をバッファへコピーする。

    各キー名の後に NULL が追加される。最後のキー名の後に、もう 1 つ NULL が追加される。
lpDefault
    NULL で終わる文字列へのポインタを指定する。lpKeyName パラメータで指定したキーが .ini ファイル内に見つからなかった場合、

    GetProfileString 関数はこの既定の文字列を、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 単位で指定する。
 

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

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

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