3

私はIThumbnailProviderWindows7で使用するためにを開発しようとしています。この特定のサムネイルは同じディレクトリ内の他のファイルにも依存するためIInitializeWithStream、作業するパス以外のものを使用する必要があります。これはIInitializeWithItemです。(または、を使用することもできますIInitializeWithFileが、それは明らかにさらに眉をひそめています。)

私が何をしても、それを機能させることはできません。私はMicrosoftのFileTypeVerifier.exeツールを使って使用することを青信号にしてIInitializeWithItemいますが、エクスプローラーがそれを呼び出すと、それは試してみるだけのようIInitializeWithStreamです。(これは、上記のインターフェイスを一時的に実装し、その中でBeep()を実行することによってテストされましたInitialize())何かを構成するのを忘れましたか?

つまり、これを機能させるにはどうすればよいですか?

4

1 に答える 1

6

さて、私はついに何が問題なのかを知りました。MSDNWebサイトのBuildingThumbnailProvidersリンクを引用するには:

ストリームによる初期化ができない場合があります。サムネイルプロバイダーがIInitializeWithStreamを実装していないシナリオでは、ストリームに変更があった場合に、システムインデクサーがデフォルトでサムネイルプロバイダーを配置する分離プロセスでの実行をオプトアウトする必要があります。プロセス分離機能をオプトアウトするには、次のレジストリ値を設定します。

  • HKEY_CLASSES_ROOT

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

      DisableProcessIsolation = 1

サムネイルプロバイダーは常にプロセスが不足していることを他の場所で読んだので、プロセスが不足していることを知っていました。しかし、その特定のスニペットはほぼすべてのシェル拡張ハンドラー上にあるため、私が理解した方法でインプロセスで実行する必要があったため、非常に満足のいくコピーアンドペーストジョブであると解釈しました。

そして、私は間違っていました。これが近い将来誰か他の人に役立つことを願っています。:)

于 2009-11-15T04:13:11.977 に答える