指定したファイルのアイコンを取得するには?

解決


マロン  2005-06-25 13:19:02  No: 90701  IP: [192.*.*.*]

お世話になります。
さて早速質問なのですが、こちらの過去ログやネットでの検索で、指定したファイルのアイコンを取得する方法を調べ、それらを参考に2種類のコードを作りました。
そのうちの一つが次のコードです。

    Const DI_NORMAL = &H3
    Dim Ret As Long
    Dim nFile As String
    Dim lngLargeImage As Long
    Dim lngSmallImage As Long

    nFile = App.Path & "\test.txt"
    Ret = ExtractIconEx(nFile, 0, lngLargeImage, lngSmallImage, 1)
    With Picture1
        .Cls
        DrawIconEx .hDC, 0, 0, lngSmallImage, 0, 0, vbNull, 0, DI_NORMAL
        .Refresh
    End With

これをWin98およびWinXPで実行するのですが、どちらも Picture1 にアイコンが描画されません。
いったい何がいけないのか教えて頂けないでしょうか。

編集 削除
犬ひろし  2005-06-25 13:59:38  No: 90702  IP: [192.*.*.*]

ExtractIconEx
で、とれるアイコンはEXE,DLLぐらいだったはず・・

SHGetFileInfo
で取得したアイコンを
DrawIcon
で描画したらどうでしょう

編集 削除
マロン  2005-06-25 15:08:34  No: 90703  IP: [192.*.*.*]

なるほど。その手がありますね。
SHGetFileInfoを使用したらうまくいきました!!
犬ひろしさんありがとうござました。

編集 削除