質問

私は、プレビューウィンドウでの私のカスタムファイル形式を表示するには、エクスプローラの拡張を書きました。これは、Windows 7で正常に動作しますが、Vistaで動作するようには思えません。同じDLLは、サムネイルやプレビューペインの両方を処理します。物事のサムネイル側は、VistaとのWindows7の両方で動作します。

私のコードにログを追加、ビスタスのみプレビューハンドラクラス、サムネイルクラスのための私のいるDllGetClassObject関数を呼び出していない。

VistaがのWindows7に異なっないことが何も明らかにされたときに呼び出すCOM DLLを?

ここで私は、レジストリに追加している値があります:

HKEY_CLASSES_ROOT\\.<myext>\\(default) = "<myext>.Thumbnail.Handler.1"
HKEY_CLASSES_ROOT\\<myext>.Thumbnail.Handler.1\\ShellEx\\{8895b1c6-b41f-4c1c-a562-0d564250836f}\\(default) = "<myguid>"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\(default) = "<myext> Preview Handler"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\DisplayName = "@ExplorerPreviewHandler.dll,-101"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\Icon = "@ExplorerPreviewHandler.dll,201"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\AppID = "{6d2b5079-2f0b-48dd-ab7f-97cec514d30b}"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\InProcServer32\\(default) = "<path to my dll>"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\InProcServer32\\ThreadingModel = "Apartment"
HKEY_CLASSES_ROOT\\CLSID\\<myguid>\\InProcServer32\\ProgID = "<myext>.Thumbnail.Handler.1"
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\PreviewHandlers\\<myguid> = "<myext> Preview Handler"},
私のいるDllGetClassObjectが呼び出されていないことを考えると、私はこの問題は、私がレジストリに設定てるものとは何かでなければなりませんね?私はそれがVistaとWin7の両方でのサムネイルのために働く、とのWindows7でのプレビューペインのために働くようDLLの輸出は、大丈夫です知っています。

私のVistaとWin7のOSの両方がそうであるように、

DLLは、x64のです。 DLLは、ATLせずにC ++で書かれています。

これで任意の助けをありがとう、 ダンます。

役に立ちましたか?

解決

REGルックスは、デフォルトのプログラムIDが欠落している、okayish。 win7のはPreviewHandlersキーの位置については、別の行動を記録していません。残念ながら、SDKのドキュメントは、Vistaが必要で何を言っていません。 HKLMの代わりにHKCUを使用する A Vistaの時間雑誌の記事。私はそれはそれだ賭けます。

scroll top