LONG RegQueryMultipleValues( HKEY hKey, // дескриптор ключа PVALENT val_list, // адрес массива со структурами значений DWORD num_vals, // размер массива со структурами значений LPTSTR lpValueBuf, // адрес буфера для информации значений LPDWORD ldwTotsize // адрес размера буфера для информации значений );
Параметры:
hKey | Идентифицирует открытый в текущий момент ключ или один из следующих предопределенных значений дескрипторов: HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_CONFIG |
val_list | Адрес массива из структур VALENT, который описывает один или более вхождений значения. На выходе, член ve_valuename каждой структуры должен содержать адрес имени значения для его получения. Функция завершается с ошибкой, если любой из указанных значений не существует в указанном ключе. При успехе функции, каждый элемент массива содержит информацию для указанного ключа. |
num_vals | Определяет количество элементов в массиве val_list. |
lpValueBuf | Адрес буфера. Если функция успешна, буфер содержит данные для каждого значения. Если lpValueBuf равен NULL, функция возвращается с удачей, и ldwTotsize будет содержать требуемый размер буфера в байтах. |
ldwTotsize | Адрес переменной, которая определяет размер в байтах буфера, на который указывает параметр lpValueBuf. Если функция успешна, ldwTotsize будет содержать количество байт, скопированных в буфер. Если функция завершится с ошибкой, значит буфер слишком мал, и ldwTotsize будет содержать требуемый размер в байтах. |
Возвращаемые значения:
Если функция успешна, возвращается значение ERROR_SUCCESS.Если произошла ошибка, возвращается один из следующих кодов ошибки:
Значение: | Назначение: |
ERROR_CANTREAD | RegQueryMultipleValues не может инициализировать или получить доступ к предоставителю (провайдеру) динамического ключа. |
ERROR_MORE_DATA | Буфер, на который указывает lpValueBuf, был слишком мал. В этом случае, в ldwTotsize возвращается требуемый размер буфера. |
ERROR_TRANSFER_TOO_LONG | Общая длина запрашиваемых данных (размер массива val_list + ldwTotSize) больше, чем лимит системы в один мегабайт. |
Возвращаемые значения:
Если функция успешно, возвращается значение ERROR_SUCCESS.При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.
Замечания:
Функция RegQueryMultipleValues позволяет приложению получить одно или более значений статического или динамического ключа. Если это статический ключ, система предоставляет все значения в стиле атома. Для предотвращения чрезмерной сериализации, совокупность возвращенных функцией данных не может превышать один мегабайт.Если целевой ключ – это динамический ключ, предоставитель (провайдер) должен предоставить все значения в стиле атома. Это означает, что провайдер может заполнить буфер синхронно, предоставляя согласующийся вид всех значений в буфер, пока избегается чрезмерная сериализация. Провайдер может предоставить более одного мегабайта данных в течении вызовов этой функции.
RegQueryMultipleValues поддерживает удаленность; тогда параметр hKey, передаваемый функции, может ссылаться на удаленный компьютер.