Převod ukazatele na Ikonu na objekt Picture

Postup:
Private Type PICTDESC
    cbSize As Long
    pictType As Long
    hIcon As Long
    hPal As Long
End Type
        
Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" _
    (lpPictDesc As PICTDESC, riid As Any, ByVal fOwn As Long, _
    ipic As IPicture) As Long

Function IconToPicture(ByVal hIcon As Long) As Picture

    Dim pic As PICTDESC
    Dim guid(0 To 3) As Long
    
    ' inicializace struktury PictDesc
    pic.cbSize = Len(pic)
    pic.pictType = vbPicTypeIcon
    pic.hIcon = hIcon
    ' IPicture GUID {7BF80980-BF32-101A-8BBB-00AA00300CAB}
    ' pro rychlejší inicializaci použijeme pole LONG
    guid(0) = &H7BF80980
    guid(1) = &H101ABF32
    guid(2) = &HAA00BB8B
    guid(3) = &HAB0C3000
    ' Vytvoření obrázku,
    ' vrácení odkazu
    OleCreatePictureIndirect pic, guid(0), True, IconToPicture

End Function

Zpět

Autor: The Bozena