WritePrivateProfileStruct

【勇芳软件工作室】汉化HomePreviousNext

WritePrivateProfileStruct函数将数据复制到初始化文件的给定部分中的指定键中。当它复制数据时,该函数计算校验和并将其附加到数据的末尾。GetPrivateProfileStruct功能使用校验和来确保数据的完整性。此函数用于与16位基于Windows的应用程序兼容。基于Win32的应用程序应该将初始化信息存储在注册表中。

BOOL WritePrivateProfileStruct(

LPCTSTR【lpszSection】,//指向节名的指针
LPCTSTR【lpszKey】,//指向键名的指针
LPVOID【定义了与值名称一起使用的以下控制代码。】,//指向包含要添加的数据的缓冲区的指针
UINT【uSizeStruct】,//缓冲区的大小(以字节为单位)
LPCTSTR【szFile】//指向初始化文件名??的指针
); 

参数

【lpszSection】

指向一个以null结束的字符串,其中包含要复制字符串的部分的名称。如果该部分不存在,则创建它。该部分的名称是不区分大小写的,字符串可以是大写和小写字母的任何组合。

【lpszKey】

指向空字符串的字符串,其中包含与字符串关联的键的名称。如果该键在指定的部分不存在,则创建它。如果此参数为NULL,则整个部分(包括该部分中的所有键和条目)都将被删除。

【定义了与值名称一起使用的以下控制代码。】

指向包含要复制的数据的缓冲区。如果此参数为NULL,则给定的键将被删除。

【uSizeStruct】

指定由【定义了与值名称一起使用的以下控制代码。】参数指向的缓冲区的大小(以字节为单位)。

【szFile】

指向以空值终止的字符串,用于命名初始化文件。如果此参数为NULL,则将给定的信息复制到WIN.INI文件中。

返回值

如果函数成功将该字符串复制到初始化文件,则返回值不为零。

如果函数失败,或者如果它刷新最近访问的初始化文件的缓存版本,则返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

Windows 95保留WIN.INI的缓存版本,以提高性能。如果所有三个参数都为NULL,则该函数将刷新缓存。刷新缓存后,函数总是返回FALSE,无论刷新是成功还是失败。

初始化文件中的一个部分必须具有以下形式:

[section]
key=string
.
.
.

如果【szFile】参数不包含文件的完整路径和文件名,WritePrivateProfileString将在Windows目录中搜索该文件。如果文件不存在,则此函数将在Windows目录中创建该文件。

如果【szFile】包含完整的路径和文件名,并且文件不存在,则WriteProfileString将创建该文件。指定的目录必须已经存在。

Win32配置文件功能(Get/WriteProfile*Get/WritePrivateProfile*)使用以下步骤来定位初始化信息:

1.在注册表中的初始化文件的名称,说myfile.ini,在IniFileMapping下:

HKEY_LOCAL_MACHINE\软件\微软\
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下的子项,那么在我的文件下将会有一个未命名的值(如“< No Name >”)) .ini,它指定注册表中的默认位置,您可以在其中找到该部分的键。

6.如果没有myfile.ini的子项,或者没有条目名称的条目,那么在磁盘上查找实际的myfile.ini并读取其内容。

当查看注册表中指定其他注册表位置的值时,有几个前缀可以更改ini文件映射的行为:

! - 这个字符强制所有的写入都到磁盘上的注册表和.INI文件。

# - 当新用户在安装后首次登录时,此字符会使注册表值设置为Windows 3.1 .INI文件中的值。

@ - 如果在注册表中找不到所请求的数据,则此字符可防止任何读取到磁盘上的.INI文件。

USR: - 此前缀代表HKEY_CURRENT_USER,前缀后面的文本与该键相关。

SYS: - 此前缀代表HKEY_LOCAL_MACHINE \\ SOFTWARE,前缀后的文本与该键相关。

也可以看看

GetPrivateProfileString, WriteProfileString