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) |