2008-09-16 3 views
0

Desktopの下にある名前空間拡張を作成しました。この拡張の主な目的は、構成可能なディレクトリのリストを表すZIPファイルの仮想リストを提供することです。ユーザーがこれらのアイテムの1つをクリックすると、関連ディレクトリの内容が圧縮され、結果のZIPファイルがキャッシュフォルダに格納されます。仮想ファイルが一時インターネットファイルから開かれます

これはすべて、マイナーな問題ではありません。 Windowsエクスプローラに移動した場合は、拡張子を開いてアイテムをダブルクリックすると、開いているファイルがキャッシュのファイルになります。 [正しい]

オープン・ダイアグラムで開くと、オープン・ファイルはインターネット・ファイルの一時ディレクトリーにあります。 [INCORRECT]

オープン・ダイアログ(notepad.exeなど)を使用してキャッシュ・フォルダからファイルを開くにはどうしたらよいですか? IShellFolder :: GetDisplayNameOfで修飾されたファイル名をallways送信しようとしましたが、運がまったくありません。

答えて

0

インターフェイスメソッドIShellFolder::GetAttributesOfの実装によって返された属性にSFGAO_FILESYSTEMをマスキングすることによって問題が解決されました。

0

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

lpstrInitialDirにキャッシュディレクトリを入力し、lpstrFileを空白のままにしておくと動作します。

+0

ファイルを直接開くことはできません。これは、IShellFolder :: GetDisplayNameOfで提供されている名前を与えられたシェルプログラミングモデルによって注意を払っています。 –

関連する問題