お世話になります。VB6でコマンドボタンを押すとフォルダ参照ダイアログが開き、フォルダ選択後,テキストボックスにパスを表示させる機能を作成しました。現在テキストボックスにパスを入力後、コマンドボタンを押すとフォルダ参照ダイアログを開き、取得したパスのフォルダがすでに選択されている機能を作成したいのですが,取得したパスをDList?に変換は可能でしょうか?
> 取得したパスのフォルダがすでに選択されている機能を作成したいのですがInitDir および FileName プロパティを事前に設定しておくだけでは駄目ですか?> 取得したパスをDList?に変換は可能でしょうか?"DList?" というのは、何のことでしょうか?
ありがとうございます。> InitDir および FileName プロパティを事前に設定しておくだけでは駄目ですか?> すみません設定方法がわからないです。> > 取得したパスをDList?に変換は可能でしょうか?> "DList?" というのは、何のことでしょうか?
>連投ですみません。 > 取得したパスをDList?に変換は可能でしょうか?間違えました。IDListです。SHBrowseForFolder APIを呼び出した時の、値?と思います.これを今までパスに変換をしていたのですが、逆にパスから変換できないかなと思いました。
> 間違えました。IDListです。SHBrowseForFolder APIを呼び出した時の、値?と思います.アイテムIDリスト (ITEMIDLIST 構造体 / PIDL)、あるいは、その唯一メンバである SHITEMID 構造体の事でしょうか。http://www.kab-studio.biz/Programing/Codian/ShellExtension/06.html> これを今までパスに変換をしていたのですが、逆にパスから変換できないかなと思いました。SHILCreateFromPath API を使うのが簡単かと。
> その唯一メンバである SHITEMID 構造体の事でしょうか。> http://www.kab-studio.biz/Programing/Codian/ShellExtension/06.htmlありがとうございます!参考になりました。 作成したのはBrowseInfo構造体です。> SHILCreateFromPath API を使うのが簡単かと。すみません、見つけきれなかったです。
> > その唯一メンバである SHITEMID 構造体の事でしょうか。> > http://www.kab-studio.biz/Programing/Codian/ShellExtension/06.html> 作成したのはBrowseInfo構造体です。BrowseInfo 構造体ではなくBROWSEINFO 構造体ですよね、本来は。# SHBrowseForFolder から「受け取る方」の値の話ではなく、# SHBrowseForFolder に「渡す方」の値の話だったのですね。読み違えていました。> > SHILCreateFromPath API を使うのが簡単かと。> すみません、見つけきれなかったです。それ以外で有名な方法として、SHGetDesktopFolder で IShellFolder を得て、その ParseDisplayName メソッドを使って変換する方法もあります。……楽かどうかは別として。http://support.microsoft.com/kb/132750/ja