Функция SHRegGetUSValueA (shlwapi.h)
Извлекает значение из подраздела реестра в пользовательском поддереве (HKEY_CURRENT_USER или HKEY_LOCAL_MACHINE).
Синтаксис
LSTATUS SHRegGetUSValueA(
[in] LPCSTR pszSubKey,
[in, optional] LPCSTR pszValue,
[in, out, optional] DWORD *pdwType,
[out, optional] void *pvData,
[in, out, optional] DWORD *pcbData,
[in] BOOL fIgnoreHKCU,
[in, optional] void *pvDefaultData,
[in] DWORD dwDefaultDataSize
);
Параметры
[in] pszSubKey
Тип: LPCTSTR
Указатель на строку, завершаемую null, с именем подраздела относительно HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER. Например: "Software\MyCompany\MyProduct".
[in, optional] pszValue
Тип: LPCTSTR
Указатель на строку, завершаемую null, с именем значения. Это значение может иметь значение NULL.
[in, out, optional] pdwType
Тип: DWORD*
Указатель на DWORD , который получает тип данных, хранящихся в полученном значении. При использовании значений по умолчанию входной pdwType является типом значения по умолчанию. Возможные значения см. в разделе Типы данных реестра. Если сведения о типе не требуются, этот параметр может иметь значение NULL.
[out, optional] pvData
Тип: void*
Указатель на буфер, который получает данные значения.
[in, out, optional] pcbData
Тип: DWORD*
Указатель на переменную, указывающую размер (в байтах) буфера, на который указывает pvData. Когда функция SHRegGetUSValue возвращает значение , pcbData содержит размер данных, скопированных в pvData.
[in] fIgnoreHKCU
Тип: BOOL
Переменная, указывающая, какой ключ следует просмотреть. Если задано значение TRUE, SHRegGetUSValue игнорирует HKEY_CURRENT_USER и возвращает значение из ключа в HKEY_LOCAL_MACHINE.
[in, optional] pvDefaultData
Тип: void*
Указатель на буфер, который получает данные значения по умолчанию.
[in] dwDefaultDataSize
Тип: DWORD
Длина (в байтах) буфера, на который указывает pvDefaultData.
Возвращаемое значение
Тип: LSTATUS
Возвращает ERROR_SUCCESS в случае успешного выполнения, или ненулевой код ошибки, определенный в Winerror.h, в противном случае. Чтобы получить общее описание ошибки, можно использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM.
Комментарии
Если параметр fIgnoreHKCU имеет значение TRUE, функция SHRegGetUSValue возвращает значение из ключа в HKEY_LOCAL_MACHINE. Если задано значение FALSE, SHRegGetUSValue сначала пытается вернуть значение из ключа в HKEY_CURRENT_USER. Однако если ключ не найден в HKEY_CURRENT_USER, значение возвращается из ключа в HKEY_LOCAL_MACHINE. Если ни тот или иный ключ отсутствует или произошла ошибка и dwDefaultDataSize не равно нулю, данные по умолчанию копируются в pvData и ERROR_SUCCESS возвращается. ERROR_SUCCESS возвращает данные по умолчанию и не по умолчанию, и невозможно определить, какое значение копирует в pvData. Чтобы предотвратить использование данных по умолчанию, задайте для параметра pvDefaultDataзначение NULL , а для dwDefaultDataSize — нулевое значение.
Эта функция открывает ключ каждый раз при его использовании. Если код включает в себя получение ряда значений из одного ключа, эффективнее открыть ключ один раз с помощью SHRegOpenUSKey , а затем использовать SHRegQueryUSValue для получения данных.
Примечание
Заголовок shlwapi.h определяет SHRegGetUSValue в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional, Windows XP [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | shlwapi.h |
Библиотека | Shlwapi.lib |
DLL | Shlwapi.dll (версия 4.71 или более поздняя) |