ExtractIconEx_()-Demo
Verfasst: 15.07.2005 10:57
Hallo,
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.
Thanks to Justy für den entscheidenden Hinweise zur ExtractIconEx_()-API!
Grüße ... Kiffi
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