SHChangeNotify 함수(shlobj_core.h)
애플리케이션이 수행한 이벤트의 시스템에 알 수 있습니다. 애플리케이션은 셸에 영향을 줄 수 있는 작업을 수행하는 경우 이 함수를 사용해야 합니다.
구문
void SHChangeNotify(
LONG wEventId,
UINT uFlags,
[in, optional] LPCVOID dwItem1,
[in, optional] LPCVOID dwItem2
);
매개 변수
wEventId
형식: LONG
발생한 이벤트를 설명합니다. 일반적으로 한 번에 하나의 이벤트만 지정됩니다. 둘 이상의 이벤트가 지정된 경우 dwItem1 및 dwItem2 매개 변수에 포함된 값은 지정된 모든 이벤트에 대해 각각 동일해야 합니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.
SHCNE_ALLEVENTS
모든 이벤트가 발생했습니다.
SHCNE_ASSOCCHANGED
파일 형식 연결이 변경되었습니다. SHCNF_IDLISTuFlags 매개 변수에 지정해야 합니다. dwItem1 및 dwItem2 는 사용되지 않으며 NULL이어야 합니다. 등록된 프로토콜에 대해서도 이 이벤트를 보내야 합니다.
SHCNE_ATTRIBUTES
항목 또는 폴더의 특성이 변경되었습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 변경된 항목 또는 폴더가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_CREATE
폴더가 아닌 항목이 만들어졌습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 생성된 항목이 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_DELETE
폴더가 아닌 항목이 삭제되었습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 삭제된 항목이 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_DRIVEADD
드라이브가 추가되었습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 추가된 드라이브의 루트가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_DRIVEADDGUI
Windows XP 이상: 사용되지 않습니다.
SHCNE_DRIVEREMOVED
드라이브가 제거되었습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 제거된 드라이브의 루트가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_EXTENDED_EVENT
현재 사용되지 않습니다.
SHCNE_FREESPACE
드라이브의 여유 공간이 변경되었습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 사용 가능한 공간이 변경된 드라이브의 루트가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_MEDIAINSERTED
스토리지 미디어가 드라이브에 삽입되었습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 새 미디어가 포함된 드라이브의 루트가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_MEDIAREMOVED
스토리지 미디어가 드라이브에서 제거되었습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 미디어가 제거된 드라이브의 루트가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_MKDIR
폴더가 만들어졌습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 생성된 폴더가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_NETSHARE
로컬 컴퓨터의 폴더가 네트워크를 통해 공유되고 있습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 공유되는 폴더가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_NETUNSHARE
로컬 컴퓨터의 폴더가 더 이상 네트워크를 통해 공유되지 않습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 더 이상 공유되지 않는 폴더가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_RENAMEFOLDER
폴더 이름이 변경되었습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 폴더의 이전 PIDL 또는 이름이 포함되어 있습니다. dwItem2 에는 폴더의 새 PIDL 또는 이름이 포함됩니다.
SHCNE_RENAMEITEM
폴더가 아닌 항목의 이름이 변경되었습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 항목의 이전 PIDL 또는 이름이 포함됩니다. dwItem2 에는 항목의 새 PIDL 또는 이름이 포함됩니다.
SHCNE_RMDIR
폴더가 제거되었습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 제거된 폴더가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_SERVERDISCONNECT
컴퓨터의 서버 연결이 끊어졌습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 컴퓨터의 연결이 끊어진 서버가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다.
SHCNE_UPDATEDIR
기존 폴더의 내용이 변경되었지만 폴더는 여전히 존재하며 이름이 바뀌지 않았습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 변경된 폴더가 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다. 폴더를 만들거나 삭제하거나 이름을 바꾼 경우 각각 SHCNE_MKDIR, SHCNE_RMDIR 또는 SHCNE_RENAMEFOLDER 사용합니다.
SHCNE_UPDATEIMAGE
시스템 이미지 목록의 이미지가 변경되었습니다. SHCNF_DWORDuFlags에 지정해야 합니다.
dwItem2 에는 변경된 시스템 이미지 목록의 인덱스가 포함되어 있습니다. dwItem1 은 사용되지 않으며 NULL이어야 합니다.
SHCNE_UPDATEITEM
기존 항목(폴더 또는 비폴더)이 변경되었지만 항목은 여전히 존재하며 이름이 바뀌지 않았습니다. SHCNF_IDLIST 또는 SHCNF_PATHuFlags에 지정해야 합니다. dwItem1 에는 변경된 항목이 포함되어 있습니다. dwItem2 는 사용되지 않으며 NULL이어야 합니다. 폴더가 아닌 항목이 만들어지거나 삭제되거나 이름이 바뀐 경우 각각 SHCNE_CREATE, SHCNE_DELETE 또는 SHCNE_RENAMEITEM 대신 사용합니다.
SHCNE_DISKEVENTS
모든 디스크 이벤트 식별자의 조합을 지정합니다.
SHCNE_GLOBALEVENTS
모든 전역 이벤트 식별자의 조합을 지정합니다.
SHCNE_INTERRUPT
시스템 인터럽트 결과로 지정된 이벤트가 발생했습니다. 이 값은 다른 이벤트 값을 수정하므로 단독으로 사용할 수 없습니다.
uFlags
형식: UINT
SHCNF_TYPE 비트와 결합할 때 dwItem1 및 dwItem2 매개 변수의 의미를 나타내는 플래그입니다. uFlags 매개 변수는 다음 값 중 하나여야 합니다.
SHCNF_DWORD
dwItem1 및 dwItem2 매개 변수는 DWORD 값입니다.
SHCNF_IDLIST
dwItem1 및 dwItem2 는 변경의 영향을 받는 항목을 나타내는 ITEMIDLIST 구조체의 주소입니다. 각 ITEMIDLIST 는 데스크톱 폴더를 기준으로 해야 합니다.
SHCNF_PATH
dwItem1 및 dwItem2 는 변경의 영향을 받는 항목의 전체 경로 이름을 포함하는 최대 길이 MAX_PATH null로 끝나는 문자열의 주소입니다.
SHCNF_PRINTER
dwItem1 및 dwItem2 는 변경의 영향을 받는 프린터의 이름을 나타내는 null로 끝나는 문자열의 주소입니다.
SHCNF_FLUSH
영향을 받는 모든 구성 요소에 알림이 전달될 때까지 함수가 반환되지 않아야 합니다. 이 플래그는 다른 데이터 형식 플래그를 수정하므로 자체에서 사용할 수 없습니다.
SHCNF_FLUSHNOWAIT
함수는 영향을 받는 모든 구성 요소에 알림 배달을 시작해야 하지만 알림 프로세스가 시작되는 즉시 반환되어야 합니다. 이 플래그는 다른 데이터 형식 플래그를 수정하므로 자체에서 사용할 수 없습니다. 이 플래그에는 SHCNF_FLUSH 포함됩니다.
SHCNF_NOTIFYRECURSIVE
모든 자식에 대해 등록된 클라이언트에 알립니다.
[in, optional] dwItem1
형식: LPCVOID
선택 사항입니다. 첫 번째 이벤트 종속 값입니다.
[in, optional] dwItem2
형식: LPCVOID
선택 사항입니다. 두 번째 이벤트 종속 값입니다.
반환 값
없음
설명
모든 형식의 새 처리기를 등록하는 애플리케이션은 SHCNE_ASSOCCHANGED 플래그를 사용하여 SHChangeNotify를 호출하여 셸에 아이콘 및 미리 보기 캐시를 무효화하도록 지시해야 합니다. 또한 등록된 새 아이콘 및 썸네일 처리기도 로드됩니다. 그러나 아이콘 오버레이 처리기는 다시 로드되지 않습니다.
dwItem1 및 dwItem2에서 가리키는 문자열은 ANSI 또는 유니코드일 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | shlobj_core.h(Shlobj.h 포함) |
라이브러리 | Shell32.lib |
DLL | Shell32.dll(버전 4.0 이상) |
API 세트 | ext-ms-win-shell-shell32-l1-2-0(Windows 8.1 소개) |