仮想ファイルはインターネット一時ファイルから開かれます

StackOverflow https://stackoverflow.com/questions/71475

  •  09-06-2019
  •  | 
  •  

質問

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

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

一方、開くダイアログで開くと、開かれるファイルはインターネット一時ファイル ディレクトリにあるファイルになります。[正しくない]

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

役に立ちましたか?

解決 2

問題はマスキングによって修正されました SFGAO_FILESYSTEM インターフェースメソッドの実装によって返される属性内 IShellFolder::GetAttributesOf.

他のヒント

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top