2011-04-28 2 views
4

안녕하세요 저는 셸 확장에 익숙하지 않습니다. http://www.codeproject.com/KB/shell/overlayicon.aspx 문서를 읽고 이름에 "sample"문자열이 포함 된 파일에 오버레이 아이콘을 표시 할 수있었습니다. 이제 내 질문은 업로드, 업로드 등 파일 상태에 따라 다른 파일에 대한 다른 오버레이를 표시하는 응용 프로그램이 있다는 것입니다. 특정 경로에 특정 파일/폴더에 대해 오버레이를 설정할 수있는 방법을 알려주십시오. 시스템에서. 감사합니다.상태에 따라 다른 파일의 오버레이 아이콘

답변

2

해당 기사에서 배운 내용 만 적용하면됩니다. 지금하고 싶은 것은 거의 똑같습니다. 셸이 처리기를 호출하고 오버레이 아이콘을 묻습니다. 코드가 항목의 상태를 확인하고 올바른 오버레이 아이콘을 반환합니다. 항목을 소유하지 않은 경우 셸에 오버레이를 전혀 표시하지 않도록 지시합니다.

Creating Icon Overlay Handlers에 대한 자세한 내용은 MSDN에서 읽을 수 있습니다.

또는 David suggests hereRichard suggests here으로, 예제로 배우기를 원한다면 TortoiseSVN 소스 코드 (GPL 라이센스이므로)를 통해 볼 수 있습니다.

그러나 셸이 등록 할 수있는 a hard limit on the number of overlay icons을 부과합니다. 현재 응용 프로그램이 너무 많이 등록하려고하거나 등록 된 오버레이가있는 다른 응용 프로그램 (예 : TortoiseSVN)이있는 경우 문제가 발생합니다. 이것이 실제로 정보를 표시하는 적절한 방법인지 여부를 심각하게 재검토하고 싶을 수도 있습니다.

+0

감사합니다. Cody Gray. 나는 시도한 다음 도움을 요청할 것입니다 – Asghar

+0

이것은 코드입니다. 여기에 기준을 변경할 수있는 방법을 알려주십시오. 예를 들어 쉘에서 파일 경로를 얻고 패스 경로가 다음과 같으면 OK'IFACEMETHODIMP CFileIconOverlayExt :: IsMemberOf (LPCWSTR pwszPath, \t \t \t \t \t \t \t \t \t \t \t DWORD의 dwAttrib) { \t \t (wcsstr (pwszPath, L "샘플")! = 0) \t \t \t경우 반환 S_OK; \t \t else \t \t return S_FALSE; } – Asghar