Функция RegCreateKeyEx создает указанный ключ. Если ключ уже существует в реестре, то функция открывает его. Эта функция оставлена для совместимости с Windows версии 3.1. Приложения для Win32 должны использовать функцию RegCreateKeyEx.
LONGRegCreateKeyEx ( HKEYhKey , // дескриптор открытого ключа LPCTSTRlpSubKey , // адрес имени подключа DWORDReserved , // зарезервировано LPTSTRlpClass , // адрес строки класса DWORDdwOptions , // флаг особых опций REGSAMsamDesired , // желаемый доступ безопасности LPSECURITY_ATTRIBUTESlpSecurityAttributes , // адрес структуры // ключа безопасности PHKEYphkResult , // адрес буфера для открытого ключа LPDWORDlpdwDisposition // адрес буфера характерного значения );
Параметры:
Идентифицирует уже открытый ключ или один из предопределенных дескрипторов: HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_CONFIG Ключ, открытый или созданный функцией RegCreateKeyEx, являются подключами ключа, указанного в параметре hKey. | |||||||||||||||||||||||
Адрес нульзаканчивающейся строки, определяющей имя подключа, который эта функция создает или открывает. Указанный подключ должен быть подключем ключа, указанного в параметре hKey. Этот подключ не должен начинатся с знака обратной черты ('\'). Этот параметр не должен быть равен NULL. | |||||||||||||||||||||||
Зарезервирован; должен быть нулевым. | |||||||||||||||||||||||
Адрес нульзаканчивающейся строки, определяющей класс (тип объекта) этого ключа. Этот параметр игнорируется если ключ уже существует. | |||||||||||||||||||||||
Определяет особые опции для ключа. Этот параметр может быть одним из следующих значений:
| |||||||||||||||||||||||
Определяет маску доступа, которая определяет желаемый доступ безопасности для нового ключа. Этот параметр может быть комбинацией из следующих значений:
| |||||||||||||||||||||||
Адрес структуры SECURITY_ATTRIBUTES которая определяет: может ли возвращенный дескриптор наследоваться дочерними процессами. Если lpSecurityAttributes равен NULL, дескриптор не может наследоваться. Windows NT/2000/XP: член lpSecurityDescriptor структуры определяет дескриптор безопасности для нового ключа. Если lpSecurityAttributes равен NULL, ключ получает дескриптор безопасности по умолчанию. Windows 95/98/Me: член lpSecurityDescriptor структуры игнорируется. | |||||||||||||||||||||||
Адрес переменной, куда будет возвращен дескриптор,открываемого или создаваемого ключа. | |||||||||||||||||||||||
Адрес переменной, куда будет возвращен один из следующих значений:
|
Возвращаемые значения:
Если функция успешна, возвращается значение ERROR_SUCCESS.
При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.
При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.
Замечания:
Ключ, который создает функция RegCreateKeyEx, не имеет значений. Приложение может использовать функцию RegSetValue или RegSetValueEx для установки значений ключей.
Ключ, определенный в параметре hKey, должен быть открытым с доступом KEY_CREATE_SUB_KEY. Для открытия ключа используйте функцию RegCreateKeyEx или RegOpenKeyEx.
Приложение не может создавать ключ под HKEY_USERS или HKEY_LOCAL_MACHINE.
Приложение может использовать RegCreateKeyEx для временного закрытия части реестра. Когда закрывающий процесс создает новый ключ, он получает характерное значение REG_CREATED_NEW_KEY, указывающее на то, он владелец закрытой части реестра. Другой процесс пытается создать тот-же ключ и получает характерное значение REG_OPENED_EXISTING_KEY, указывающее на то, что другой процесс владеет закрытой частью.
Ключ, определенный в параметре hKey, должен быть открытым с доступом KEY_CREATE_SUB_KEY. Для открытия ключа используйте функцию RegCreateKeyEx или RegOpenKeyEx.
Приложение не может создавать ключ под HKEY_USERS или HKEY_LOCAL_MACHINE.
Приложение может использовать RegCreateKeyEx для временного закрытия части реестра. Когда закрывающий процесс создает новый ключ, он получает характерное значение REG_CREATED_NEW_KEY, указывающее на то, он владелец закрытой части реестра. Другой процесс пытается создать тот-же ключ и получает характерное значение REG_OPENED_EXISTING_KEY, указывающее на то, что другой процесс владеет закрытой частью.