SHChangeNotifyRegister 함수(shlobj_core.h)
파일 시스템에서 알림을 지원하는 경우 파일 시스템 또는 셸에서 알림을 받을 창을 등록합니다.
구문
ULONG SHChangeNotifyRegister(
[in] HWND hwnd,
int fSources,
LONG fEvents,
UINT wMsg,
int cEntries,
[in] const SHChangeNotifyEntry *pshcne
);
매개 변수
[in] hwnd
형식: HWND
변경 또는 알림 메시지를 수신하는 창에 대한 핸들입니다.
fSources
형식: int
알림을 받을 이벤트 유형을 나타내는 다음 값 중 하나 이상입니다.
SHCNRF_InterruptLevel(0x0001)
파일 시스템의 인터럽트 수준 알림입니다.
SHCNRF_ShellLevel(0x0002)
셸의 셸 수준 알림입니다.
SHCNRF_RecursiveInterrupt(0x1000)
전체 하위 트리에서 이벤트를 인터럽트합니다. 이 플래그는 SHCNRF_InterruptLevel 플래그와 결합해야 합니다. 이 플래그를 사용하는 경우 pshcne에서 참조하는 해당 SHChangeNotifyEntry 구조체의 fRecursive 멤버를 TRUE로 설정하여 알림을 재귀적으로 만들어야 합니다. 단일 수준 보기에서 SHCNRF_RecursiveInterrupt 사용합니다(예: 상대이고 하나의 SHITEMID만 포함하는 PIDL)는 가장 높은 수준에서 이벤트 알림을 차단하여 재귀 자식 업데이트를 방지합니다. 따라서 폴더 계층 구조의 가장 낮은 수준으로 끌어간 아이콘이 예상대로 보기에 나타나지 않을 수 있습니다.
SHCNRF_NewDelivery(0x8000)
받은 메시지는 공유 메모리를 사용합니다. SHChangeNotification_Lock 호출하여 실제 데이터에 액세스합니다. 완료되면 SHChangeNotification_Unlock 호출하여 메모리를 해제합니다.
fEvents
형식: LONG
알림을 받을 알림 이벤트를 변경합니다. 가능한 값은 SHChangeNotify 에 나열된 SHCNE 플래그를 참조하세요.
wMsg
형식: UINT
창 프로시저에 게시할 메시지입니다.
cEntries
형식: int
pshcne 배열의 항목 수입니다.
[in] pshcne
형식: const SHChangeNotifyEntry*
알림을 포함하는 SHChangeNotifyEntry 구조체의 배열입니다. SHChangeNotifyRegister 또는 SHChangeNotifyDeregister가 제대로 작동하지 않을 때는 항상 이 배열을 1로 설정해야 합니다.
반환 값
형식: ULONG
양의 정수 등록 ID를 반환합니다. 메모리가 부족하거나 잘못된 매개 변수에 대한 응답으로 0을 반환합니다.
설명
이 함수의 사용을 보여 주는 전체 예제는 Windows SDK(소프트웨어 개발 키트)의 변경 알림 감시자 샘플을 참조하세요.
변경 알림 이벤트가 발생하면 wMsg 로 표시된 메시지가 hwnd 매개 변수로 지정된 창으로 전달됩니다.
- SHCNRF_NewDelivery 지정하면 메시지의 wParam 및 lParam 값이 각각 hChange 및 dwProcID 매개 변수로 SHChangeNotification_Lock 전달되어야 합니다.
- SHCNRF_NewDelivery 지정하지 않으면 wParam 은 두 개의 PIDLIST_ABSOLUTE 포인터에 대한 포인터이며 lParam 은 이벤트를 지정합니다. 전송되는 이벤트에 따라 두 PIDLIST_ABSOLUTE 포인터는 NULL일 수 있습니다.
성능상의 이유로 여러 알림을 단일 알림으로 결합할 수 있습니다. 예를 들어 동일한 폴더의 파일에 대해 많은 수의 SHCNE_UPDATEITEM 알림이 생성되는 경우 단일 SHCNE_UPDATEDIR 알림에 조인할 수 있습니다.
Windows Vista를 기준으로 더 이상 사용할 수 없는 NTSHChangeNotifyRegister 함수는 SHCNRF_NewDelivery 플래그가 있는 SHChangeNotifyRegister 와 동일합니다.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | shlobj_core.h(Shlobj.h 포함) |
라이브러리 | Shell32.lib |
DLL | Shell32.dll(버전 5.0 이상) |
API 세트 | ext-ms-win-shell-shell32-l1-2-1(Windows 10 버전 10.0.10240에 도입됨) |