0

デスクトップをルートとする名前空間拡張を作成しました。拡張機能の主な目的は、構成可能なディレクトリのリストを表す ZIP ファイルの仮想リストを提供することです。ユーザーがこれらの項目のいずれかをクリックすると、関連するディレクトリの内容が所定の場所に圧縮され、結果の ZIP ファイルがキャッシュ フォルダーに保存されます。

これはすべて、小さな問題を除けばうまく機能します。Windows エクスプローラーに移動し、拡張機能を開き、アイテムをダブルクリックして、開いたファイルがキャッシュからのファイルであることを確認します。[正しい]

一方、[開く] ダイアログで開くと、開いたファイルは一時インターネット ファイル ディレクトリからのものです。[正しくない]

インターネット一時ファイルからではなく、キャッシュ フォルダーからファイルを開くには、[開く] ダイアログ (たとえば、notepad.exe を使用する場合) に対して何を変更する必要がありますか。IShellFolder::GetDisplayNameOf で修飾されたファイル名を常に送信しようとしましたが、うまくいきませんでした。

4

2 に答える 2

0

正しい初期ディレクトリ(OPENFILENAME構造体のlpstrInitialDirまたはlpstrFileパラメータ)を渡していないようです。

lpstrInitialDirにキャッシュディレクトリを入力し、lpstrFileを空白のままにすると、機能するはずです。

于 2008-09-18T14:31:08.257 に答える
0

この問題はSFGAO_FILESYSTEM、インターフェイス メソッドIShellFolder::GetAttributesOfの実装によって返される属性をマスクすることで修正されました。

于 2009-07-29T07:40:29.423 に答える