共通ファイル ダイアログを使用してFOS_PICKFOLDERS
、ユーザーがファイルを保存する場所を選択できるようにしています。たとえば、ユーザーがライブラリを選択すると、現在のコードは、ファイル システム名を抽出するためLibrary\Documents
に呼び出した時点で失敗します。IShellItem::GetDisplayName
アイテムがファイルの場合、これは成功し、ライブラリのデフォルトの保存場所が使用されます。
私がやりたいことは、シェル アイテムがライブラリであることを検出し、IShellLibrary
インターフェイスを取得して、クエリを実行してデフォルトの保存場所を見つけることです。次に、そこにファイルを保存します。
IShellItem
がライブラリを参照していることを検出する正しい方法は何ですか?