Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Utilizzare icone "racchiuse" in dll

Salve, sono alle prime armi con il mondo di visual basic, per cui mi sa che
leggerete spesso mie domande.
Il problema quotidiano è questo:
ho ricevuto un file (simpsons.dll) al cui interno vi sono decine di icone
raffiguranti i gialli d'america più famosi d'italia.
Come posso fare ad usare queste icone come icone dei/nei form di VB?
Grazie anticipatamente.

...

Ti rispondo con un messaggio che ormai posto periodicamente:
Intanto sappi che servono delle Api
----------------
A grande richiesta ho deciso di scrivere come fare per estrarre icone da
dll, exe, ocx e qualsiasi altro file compilato contenente icone.
Scriverò anche come ottenere l'icona del programma associato ad un file.
NB: queste sono solo nozioni di base, ma spesso sono più che sufficenti.
1) - Icone da dll, exe, ocx.
Api richieste:
ExtractIcon()
DrawIcon()
DestroyIcon()
' - Sample -----------------
Dim IconsInFile as long
Dim hIcon as long
Dim i as integer
Dim FileName as string
FileName = "C:\Win95\System\Explorer.exe"
IconsInFile = ExtractIcon(App.hInstance, FileName, -1) 'Ottengo il numero di
icone nel file
For i=0 to IconsInFile -1
    hIcon = ExtractIcon(App.hInstance, FileName, i) 'Estraggo la i-esima
icona dal file
    DrawIcon(Form1.hDC, i * 36, 20, hIcon) 'La disegno
    DestroyIcon(hIcon) 'L'icona non mi serve più: libero la memoria
Next i
Per ottenere le icone piccole occorre l'Ape ExtractIconEx(), non trattata in
questa sede perchè la devo ancora provare...
2) - Icona del programma associato.
Api richieste:
ExtractAssociatedIcon()
DrawIcon()
N.B.: sembra che in questo caso DestroyIcon() non serva.
' - Sample -----------------
Dim hIcon as long
Dim FileName as string
FileName = "C:\Win95\System\Explorer.exe"
hIconRet = ExtractAssociatedIcon(App.hInstance, FileName, 0&)
Call DrawIcon(Form1.hDc, 1, 1, hIcon)
Attenzione: la dichiarazione di ExtractAssociatedIcon nel file WIN32API.TXT
è sbagliata! (ci ho perso un quarto d'ora di insulti alla M$ per capire
dove...): l'alias non è ExtractAssociateIcon ma ExtractAssociatedIcon con la
"d"!!!
Ciao
Adesso per un po' basta con quest'argomento...
Per qualsiasi chiarimento contattatemi pure.

 Per qualsiasi chiarimento contattatemi pure.
ciao zanna, grazie delle dritte. l'appetito vien mangiando quindi
approfitterei dell'offerta :)
1.        lRet = DrawIcon(picIcon.hdc, 0, 0, hIcon)
ok, cosi' l'ho caricata nella proprieta' picture di un picturebox e la vedo
benone. solo che evidentemente faccio casino con le proprieta' image e
picture del p.b.: anche se vedo l'icona, se provo
    SavePicture picIcon.Image, "c:\windows\desktop\pictest.bmp"
mi ritrovo solo un bmp con lo sfondo del picturebox. ingenuamente credevo
che img e pic fossero la stessa cosa. come posso ottenere
picIcon.image=picIcon.picture ? devo usare bitblt o c'e' un modo piu'
semplice  che non riesco a vedere ?
2. in vb5 e' possibile salvare in fto .ico ? la guida di savepicture dice:
If a graphic was loaded from a file to the Picture property of an object,
either at design time or at run time, and it's a bitmap, icon, metafile, or
enhanced metafile, it's saved using the same format as the original file. If
it is a GIF or JPEG file, it is saved as a bitmap file.
ma mentre se salvo in bmp a irfanview sta benone il risultato, anche se e'
solo grigio, se salvo come pictest.ico microangelo dice che non se ne parla
proprio.
grazie mille, andrea