Dela via


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

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.

IThumbnailProvider

Skapa miniatyrhanterare

riktlinjer för miniatyrhanterare