문제

ATL (Visual Studio 2008)을 사용하여 Windows Shell Extension을 만들었습니다. 다음 모듈이 있으며 각 모듈은 등록을 위해 고유 한 .rgs 파일이있는 별도의 ATL 간단한 개체입니다.

  1. Ishellfolder/Ishellview-> Windows 탐색기의 가상 드라이브 용.
  2. 팝업 메뉴 파일 및 폴더 용 iconTextMenu/ishellextInit->
  3. iShelliconoverlayIntifier- 파일 및 폴더에 오버레이 아이콘을 표시하려면
  4. ishellpropsheetext/ishellextinit-> 파일 및 폴더 속성의 사용자 정의 속성 페이지 용.

위의 것은 WinXP에서 잘 작동하며 WinXP 에서이 쉘 확장을 디버깅 할 수 있습니다. 그러나 Vista로 전환하자마자 (2)와 (4)에 대한 방법 호출 만받습니다. 드라이브는 Windows 탐색기에서 생성되지만 클릭하면 기본 방법이 호출되지 않습니다. 마우스 오른쪽 버튼을 클릭하면 (2)를 요청하고 파일 또는 폴더에 대해 "속성"을 선택하면 (4) 코드에 들어갑니다.

Vista에서 (1)과 (3)에 대해 누락 된 인터페이스가 있습니까? MSDN에서 Vista에 대한 쉘 확장을 작성하는 것에 대한 전체적이고 자세한 문서를 찾을 수 없었습니다. 나는 이미 쉘 확장에 대한 CodeProject 기사를 겪었다.

도움이 되었습니까?

해결책

문제는 XML 스마트 포인터 사용 때문이었습니다. Release ()가 호출 될 때 문제가있었습니다.

이 링크를 확인하십시오msxml2 :: ixmldomdocumentptr-> release ()가

다른 팁

확장자가 초기화를 올바르게 처리하고 있는지 확인하십시오. 그렇지 않으면 verclsid.exe로 인해 확장이로드되지 않습니다. verclsid.exe는 먼저 쉘 확장을로드하고 쉘에 'OK'를 보내기 전에 빠른 체크를 수행하여 확장을로드하는 것이 안전하다는 것을 나타냅니다.

보다 여기 verclsid.exe에 대한 자세한 내용은

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