SHGetFileInfo



  • Halli Hallo
    Ich schreibe gerade an einem TreeView Browser ( also nichts Weltbewegenes )
    Ich benutze füe die Icon die System Icon ( so weit so gut )
    Ich Initialisiere eine Imagelist mit allen Icons und setzte die als Iconlist in mein TreeCtrl.
    Mit einer Wohlbekannten Funktion GetIconIndex ( CString strPath ) hole ich mir das entsprechende Icon für den Desktop arbeitsplatz ordner usw.
    Funzt auch alles ABER NUN wie bekomme ich das Icon für "gesamtes Netzwerk" oder für die Rechner ...
    das Icon für die Netzwerkumgebung hole ich mir über die Konstante CSIDL_NETWORK

    folgene Funktion :
    int C_SET_TREE_DIR::GetIconIndex(int FOLDER)
    {
    LPITEMIDLIST lpMCPidl;
    SHGetSpecialFolderLocation(NULL,FOLDER ,&lpMCPidl );
    SHFILEINFO sfi;
    DWORD dwFlags = SHGFI_ICON |SHGFI_SHELLICONSIZE |SHGFI_SYSICONINDEX;

    size_t size = sizeof( SHFILEINFO );
    dwFlags |= SHGFI_SMALLICON;

    ZeroMemory(&sfi, sizeof(SHFILEINFO));
    SHGetFileInfo((LPCTSTR)lpMCPidl, 0, &sfi, sizeof(sfi), SHGFI_PIDL |
    SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_LINKOVERLAY);
    return sfi.iIcon;
    }
    Eine Konstante für Rechner in der Netzwerkumgebung und den Ordner gesamtes Netzwerk gibt es wohl nicht ( ODER ??? 😕 )


Anmelden zum Antworten