DateiIcons auslesen



  • ich möchte die Icons auslesen, die z.B. im Explorer für die jeweiligen Dateien angezeigt werden. Habe folgendes versucht:

    HICON GetFileIcon2(LPTSTR strPath)
    {
      HICON hIcon;
      WORD lpiIcon = 1;
    
      hIcon = ExtractAssociatedIcon(NULL,strPath,&lpiIcon);
      return hIcon;
    }
    

    Das bringt aber leider immer nur das Standard FileIcon von Windoof... 😞
    Was jemand, wie ich an die tatsächlichen DateiIcons rankomme? oder was mit dem Code oben nicht stimmt?

    strPath ist der vollständige Pfad zur jeweiligen Datei. Was lpiIcon wirklich bedeutet, weiß ich nicht...





  • Habe folgendes versucht:

    HICON GetFileIcon(LPCTSTR szPath)
    {
        SHFILEINFO shfi = { 0 };
        HICON hIcon;
    	DWORD dwResult;
    
        if( szPath != NULL ) 
    	{
    
             dwResult = ::SHGetFileInfo( szPath, FILE_ATTRIBUTE_NORMAL, &shfi, sizeof( SHFILEINFO ), SHGFI_DISPLAYNAME);
             dwResult = ::SHGetFileInfo( szPath, FILE_ATTRIBUTE_NORMAL, &shfi, sizeof( SHFILEINFO ), SHGFI_ICON | SHGFI_SMALLICON);
    
        }
        return shfi.hIcon;
    }
    

    leider ist dwResult immer gleich 0! Das bedeutet wohl, daß die Funktion nicht erfolgreich war. Auch die Struktur shfi, welche die Rückgabewerte enthalten sollte ist nacherher genauso leer wie vorher! 😕
    Was mach ich falsch?
    P.S.: Der Pfadname ist korrekt und das File exisitert auch!



  • Alles klar -hab den fehler gefunden! 😮 Nochmals Vielen Dank!!


Anmelden zum Antworten