Файлы инициализации. Структура файла инициализации, страница 7

соответственнр) буфер заполняется списком строк, завершающихся нулевыми символами, причем последняя строка завершается не одним, а двумя такими символами.

dwBuffer

DWORD: Размер буфера IpszReturnBuffer, в который поступают данные.

Возвращаемое значение

DWORD: Если выполнение рассматриваемой функции оказывается успешным, в буфер копируется определенное количество символов, за исключением нулевого. Если же размер буфера слишком мал для размещения запрашиваемого значения ключа, возвращается значение dwBuffer-1. Если размер буфера слишком мал для размещения возвращаемых имен всех разделов или ключей (при установке значения NULL параметра IpszSectionName или IpszKeyName, соответственно), возвращается dwBuffer-2.

Включаемьде , файл

win base, h

См. также

WriteProfileString, GetPrivateProfileString, GetProfilelnt

Пример

В приведенном ниже примере программы изменяются параметры настройки коммуникационного порта СОМ 1 . Когда пользователь выбирает опцию Test!, параметры настройки порта СОМ1 временно изменяются. По завершении программы параметры настройки возвращаются к первоначальным значениям. Результат выполнения этой программы показан на рис. 20.4.

См.    \local-sources\chap20\20-07.txt

WritePrivateProfileSection              Windows 98   * Windows 2000

Описание

Функция WritePrivateProfileSection сохраняет ряд строк присвоения значений ключам в указанном разделе приватного профильного файла. Эти строки присвоения значений ключам заменяют содержимое данного раздела. Значения ключей, которые существуют в этом разделе, но не входят в список хранящихся в буфере элементов, просто удаляются.

Синтаксис

BOOL WritePrivateProfiIeSection(LPCTSTR IpszSectionName, LPCTSTR IpszSectionData, LPCTSTR Ipszlni File Name)

Параметры

IpszSectionName

LPCTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую имя раздела. Если имя данного раздела в указанном INI-фай-ле отсутствует, такой раздел создается.

IpszSectionData

LPCTSTR: Указатель на буфер, который содержит ключи и значения, сохраняемые в данном разделе. Содержимое этого буфера составляет список строк, завершающихся нулевыми символами и представленных в следующей форме присвоения значений ключам: ключ=значение. За последней строкой следует дополнительный нулевой символ.

IpszlnifileName

LPCTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую имя приватного профильного файла. Если параметр IpszlnifileName не содержит полностью уточненное имя пути к данному файлу, Windows выполняет поиск INI-файла в каталоге Windows. Если данный файл не существует и полностью уточненное имя пути не указано, Windows созда-

ет профильный файл в каталоге Windows. Если же полностью уточненное имя пути указано, а данный файл не найден,' профильный файл не создается. Для создания INI-файлов применяется функция WritePrivateProfileString.

Возвращаемое значение

BOOL: TRUE, если выполнение функции окажется успешным. В противном случае возвращается значение FALSE. Соответствующий код ошибки поддерживает функция GetLastError. В Windows 95 файл WIN.INI хранится в кэше ради поддержания требуемой производительности. Если установлено значение NULL всех трех указанных выше параметров, эта функция сбрасывает содержимое кэша на диск.

Включаемый файл

winbase.h

См. также

GetPrivateProfileSection, WritePrivateProfileString, WriteProfileSection.

Пример

В приведенном ниже примере программы содержимое раздела TestSection записывается в файл YOUR.INI, когда пользователь выбирает пункт меню Test!

LRESOLT CALLBACK WndProc (HWND hHnd,  UINT uMsg,  WPARAM wParam,   LPARAM IParam){                                                       switch   (uMsg){

case WM COMMAND: switch   (   LOWORD( wParam ) ) {

case IDM_TEST : WritePrivateProfileSection(  "TestSection" ,  "Section Data", "YOUR. INI" ) ;

break;

WritePrivateProfileStrinq               * Windows 98   • Windows 2000

Описание

Функция WritePrivateProfileString сохраняет строковое значение, связанное с ключом из указанного раздела приватного профильного файла.

Синтаксис

BOOL WritePrivateProfileString(LPCTSTR IpszSectionName, LPCTSTR IpszKeyName, LPCTSTR IpszStringValue, LPCTSTR IpszlnifileName)

Параметры

IpszSectionName

LPCTSTR Указатель на строку, завершающуюся нулевым символом и содержащую имя раздела. Если установлено значение NULL всех трех параметров IpszSectionName, IpszKeyName и IpszStringValue, тогда система сбрасывает содержимое INI-файла на диск.

IpszKeyName

LPCTSTR Указатель на строку, завершающуюся нулевым символом и содержащую имя записываемого ключа. Если ключ в указанном разделе не существует, он создается. Если же установлены значения NULL для обоих параметров IpszKeyName и IpszStringValue, в указанном разделе удаляются имена всех ключей, в том числе и заголовок самого раздела.

IpszStringValue

LPCTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую значение ключа, указанного в параметре IpszKeyName, для записи в раздел IpszSectionName файла Ipszlni File Name. Если для данного параметра установлено значение NULL, ключ из раздела удаляется.

IpszlniHleName

LPCTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую имя приватного профильного файла. Если параметр IpszIniFileName не содержит полностью уточненное имя пути к данному файлу, Windows выполняет поиск INI-файла в каталоге Windows. Если же данный файл не существует, он создается в каталоге Windows либо в месте, на которое указывает имя пути.

Возвращаемое значение

BOOL: Если функция завершается успешно, возвращается значение TRUE. В противном случае возвращается значение FALSE, если файл сохраняется в кэше либо происходит сбой во время записи ключа. Соответствующий код ошибки можно получить при помощи функции GetLastError.

Включаемый файл

winbase.h

См. также

GetProfileString, GetPrivateProfilelnt.

Пример

См. пример применения функции GetPrivateProfileString.

WritePrivateProfileStruct               Windows 98   • Windows 2000

Описание

Функция WritePrivateProfileStruct копирует данные в указанный ключ раздела в файле инициализации. В процессе копирования данных функцш выполняет расчет контрольной суммы и присоединяет ее в конец данных Эта контрольная сумма используется функцией GetPrivateProfileStruct для обеспечения целостности данных.

Синтаксис

BOOL WritePrivateProfileStruct(LPCTSTR IpszSection, LPCTSTR IpszKey, LPVOID IpStruct, UINT uSizeStruct, LPCTSTR IpszFile)

Параметры

IpszSection

LPCTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую имя раздела, в котором сохраняется структура данных. Есл! данный раздел не существует, он создается.

IpszKey

LPCTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую имя ключа, связанного с сохраняемой структурой данных. Есл! ключ в указанном разделе не существует, он создается. Если же для данного параметра установлено значение NULL, удаляется весь раздел, включая ключи и элементы раздела.

IpStruct

LPVOID: Указатель на буфер, который содержит копируемые данные Если для данного параметра установлено значение NULL, ключ удаляется

uSizeStmct IpszFile

UINT: Размер в байтах буфера, на который указывает параметр IpStruct. LPCTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую имя файла инициализации. Если для данного параметра уста новлено значение NULL, информация копируется в файл WIN.INI.

Возвращаемое значение

BOOL: Если рассматриваемая функция успешно скопирует строку в INI файл, возвращается значение TRUE. В противном случае возвращаете) значение FALSE.

Включаемый файл

winbase.h

См. также

GetPrivateProfileStruct.

WriteProfileSection                      * Windows 98   * Windows 2000

Описание

Функция WriteProfileSection сохраняет набор строк присвоения значений ключам в указанный раздел файла WIN.INI. Эти строки заменяют содержимое данного раздела. Значения ключей, которые существуют в этом разделе, но не входят в список хранящихся в буфере элементов, просто удаляются. Во время выполнения этой операции другие обновления файла WIN.INI не допускаются.

Синтаксис

BOOL WriteProfiIeSection(LPCTSTR IpszSectionName, LPCTSTR IpszSectionData)

Параметры

IpszSectionName

• LPCTSTR Указатель на строку, завершающуюся нулевым символом и содержащую имя раздела. Если имя данного раздела в указанном INl-фай-лс отсутствует, раздел создается.

IpszSectionData

LPCTSTR: Указатель на буфер, который содержит сохраняемые в разделе ключи и значения. Содержимое этого буфера составляет список строк, завершающихся нулевыми символами и представленных в следующей форме: ключ=значение. За последней строкой следует дополнительный нулевой символ.

Возвращаемое значение

BOOL: Значение TRUE, если выполнение функции оказывается успешным. В противном случае возвращается значение FALSE. Соответствующий код ошибки возвращает функция GetLastError.

Включаемый файл

winbase.h

См. также

GetPrivateProfileSection, WritePrivateProfileString.

Пример

В приведенном ниже примере программы выполняется запись двух значений в раздел профиля (МуАрр) в файле WIN.INI, когда пользователь выбирает пункт меню Test!

См.    \local-sources\chap20\20-08. txt

WriteProfileString                      Windows 98   • Windows 2000

Описание

Функция WriteProfileString сохраняет строковое значение, связанное с ключом в указанном разделе файла WIN.INI.

Синтаксис

BOOL WriteProfileString(LPCTSTR IpszSectionName, LPCTSTR IpszKeyName, LPCTSTR IpszStringValue)

Параметры

IpszSectionName

LPCTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую имя раздела. Если в Windows 9.x установлены значения NULL для всех трех параметров IpszSectionName, IpszKeyName и IpszStringValue, система сбрасывает содержимое INl-файла на диск.

IpszKeyName

LPCTSTR Указатель на строку, завершающуюся нулевым символом и содержащую имя записываемого ключа. Если ключ в указанном разделе не существует, он создастся. Если же установлены значения NULL для обоих параметров IpszKeyName и IpszStringValue, в указанном разделе удаляются имена всех ключей, в том числе и заголовок самого раздела.

IpszString Value

LPCTSTR Указатель на строку, завершающуюся нулевым символом и содержащую значение ключа, указанного в параметре IpszKeyName, для за-

Возвращаемое значение

писи в раздел IpszSectionName файла WIN.INI. Если для данного параметра установлено значение NULL, ключ из раздела удаляется. BOOL: если выполнение рассматриваемой функции оказывается успешным, возвращается значение TRUE. В противном случае возвращается значение FALSE, если файл сохраняется в кэше либо происходит сбой во время записи ключа. Соответствующий код ошибки возвращает функция GetLastError.

Включаемый файл

winbase.h

См. также

GetProfllelnt, GetProfileString, WritePrivateProfileString.

Пример

См. пример применения функции GetProfileString.