| |
VB & Windows APIExtractIconEx - Rückgabewert | | | Autor: mst547 | Datum: 12.11.10 10:26 |
| Hallo!
Ich versuche, Icons aus verschiedenen Dateien auszulesen mit Hilfe der API-Funktion ExtractIconEx. Diese rufe ich einmal auf, um die Anzahl der vorhandenen Icons zu bestimmen und ein weiteres Mal, um die Icons auszulesen:Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" _
(ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, _
phiconSmall As Long, ByVal nIcons As Long) As Long
Dim lngIcon32() As Long
Dim lngIcon16() As Long
Private Sub cmdLaden_Click()
Dim lngAnzahl As Long
Dim lngAnzahlGelesen As Long
'Anzahl der Icons auslesen
lngAnzahl = ExtractIconEx(txtDatei.Text, -1, ByVal 0, ByVal 0, 0)
lblAnzahl.Caption = Format(lngAnzahl) & " Icons"
If lngAnzahl > 0 Then
'Icons auslesen
ReDim lngIcon32(lngAnzahl - 1)
ReDim lngIcon16(lngAnzahl - 1)
lngAnzahlGelesen = ExtractIconEx(txtDatei.Text, 0, lngIcon32(0), lngIcon16( _
0), lngAnzahl)
lblAnzahl.Caption = lblAnzahl.Caption & " - " & Format(lngAnzahlGelesen) & _
" Icons gelesen"
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim i As Integer
If Not Not lngIcon32 Then
For i = 0 To UBound(lngIcon32)
If lngIcon32(i) <> 0 Then DestroyIcon (lngIcon32(i))
If lngIcon16(i) <> 0 Then DestroyIcon (lngIcon16(i))
Next
End If
End Sub Soweit funktioniert das alles auch ganz gut, nur bei EXE- und DLL-Dateien, die genau 1 Icon enthalten, tritt folgendes Problem auf: Obwohl der erste Aufruf von ExtractIconEx korrekterweise den Wert 1 zurückliefert (Anzahl der Icons), gibt der zweite Aufruf den Wert 2 zurück (was laut http://msdn.microsoft.com/en-us/library/ms648069(v=VS.85).aspx die Anzahl der gelesenen Icons ist), obwohl im Aufruf angegeben ist, dass nur 1 Icon gelesen werden soll.
Wie ist das möglich?
mfg mst547 | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|