WritePrivateProfileSectionA 関数 (winbase.h)
初期化ファイル内の指定したセクションのキーと値を置き換えます。
構文
BOOL WritePrivateProfileSectionA(
[in] LPCSTR lpAppName,
[in] LPCSTR lpString,
[in] LPCSTR lpFileName
);
パラメーター
[in] lpAppName
データが書き込まれるセクションの名前。 このセクション名は、通常、呼び出し元アプリケーションの名前です。
[in] lpString
名前付きセクションに書き込まれる新しいキー名と関連する値。 この文字列は 65,535 バイトに制限されています。
[in] lpFileName
初期化ファイルの名前。 このパラメーターにファイルの完全なパスが含まれていない場合、関数は Windows ディレクトリでファイルを検索します。 ファイルが存在せず、lpFileName
ファイルが存在し、Unicode 文字を使用して作成された場合、この関数は Unicode 文字をファイルに書き込みます。 それ以外の場合、関数は ANSI 文字を使用してファイルを作成します。
戻り値
関数が成功した場合、戻り値は 0 以外です。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
備考
lpString パラメーターが指すバッファー内のデータは、1 つ以上の null-terminated 文字列の後に、最後の null 文字で構成されます。 各文字列の形式は次のとおりです。
キー
WritePrivateProfileSection 関数では大文字と小文字は区別されません。lpAppName パラメーターが指す文字列は、大文字と小文字の組み合わせにすることができます。
lpAppName パラメーターが指す文字列と一致するセクション名がない場合、WritePrivateProfileSection は、指定した初期化ファイルの末尾にセクションを作成し、指定したキー名と値のペアを使用して新しいセクションを初期化します。
WritePrivateProfileSection
この操作はアトミックです。情報の書き込み中に、指定された初期化ファイルに対する読み取りまたは書き込みを行う操作は許可されません。
システムは、パフォーマンスを向上させるために、最新のレジストリ ファイル マッピングのキャッシュされたバージョンを保持します。 すべてのパラメーターが NULL
システムは、次のレジストリ キーで定義されたマッピングを使用して、ほとんどの .ini ファイル参照をレジストリにマップします。
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion IniFileMapping
このマッピングは、アプリケーションがシステム コンポーネントの初期化ファイル (Control.ini、System.ini、Winfile.iniなど) を変更する場合に発生する可能性があります。 この場合、関数は初期化ファイルではなくレジストリに情報を書き込みます。ストレージの場所の変更は、関数の動作には影響しません。
プロファイル関数では、次の手順を使用して初期化情報を検索します。
- IniFileMapping キーの下にある初期化ファイルの名前をレジストリで探します。
- lpAppNameで指定
セクション名を探します。 これは、初期化ファイルの名前を持つキーの下の名前付き値、またはこの名前のサブキーになります。または、名前が値またはサブキーとして存在しません。 - lpAppName
で指定されたセクション名が名前付き値の場合、その値はレジストリ内のセクションのキーを検索する場所を指定します。 - lpAppName で指定されたセクション名がサブキーの場合、そのサブキーの下の名前付き値は、レジストリ内のどこにセクションのキーを見つけるかを指定します。 探しているキーが名前付き値として存在しない場合は、キーを検索するレジストリの既定の場所を指定する名前のない値 (<名前なし>と表示されます)。
- lpAppName で指定されたセクション名が名前付き値またはサブキーとして存在しない場合は、名前のない値 (<名前なし>として表示) があり、この値は、セクションのキーを検索するレジストリ内の既定の場所を指定します。
- セクション名のサブキーまたはエントリがない場合は、ディスク上の実際の初期化ファイルを探し、その内容を読み取ります。
- ! - この文字により、すべての書き込みがレジストリとディスク上の .ini ファイルの両方に強制的に移動します。
- # - この文字により、新しいユーザーがセットアップ後に初めてログインしたときに、Windows 3.1 .ini ファイルの値にレジストリ値が設定されます。
- @ - この文字は、要求されたデータがレジストリに見つからない場合に、ディスク上の .ini ファイルへの読み取りを禁止します。
- USR: - このプレフィックスは HKEY_CURRENT_USERを表し、プレフィックスの後のテキストはそのキーに対して相対的です。
- SYS: - このプレフィックスは HKEY_LOCAL_MACHINE\SOFTWAREを表し、プレフィックスの後のテキストはそのキーに対して相対的です。
手記
winbase.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして WritePrivateProfileSection を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winbase.h (Windows.h を含む) |
ライブラリ | Kernel32.lib |
DLL | Kernel32.dll |
関連項目
GetPrivateProfileSection を
RegCreateKeyEx の
RegSetValueEx を
WriteProfileSection の