vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ExtractIconEx - Rückgabewert3.035mst54712.11.10 10:26
Re: ExtractIconEx - Rückgabewert1.530ModeratorMartoeng12.11.10 15:50
Re: ExtractIconEx - Rückgabewert1.504mst54713.11.10 13:54
Re: ExtractIconEx - Rückgabewert1.507ModeratorMartoeng13.11.10 14:50
Re: ExtractIconEx - Rückgabewert1.484mst54713.11.10 19:44

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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