Função SHChangeNotifyRegister (shlobj_core.h)
Registra uma janela para receber notificações do sistema de arquivos ou do Shell, se o sistema de arquivos der suporte a notificações.
Sintaxe
ULONG SHChangeNotifyRegister(
[in] HWND hwnd,
int fSources,
LONG fEvents,
UINT wMsg,
int cEntries,
[in] const SHChangeNotifyEntry *pshcne
);
Parâmetros
[in] hwnd
Digite: HWND
Um identificador para a janela que recebe as mensagens de alteração ou notificação.
fSources
Tipo: int
Um ou mais dos valores a seguir que indicam o tipo de eventos para os quais receber notificações.
SHCNRF_InterruptLevel (0x0001)
Notificações de nível de interrupção do sistema de arquivos.
SHCNRF_ShellLevel (0x0002)
Notificações no nível do shell.
SHCNRF_RecursiveInterrupt (0x1000)
Interromper eventos em toda a subárvore. Esse sinalizador deve ser combinado com o sinalizador SHCNRF_InterruptLevel . Ao usar esse sinalizador, as notificações também devem ser recursivas definindo o membro fRecursive da estrutura SHChangeNotifyEntry correspondente referenciada por pshcne como TRUE. O uso de SHCNRF_RecursiveInterrupt em uma exibição de nível único, por exemplo, um PIDL relativo e que contém apenas um SHITEMID, bloqueará a notificação de evento no nível mais alto e, assim, impedirá uma atualização filho recursiva. Portanto, um ícone arrastado para o nível mais baixo de uma hierarquia de pastas pode não aparecer na exibição conforme o esperado.
SHCNRF_NewDelivery (0x8000)
As mensagens recebidas usam memória compartilhada. Chame SHChangeNotification_Lock para acessar os dados reais. Chame SHChangeNotification_Unlock para liberar a memória quando terminar.
fEvents
Tipo: LONG
Altere os eventos de notificação para os quais receber a notificação. Consulte os sinalizadores SHCNE listados em SHChangeNotify para obter valores possíveis.
wMsg
Tipo: UINT
Mensagem a ser postada no procedimento de janela.
cEntries
Tipo: int
Número de entradas na matriz pshcne .
[in] pshcne
Tipo: const SHChangeNotifyEntry*
Matriz de estruturas SHChangeNotifyEntry que contêm as notificações. Essa matriz sempre deve ser definida como uma ao chamar SHChangeNotifyRegister ou SHChangeNotifyDeregister não funcionará corretamente.
Valor retornado
Tipo: ULONG
Retorna uma ID de registro de inteiro positivo. Retorna 0 se estiver sem memória ou em resposta a parâmetros inválidos.
Comentários
Consulte o Exemplo do Inspetor de Notificação de Alterações no SDK (Software Development Kit) do Windows para obter um exemplo completo que demonstre o uso dessa função.
Quando um evento de notificação de alteração é gerado, a mensagem indicada pelo wMsg é entregue à janela especificada pelo parâmetro hwnd .
- Se SHCNRF_NewDelivery for especificado, os valores wParam e lParam na mensagem deverão ser passados para SHChangeNotification_Lock como os parâmetros hChange e dwProcID , respectivamente.
- Se SHCNRF_NewDelivery não for especificado, wParam será um ponteiro para dois ponteiros PIDLIST_ABSOLUTE e lParam especificará o evento. Os dois ponteiros PIDLIST_ABSOLUTE podem ser NULL, dependendo do evento que está sendo enviado.
Por motivos de desempenho, várias notificações podem ser combinadas em uma única notificação. Por exemplo, se um grande número de SHCNE_UPDATEITEM notificações forem geradas para arquivos na mesma pasta, elas poderão ser unidas em uma única notificação de SHCNE_UPDATEDIR .
A função NTSHChangeNotifyRegister , que não está mais disponível a partir do Windows Vista, era equivalente a SHChangeNotifyRegister com o sinalizador SHCNRF_NewDelivery.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shlobj_core.h (inclua Shlobj.h) |
Biblioteca | Shell32.lib |
DLL | Shell32.dll (versão 5.0 ou posterior) |
Conjunto de APIs | ext-ms-win-shell32-l1-2-1 (introduzido no Windows 10, versão 10.0.10240) |
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de