GetPrivateProfileInt

指定された .ini ファイル(初期化ファイル)の指定されたセクション内にある、指定されたキーに関連付けられている整数を取得します。

注意  この関数は、16 ビット Windows ベースのアプリケーションとの互換性を保つ目的でのみ提供されています。Win32 ベースのアプリケーションでは、初期化情報をレジストリに格納してください。

UINT GetPrivateProfileInt(
  LPCTSTR lpAppName,  // セクション名
  LPCTSTR lpKeyName,  // キー名
  INT nDefault,       // キー名が見つからなかった場合に返すべき値
  LPCTSTR lpFileName  // .ini ファイルの名前
);

パラメータ

lpAppName
.ini ファイル内のセクションの名前を保持している、NULL で終わる文字列へのポインタを指定します。
lpKeyName
キーの名前を保持している、NULL で終わる文字列へのポインタを指定します。この関数は、このキーの値を取得します。各キーの値は、文字列形式です。GetPrivateProfileInt 関数は、この文字列を整数へ変換し、その整数を返します。
nDefault
指定したキーが .ini ファイル内で見つからなかったときに返すべき、既定の値を指定します。
lpFileName
初期化ファイルの名前を保持している、NULL で終わる文字列へのポインタを指定します。ファイルのフルパス名を指定しなかった場合、システムは Windows ディレクトリ内でこのファイルを検索します。

戻り値

関数が成功すると、指定した .ini ファイルの指定したセクション内にある、指定したキーに関連付けられている文字列に相当する整数が返ります。指定したキーが見つからない場合、nDefault パラメータで指定した既定の値が返ります。キーの値が負の場合、0 が返ります。

解説

この関数は、lpAppName パラメータで指定されたセクションの中で、lpKeyName パラメータで指定された名前に一致する 1 個のキーを検索します。.ini ファイル内の各セクションは、次のような形式で記述してください。

[section]
key=value
      .
      .
      .

GetPrivateProfileInt 関数は、大文字と小文字を区別しません。lpAppName lpKeyName の各パラメータが指す文字列では、大文字と小文字の任意の組み合わせを指定できます。

アプリケーションは GetProfileInt 関数を使うと、Win.ini ファイルから整数を取得できます。

Windows NT/2000:特定の .ini ファイルを使う代わりに、プライベートプロファイル関数をレジストリへマッピングすることもできます。レジストリの次のキーで .ini ファイルとセクションを指定すると、このようなマッピングが発生します。

HKEY_LOCAL_MACHINE\Software\Microsoft\
        Windows NT\CurrentVersion\IniFileMapping

アプリケーションが、Control.ini、System.ini、Winfile.ini のようなシステムコンポーネントの .ini ファイルを変更する場合に、一般的にこのマッピングを行います。このような状況では、GetPrivateProfileInt 関数は .ini ファイルではなくレジストリから情報を取得します。情報の格納場所(取得元)が .ini ファイルからレジストリになっても、この関数の動作に変化はありません。

Win32 のプロファイル関数(Get/WriteProfile* Get/WritePrivateProfile*)は、次の手順に従って初期化情報を検索します。

1.Win32 のプロファイル関数は、レジストリの IniFileMapping キーの中で、指定された .ini ファイル、たとえば myFile.ini を検索します。

HKEY_LOCAL_MACHINE\Software\Microsoft\
        Windows NT\CurrentVersion\IniFileMapping\myfile.ini

2.lpAppName パラメータで指定されたセクション名を検索します。このセクション名が見つかった場合、そのセクション名は、myfile.ini ファイル内の名前付きの値(エントリ)、または myfile.ini のサブキーです。ほかに、このセクション名が見つからないこともあります。

3.lpAppName パラメータで指定したセクション名が myfile.ini 内の名前付きの値である場合、その値が示すレジストリ内の特定の場所(マップ先)で、そのセクションに所属するキーの検索を行います。

4.lpAppName パラメータで指定したセクション名が myfile.ini のサブキーである場合、そのサブキー内の名前付きの値が示すレジストリ内の特定の場所(マップ先)で、キーの検索を行います。検索対象のキーが名前付きの値として存在していない場合、名前なしの値(<No Name>、日本語版では <名前なし>)が示すレジストリ内の既定の場所で、キーの検索を行います。

5.lpAppName パラメータで指定したセクション名が、myfile.ini 内の名前付きの値としてもサブキーとしても存在していない場合、myfile.ini 内の名前なしの値(<No Name>、日本語版では <名前なし>)が示すレジストリ内の既定の場所で、そのセクションに所属するキーの検索を行います。

6.myfile.ini 内にサブキーが存在せず、指定したセクション名に対応するエントリも存在しない場合は、ディスク上で実際の myfile.ini ファイルを検索し、その内容を読み取ります。

レジストリ内の特定のレジストリエントリが、レジストリ内の他の場所を指定している場合、次の各プレフィックスは、.ini ファイルのマッピングの動作方法に変更を加えます。

レジストリエディタ(Regedt32.exe または Regedit.exe)は、ここで言う「レジストリエントリ」を「値」(英語版は Value)と呼んでいます。どちらも同じものを意味していて、「名前」(レジストリエントリ名)と「データ」(レジストリエントリのデータ)で構成されています。

•! - すべての変更結果を、レジストリとディスク上のファイルの両方へ書き込みます。

•# - セットアップ後に新しいユーザーが初めてログオンする際に、Windows 3.1 の .ini ファイルの値に合わせて、レジストリエントリのデータを設定します。

•@ - 要求された値がレジストリ内に見つからない場合、ディスク上の .ini ファイルからその値を読み取りません。

•USR: - このプレフィックスは、HKEY_CURRENT_USER を意味します。それ以降のテキストは、このキーを基準とする相対キーを意味します。

•SYS: - このプレフィックスは、HKEY_LOCAL_MACHINE\SOFTWARE を意味します。それ以降のテキストは、このキーを基準とする相対キーを意味します。

対応情報

Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winbase.h 内で宣言、Windows.h をインクルード
インポートライブラリ:Kernel32.lib を使用
Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装

参照

GetProfileInt, WritePrivateProfileString

表示: