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

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

winbase.h

См. также

GetProfileSection, WritePrivateProfileSection.

Пример

Ниже приведен пример программы,   которая   выводит  в список выбора показанный на рис. 20.2 результат последовательного чтения строк присвоения значений ключам из раздела "MAPI 1.0 Time Zone" в файле WIN.INI.

CM,   \loc*l-»ourcas\chap20\20-02 . txt

GetPrivateProfileSectionNames         4- Windows 98   • Windows 2000

Описание

Функция GetPrivateProfileSectionNames заполняет буфер именами всех разделов INI-файла. Содержимое заполненного буфера представляет собой список строк, завершающихся нулевыми символами. За последним именем следует дополнительный нулевой символ. Во время выполнения этой функции возможные обновления INI-файла блокируются системой.

Синтаксис

DWORD GetPrivateProffleSectionNames(LPCTSTR IpszReturnBuffer,    , DWORD dwBuffer, LPCTSTR IpszIniFileName)

Параметры

IpszReturnBuffei

' LPCTSTR: Указатель на буфер, в который поступает список имен разделов.

dwBuffer

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

IpszIniRleName

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

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

DWORD: количество байт, возвращаемых системой в буфере, определяемом параметром IpszReturnBuffer. В это число не входит последний завершающий строку символ. Если места для хранения всех имен разделов оказывается недостаточно, возвращается значение dwBuffer-2, а список имен разделов усекается.

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

winbase.h

Пример

Когда пользователь выбирает в приведенном ниже примере пункт меню Test!, список выбора заполняется именами разделов файла WIN.INI. Хотя в данном случае можно было бы выбрать любой INI-файл, однако файл WIN.INI содержит большее количество легко распознаваемых разделов. Например, в нем имеются разделы для параметров настройки шрифтов, локализации и рабочего стола.

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

GetPrivateProfileString                  Windows 98   • Windows 2000

Описание

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

Синтаксис

DWORD GetPrivateProfileString(LPCTSTR IpszSectionName, LPCTSTR IpszKeyName, LPCTSTR   IpszDefaultValue, LPCTSTR   IpszReturnBuffer, DWORD dcwBuffer, LPCTSTR IpszIniFileName)

Параметры

IpszSectionName

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

IpszKeyName

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

IpszDefault Value

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

IpszReturnBuffer

LPCTSTR: Указатель на буфер, который будет заполняться системой. В типичном случае возврата значения, связанного с конкретным ключом, этот буфер будет содержать единственную строку, завершающуюся нулевым символом. А в случае выборки имен разделов или ключей из INI-фай-ла (т.е. при указании значения NULL для параметра IpszSectionNume или IpszKeyName, соответственно) буфер заполняется списком строк, завершающихся нулевыми символами, причем последняя строка завершается не одним, а двумя такими символами.

dcwBuffer

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

IpszIniFileName

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

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

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

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

winbase.h

См. также

GetProfileString, WritePrivateProfileString, GetPrivateProfilelnt

Пример

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

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

GetPrivateProfileStruct                   •  Windows 98   • Windows 2000

Описание

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

Синтаксис

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

Параметры IpszSection

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

IpszKey

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