|
| |

VB & Windows API| ExtractIconEx - 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 Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevDTA 3.0 Pro 
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere Infos
|
| |
|
Copyright ©2000-2025 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
|
|