Fonction SHChangeNotifyRegister (shlobj_core.h)
Inscrit une fenêtre pour recevoir des notifications du système de fichiers ou de l’interpréteur de commandes, si le système de fichiers prend en charge les notifications.
Syntaxe
ULONG SHChangeNotifyRegister(
[in] HWND hwnd,
int fSources,
LONG fEvents,
UINT wMsg,
int cEntries,
[in] const SHChangeNotifyEntry *pshcne
);
Paramètres
[in] hwnd
Type : HWND
Handle de la fenêtre qui reçoit les messages de modification ou de notification.
fSources
Type : int
Une ou plusieurs des valeurs suivantes qui indiquent le type d’événements pour lesquels recevoir des notifications.
SHCNRF_InterruptLevel (0x0001)
Interruption des notifications de niveau à partir du système de fichiers.
SHCNRF_ShellLevel (0x0002)
Notifications au niveau de l’interpréteur de commandes à partir de l’interpréteur de commandes.
SHCNRF_RecursiveInterrupt (0x1000)
Interrompez les événements sur l’ensemble de la sous-arborescence. Cet indicateur doit être combiné avec l’indicateur SHCNRF_InterruptLevel . Lorsque vous utilisez cet indicateur, les notifications doivent également être rendues récursives en définissant le membre fRecursive de la structure SHChangeNotifyEntry correspondante référencée par pshcne sur TRUE. L’utilisation de SHCNRF_RecursiveInterrupt sur une vue à un seul niveau (par exemple, un code PIDL qui est relatif et ne contient qu’un seul SHITEMID) bloque la notification d’événements au niveau le plus élevé et empêche ainsi une mise à jour enfant récursive. Ainsi, une icône déplacée vers le niveau le plus bas d’une hiérarchie de dossiers peut ne pas apparaître dans la vue comme prévu.
SHCNRF_NewDelivery (0x8000)
Les messages reçus utilisent la mémoire partagée. Appelez SHChangeNotification_Lock pour accéder aux données réelles. Appelez SHChangeNotification_Unlock pour libérer la mémoire lorsque vous avez terminé.
fEvents
Type : LONG
Événements de notification de modification pour lesquels recevoir une notification. Pour connaître les valeurs possibles, consultez les indicateurs SHCNE répertoriés dans SHChangeNotify .
wMsg
Type : UINT
Message à publier dans la procédure de fenêtre.
cEntries
Type : int
Nombre d’entrées dans le tableau pshcne .
[in] pshcne
Type : const SHChangeNotifyEntry*
Tableau de structures SHChangeNotifyEntry qui contiennent les notifications. Ce tableau doit toujours être défini sur un lorsque l’appel de SHChangeNotifyRegister ou SHChangeNotifyDeregister ne fonctionne pas correctement.
Valeur retournée
Type : ULONG
Retourne un ID d’inscription d’entier positif. Retourne 0 si la mémoire est insuffisante ou en réponse à des paramètres non valides.
Remarques
Consultez l’exemple Change Notify Watcher dans le Kit de développement logiciel (SDK) Windows pour obtenir un exemple complet illustrant l’utilisation de cette fonction.
Lorsqu’un événement de notification de modification est déclenché, le message indiqué par wMsg est remis à la fenêtre spécifiée par le paramètre hwnd .
- Si SHCNRF_NewDelivery est spécifié, les valeurs wParam et lParam du message doivent être passées à SHChangeNotification_Lock en tant que paramètres hChange et dwProcID respectivement.
- Si SHCNRF_NewDelivery n’est pas spécifié, wParam est un pointeur vers deux pointeurs PIDLIST_ABSOLUTE, et lParam spécifie l’événement. Les deux pointeurs PIDLIST_ABSOLUTE peuvent avoir la valeur NULL, en fonction de l’événement envoyé.
Pour des raisons de performances, plusieurs notifications peuvent être combinées en une seule notification. Par exemple, si un grand nombre de notifications SHCNE_UPDATEITEM sont générées pour les fichiers du même dossier, elles peuvent être jointes en une seule notification SHCNE_UPDATEDIR .
La fonction NTSHChangeNotifyRegister , qui n’est plus disponible à partir de Windows Vista, était équivalente à SHChangeNotifyRegister avec l’indicateur SHCNRF_NewDelivery.
Configuration requise
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | shlobj_core.h (inclure Shlobj.h) |
Bibliothèque | Shell32.lib |
DLL | Shell32.dll (version 5.0 ou ultérieure) |
Ensemble d’API | ext-ms-win-shell-shell32-l1-2-1 (introduit dans Windows 10, version 10.0.10240) |