Función SHChangeNotify (shlobj_core.h)
Notifica al sistema de un evento que una aplicación ha realizado. Una aplicación debe usar esta función si realiza una acción que puede afectar al Shell.
Sintaxis
void SHChangeNotify(
LONG wEventId,
UINT uFlags,
[in, optional] LPCVOID dwItem1,
[in, optional] LPCVOID dwItem2
);
Parámetros
wEventId
Tipo: LONG
Describe el evento que se ha producido. Normalmente, solo se especifica un evento a la vez. Si se especifica más de un evento, los valores contenidos en los parámetros dwItem1 y dwItem2 deben ser los mismos, respectivamente, para todos los eventos especificados. Este parámetro puede ser uno o más de los siguientes valores:
SHCNE_ALLEVENTS
Se han producido todos los eventos.
SHCNE_ASSOCCHANGED
Una asociación de tipo de archivo ha cambiado. SHCNF_IDLIST debe especificarse en el parámetro uFlags . dwItem1 y dwItem2 no se usan y deben ser NULL. Este evento también debe enviarse para los protocolos registrados.
SHCNE_ATTRIBUTES
Los atributos de un elemento o carpeta han cambiado. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene el elemento o carpeta que ha cambiado. dwItem2 no se usa y debe ser NULL.
SHCNE_CREATE
Se ha creado un elemento que no es de la carpeta. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene el elemento que se creó. dwItem2 no se usa y debe ser NULL.
SHCNE_DELETE
Se ha eliminado un elemento que no es de la carpeta. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene el elemento que se eliminó. dwItem2 no se usa y debe ser NULL.
SHCNE_DRIVEADD
Se ha agregado una unidad. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene la raíz de la unidad que se agregó. dwItem2 no se usa y debe ser NULL.
SHCNE_DRIVEADDGUI
Windows XP y versiones posteriores: no se usa.
SHCNE_DRIVEREMOVED
Se ha quitado una unidad. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene la raíz de la unidad que se quitó. dwItem2 no se usa y debe ser NULL.
SHCNE_EXTENDED_EVENT
No se usa actualmente.
SHCNE_FREESPACE
La cantidad de espacio libre en una unidad ha cambiado. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene la raíz de la unidad en la que cambió el espacio libre. dwItem2 no se usa y debe ser NULL.
SHCNE_MEDIAINSERTED
Los medios de almacenamiento se han insertado en una unidad. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene la raíz de la unidad que contiene el nuevo medio. dwItem2 no se usa y debe ser NULL.
SHCNE_MEDIAREMOVED
Los medios de almacenamiento se han quitado de una unidad. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene la raíz de la unidad desde la que se quitó el medio. dwItem2 no se usa y debe ser NULL.
SHCNE_MKDIR
Se ha creado una carpeta. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene la carpeta que se creó. dwItem2 no se usa y debe ser NULL.
SHCNE_NETSHARE
Se comparte una carpeta en el equipo local a través de la red. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene la carpeta que se comparte. dwItem2 no se usa y debe ser NULL.
SHCNE_NETUNSHARE
Ya no se comparte una carpeta en el equipo local a través de la red. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene la carpeta que ya no se comparte. dwItem2 no se usa y debe ser NULL.
SHCNE_RENAMEFOLDER
El nombre de una carpeta ha cambiado. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene el PIDL o el nombre anteriores de la carpeta. dwItem2 contiene el nuevo PIDL o el nombre de la carpeta.
SHCNE_RENAMEITEM
El nombre de un elemento que no es de la carpeta ha cambiado. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene el PIDL o el nombre anterior del elemento. dwItem2 contiene el nuevo PIDL o el nombre del elemento.
SHCNE_RMDIR
Se ha quitado una carpeta. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene la carpeta que se quitó. dwItem2 no se usa y debe ser NULL.
SHCNE_SERVERDISCONNECT
El equipo se ha desconectado de un servidor. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene el servidor desde el que se desconectó el equipo. dwItem2 no se usa y debe ser NULL.
SHCNE_UPDATEDIR
El contenido de una carpeta existente ha cambiado, pero la carpeta sigue existiendo y no se ha cambiado de nombre. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene la carpeta que ha cambiado. dwItem2 no se usa y debe ser NULL. Si se ha creado, eliminado o cambiado el nombre de una carpeta, use SHCNE_MKDIR, SHCNE_RMDIR o SHCNE_RENAMEFOLDER, respectivamente.
SHCNE_UPDATEIMAGE
Ha cambiado una imagen de la lista de imágenes del sistema. SHCNF_DWORD debe especificarse en uFlags.
dwItem2 contiene el índice de la lista de imágenes del sistema que ha cambiado. dwItem1 no se usa y debe ser NULL.
SHCNE_UPDATEITEM
Un elemento existente (una carpeta o una nofolder) ha cambiado, pero el elemento sigue existiendo y no se ha cambiado el nombre. SHCNF_IDLIST o SHCNF_PATH deben especificarse en uFlags. dwItem1 contiene el elemento que ha cambiado. dwItem2 no se usa y debe ser NULL. Si se ha creado, eliminado o cambiado el nombre de un elemento que no es de una carpeta, use SHCNE_CREATE, SHCNE_DELETE o SHCNE_RENAMEITEM, respectivamente.
SHCNE_DISKEVENTS
Especifica una combinación de todos los identificadores de eventos de disco.
SHCNE_GLOBALEVENTS
Especifica una combinación de todos los identificadores de eventos globales.
SHCNE_INTERRUPT
El evento especificado se produjo como resultado de una interrupción del sistema. Dado que este valor modifica otros valores de evento, no se puede usar por sí solo.
uFlags
Tipo: UINT
Marcas que, cuando se combinan bit a bit con SHCNF_TYPE, indican el significado de los parámetros dwItem1 y dwItem2 . El parámetro uFlags debe ser uno de los valores siguientes.
SHCNF_DWORD
Los parámetros dwItem1 y dwItem2 son valores DWORD .
SHCNF_IDLIST
dwItem1 y dwItem2 son las direcciones de las estructuras ITEMIDLIST que representan los elementos afectados por el cambio. Cada ITEMIDLIST debe ser relativo a la carpeta de escritorio.
SHCNF_PATH
dwItem1 y dwItem2 son las direcciones de cadenas terminadas en null de longitud máxima MAX_PATH que contienen los nombres de ruta de acceso completos de los elementos afectados por el cambio.
SHCNF_PRINTER
dwItem1 y dwItem2 son las direcciones de cadenas terminadas en NULL que representan los nombres descriptivos de las impresoras afectadas por el cambio.
SHCNF_FLUSH
La función no debe devolverse hasta que se haya entregado la notificación a todos los componentes afectados. Dado que esta marca modifica otras marcas de tipo de datos, no se puede usar por sí misma.
SHCNF_FLUSHNOWAIT
La función debe comenzar a entregar notificaciones a todos los componentes afectados, pero debe devolverse tan pronto como haya comenzado el proceso de notificación. Dado que esta marca modifica otras marcas de tipo de datos, no se puede usar por sí misma. Esta marca incluye SHCNF_FLUSH.
SHCNF_NOTIFYRECURSIVE
Notificar a los clientes registrados para todos los elementos secundarios.
[in, optional] dwItem1
Tipo: LPCVOID
Opcional. Primer valor dependiente del evento.
[in, optional] dwItem2
Tipo: LPCVOID
Opcional. Segundo valor dependiente del evento.
Valor devuelto
None
Observaciones
Las aplicaciones que registran nuevos controladores de cualquier tipo deben llamar a SHChangeNotify con la marca SHCNE_ASSOCCHANGED para indicar al Shell que invalide el icono y la memoria caché de miniaturas. Esto también cargará nuevos controladores de iconos y miniaturas que se han registrado. Sin embargo, tenga en cuenta que los controladores de superposición de iconos no se vuelven a cargar.
Las cadenas a las que apunta dwItem1 y dwItem2 pueden ser ANSI o Unicode.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shlobj_core.h (incluya Shlobj.h) |
Library | Shell32.lib |
Archivo DLL | Shell32.dll (versión 4.0 o posterior) |
Conjunto de API | ext-ms-win-shell-shell32-l1-2-0 (introducido en Windows 8.1) |