Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Registra una ventana para recibir notificaciones del sistema de archivos o shell, si el sistema de archivos admite notificaciones.
Sintaxis
ULONG SHChangeNotifyRegister(
[in] HWND hwnd,
int fSources,
LONG fEvents,
UINT wMsg,
int cEntries,
[in] const SHChangeNotifyEntry *pshcne
);
Parámetros
[in] hwnd
Tipo: HWND
Identificador de la ventana que recibe los mensajes de cambio o notificación.
fSources
Tipo: int
Uno o varios de los valores siguientes que indican el tipo de eventos para los que se van a recibir notificaciones.
SHCNRF_InterruptLevel (0x0001)
Notificaciones de nivel de interrupción del sistema de archivos.
SHCNRF_ShellLevel (0x0002)
Notificaciones de nivel de shell del shell.
SHCNRF_RecursiveInterrupt (0x1000)
Interrumpir eventos en todo el subárbol. Esta marca debe combinarse con la marca SHCNRF_InterruptLevel . Al usar esta marca, también se deben realizar notificaciones recursivas estableciendo el miembro fRecursive de la estructura SHChangeNotifyEntry correspondiente a la que hace referencia pshcne en TRUE. El uso de SHCNRF_RecursiveInterrupt en una vista de nivel único (por ejemplo, un PIDL relativo y que solo contiene un SHITEMID) bloqueará la notificación de eventos en el nivel más alto y, por tanto, evitará una actualización secundaria recursiva. Por lo tanto, un icono arrastrado al nivel más bajo de una jerarquía de carpetas puede no aparecer en la vista según lo previsto.
SHCNRF_NewDelivery (0x8000)
Los mensajes recibidos usan memoria compartida. Llame a SHChangeNotification_Lock para acceder a los datos reales. Llame a SHChangeNotification_Unlock para liberar la memoria cuando haya terminado.
fEvents
Tipo: LONG
Cambiar los eventos de notificación para los que se va a recibir la notificación. Consulte las marcas de SHCNE enumeradas en SHChangeNotify para conocer los valores posibles.
wMsg
Tipo: UINT
Mensaje que se va a publicar en el procedimiento de ventana.
cEntries
Tipo: int
Número de entradas en la matriz pshcne .
[in] pshcne
Tipo: const SHChangeNotifyEntry*
Matriz de estructuras SHChangeNotifyEntry que contienen las notificaciones. Esta matriz siempre debe establecerse en una al llamar a SHChangeNotifyRegister o SHChangeNotifyDeregister no funcionará correctamente.
Valor devuelto
Tipo: ULONG
Devuelve un identificador de registro entero positivo. Devuelve 0 si no hay memoria o en respuesta a parámetros no válidos.
Comentarios
Consulta el ejemplo Change Notify Watcher en el Kit de desarrollo de software (SDK) de Windows para ver un ejemplo completo que muestra el uso de esta función.
Cuando se genera un evento de notificación de cambio, el mensaje indicado por wMsg se entrega a la ventana especificada por el parámetro hwnd .
- Si se especifica SHCNRF_NewDelivery, los valores wParam y lParam del mensaje deben pasarse a SHChangeNotification_Lock como parámetros hChange y dwProcID respectivamente.
- Si no se especifica SHCNRF_NewDelivery, wParam es un puntero a dos punteros PIDLIST_ABSOLUTE y lParam especifica el evento. Los dos punteros PIDLIST_ABSOLUTE pueden ser NULL, en función del evento que se envíe.
Por motivos de rendimiento, se pueden combinar varias notificaciones en una sola notificación. Por ejemplo, si se genera un gran número de notificaciones de SHCNE_UPDATEITEM para los archivos de la misma carpeta, se pueden unir a una sola notificación de SHCNE_UPDATEDIR .
La función NTSHChangeNotifyRegister , que ya no está disponible a partir de Windows Vista, era equivalente a SHChangeNotifyRegister con la marca SHCNRF_NewDelivery.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [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 5.0 o posterior) |
Conjunto de API | ext-ms-win-shell-shell32-l1-2-1 (introducido en Windows 10, versión 10.0.10240) |