MFCでエクスプローラのようなものを作っています。
左側のツリーコントロールで選択されたディレクトリの
ファイルを右側のリストコントロールに表示しています。
その時、ファイルのアイコンをSHGetFileInfo()で取得しているのですが、
起動時のみ取得できて、その後は何も取得できません。
原因がまったく分からないのですが、
SHGetFileInfo()の使い方が間違っているのでしょうか?
> SHGetFileInfo()の使い方が間違っているのでしょうか?
どのように使っているかを示していただかないと、
間違っているかどうかを判断できません。
すいません。こんな感じで使っているのですが・・・。
HIMAGELIST hImage ;
SHFILEINFO fi ;
for( ファイル数分ループ )
{
hImage = (HIMAGELIST)SHGetFileInfo( (ファイルのフルパス),
0,
&fi,
sizeof( SHFILEINFO ),
SHGFI_SYSICONINDEX | SHGFI_SMALLICON ) ;
}
アプリケーション起動時にこのループを通ると全てのファイル情報が取得できます。
ところが再びここへ来るとhImageはからっぽで何も取得できません。
呼び出しそのものは問題ないと思います。
取得したhImageをImageList_Destroyなどで
削除していませんか?
CImageListにAttachしたままオブジェクトを削除した場合も
イメージリスト自体が削除されます。
dairygoodsさん、どうもありがとうございました。
ファイルのフルパスが正確じゃなかったようです。
何度も確認したはずだったのですが・・・。
お騒がせしました。