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)