SHChangeNotifyRegister-Funktion (shlobj_core.h)
Registriert ein Fenster zum Empfangen von Benachrichtigungen vom Dateisystem oder der Shell, wenn das Dateisystem Benachrichtigungen unterstützt.
Syntax
ULONG SHChangeNotifyRegister(
[in] HWND hwnd,
int fSources,
LONG fEvents,
UINT wMsg,
int cEntries,
[in] const SHChangeNotifyEntry *pshcne
);
Parameter
[in] hwnd
Typ: HWND
Ein Handle für das Fenster, das die Änderungs- oder Benachrichtigungsmeldungen empfängt.
fSources
Typ: int
Mindestens einer der folgenden Werte, die den Typ der Ereignisse angeben, für die Benachrichtigungen empfangen werden sollen.
SHCNRF_InterruptLevel (0x0001)
Benachrichtigungen auf Unterbrechungsebene vom Dateisystem.
SHCNRF_ShellLevel (0x0002)
Benachrichtigungen auf Shellebene von der Shell.
SHCNRF_RecursiveInterrupt (0x1000)
Unterbrechen sie Ereignisse für die gesamte Teilstruktur. Dieses Flag muss mit dem SHCNRF_InterruptLevel-Flag kombiniert werden. Bei Verwendung dieses Flags müssen Benachrichtigungen auch rekursiv gemacht werden, indem das fRecursive-Element der entsprechenden SHChangeNotifyEntry-Struktur , auf die von pshcne verwiesen wird, auf TRUE festgelegt wird. Die Verwendung von SHCNRF_RecursiveInterrupt in einer Ansicht auf einer einzelnen Ebene – z. B. eine PIDL, die relativ ist und nur eine SHITEMID enthält – blockiert Ereignisbenachrichtigungen auf höchster Ebene und verhindert dadurch eine rekursive, untergeordnete Aktualisierung. Daher kann ein Symbol, das in die unterste Ebene einer Ordnerhierarchie gezogen wird, möglicherweise nicht wie erwartet in der Ansicht angezeigt werden.
SHCNRF_NewDelivery (0x8000)
Empfangene Nachrichten verwenden gemeinsam genutzten Arbeitsspeicher. Rufen Sie SHChangeNotification_Lock auf, um auf die tatsächlichen Daten zuzugreifen. Rufen Sie SHChangeNotification_Unlock auf, um den Arbeitsspeicher freizugeben, wenn Sie fertig sind.
fEvents
Typ: LONG
Ändern Sie Benachrichtigungsereignisse, für die Benachrichtigungen empfangen werden sollen. Mögliche Werte finden Sie in den in SHChangeNotify aufgeführten SHCNE-Flags .
wMsg
Typ: UINT
Nachricht, die an die Fensterprozedur gesendet werden soll.
cEntries
Typ: int
Anzahl der Einträge im Array "pshcne ".
[in] pshcne
Typ: const SHChangeNotifyEntry*
Array von SHChangeNotifyEntry-Strukturen , die die Benachrichtigungen enthalten. Dieses Array sollte immer auf eins festgelegt werden, wenn SHChangeNotifyRegister oder SHChangeNotifyDeregister nicht ordnungsgemäß funktioniert.
Rückgabewert
Typ: ULONG
Gibt eine positive ganzzahlige Registrierungs-ID zurück. Gibt 0 zurück, wenn nicht genügend Arbeitsspeicher vorhanden ist oder als Reaktion auf ungültige Parameter.
Hinweise
Ein vollständiges Beispiel, das die Verwendung dieser Funktion veranschaulicht, finden Sie im Change Notify Watcher-Beispiel im Windows Software Development Kit (SDK).
Wenn ein Änderungsbenachrichtigungsereignis ausgelöst wird, wird die von wMsg angegebene Nachricht an das durch den hwnd-Parameter angegebene Fenster übermittelt.
- Wenn SHCNRF_NewDelivery angegeben wird, sollten die Werte wParam und lParam in der Nachricht als hChange- bzw. dwProcID-Parameter an SHChangeNotification_Lock übergeben werden.
- Wenn SHCNRF_NewDelivery nicht angegeben wird, ist wParam ein Zeiger auf zwei PIDLIST_ABSOLUTE Zeiger, und lParam gibt das Ereignis an. Die beiden PIDLIST_ABSOLUTE-Zeiger können je nach gesendetem Ereignis NULL sein.
Aus Leistungsgründen können mehrere Benachrichtigungen zu einer einzigen Benachrichtigung kombiniert werden. Wenn beispielsweise eine große Anzahl von SHCNE_UPDATEITEM Benachrichtigungen für Dateien im selben Ordner generiert wird, können sie in eine einzelne SHCNE_UPDATEDIR Benachrichtigung eingebunden werden.
Die NTSHChangeNotifyRegister-Funktion , die ab Windows Vista nicht mehr verfügbar ist, entspricht SHChangeNotifyRegister mit dem SHCNRF_NewDelivery-Flag.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shlobj_core.h (einschließlich Shlobj.h) |
Bibliothek | Shell32.lib |
DLL | Shell32.dll (Version 5.0 oder höher) |
APIs | ext-ms-win-shell-shell32-l1-2-1 (eingeführt in Windows 10, Version 10.0.10240) |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für