SHChangeNotify-Funktion (shlobj_core.h)
Benachrichtigt das System über ein Ereignis, das von einer Anwendung ausgeführt wurde. Eine Anwendung sollte diese Funktion verwenden, wenn sie eine Aktion ausführt, die sich möglicherweise auf die Shell auswirken kann.
Syntax
void SHChangeNotify(
LONG wEventId,
UINT uFlags,
[in, optional] LPCVOID dwItem1,
[in, optional] LPCVOID dwItem2
);
Parameter
wEventId
Typ: LONG
Beschreibt das aufgetretene Ereignis. In der Regel wird jeweils nur ein Ereignis angegeben. Wenn mehrere Ereignisse angegeben werden, müssen die werte in den Parametern dwItem1 und dwItem2 für alle angegebenen Ereignisse identisch sein. Bei diesem Parameter kann es sich um einen oder mehrere der folgenden Werte handeln:
SHCNE_ALLEVENTS
Alle Ereignisse sind aufgetreten.
SHCNE_ASSOCCHANGED
Eine Dateitypzuordnung wurde geändert. SHCNF_IDLIST muss im uFlags-Parameter angegeben werden. dwItem1 und dwItem2 werden nicht verwendet und müssen NULL sein. Dieses Ereignis sollte auch für registrierte Protokolle gesendet werden.
SHCNE_ATTRIBUTES
Die Attribute eines Elements oder Ordners wurden geändert. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält das Geänderte Element oder Ordner. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_CREATE
Ein Nichtordnerelement wurde erstellt. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält das element, das erstellt wurde. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_DELETE
Ein Nichtordnerelement wurde gelöscht. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält das Element, das gelöscht wurde. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_DRIVEADD
Ein Laufwerk wurde hinzugefügt. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält den Stamm des laufwerks, das hinzugefügt wurde. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_DRIVEADDGUI
Windows XP und höher: Nicht verwendet.
SHCNE_DRIVEREMOVED
Ein Laufwerk wurde entfernt. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält den Stamm des Laufwerks, das entfernt wurde. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_EXTENDED_EVENT
Derzeit nicht verwendet.
SHCNE_FREESPACE
Die Menge des freien Speicherplatzes auf einem Laufwerk hat sich geändert. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält den Stamm des Laufwerks, auf dem sich der freie Speicherplatz geändert hat. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_MEDIAINSERTED
Speichermedien wurden in ein Laufwerk eingefügt. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält den Stamm des Laufwerks, das die neuen Medien enthält. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_MEDIAREMOVED
Speichermedien wurden von einem Laufwerk entfernt. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält den Stamm des Laufwerks, von dem die Medien entfernt wurden. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_MKDIR
Ein Ordner wurde erstellt. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält den ordner, der erstellt wurde. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_NETSHARE
Ein Ordner auf dem lokalen Computer wird über das Netzwerk freigegeben. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält den Ordner, der freigegeben wird. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_NETUNSHARE
Ein Ordner auf dem lokalen Computer wird nicht mehr über das Netzwerk freigegeben. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält den Ordner, der nicht mehr freigegeben wird. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_RENAMEFOLDER
Der Name eines Ordners wurde geändert. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält die vorherige PIDL oder den Namen des Ordners. dwItem2 enthält die neue PIDL oder den Namen des Ordners.
SHCNE_RENAMEITEM
Der Name eines Nichtordnerelements wurde geändert. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält die vorherige PIDL oder den Namen des Elements. dwItem2 enthält die neue PIDL oder den Namen des Elements.
SHCNE_RMDIR
Ein Ordner wurde entfernt. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält den Ordner, der entfernt wurde. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_SERVERDISCONNECT
Der Computer wurde von einem Server getrennt. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält den Server, von dem der Computer getrennt wurde. dwItem2 wird nicht verwendet und sollte NULL sein.
SHCNE_UPDATEDIR
Der Inhalt eines vorhandenen Ordners wurde geändert, aber der Ordner ist weiterhin vorhanden und wurde nicht umbenannt. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält den Ordner, der geändert wurde. dwItem2 wird nicht verwendet und sollte NULL sein. Wenn ein Ordner erstellt, gelöscht oder umbenannt wurde, verwenden Sie SHCNE_MKDIR, SHCNE_RMDIR oder SHCNE_RENAMEFOLDER.
SHCNE_UPDATEIMAGE
Ein Image in der Systemabbildliste wurde geändert. SHCNF_DWORD muss in uFlags angegeben werden.
dwItem2 enthält den Index in der geänderten Systemimageliste. dwItem1 wird nicht verwendet und sollte NULL sein.
SHCNE_UPDATEITEM
Ein vorhandenes Element (ein Ordner oder ein Nichtordner) wurde geändert, aber das Element ist weiterhin vorhanden und wurde nicht umbenannt. SHCNF_IDLIST oder SHCNF_PATH müssen in uFlags angegeben werden. dwItem1 enthält das geänderte Element. dwItem2 wird nicht verwendet und sollte NULL sein. Wenn ein Nichtordnerelement erstellt, gelöscht oder umbenannt wurde, verwenden Sie stattdessen SHCNE_CREATE, SHCNE_DELETE oder SHCNE_RENAMEITEM.
SHCNE_DISKEVENTS
Gibt eine Kombination aller Datenträgerereignisbezeichner an.
SHCNE_GLOBALEVENTS
Gibt eine Kombination aller globalen Ereignisbezeichner an.
SHCNE_INTERRUPT
Das angegebene Ereignis ist als Ergebnis eines Systemunterbrechungs aufgetreten. Da dieser Wert andere Ereigniswerte ändert, kann er nicht allein verwendet werden.
uFlags
Typ: UINT
Flags, die bitweise mit SHCNF_TYPE kombiniert werden, die Bedeutung der Parameter dwItem1 und dwItem2 angeben. Der uFlags-Parameter muss einer der folgenden Werte sein.
SHCNF_DWORD
Die Parameter dwItem1 und dwItem2 sind DWORD-Werte .
SHCNF_IDLIST
dwItem1 und dwItem2 sind die Adressen von ITEMIDLIST-Strukturen , die die von der Änderung betroffenen Elemente darstellen. Jede ITEMIDLIST muss relativ zum Desktopordner sein.
SHCNF_PATH
dwItem1 und dwItem2 sind die Adressen von Zeichenfolgen mit NULL-Endung mit maximaler Länge MAX_PATH , die die vollständigen Pfadnamen der von der Änderung betroffenen Elemente enthalten.
SHCNF_PRINTER
dwItem1 und dwItem2 sind die Adressen von NULL-Zeichenfolgen, die die Anzeigenamen der von der Änderung betroffenen Drucker darstellen.
SHCNF_FLUSH
Die Funktion sollte erst zurückgegeben werden, wenn die Benachrichtigung an alle betroffenen Komponenten übermittelt wurde. Da dieses Flag andere Datentypflags ändert, kann es nicht selbst verwendet werden.
SHCNF_FLUSHNOWAIT
Die Funktion sollte mit der Übermittlung von Benachrichtigungen an alle betroffenen Komponenten beginnen, sollte jedoch zurückgegeben werden, sobald der Benachrichtigungsprozess begonnen hat. Da dieses Flag andere Datentypflags ändert, kann es nicht von selbst verwendet werden. Dieses Flag enthält SHCNF_FLUSH.
SHCNF_NOTIFYRECURSIVE
Benachrichtigen Sie Clients, die für alle untergeordneten Elemente registriert sind.
[in, optional] dwItem1
Typ: LPCVOID
Optional. Erster ereignisabhängiger Wert.
[in, optional] dwItem2
Typ: LPCVOID
Optional. Zweiter ereignisabhängiger Wert.
Rückgabewert
Keine
Bemerkungen
Anwendungen, die neue Handler eines beliebigen Typs registrieren, müssen SHChangeNotify mit dem flag SHCNE_ASSOCCHANGED aufrufen, um die Shell anzuweisen, das Symbol und den Miniaturansichtcache für ungültig zu erklären. Dadurch werden auch neue Symbol- und Miniaturansichtshandler geladen, die registriert wurden. Beachten Sie jedoch, dass Symbolüberlagerungshandler nicht erneut geladen werden.
Die Zeichenfolgen, auf die dwItem1 und dwItem2 verweisen, können entweder ANSI oder Unicode sein.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shlobj_core.h (shlobj.h einschließen) |
Bibliothek | Shell32.lib |
DLL | Shell32.dll (Version 4.0 oder höher) |
APIs | ext-ms-win-shell-shell32-l1-2-0 (eingeführt in Windows 8.1) |