문제

간단한 파일 브라우저가 있고 파일과 폴더를 표시합니다.

(디렉토리 용)

SHFILEINFO info = new SHFILEINFO();
SHGetFileInfo(filename,
FILE_ATTRIBUTE_DIRECTORY,
ref info,Marshal.SizeOf(info),
SHGFI_ICON | SHGFI_USEFILEATTRIBUTES | SHGFI_SMALLICON | SHGFI_ADDOVERLAYS);

100% 잘 작동하지만 이상한 점을 알았습니다. 디렉토리의 아이콘을 얻으려고하지만 file_attribute_directory 대신 File_attribute_normal을 지정하지만 디렉토리에 대해 이상한 작업을 수행합니다. 일반 폴더는 "알 수없는 파일 유형 백서"아이콘, 재활용이 있습니다. 빈에는 VLC 아이콘 등이 있습니다. SVN의 디렉토리는 적절한 오버레이가 있지만베이스 파일 아이콘 (흰색 용지)이 있습니다.

디렉토리의 기본 아이콘이 이제 알려지지 않은 파일 중 하나라는 것을 이해하지만 왜 일부 폴더가 완전히 이상한 아이콘을 가지고 있습니까? config.msi는 설치 프로그램 아이콘이 있으며, 재활용 빈은 VLC 아이콘 (wtf?!) 등이 있습니다. 쉘 함수는이 매개 변수로 무엇을합니까? 정확히 어떤 아이콘을 얻습니까?

다시 말하지만, 이것은 문제가 아닙니다. 나는 단지 궁금합니다.

도움이 되었습니까?

해결책

내가 아는 한, 아이콘 리소스는 숫자 인덱스에 의해 액세스되므로 올바른 색인이 가져오고 아이콘이 잘못된 라이브러리 또는 올바른 라이브러리에서 가져온 것이지만 잘못된 오프셋+올바른 색인을 사용한다는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top