RegistryNotifyWindow
9/8/2008
Essa função registra um temporário solicitação notificação de alteração. A janela especificada recebe uma notificação quando um alterado valor especificado.
Syntax
HRESULT WINAPI RegistryNotifyWindow(
HKEY hKey,
LPCTSTR pszSubKey,
LPCTSTR pszValueName,
HWND hWnd,
UINT msg,
DWORD dwUserData,
NOTIFICATIONCONDITION* pCondition,
HREGNOTIFY* phNotify
);
Parameters
- hKey
[no] Identificador para o aberto chave ou um valor predefinido raiz.
- pszSubKey
[no] Chave onde o valor é armazenado. Se esse valor é NULL, em seguida, pszValueName é considerado em HKEY.
- pszValueName
[no] Nome valor no qual a notificação se baseia. Se o valor for NULL, o notificação de alteração será baseada no valor de usar como padrão.
- hWnd
[no] Identificador para a janela recebendo a mensagem.
- msg
[no] Mensagem passada para a janela.
- dwUserData
[no] Dados do Usuário passados voltar para a janela com a notificação.
pCondition
[no] Condição que determina quando enviar a notificação. Quando a comparação entre pCondition o novo valor do Registro é TRUE e uma notificação será enviada.Se pCondition é NULL, e qualquer alteração nos resultados da valor do Registro especificado em uma notificação.
- phNotify
[out] Identificador que recebe a notificação. Esse identificador deve ser fechado usando RegistryCloseNotification Quando as notificações não são mais necessários. Redefinir o dispositivo também pára a notificação.
Return Value
A seguinte tabela mostra os valores de retorno para esta função.
Valor | Descrição |
---|---|
S_OK |
A solicitação de notificação de alteração é registrado. |
E_INVALIDARG |
Inválido hKey, phNotify, Ou hWnd. |
Um valor de erro retornado. |
Valor de erro ajustada como um FACILITY_WIN32 HRESULT. |
Remarks
Êxito indica que o chamador será notificado cada tempo que Alterações de valor especificado e a condição especificada forem verdadeiras. Falha não causar qualquer alteração.
Para um cliente para diferenciar entre múltiplo notificações, o msg parâmetro deve ser exclusivo para cada chamar para RegistryNotifyWindow feitas por um cliente.
Para parar notificação e para fechar o identificador notificação, o chamador deve chamar RegistryCloseNotification. No entanto, esse tipo de notificação é temporário. Redefinir o dispositivo pára a notificação.
Quando pszValueName Altera, PostMessage Notifica o cliente. Se PostMessage falhar ou se hWnd é não mais válido, a solicitação notificação registrado é removida e phNotify identificador é fechado. A seguinte tabela mostra os parâmetros passados para PostMessage.
Nomes de variáveis | Descrição |
---|---|
WPARAM |
Para tipo de dados REG_DWORD, o novo valor (ou zero se o valor foi excluído) e zero (0) para todos os outros tipos dados. |
LPARAM |
Valor passado dwUserData. |
Se o valor não existir quando RegistryNotifyWindow for chamado, o cliente será notificado quando o valor é adicionado.
Esta função pode ser usada para monitor qualquer chave Registro no sistema. O snapi.h arquivo de cabeçalho contém definições para as chaves Registro, caminhos, valores e bitmasks para todas as notificações de de base que são fornecidas pelo sistema.
Se a chave especificada por hKey e pszSubKey Não existe, em seguida, hKey é monitorado até pszSubKey é criado, após o qual pszSubKey é monitorado e muda para a chave será notificações disparador conforme solicitado. Para minimizar a degradação desempenho possível proveniente de uma nuimber grande de subchaves que está sendo monitorado, ele é uma recomendação para transmitir (como hKey) o identificador para uma chave que é como fechar possíveis para pszSubKey Em vez de passar uma chave raiz. De exemplo, se o cliente é um jogo e ele for monitoração a chave estrutura HKEY_CURRENT_USER\... \MyCoolGame\Player1 e o jogo posteriormente criaria HKEY_CURRENT_USER\... \MyCoolGame\Player2, duas maneiras possíveis para notificação abordagem das alterações feitas a chave Player2 incluem:
Diminuição no desempenho em potencial | Menos problemas potenciais |
---|---|
hKey = identificador para HKEY_CURRENT_USER epszSubKey= o caminho completo para Player2 |
hKey = identificador para HKEY_CURRENT_USER\... \MyCoolGame\ epszSubKey=Player2 |
Exemplo de código
O seguinte exemplo de código demonstra como usar RegistryNotifyWindow.
Observação
Para fazer o seguinte exemplo de código mais fácil de ler, verificação de segurança e manipulação de erro não estão incluídos.Esta exemplo de código não deve ser usado em uma configuração versão a menos que ele foi modificado para incluí-las.
// Register to be notified when the next Appointment location changes,
// and contains the string "Downtown".
LRESULT RegistryNotifyWindowProc(HWND hDlg, UINT msg, UINT wParam, LONG lParam)
{
TCHAR szLocation[256];
NOTIFICATIONCONDITION nc;
LRESULT lRet = FALSE;
HREGNOTIFY hNotify = NULL;
TCHAR szDowntown[] = TEXT("Downtown");
switch (msg)
{
case WM_CREATE:
// Initialize the notification structure
// Note that StatStor is not case sensitive.
nc.ctComparisonType = REG_CT_CONTAINS;
nc.TargetValue.psz = szDowntown;
// A value of zero indicates a string comparison.
nc.dwMask = 0;
RegistryNotifyWindow(SN_CALENDARNEXTAPPOINTMENTLOCATION_ROOT,
SN_CALENDARNEXTAPPOINTMENTLOCATION_PATH,
SN_CALENDARNEXTAPPOINTMENTLOCATION_VALUE,
hDlg,
WM_USER,
0,
&nc,
&hNotify);
lRet = 0;
break;
case WM_USER:
// You can read the full location with the RegistryGetString function.
RegistryGetString(SN_CALENDARNEXTAPPOINTMENTLOCATION_ROOT,
SN_CALENDARNEXTAPPOINTMENTLOCATION_PATH,
SN_CALENDARNEXTAPPOINTMENTLOCATION_VALUE,
szLocation,
256);
// Add your own processing statements here.
lRet = TRUE;
break;
case WM_DESTROY:
RegistryCloseNotification(hNotify);
lRet = 0;
break;
// Add your own statements for handling other messages, here.
return lRet;
Requirements
Header | regext.h |
Library | aygshell.lib |
Windows Embedded CE | Windows Embedded CE 6.0 and later |
Windows Mobile | Pocket PC for Windows Mobile Version 5.0 and later, Smartphone for Windows Mobile Version 5.0 and later |
See Also
Reference
RegistryBatchNotification
State and Notifications Broker Functions
State and Notifications Broker Reference
Concepts
Using the State and Notifications Broker in Native Code