Option Explicit
Private Declare Function ExtractAssociatedIcon Lib "shell32" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long
Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long
Private Type Guid
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Private Type PICTDESC
Size As Long
Type As Long
hBmp As Long
hPal As Long
reserved As Long
End Type
Private Declare Function OleCreatePictureIndirect Lib "olepro32" (lpPictDesc As PICTDESC, riid As Guid, ByVal fOwn As Long, lplpvObj As IPicture) As Long
Sub Form_Load()
Dim mIcon As Long
'Extract the associated icon
mIcon = ExtractAssociatedIcon(App.hInstance, "C:\Autoexec.bat", 2)
'Set the icon to Image1
Set Image1.Picture = CreatePictureFromIcon(mIcon)
'remove the icon from the memory
DestroyIcon mIcon
End Sub
Private Function CreatePictureFromIcon(ByVal hIcon As Long) As StdPicture
Dim Pic As PICTDESC, IID_IDispatch As Guid
With IID_IDispatch
.Data1 = &H20400
.Data4(0) = &HC0
.Data4(7) = &H46
End With
With Pic
.Size = Len(Pic)
.Type = vbPicTypeIcon
.hBmp = hIcon
.hPal = 0
End With
OleCreatePictureIndirect Pic, IID_IDispatch, 1, CreatePictureFromIcon
End Function
http://vbrussian.com/Examples.asp?ID=99all писал(а):А ктонибудь знает как его сохранить на диск
чтобы ее фон остовался прозрачным?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1