Miniatyrhanterare
Windows Vista använder filspecifika miniatyrbilder i större grad än tidigare versioner av Windows. Windows Vista använder dem i alla vyer, i dialogrutor och för alla filtyper som tillhandahåller dem. Andra program kan också använda miniatyrbilden. Miniatyrvisning har också ändrats. Nu finns ett kontinuerligt spektrum av användarvalbara storlekar tillgängliga i stället för de diskreta storlekar som ikoner och miniatyrer som tillhandahålls i Windows XP.
Not
Du kan höra de här miniatyrbilderna kallas liveikoner.
Miniatyrer med 32-bitars upplösning och så stora som 256 x 256 bildpunkter används ofta i Windows Vista-användargränssnittet. Filformatsägare bör vara beredda på att visa miniatyrbilderna i den storleken. De bör också tillhandahålla icke-statiska bilder för sina miniatyrbilder som återspeglar den specifika filens innehåll. En textfils miniatyrbild bör till exempel visa en miniatyrversion av dokumentet, inklusive dess text.
Gränssnittet IThumbnailProvider har introducerats för att göra miniatyrbilden enklare och enklare än tidigare, när IExtractImage skulle ha använts i stället. Observera att befintlig kod som använder IExtractImage fortfarande är giltig under Windows Vista. Men IExtractImage stöds inte i fönstret Information.
I det här avsnittet beskrivs följande:
- miniatyrprocesser
- Miniatyrcache och storleksändring
- miniatyröverlägg
- miniatyr utsmyckningar
- registrera miniatyrhanteraren
- Relaterade ämnen
Miniatyrprocesser
Hanterare, inklusive miniatyrhanterare, körs som standard i en separat process. Du kan tvinga hanteraren att köras i processen genom att skicka ett NULL- värde som bindningskontexten i ett anrop till IShellItem::BindToHandler som visas här:
IShellItem::BindToHandler(NULL, BHID_ThumbnailHandler,..)
Du kan också välja att processen inte ska ta slut som standard genom att ange posten DisableProcessIsolation i registret enligt det här exemplet. Klassidentifieraren (CLSID) {E357FCCD-A995-4576-B01F-234630154E96} är CLSID för IThumbnailProvider implementeringar.
HKEY_CLASSES_ROOT
CLSID
{E357FCCD-A995-4576-B01F-234630154E96}
DisableProcessIsolation = 1
Miniatyrcache och storleksändring
När en miniatyrbild behövs kontrollerar Windows först miniatyrcachen för bilden. Miniatyrextraktorn anropas om bilden inte hittas i cacheminnet. Det anropas också när den senaste ändrade tiden för avbildningen är senare än kopian i cacheminnet.
Miniatyrbilderna i den här cachen lagras i en uppsättning diskreta storlekar. Alla storlekar anges i bildpunkter.
- 32x32
- 96x96
- 256x256
- 1024x1024
Not
Dessa värden kan komma att ändras. Koden bör inte förutsätta att någon viss storlek alltid kommer att användas.
Om en bild inte är fyrkantig bör du inte fylla den själv. Windows ansvarar för att respektera det ursprungliga proportionerna och att utfyllnad av bilden till en kvadratstorlek.
När en bild av en viss storlek efterfrågas, såvida inte en exakt matchning hittas, hämtar Windows Vista alltid den näst största avbildningen och skalar ned den till den begärda storleken. En avbildning skalas aldrig upp i storlek, vilket var fallet i tidigare versioner av Windows.
Följande tabell innehåller några exempel på relationen mellan begärd storlek och tillgänglig storlek.
Maximal bildstorlek som du anger | Storlek som begärs av extraktorn | Du anger |
---|---|---|
156x120 | 256x256 | 156x120 (Inte pad, underhåll proportioner) |
2048x1024 | 256x256 | 256x128 (Inte pad, underhåll proportioner) |
Du kan deklarera en brytpunkt som en del av program-ID-posten för den associerade appen i registret. Miniatyrbilder används inte under den här storleken.
HKEY_CLASSES_ROOT
.{ProgId}
ThumbnailCutoff
Posten ThumbnailCutoff är ett av dessa REG_DWORD värden.
Värde | Genväg | HögDPI-känslig |
---|---|---|
0 | 32x32 | Ja |
1 | 16x16 | Ja |
2 | 48x48 | Ja |
3 | 16x16 | Ja |
Hög känslighet för punkter per tum (dpi) innebär att miniatyrbildens pixeldimensioner automatiskt justeras för större dpi. Till exempel skulle en 32x32-bild vid 96 dpi vara en 40x40-bild vid 120 dpi.
Om posten ThumbnailCutoff inte har angetts är standardgränsen 20x20 (inte dpi-känslig).
Miniatyröverlägg
Miniatyröverlägg, en liten bild som visas i det nedre högra hörnet av miniatyrbilden, ger utvecklare möjlighet att tillämpa varumärkesidentifiering på sina miniatyrbilder. Överlägg deklareras i registret som en del av program-ID-posten för den associerade appen, enligt följande:
HKEY_CLASSES_ROOT
.{ProgId}
TypeOverlay
Posten TypeOverlay innehåller ett REG_SZ värde tolkat på följande sätt:
- Om värdet är en resursreferens (en .ico fil som är inbäddad i DLL:en), till exempel
ISVComponent.dll,-155
, används avbildningen som överlägg för filer med filnamnstillägget. Observera att 155 i det här exemplet är resurs-ID:t och om DLL-filen inte finns i en standardsökväg (till exempel C:/Windows/System32) krävs den fullständiga sökvägen i stället för bara DLL-namnet. - Om värdet är en tom sträng tillämpas inget överlägg på bilden.
- Om värdet inte finns används standardikonen för det associerade programmet.
Överlägg för dina miniatyrbilder bör endast tillhandahållas via den här mekanismen och tillämpas av Windows. Använd inte överlägg själv.
Miniatyr utsmyckningar
Utsmyckningar som skuggor tillämpas på miniatyrbilder baserat på användarens tema. Utsmyckningar tillhandahålls av Windows; skapa dem inte själv. Windows kan när som helst ändra utseendet på vissa utsmyckningar, så om du har angett att du äger riskerar du att falla ur synkronisering med systemet. Miniatyrbilderna kan se daterade ut eller på sin plats.
Potentiella utsmyckningar deklareras i registret som en del av program-ID-posten för den associerade appen, enligt följande:
HKEY_CLASSES_ROOT
.{ProgId}
Treatment
Posten Behandling innehåller något av följande REG_DWORD värden:
Värde | Betydelse |
---|---|
0 | Ingen utsmyckning |
1 | Skugga |
2 | Bildkantlinje |
3 | Video Sprockets |
En skuggning tillämpas som standard på bilder.
Registrera miniatyrhanteraren
Registreringen av en miniatyrhanterare baseras på standardfilassociationer.
GUID för shell-tillägget för miniatyrhanteraren är E357FCCD-A995-4576-B01F-234630154E96
.
Relaterade ämnen
-
riktlinjer för miniatyrhanterare