15 сент. 2010 г.

RegNotifyChangeKeyValue


Функция RegNotifyChangeKeyValue сообщает вызывающему об изменениях атребутов или содержания указанного ключа реестра. Учтите, что функция не сообщает вызывающему, если ключ удален.
LONG RegNotifyChangeKeyValue(
    HKEY hKey,   // дескриптор просматриваемого ключа
    BOOL bWatchSubtree,  // флаг для уведомительности подключа
    DWORD dwNotifyFilter, // изменения для отчета
    HANDLE hEvent,  // дескриптор сигнального события
    BOOL fAsynchronous   // флаг для ассинхронного отчета
   );
Параметры:
hKeyИдентифицирует открытый в текущий момент ключ или один из следующих предопределенных значений дескрипторов:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
bWatchSubtreeОпределяет флаг, который указывает на необходимость отчета об изменениях в указанном ключе и всех его подключах, или только в указанном ключе. Если этот параметр равен TRUE, функция предоставляет отчет об изменениях в ключе и в его подключах. Если он равен FALSE, функция выдает отчет только о ключе.
dwNotifyFilterОпределяет набор флагов, которые контролируют выдаваемые в отчет изменения. Этот параметр может быть комбинацией из следующих значний:


Значение:

Назначение:

REG_NOTIFY_CHANGE_NAME  

Сообщает вызывающему об удалении или добавлении подключа.

REG_NOTIFY_CHANGE_ATTRIBUTES  

Сообщает вызывающему об изменении атрибутов ключа, таких как информация об дескрипторе безопасности.

REG_NOTIFY_CHANGE_LAST_SET  

Сообщает вызывающему об изменении значения ключа. Это может включать в себя добавление или удаление значения, или изменения существующего значния.

REG_NOTIFY_CHANGE_SECURITY  

Сообщает вызывающему об изменении дескриптора безопасности ключа.
hEventОпределяет событие. Если параметр fAsynchronous равен TRUE, функция возвращается немедленно и отчет об изменениях поступает по этому событию. Если fAsynchronous равен FALSE, то hEvent игнорируется.
fAsynchronousОпределяет флаг, который указывает как функция будет рапортовать об изменениях. Если этот параметр равен TRUE, функция возвращается немедленно и рапортует об изменениях посылая сигнал указанного события. Когда этот параметр равен FALSE, функция не возвращается, пока не произойдут изменения.

Если hEvent указывает нп не действительное событие, параметр fAsynchronous не может быть TRUE.

Возвращаемые значения:
Если функция успешна, возвращается значение ERROR_SUCCESS.

При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.
Замечания:
Если ключ, на который указывает параметр hKey, закрыт, посылается событие. Это означает, что приложение не может полагаться на ключ, который будет открыт после возвращения из ожидания события.

RegNotifyChangeKeyValue не работает с удаленными дескрипторами. Если RegNotifyChangeKeyValue вызывается с hKey, установленным в значение удаленного дескриптора, возвращается ERROR_INVALID_HANDLE.