die Windows API-Funktion ExtractIconEx() ermöglicht es, unterschiedliche
Formate aus Icons auszulesen. In nachfolgendem Beispiel werden die in
der Datei 'pifmgr.dll' vorhandenen Icons und deren Formate ermittelt und
dargestellt.
Code: Alles auswählen
Structure SHELLICONLIST
hLarge.l
hSmall.l
EndStructure
Enumeration
#frmMain
#lvwLargeIcons
#lvwSmallIcons
EndEnumeration
; API-Definition:
; UINT ExtractIconEx(
; LPCTSTR lpszFile,
; int nIconIndex,
; hIcon *phiconLarge,
; hIcon *phiconSmall,
; UINT nIcons
; );
; Pfad und Name ggf. anpassen
sIcon.s = "C:\WINNT\system32\pifmgr.dll"
If FileSize(sIcon) = -1
MessageRequester("","Datei " + sIcon + " ist nicht vorhanden!")
End
EndIf
; Anzahl Dateien in der Datei auslesen
AnzahlIcons = ExtractIconEx_(sIcon,-1,0,0,0)
If AnzahlIcons = 0
MessageRequester("","Keine Icons gefunden!")
End
EndIf
myIcon.SHELLICONLIST
If OpenWindow(#frmMain, 0, 0, 500, 400, #PB_Window_SystemMenu | #PB_Window_ScreenCentered , "ExtractIconEx_()-Demo")
If CreateGadgetList(WindowID(#frmMain))
ListIconGadget(#lvwLargeIcons, 0, 0, 250, 400, "", 0)
ChangeListIconGadgetDisplay(#lvwLargeIcons, 0)
ListIconGadget(#lvwSmallIcons, 251, 0, 249, 400, "", 0)
ChangeListIconGadgetDisplay(#lvwSmallIcons, 2)
; Auslesen aller Icons
For Counter = 0 To AnzahlIcons - 1
RetVal = ExtractIconEx_(sIcon,Counter,@myIcon\hLarge,@myIcon\hSmall,1)
If RetVal
Debug myIcon\hLarge
Debug myIcon\hSmall
AddGadgetItem(#lvwLargeIcons,-1,"",myIcon\hLarge)
AddGadgetItem(#lvwSmallIcons,-1,"",myIcon\hSmall)
EndIf
Next
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
CloseWindow(#frmMain)
EndIf
EndIf
Grüße ... Kiffi