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)