- Explorer thumbnails displayed in Thumbnail View
- Thumbnail plugin při selhání zamezí načtení ikony souboru
- Explorer Thumbnails Plugin
Visty nabízí veliké ikony až do velikosti 256x256, jenže Salamander tak velké ikony nepodporuje a thumbnails režim tak nevypadá tak krásně, jak by mohl Pokoušel jsem se o doplnění této funkčnosti na úrovni Explorer Thumbnails pluginu, ale to má dvě omezení:
- nedokáže generovat ikony pro složky, protože pro ně nikdy není zavolán
- pokud načte ikonu, tak zamezí ostatním pluginům načíst náhled (například Eroica Viewer)
Code: Select all
HBITMAP GetVistaIcon(WCHAR *filename, int width, int height)
{
HBITMAP hbm = NULL;
IShellItem *pisi;
// Vista only funkce, která vrátí správné IShellItem bez jakýchkoliv komplikací s "PIDLy"
if (SUCCEEDED(SHCreateItemFromParsingName(filename, NULL, IID_IShellItem, (void**)&pisi)))
{
IShellItemImageFactory *pisiif;
if (SUCCEEDED(pisi->QueryInterface(IID_IShellItemImageFactory, (void**)&pisiif)) && pisiif != NULL)
{
SIZE size = { width, height };
SIIGBF flags = SIIGBF_ICONONLY; //Chceme jenom ikonu
pisiif->GetImage(size, flags, &hbm);
pisiif->Release();
}
pisi->Release();
}
return hbm;
}
EDIT: Pozor, výsledný HBITMAP může obsahovat 32-bit ARGB bitmapu, ale funkce AlphaBlend (kterou jsem v puginu zkoušel použít) podporuje jen premultiplied Alpha (PARGB).
EDIT2: Tento kód taky nevytváří video okraje... Jak toto dělá Explorer netuším