GetProfileSectionA 関数 (winbase.h)
Win.ini ファイルの指定したセクションのすべてのキーと値を取得します。
構文
DWORD GetProfileSectionA(
[in] LPCSTR lpAppName,
[out] LPSTR lpReturnedString,
[in] DWORD nSize
);
パラメーター
[in] lpAppName
Win.ini ファイル内のセクションの名前。
[out] lpReturnedString
名前付きセクションに関連付けられているキーと値を受け取るバッファーへのポインター。 バッファーには、1 つ以上の null で終わる文字列が格納されます。最後の文字列の後に 2 番目の null 文字が続きます。
[in] nSize
lpReturnedString パラメーターが指すバッファーのサイズ (文字数)。
プロファイル セクションの最大サイズは 32,767 文字です。
戻り値
戻り値は、終端の null 文字を含まない、指定されたバッファーにコピーされる文字数を指定します。 バッファーが、名前付きセクションに関連付けられているすべてのキーと値を格納するのに十分な大きさでない場合、戻り値は nSize で指定されたサイズから 2 を引いたサイズと等しくなります。
注釈
返されるキーと値の形式は、1 つ以上の null で終わる文字列の後に最後の null 文字が続きます。 各文字列の形式は次のとおりです。 キー=文字列
GetProfileSection 関数では、大文字と小文字は区別されません。文字列には、大文字と小文字を組み合わせて使用できます。
この操作はアトミックです。セクションのキーと値がバッファーにコピーされている間、Win.ini ファイルの更新は許可されません。
Windows Server 2003 および Windows XP/2000: プロファイル関数の呼び出しは、初期化ファイルではなくレジストリにマップできます。 このマッピングは、初期化ファイルとセクションがレジストリで次のキーの下に指定されている場合に発生します: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping。
操作がマップされると、 GetProfileSection 関数は初期化ファイルからではなく、レジストリから情報を取得します。ストレージの場所の変更は、関数の動作には影響しません。
プロファイル関数では、次の手順を使用して初期化情報を検索します。
- IniFileMapping キーの下にある初期化ファイルの名前をレジストリで確認します。
- lpAppName で指定されたセクション名を探します。 これは、初期化ファイルの名前を持つキーの下の名前付き値、またはこの名前のサブキーであるか、値またはサブキーとして名前が存在しません。
- lpAppName で指定されたセクション名が名前付き値の場合、その値はレジストリ内のセクションのキーを検索する場所を指定します。
- lpAppName で指定されたセクション名がサブキーの場合、そのサブキーの下の名前付き値は、レジストリ内のセクションのキーを検索する場所を指定します。 探しているキーが名前付き値として存在しない場合は、キーを検索するレジストリ内の既定の場所を指定する名前のない値 (名前>なし)< が表示されます。
- lpAppName で指定されたセクション名が名前付き値またはサブキーとして存在しない場合は、レジストリ内の既定の場所を指定する名前のない値 (名前>なし)< があります。この値は、セクションのキーを検索します。
- セクション名のサブキーまたはエントリがない場合は、ディスク上の実際の初期化ファイルを探し、その内容を読み取ります。
- ! - この文字により、すべての書き込みがレジストリとディスク上の .ini ファイルの両方に強制的に移動されます。
- # - この文字により、新しいユーザーがセットアップ後に初めてログインしたときに、レジストリ値が Windows 3.1 .ini ファイルの値に設定されます。
- @ - この文字は、要求されたデータがレジストリに見つからない場合、ディスク上の .ini ファイルに読み取りが行われるのを防ぎます。
- USR: - このプレフィックスは HKEY_CURRENT_USERを表し、プレフィックスの後のテキストはそのキーを基準にしています。
- SYS: - このプレフィックスは HKEY_LOCAL_MACHINE\SOFTWAREを表し、プレフィックスの後のテキストはそのキーを基準にしています。
注意
winbase.h ヘッダーは、GetProfileSection をエイリアスとして定義します。このエイリアスは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |