2009-11-14 4 views
2

Windows 7에서 사용하기 위해 IThumbnailProvider을 개발하려고합니다.이 특정 축소판 그림은 동일한 디렉토리의 다른 파일에도 종속 될 것이므로 IInitializeWithStream 이외의 다른 경로를 사용해야합니다 , 이것은 IInitializeWithItem입니다. (또는 IInitializeWithFile을 사용할 수도 있지만 외관상으로는 더 이상 눈살을 찌푸리게됩니다.)IThumbnailProvider 및 IInitializeWithItem

내가 어떤 일을하든, 나는 작동하지 않습니다. Microsoft의 FileTypeVerifier.exe 도구는 IInitializeWithItem을 사용하여 녹색 표시등을 제공하지만 탐색기를 호출하면 IInitializeWithStream 번만 시도하는 것으로 보입니다. (이것은 상기 인터페이스를 일시적으로 구현함으로써 테스트되었고, Beep()은 그 Initialize()에서 사라짐) 무언가를 구성하는 것을 잊었습니까?

요약하면 어떻게 작동합니까?

답변

3

좋아, 결국 나는 그 문제가 무엇인지 알아 냈다. 스트림을 초기화 할 수없는 경우

는 경우가 있습니다은 MSDN 웹 사이트에 건물의 축소판 공급자 링크를 인용합니다. 썸네일 공급자가 IInitializeWithStream을 구현하지 않는 시나리오에서는 스트림을 변경할 때 시스템 인덱서가 기본적으로 배치하는 분리 된 프로세스에서 실행되지 않도록 선택해야합니다. 프로세스 격리 기능을 사용하지 않으려면 다음 레지스트리 값을 설정하십시오.

  • HKEY_CLASSES_ROOT

    • CLSID
    • {66742402-F9B9-11D1-A202-0000F81FEDEE}

      DisableProcessIsolation = 1

  • ,617,

나는 thumbnailproviders가 항상 프로세스를 벗어났다는 것을 다른 곳에서 읽었으므로 프로세스가 부족하다는 것을 알고있었습니다. 그러나 그 특정 스 니펫은 거의 모든 쉘 확장 핸들러에 있기 때문에 필자는 그것을 이해하는 방식으로 프로세스 내에서 실행하는 것이 필요했기 때문에이 스크립트를 지나치게 행복한 복사 붙여 넣기 작업으로 해석했습니다.

그리고 내가 틀 렸습니다. 나는 이것이 가까운 장래에 다른 누군가를 도울 것이라고 희망한다. :)