Miniatuurhandlers
Windows Vista maakt meer gebruik van bestandsspecifieke miniatuurafbeeldingen dan eerdere versies van Windows. Windows Vista gebruikt ze in alle weergaven, in dialoogvensters en voor elk bestandstype dat ze biedt. Andere toepassingen kunnen ook uw miniatuur gebruiken. De miniatuurweergave is ook gewijzigd. Nu is er een doorlopend spectrum van door de gebruiker te selecteren grootten beschikbaar in plaats van de discrete grootten, zoals pictogrammen en miniaturen die worden geleverd in Windows XP.
Notitie
Deze miniaturen worden mogelijk livepictogrammen genoemd.
Miniaturen van 32-bits resolutie en zo groot als 256x256 pixels worden vaak gebruikt in de gebruikersinterface van Windows Vista. Eigenaren van bestandsindelingen moeten zijn voorbereid om hun miniaturen op die grootte weer te geven. Ze moeten ook niet-statische afbeeldingen opgeven voor hun miniaturen die de inhoud van het specifieke bestand weerspiegelen. De miniatuur van een tekstbestand moet bijvoorbeeld een miniatuurversie van het document weergeven, inclusief de bijbehorende tekst.
De IThumbnailProvider interface is geïntroduceerd om een miniatuur gemakkelijker en eenvoudiger te maken dan in het verleden, wanneer IExtractImage- in plaats daarvan zou zijn gebruikt. Houd er rekening mee dat bestaande code die gebruikmaakt van IExtractImage nog steeds geldig is onder Windows Vista. IExtractImage- wordt echter niet ondersteund in het deelvenster Details.
In dit onderwerp wordt het volgende besproken:
- miniatuurprocessen
- miniatuurcache en grootte wijzigen
- miniatuuroverlays
- miniatuurversieringen
- uw miniatuurhandler registreren
- Verwante onderwerpen
Miniatuurprocessen
Handlers, inclusief miniatuurhandlers, worden standaard uitgevoerd in een afzonderlijk proces. U kunt afdwingen dat de handler wordt uitgevoerd door een NULL--waarde door te geven als bindingscontext in een aanroep naar IShellItem::BindToHandler-, zoals hier wordt weergegeven:
IShellItem::BindToHandler(NULL, BHID_ThumbnailHandler,..)
U kunt zich ook standaard afmelden voor een onvoldoende proces door de vermelding DisableProcessIsolation in het register in te stellen, zoals in dit voorbeeld wordt weergegeven. De klasse-id (CLSID) {E357FCCD-A995-4576-B01F-234630154E96} is de CLSID voor IThumbnailProvider implementaties.
HKEY_CLASSES_ROOT
CLSID
{E357FCCD-A995-4576-B01F-234630154E96}
DisableProcessIsolation = 1
Miniatuurcache en grootte wijzigen
Wanneer een miniatuur nodig is, controleert Windows eerst de miniatuurcache voor de afbeelding. De miniatuurextractor wordt aangeroepen als de afbeelding niet in de cache wordt gevonden. Deze wordt ook aangeroepen wanneer de laatste wijzigingstijd van de installatiekopie later is dan die van de kopie in de cache.
De miniatuurafbeeldingen in deze cache worden opgeslagen in een set discrete grootten. Alle grootten worden weergegeven in pixels.
- 32x32
- 96x96
- 256x256
- 1024x1024
Notitie
Deze waarden kunnen worden gewijzigd. U moet er niet van uitgaan dat een bepaalde grootte altijd wordt gebruikt.
Als een afbeelding niet vierkant is, moet u deze niet zelf opheffen. Windows is verantwoordelijk voor het respecteren van de oorspronkelijke hoogte-breedteverhouding en het opvullen van de afbeelding tot een vierkant formaat.
Wanneer een afbeelding van een bepaalde grootte wordt gevraagd, tenzij er een exacte overeenkomst wordt gevonden, haalt Windows Vista altijd de eerstvolgende grootste afbeelding op en schaalt deze omlaag naar de aangevraagde grootte. Een installatiekopieën worden nooit in grootte geschaald, zoals in eerdere versies van Windows het geval was.
De volgende tabel bevat enkele voorbeelden van de relatie tussen de aangevraagde grootte en de beschikbare grootte.
Maximale afbeeldingsgrootte die u opgeeft | Grootte aangevraagd door de extractor | U geeft |
---|---|---|
156x120 | 256x256 | 156x120 (niet opvulling, hoogte-breedteverhouding behouden) |
2048x1024 | 256x256 | 256x128 (niet opvulling, hoogte-breedteverhouding behouden) |
U kunt een grenspunt declareren als onderdeel van de programma-id-vermelding van de bijbehorende app in het register. Onder deze grootte worden miniaturen niet gebruikt.
HKEY_CLASSES_ROOT
.{ProgId}
ThumbnailCutoff
De vermelding ThumbnailCutoff is een van deze REG_DWORD waarden.
Waarde | Cutoff | HighDPI-gevoelig |
---|---|---|
0 | 32x32 | Ja |
1 | 16x16 | Ja |
2 | 48x48 | Ja |
3 | 16x16 | Ja |
Hoge dpi-gevoeligheid (dots per inch) betekent dat de pixeldimensies van de miniatuur automatisch worden aangepast voor de grotere dpi. Een 32x32-afbeelding met 96 dpi is bijvoorbeeld een afbeelding van 40x40 bij 120 dpi.
Als de thumbnailcutoff-vermelding niet is opgegeven, is de standaardkap 20x20 (niet dpi-gevoelig).
Miniatuuroverlays
Miniatuuroverlays, een kleine afbeelding die in de rechterbenedenhoek van de miniatuur wordt weergegeven, biedt ontwikkelaars de mogelijkheid om merkidentificatie toe te passen op hun miniaturen. Overlays worden gedeclareerd in het register als onderdeel van de programma-id-vermelding van de gekoppelde app, zoals hier wordt weergegeven:
HKEY_CLASSES_ROOT
.{ProgId}
TypeOverlay
De Vermelding TypeOverlay bevat een REG_SZ waarde die als volgt wordt geïnterpreteerd:
- Als de waarde een bronverwijzing is (een .ico bestand dat is ingesloten in het DLL-bestand), zoals
ISVComponent.dll,-155
, wordt die afbeelding gebruikt als de overlay voor bestanden met die bestandsnaamextensie. In dit voorbeeld is 155 de resource-id en als het DLL-bestand niet aanwezig is in een standaardpad (zoals C:/Windows/System32), is het volledige pad vereist in plaats van alleen de DLL-naam. - Als de waarde een lege tekenreeks is, wordt er geen overlay toegepast op de afbeelding.
- Als de waarde niet aanwezig is, wordt het standaardpictogram van de bijbehorende toepassing gebruikt.
Overlays voor uw miniaturen mogen alleen worden opgegeven via dit mechanisme en worden toegepast door Windows. Pas zelf geen overlays toe.
Miniatuurversieringen
Decoraties zoals slagschaduwen worden toegepast op miniaturen op basis van het geselecteerde thema van de gebruiker. Siers worden geleverd door Windows; maak ze zelf niet. Windows kan het uiterlijk van bepaalde decoraties op elk gewenst moment wijzigen, dus als u de eigenaar bent, loopt u het risico dat u niet meer synchroon bent met het systeem. Uw miniaturen kunnen er verouderd of niet op zijn plaats uitzien.
Mogelijke versieringen worden in het register gedeclareerd als onderdeel van de programma-id-vermelding van de bijbehorende app, zoals hier wordt weergegeven:
HKEY_CLASSES_ROOT
.{ProgId}
Treatment
De vermelding Behandeling bevat een van deze REG_DWORD waarden:
Waarde | Betekenis |
---|---|
0 | Geen decoratie |
1 | Slagschaduw |
2 | Fotorand |
3 | Video-tandwielen |
Een slagschaduw wordt standaard toegepast op afbeeldingen.
Uw miniatuurhandler registreren
Registratie van een miniatuurhandler is gebaseerd op standaardbestandskoppelingen.
De GUID voor de shell-extensie voor miniatuurhandlers is E357FCCD-A995-4576-B01F-234630154E96
.
Verwante onderwerpen