次の方法で共有


GetPrivateProfileStructA 関数 (winbase.h)

初期化ファイルの指定したセクションのキーに関連付けられているデータを取得します。 データを取得するときに、関数はチェックサムを計算し、データがファイルに追加されたときに WritePrivateProfileStruct 関数によって計算されたチェックサムと比較します。

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

構文

BOOL GetPrivateProfileStructA(
  [in]  LPCSTR lpszSection,
  [in]  LPCSTR lpszKey,
  [out] LPVOID lpStruct,
  [in]  UINT   uSizeStruct,
  [in]  LPCSTR szFile
);

パラメーター

[in] lpszSection

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

[in] lpszKey

データを取得するキーの名前。

[out] lpStruct

ファイル、セクション、およびキー名に関連付けられたデータを受け取るバッファーへのポインター。

[in] uSizeStruct

lpStruct パラメーターが指すバッファーのサイズ (バイト単位)。

[in] szFile

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

戻り値

関数が成功した場合、戻り値は 0 以外です。

関数が失敗した場合、戻り値は 0 です。

備考

初期化ファイルのセクションは、次の形式である必要があります。

[section]
key=data
      .
      .
      .

システムは、microsoftWindows NTCurrentVersionIniFileMappingHKEY_LOCAL_MACHINESOFTWARE で定義されているマッピングを使用して、ほとんどの .ini ファイル参照をレジストリにマップします。

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

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

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

手記

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

必要条件

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

関連項目

WritePrivateProfileStruct の