문제

Desktop 아래에 뿌리를 둔 네임스페이스 확장을 만들었습니다.확장의 주요 목적은 구성 가능한 디렉터리 목록을 나타내는 ZIP 파일의 가상 목록을 제공하는 것입니다.사용자가 해당 항목 중 하나를 클릭하면 관련 디렉터리의 내용이 압축되고 결과 ZIP 파일이 캐시 폴더에 저장됩니다.

이 모든 것은 사소한 문제를 제외하고는 잘 작동합니다.Windows 탐색기로 이동하면 확장 프로그램을 열고 열린 파일이 캐시에 있는 항목을 두 번 클릭합니다.[옳은]

반면에 열기 대화 상자로 열면 열린 파일은 임시 인터넷 파일 디렉터리에 있는 파일입니다.[잘못된]

임시 인터넷 파일이 아닌 캐시 폴더에서 파일을 열려면 열기 대화 상자(예: notepad.exe를 통해 사용되는 경우)에 대해 무엇을 변경해야 합니까?IShellFolder::GetDisplayNameOf에서 정규화된 파일 이름을 항상 보내려고 했지만 운이 없었습니다.

도움이 되었습니까?

해결책 2

마스킹으로 문제가 해결되었습니다. SFGAO_FILESYSTEM 인터페이스 메소드 구현으로 반환된 속성 IShellFolder::GetAttributesOf.

다른 팁

올바른 초기 디렉토리(OPENFILENAME 구조체의 lpstrInitialDir 또는 lpstrFile 매개변수)를 전달하지 않는 것 같습니다.

lpstrInitialDir에 캐시 디렉터리를 입력하고 lpstrFile을 비워두면 작동합니다.

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