次の方法で共有


GetProfileSectionA 関数 (winbase.h)

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

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

構文

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 関数は、初期化ファイルからではなく、レジストリから情報を取得します。ストレージの場所の変更は、関数の動作には影響しません。

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

  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を表し、プレフィックスの後のテキストはそのキーに対して相対的です。

手記

winbase.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetProfileSection を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winbase.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

GetPrivateProfileSection を する

WriteProfileSection の