SHChangeNotify 함수(shlobj_core.h)

애플리케이션이 수행한 이벤트의 시스템에 알 수 있습니다. 애플리케이션은 셸에 영향을 줄 수 있는 작업을 수행하는 경우 이 함수를 사용해야 합니다.

구문

void SHChangeNotify(
                 LONG    wEventId,
                 UINT    uFlags,
  [in, optional] LPCVOID dwItem1,
  [in, optional] LPCVOID dwItem2
);

매개 변수

wEventId

형식: LONG

발생한 이벤트를 설명합니다. 일반적으로 한 번에 하나의 이벤트만 지정됩니다. 둘 이상의 이벤트가 지정된 경우 dwItem1dwItem2 매개 변수에 포함된 값은 지정된 모든 이벤트에 대해 각각 동일해야 합니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

SHCNE_ALLEVENTS

모든 이벤트가 발생했습니다.

SHCNE_ASSOCCHANGED

파일 형식 연결이 변경되었습니다. SHCNF_IDLISTuFlags 매개 변수에 지정해야 합니다. dwItem1dwItem2 는 사용되지 않으며 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 비트와 결합할 때 dwItem1dwItem2 매개 변수의 의미를 나타내는 플래그입니다. uFlags 매개 변수는 다음 값 중 하나여야 합니다.

SHCNF_DWORD

dwItem1dwItem2 매개 변수는 DWORD 값입니다.

SHCNF_IDLIST

dwItem1dwItem2 는 변경의 영향을 받는 항목을 나타내는 ITEMIDLIST 구조체의 주소입니다. 각 ITEMIDLIST 는 데스크톱 폴더를 기준으로 해야 합니다.

SHCNF_PATH

dwItem1dwItem2 는 변경의 영향을 받는 항목의 전체 경로 이름을 포함하는 최대 길이 MAX_PATH null로 끝나는 문자열의 주소입니다.

SHCNF_PRINTER

dwItem1dwItem2 는 변경의 영향을 받는 프린터의 이름을 나타내는 null로 끝나는 문자열의 주소입니다.

SHCNF_FLUSH

영향을 받는 모든 구성 요소에 알림이 전달될 때까지 함수가 반환되지 않아야 합니다. 이 플래그는 다른 데이터 형식 플래그를 수정하므로 자체에서 사용할 수 없습니다.

SHCNF_FLUSHNOWAIT

함수는 영향을 받는 모든 구성 요소에 알림 배달을 시작해야 하지만 알림 프로세스가 시작되는 즉시 반환되어야 합니다. 이 플래그는 다른 데이터 형식 플래그를 수정하므로 자체에서 사용할 수 없습니다. 이 플래그에는 SHCNF_FLUSH 포함됩니다.

SHCNF_NOTIFYRECURSIVE

모든 자식에 대해 등록된 클라이언트에 알립니다.

[in, optional] dwItem1

형식: LPCVOID

선택 사항입니다. 첫 번째 이벤트 종속 값입니다.

[in, optional] dwItem2

형식: LPCVOID

선택 사항입니다. 두 번째 이벤트 종속 값입니다.

반환 값

없음

설명

모든 형식의 새 처리기를 등록하는 애플리케이션은 SHCNE_ASSOCCHANGED 플래그를 사용하여 SHChangeNotify를 호출하여 셸에 아이콘 및 미리 보기 캐시를 무효화하도록 지시해야 합니다. 또한 등록된 새 아이콘 및 썸네일 처리기도 로드됩니다. 그러나 아이콘 오버레이 처리기는 다시 로드되지 않습니다.

dwItem1dwItem2에서 가리키는 문자열은 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 소개)