Функция GetPrivateProfileSection (winbase.h)
Извлекает все ключи и значения для указанного раздела файла инициализации.
Синтаксис
DWORD GetPrivateProfileSection(
[in] LPCTSTR lpAppName,
[out] LPTSTR lpReturnedString,
[in] DWORD nSize,
[in] LPCTSTR lpFileName
);
Параметры
[in] lpAppName
Имя раздела в файле инициализации.
[out] lpReturnedString
Указатель на буфер, получающий пары имени ключа и значения, связанные с именованным разделом. Буфер заполняется одной или несколькими строками, заканчивающихся значением NULL; за последней строкой следует второй пустой символ.
[in] nSize
Размер буфера, на который указывает параметр lpReturnedString , в символах.
Максимальный размер раздела профиля — 32 767 символов.
[in] lpFileName
Имя файла инициализации. Если этот параметр не содержит полный путь к файлу, система выполняет поиск файла в каталоге Windows.
Возвращаемое значение
Возвращаемое значение указывает количество символов, скопированных в буфер, не включая завершающий символ NULL. Если буфер недостаточно велик, чтобы содержать все пары имени ключа и значения, связанные с именованным разделом, возвращаемое значение равно nSize минус два.
Комментарии
Данные в буфере, на который указывает параметр lpReturnedString , состоят из одной или нескольких строк с завершением NULL, за которым следует последний символ NULL. Каждая строка имеет следующий формат:
Ключ=Строка
Функция GetPrivateProfileSection не учитывает регистр; Строка, на которую указывает параметр lpAppName , может быть сочетанием прописных и строчных букв.
Эта операция является атомарной; Обновления указанного файла инициализации не допускаются, пока пары "имя ключа" и "значение" для раздела копируются в буфер, на который указывает параметр lpReturnedString .
Система сопоставляет большинство .ini ссылок на файлы с реестром, используя сопоставление, определенное в следующем разделе реестра:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping
Это сопоставление вероятно, если приложение изменяет файлы инициализации системных компонентов, такие как Control.ini, System.ini и Winfile.ini. В таких случаях функция получает сведения из реестра, а не из файла инициализации; Изменение расположения хранилища не влияет на поведение функции.
Функции профилей используют следующие действия для поиска сведений об инициализации.
- Найдите в реестре имя файла инициализации в разделе IniFileMapping .
- Найдите имя раздела, указанное в параметре lpAppName. Это будет именованное значение в ключе, которое имеет имя файла инициализации, или подраздел с этим именем, или имя не будет существовать как значение или подраздел.
- Если имя раздела, указанное lpAppName , является именованным значением, то это значение указывает, где в реестре будут находиться ключи для раздела.
- Если имя раздела, указанное в lpAppName , является подразделом, то именованные значения в этом подразделе укажите, где в реестре будут находиться ключи для раздела. Если ключ, который вы ищете, не существует как именованное значение, будет неименованное значение (отображается как <Без имени>), указывающее расположение по умолчанию в реестре, где будет находиться ключ.
- Если имя раздела, указанное в параметре lpAppName , не существует в качестве именованного значения или подраздела, будет указано неименованное значение (без <имени>), указывающее расположение по умолчанию в реестре, где будут находиться ключи для раздела.
- Если для имени раздела нет подраздела или записи, найдите фактический файл инициализации на диске и прочитайте его содержимое.
- ! — этот символ заставляет все операции записи отправляться как в реестр, так и в файл .ini на диске.
- # — этот символ приводит к тому, что для параметра реестра будет задано значение в файле .ini Windows 3.1, когда новый пользователь впервые входит в систему после установки.
- @ — этот символ не позволяет выполнять операции чтения в .ini файл на диске, если запрошенные данные не найдены в реестре.
- USR: этот префикс означает HKEY_CURRENT_USER, а текст после префикса относится к этому ключу.
- SYS: этот префикс означает HKEY_LOCAL_MACHINE\SOFTWARE, а текст после префикса относится к этому ключу.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winbase.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |