Funzione SHChangeNotify (shlobj_core.h)

Notifica al sistema di un evento eseguito da un'applicazione. Un'applicazione deve usare questa funzione se esegue un'azione che può influire sulla shell.

Sintassi

void SHChangeNotify(
                 LONG    wEventId,
                 UINT    uFlags,
  [in, optional] LPCVOID dwItem1,
  [in, optional] LPCVOID dwItem2
);

Parametri

wEventId

Tipo: LONG

Descrive l'evento che si è verificato. In genere, viene specificato un solo evento alla volta. Se vengono specificati più eventi, i valori contenuti nei parametri dwItem1 e dwItem2 devono essere rispettivamente uguali per tutti gli eventi specificati. Questo parametro può essere uno o più dei valori seguenti:

SHCNE_ALLEVENTS

Tutti gli eventi si sono verificati.

SHCNE_ASSOCCHANGED

È stata modificata un'associazione di tipi di file. SHCNF_IDLIST deve essere specificato nel parametro uFlags . dwItem1 e dwItem2 non vengono usati e devono essere NULL. Questo evento deve essere inviato anche per i protocolli registrati.

SHCNE_ATTRIBUTES

Gli attributi di un elemento o di una cartella sono stati modificati. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene l'elemento o la cartella che è stata modificata. dwItem2 non viene usato e deve essere NULL.

SHCNE_CREATE

È stato creato un elemento nonfolder. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene l'elemento creato. dwItem2 non viene usato e deve essere NULL.

SHCNE_DELETE

È stato eliminato un elemento nonfolder. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene l'elemento eliminato. dwItem2 non viene usato e deve essere NULL.

SHCNE_DRIVEADD

È stata aggiunta un'unità. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene la radice dell'unità aggiunta. dwItem2 non viene usato e deve essere NULL.

SHCNE_DRIVEADDGUI

Windows XP e versioni successive: non usato.

SHCNE_DRIVEREMOVED

Un'unità è stata rimossa. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene la radice dell'unità rimossa. dwItem2 non viene usato e deve essere NULL.

SHCNE_EXTENDED_EVENT

Attualmente non utilizzato.

SHCNE_FREESPACE

La quantità di spazio libero in un'unità è cambiata. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene la radice dell'unità in cui è stato modificato lo spazio libero. dwItem2 non viene usato e deve essere NULL.

SHCNE_MEDIAINSERTED

I supporti di archiviazione sono stati inseriti in un'unità. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene la radice dell'unità che contiene i nuovi supporti. dwItem2 non viene usato e deve essere NULL.

SHCNE_MEDIAREMOVED

I supporti di archiviazione sono stati rimossi da un'unità. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene la radice dell'unità da cui è stato rimosso il supporto. dwItem2 non viene usato e deve essere NULL.

SHCNE_MKDIR

È stata creata una cartella. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene la cartella creata. dwItem2 non viene usato e deve essere NULL.

SHCNE_NETSHARE

Una cartella nel computer locale viene condivisa tramite la rete. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene la cartella condivisa. dwItem2 non viene usato e deve essere NULL.

SHCNE_NETUNSHARE

Una cartella nel computer locale non viene più condivisa tramite la rete. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene la cartella che non è più condivisa. dwItem2 non viene usato e deve essere NULL.

SHCNE_RENAMEFOLDER

Il nome di una cartella è cambiato. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene il nome o piDL precedente della cartella. dwItem2 contiene il nuovo PIDL o il nome della cartella.

SHCNE_RENAMEITEM

Il nome di un elemento nonfolder è stato modificato. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene il nome o piDL precedente dell'elemento. dwItem2 contiene il nuovo PIDL o il nome dell'elemento.

SHCNE_RMDIR

È stata rimossa una cartella. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene la cartella rimossa. dwItem2 non viene usato e deve essere NULL.

SHCNE_SERVERDISCONNECT

Il computer è disconnesso da un server. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene il server da cui è stato disconnesso il computer. dwItem2 non viene usato e deve essere NULL.

SHCNE_UPDATEDIR

Il contenuto di una cartella esistente è stato modificato, ma la cartella esiste ancora e non è stata rinominata. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene la cartella modificata. dwItem2 non viene usato e deve essere NULL. Se una cartella è stata creata, eliminata o rinominata, usare rispettivamente SHCNE_MKDIR, SHCNE_RMDIR o SHCNE_RENAMEFOLDER.

SHCNE_UPDATEIMAGE

Un'immagine nell'elenco di immagini di sistema è stata modificata. SHCNF_DWORD deve essere specificato in uFlags.

dwItem2 contiene l'indice nell'elenco di immagini di sistema che è stato modificato. dwItem1 non viene usato e deve essere NULL.

SHCNE_UPDATEITEM

Un elemento esistente (una cartella o una non cartella) è stato modificato, ma l'elemento esiste ancora e non è stato rinominato. SHCNF_IDLIST o SHCNF_PATH devono essere specificati in uFlags. dwItem1 contiene l'elemento modificato. dwItem2 non viene usato e deve essere NULL. Se un elemento nonfolder è stato creato, eliminato o rinominato, utilizzare rispettivamente SHCNE_CREATE, SHCNE_DELETE o SHCNE_RENAMEITEM.

SHCNE_DISKEVENTS

Specifica una combinazione di tutti gli identificatori di evento del disco.

SHCNE_GLOBALEVENTS

Specifica una combinazione di tutti gli identificatori di evento globali.

SHCNE_INTERRUPT

L'evento specificato si è verificato in seguito a un'interruzione di sistema. Poiché questo valore modifica altri valori di evento, non può essere usato da solo.

uFlags

Tipo: UINT

Flag che, se combinati bit per bit con SHCNF_TYPE, indicano il significato dei parametri dwItem1 e dwItem2. Il parametro uFlags deve essere uno dei valori seguenti.

SHCNF_DWORD

I parametri dwItem1 e dwItem2 sono valori DWORD .

SHCNF_IDLIST

dwItem1 e dwItem2 sono gli indirizzi delle strutture ITEMIDLIST che rappresentano gli elementi interessati dalla modifica. Ogni ITEMIDLIST deve essere relativo alla cartella desktop.

SHCNF_PATH

dwItem1 e dwItem2 sono gli indirizzi di stringhe con terminazione Null di lunghezza massima MAX_PATH che contengono i nomi di percorso completi degli elementi interessati dalla modifica.

SHCNF_PRINTER

dwItem1 e dwItem2 sono gli indirizzi di stringhe con terminazione Null che rappresentano i nomi descrittivi delle stampanti interessate dalla modifica.

SHCNF_FLUSH

La funzione non deve restituire finché la notifica non viene recapitata a tutti i componenti interessati. Poiché questo flag modifica altri flag di tipo dati, non può essere usato da solo.

SHCNF_FLUSHNOWAIT

La funzione deve iniziare a recapitare notifiche a tutti i componenti interessati, ma deve restituire non appena è iniziato il processo di notifica. Poiché questo flag modifica altri flag di tipo dati, non può essere usato da solo. Questo flag include SHCNF_FLUSH.

SHCNF_NOTIFYRECURSIVE

Notificare ai client registrati per tutti gli elementi figlio.

[in, optional] dwItem1

Tipo: LPCVOID

facoltativo. Primo valore dipendente dall'evento.

[in, optional] dwItem2

Tipo: LPCVOID

facoltativo. Secondo valore dipendente dall'evento.

Valore restituito

nessuno

Osservazioni

Le applicazioni che registrano nuovi gestori di qualsiasi tipo devono chiamare SHChangeNotify con il flag SHCNE_ASSOCCHANGED per indicare a Shell di invalidare l'icona e la cache di anteprima. Verrà caricata anche una nuova icona e gestori di anteprima registrati. Si noti, tuttavia, che i gestori di sovrapposizione delle icone non vengono ricaricati.

Le stringhe a cui punta dwItem1 e dwItem2 possono essere ANSI o Unicode.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shlobj_core.h (includere Shlobj.h)
Libreria Shell32.lib
DLL Shell32.dll (versione 4.0 o successiva)
Set di API ext-ms-win-shell-shell32-l1-2-0 (introdotto in Windows 8.1)