GetPrivateProfileSection 関数 (winbase.h)

初期化ファイルの指定したセクションのすべてのキーと値を取得します。

メモ この関数は、Windows 用に記述された 16 ビット アプリケーションとの互換性のためにのみ提供されます。 アプリケーションでは、レジストリに初期化情報を格納する必要があります。
 

構文

DWORD GetPrivateProfileSection(
  [in]  LPCTSTR lpAppName,
  [out] LPTSTR  lpReturnedString,
  [in]  DWORD   nSize,
  [in]  LPCTSTR lpFileName
);

パラメーター

[in] lpAppName

初期化ファイル内のセクションの名前。

[out] lpReturnedString

名前付きセクションに関連付けられているキー名と値のペアを受け取るバッファーへのポインター。 バッファーには、1 つ以上の null で終わる文字列が格納されます。最後の文字列の後に 2 番目の null 文字が続きます。

[in] nSize

lpReturnedString パラメーターが指すバッファーのサイズ (文字数)。

プロファイル セクションの最大サイズは 32,767 文字です。

[in] lpFileName

初期化ファイルの名前。 このパラメーターにファイルへの完全なパスが含まれていない場合、システムは Windows ディレクトリ内のファイルを検索します。

戻り値

戻り値は、終端の null 文字を含まない、バッファーにコピーされる文字数を指定します。 バッファーが、名前付きセクションに関連付けられているすべてのキー名と値のペアを含むのに十分な大きさでない場合、戻り値は nSize から 2 を引いた値と等しくなります。

注釈

lpReturnedString パラメーターが指すバッファー内のデータは、1 つ以上の null で終わる文字列で構成され、その後に最後の null 文字が続きます。 各文字列の形式は次のとおりです。

キー=文字列

GetPrivateProfileSection 関数では、大文字と小文字は区別されません。lpAppName パラメーターが指す文字列は、大文字と小文字の組み合わせにすることができます。

この操作はアトミックです。セクションのキー名と値のペアが lpReturnedString パラメーターが指すバッファーにコピーされている間は、指定された初期化ファイルの更新は許可されません。

システムは、次のレジストリ キーで定義されているマッピングを使用して、ほとんどの .ini ファイル参照をレジストリにマップします:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping

このマッピングは、アプリケーションがシステム コンポーネントの初期化ファイル (Control.ini、System.ini、Winfile.ini など) を変更する場合に発生する可能性があります。 このような場合、関数は初期化ファイルからではなく、レジストリから情報を取得します。ストレージの場所の変更は、関数の動作には影響しません。

プロファイル関数では、次の手順を使用して初期化情報を検索します。

  1. IniFileMapping キーの下にある初期化ファイルの名前をレジストリで確認します。
  2. lpAppName で指定されたセクション名を探します。 これは、初期化ファイルの名前を持つキーの下の名前付き値、またはこの名前のサブキーであるか、値またはサブキーとして名前が存在しません。
  3. lpAppName で指定されたセクション名が名前付き値の場合、その値はレジストリ内のセクションのキーを検索する場所を指定します。
  4. lpAppName で指定されたセクション名がサブキーの場合、そのサブキーの下の名前付き値は、レジストリ内のセクションのキーを検索する場所を指定します。 探しているキーが名前付き値として存在しない場合は、キーを検索するレジストリ内の既定の場所を指定する名前のない値 (名前>なし)< が表示されます。
  5. lpAppName で指定されたセクション名が名前付き値またはサブキーとして存在しない場合は、レジストリ内の既定の場所を指定する名前のない値 (名前>なし)< があります。この値は、セクションのキーを検索します。
  6. セクション名のサブキーまたはエントリがない場合は、ディスク上の実際の初期化ファイルを探し、その内容を読み取ります。
他のレジストリの場所を指定するレジストリ内の値を見ると、.ini ファイル マッピングの動作を変更するプレフィックスがいくつかあります。
  • ! - この文字により、すべての書き込みがレジストリとディスク上の .ini ファイルの両方に強制的に移動されます。
  • # - この文字により、新しいユーザーがセットアップ後に初めてログインしたときに、レジストリ値が Windows 3.1 .ini ファイルの値に設定されます。
  • @ - この文字は、要求されたデータがレジストリに見つからない場合、ディスク上の .ini ファイルに読み取りが行われるのを防ぎます。
  • USR: - このプレフィックスは HKEY_CURRENT_USERを表し、プレフィックスの後のテキストはそのキーを基準にしています。
  • SYS: - このプレフィックスは HKEY_LOCAL_MACHINE\SOFTWAREを表し、プレフィックスの後のテキストはそのキーを基準にしています。
コメント (セミコロンで始まる行) は削除され、 lpReturnedString バッファーでは返されません。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

GetPrivateProfileSectionNames

GetProfileSection

WritePrivateProfileSection