The WritePrivateProfileSection function replaces the keys and values under the specified section in an initialization file.
This function is provided for compatibility with 16-bit Windows-based applications. Win32-based applications should store initialization information in the registry.
BOOL WritePrivateProfileSection(
LPCTSTR lpAppName, // pointer to string with section name
LPCTSTR lpString, // pointer to string with data
LPCTSTR lpFileName // pointer to string with filename
);
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
The data in the buffer pointed to by the lpString parameter consists of one or more null-terminated strings, followed by a final null character. Each string has the following form:
key=string
The WritePrivateProfileSection function is not case-sensitive; the string pointed to by the lpAppName parameter can be a combination of uppercase and lowercase letters.
If no section name matches the string pointed to by the lpAppName parameter, WritePrivateProfileSection creates the section at the end of the specified initialization file and initializes the new section with the specified key name and value pairs.
WritePrivateProfileSection deletes the existing keys and values for the named section and inserts the key names and values in the buffer pointed to by the lpString parameter. The function does not attempt to correlate old and new key names; if the new names appear in a different order from the old names, any comments associated with preexisting keys and values in the initialization file will probably be associated with incorrect keys and values.
This operation is atomic; no operations that read from or write to the specified initialization file are allowed while the information is being written.
Windows 95: Windows 95 keeps a cached version of WIN.INI to improve performance. If all three parameters are NULL, the function flushes the cache. The function always returns FALSE after flushing the cache, regardless of whether the flush succeeds or fails.
Windows NT: Windows NT maps most .INI file references to the registry, using the mapping defined under the following registry key:
HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows NT\CurrentVersion\IniFileMapping
This mapping is likely if an application modifies system-component initialization files, such as CONTROL.INI, SYSTEM.INI, and WINFILE.INI. In this case, the WritePrivateProfileSection function writes information to the registry, not to the initialization file; the change in the storage location has no effect on the function's behavior.
The Win32 profile functions (Get/WriteProfile*, Get/WritePrivateProfile*) use the following steps to locate initialization information:
HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows NT\CurrentVersion\IniFileMapping\myfile.ini
When looking at values in the registry that specify other registry locations, there are several prefixes that change the behavior of the .INI file mapping:
Registry Overview, Registry Functions, GetPrivateProfileSection, RegCreateKeyEx, RegSetValueEx, WriteProfileSection