仮想フォルダのアイコンを取得し、ツリービューに表示したいと考えています。
SHGetSpecialFolderLocationを使えばいいと思いますが、
CLSIDからアイコンを取得することは、できるのでしょうか?
VB.NET 2003 Win2000SP5
説明不足だったので。
ファイル・フォルダは、Shellオブジェクトで取得しています。
アイコン自体は、SHGFI_SYSICONINDEXでアイコンインデックスを取得しています。
通常の物理フォルダアイコンは、以下のように取得しています。
(ファイルの場合は、objFolderItem.Pathにパスが帰ってくるので、そのまま、
以下のように取得しています。)
hImgSmall = SHGetFileInfo(objFolderItem.Path, 0, shinfo, Marshal.SizeOf(shinfo), _
SHGFI_SYSICONINDEX Or SHGFI_SMALLICON Or SHGFI_DISPLAYNAME Or SHGFI_TYPENAME)
childNodes.ImageIndex = shinfo.iIcon
通常の仮想フォルダの場合は、objFolderItem.Pathを見てみると、
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"のような値が返ってきます。
これから、何とかしてアイコンを取得できないものかと考えていますが?
ツイート | ![]() |