Sdílet prostřednictvím


Obslužné rutiny miniatur

Systém Windows Vista používá více obrázků miniatur specifických pro soubory než starší verze systému Windows. Systém Windows Vista je používá ve všech zobrazeních, v dialogech a pro libovolný typ souboru, který je poskytuje. Miniaturu můžou využívat i jiné aplikace. Zobrazení miniatur se také změnilo. Nyní je místo samostatných velikostí, jako jsou ikony a miniatury poskytované v systému Windows XP, k dispozici souvislé spektrum uživatelsky vybraných velikostí.

Poznámka

Tyto miniatury se můžou označovat jako živé ikony.

 

Miniatury 32bitového rozlišení a stejně velké jako 256 × 256 pixelů se často používají v uživatelském rozhraní systému Windows Vista. Vlastníci formátu souborů by měli být připraveni zobrazit miniatury s danou velikostí. Měly by také poskytovat nestatické obrázky pro miniatury, které odrážejí obsah konkrétního souboru. Například miniatura textového souboru by měla obsahovat miniaturní verzi dokumentu, včetně jejího textu.

Rozhraní IThumbnailProvider bylo zavedeno, aby bylo poskytování miniatur jednodušší a jednodušší než v minulosti, kdy IExtractImage by bylo místo toho použito. Všimněte si, že stávající kód, který používá IExtractImage je stále platný v systému Windows Vista. IExtractImage se ale v podokně podrobností nepodporuje.

Toto téma popisuje následující:

Procesy miniatur

Obslužné rutiny, včetně obslužných rutin miniatur, se ve výchozím nastavení spouštějí v samostatném procesu. Obslužnou rutinu můžete vynutit spuštění v procesu předáním hodnoty NULL jako kontextu vazby ve volání IShellItem::BindToHandler, jak je znázorněno zde:

IShellItem::BindToHandler(NULL, BHID_ThumbnailHandler,..)

Ve výchozím nastavení můžete také zrušit nedostatek procesu nastavením položky DisableProcessIsolation v registru, jak je znázorněno v tomto příkladu. Identifikátor třídy (CLSID) {E357FCCD-A995-4576-B01F-234630154E96} je CLSID pro implementace IThumbnailProvider.

HKEY_CLASSES_ROOT
   CLSID
      {E357FCCD-A995-4576-B01F-234630154E96}
         DisableProcessIsolation = 1

Mezipaměť miniatur a změna velikosti

Když je potřeba miniatura, systém Windows nejprve zkontroluje mezipaměť miniatur obrázku. Extrakce miniatur se volá, pokud se obrázek v mezipaměti nenajde. Volá se také, když je čas poslední změny obrázku pozdější než čas kopie v mezipaměti.

Miniatury v této mezipaměti jsou uloženy v sadě samostatných velikostí. Všechny velikosti jsou uvedeny v pixelech.

  • 32x32
  • 96x96
  • 256x256
  • 1024x1024

Poznámka

Tyto hodnoty se můžou změnit. Kód by neměl předpokládat, že se vždy použije jakákoli konkrétní velikost.

 

Pokud obrázek není čtvercový, neměli byste ho vycpávat sami. Systém Windows zodpovídá za dodržování původního poměru stran a odsazení obrázku na čtvercovou velikost.

Když se zobrazí výzva k zadání obrázku určité velikosti, pokud nenajde přesnou shodu, systém Windows Vista vždy načte další největší obrázek a škáluje ho na požadovanou velikost. Obrázek se nikdy neupupí ve velikosti, jako tomu bylo v předchozích verzích Windows.

Následující tabulka uvádí několik příkladů relace mezi požadovanou velikostí a dostupnou velikostí.

Maximální velikost obrázku, kterou zadáte Velikost požadovaná extraktorem Zadáte
156x120 256x256 156 × 120 (Neudržujte podložku, udržujte poměr stran)
2048x1024 256x256 256x128 (Nespadejte, udržujte poměr stran)

 

Jako součást položky ID programu přidružené aplikace v registru můžete deklarovat bod odříznutí. Pod touto velikostí se miniatury nepoužívají.

HKEY_CLASSES_ROOT
   .{ProgId}
      ThumbnailCutoff

Položka ThumbnailCutoff je jednou z těchto hodnot REG_DWORD.

Hodnota Přerušení Citlivé na vysoký ukazatel výkonu
0 32x32 Ano
1 16x16 Ano
2 48x48 Ano
3 16x16 Ano

Vysoká tečka na palec (dpi) znamená, že rozměry pixelů miniatury se automaticky upraví pro větší dpi. Například 32 × 322 obrázků s 96 dpi by byl obrázek 40 × 40 při 120 dpi.

Pokud není zadaná položka ThumbnailCutoff, výchozí řez je 20x20 (nerozlišuje se dpi).

Překryvné miniatury

Překryvné miniatury, malý obrázek zobrazený v pravém dolním rohu miniatury, poskytuje vývojářům příležitost použít identifikaci značky na miniatury. Překrytí se deklarují v registru jako součást položky ID programu přidružené aplikace, jak je znázorněno zde:

HKEY_CLASSES_ROOT
   .{ProgId}
      TypeOverlay

Položka TypeOverlay obsahuje REG_SZ hodnotu interpretovanou následujícím způsobem:

  • Pokud je hodnota odkazem na prostředek (.ico soubor vložený do knihovny DLL), například ISVComponent.dll,-155, použije se tento obrázek jako překryv pro soubory s danou příponou názvu souboru. Všimněte si, že v tomto příkladu 155 je ID prostředku a pokud knihovna DLL není ve standardní cestě (například C:/Windows/System32), je úplná cesta vyžadována místo názvu knihovny DLL.
  • Pokud je hodnota prázdný řetězec, na obrázek se nepoužije žádný překryv.
  • Pokud hodnota není k dispozici, použije se výchozí ikona přidružené aplikace.

Překryvné vrstvy miniatur by měly být poskytovány pouze prostřednictvím tohoto mechanismu a použity systémem Windows. Nepoužívejte překryvné vrstvy sami.

Miniatury doplňků

Doplňky, jako jsou stíny, se použijí na miniatury na základě aktuálně vybraného motivu uživatele. Doplňky jsou poskytovány systémem Windows; nevytvořte je sami. Systém Windows může kdykoli změnit vzhled konkrétních doplňků, takže pokud jste zadali vlastní, riskujete, že nebudete synchronizovat se systémem. Miniatury se můžou zvětšovat tak, že vypadají jako datovaná nebo mimo místo.

Potenciální doplňky se deklarují v registru jako součást položky ID programu přidružené aplikace, jak je znázorněno zde:

HKEY_CLASSES_ROOT
   .{ProgId}
      Treatment

Položka Léčba obsahuje jednu z těchto REG_DWORD hodnot:

Hodnota Význam
0 Bez doplňku
1 Stín přetažení
2 Ohraničení fotky
3 Videosoubory

Stín se ve výchozím nastavení použije u obrázků.

Registrace obslužné rutiny miniatur

Registrace obslužné rutiny miniatury je založená na standardních přidruženích souborů.

Identifikátor GUID rozšíření prostředí obslužné rutiny miniatur je E357FCCD-A995-4576-B01F-234630154E96.

IThumbnailProvider

vytváření obslužných rutin miniatur

pokyny pro obslužnou rutinu miniatur