Miniaturansichtshandler

Windows Vista nutzt dateispezifische Miniaturansichten stärker als frühere Versionen von Windows. Windows Vista verwendet sie in allen Ansichten, in Dialogen und für jeden Dateityp, der sie bereitstellt. Auch andere Anwendungen können Ihre Miniaturansicht nutzen. Die Miniaturansicht wurde ebenfalls geändert. Jetzt ist ein kontinuierliches Spektrum von vom Benutzer auswählbaren Größen anstelle der in Windows XP bereitgestellten diskreten Größen wie Symbole und Miniaturansichten verfügbar.

Hinweis

Möglicherweise hören Sie diese Miniaturansichten, die als Livesymbole bezeichnet werden.

 

Miniaturansichten mit 32-Bit-Auflösung und einer Größe von bis zu 256 x 256 Pixeln werden häufig auf der Windows Vista-Benutzeroberfläche verwendet. Dateiformatbesitzer sollten bereit sein, ihre Miniaturansichten in dieser Größe anzuzeigen. Sie sollten auch nicht statische Bilder für ihre Miniaturansichten bereitstellen, die den Inhalt der jeweiligen Datei widerspiegeln. Beispielsweise sollte die Miniaturansicht einer Textdatei eine Miniaturversion des Dokuments einschließlich des zugehörigen Texts anzeigen.

Die IThumbnailProvider-Schnittstelle wurde eingeführt, um die Bereitstellung einer Miniaturansicht einfacher und einfacher als in der Vergangenheit zu machen, als stattdessen IExtractImage verwendet worden wäre. Beachten Sie, dass vorhandener Code, der IExtractImage verwendet, unter Windows Vista weiterhin gültig ist. IExtractImage wird im Detailbereich jedoch nicht unterstützt.

In diesem Thema wird Folgendes erörtert:

Miniaturansichtsprozesse

Handler, einschließlich Miniaturansichtshandlern, werden standardmäßig in einem separaten Prozess ausgeführt. Sie können die Prozessausführung des Handlers erzwingen, indem Sie einen NULL-Wert als Bindungskontext in einem Aufruf von IShellItem::BindToHandler übergeben, wie hier gezeigt:

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

Sie können den Ablauf des Prozesses auch standardmäßig deaktivieren, indem Sie den Eintrag DisableProcessIsolation in der Registrierung festlegen, wie in diesem Beispiel gezeigt. Der Klassenbezeichner (CLSID) {E357FCCD-A995-4576-B01F-234630154E96} ist die CLSID für IThumbnailProvider-Implementierungen .

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

Miniaturansichtscache und Größenanpassung

Wenn eine Miniaturansicht benötigt wird, überprüft Windows zunächst den Miniaturansichtcache für das Bild. Der Miniaturansichtsextraktor wird aufgerufen, wenn das Bild nicht im Cache gefunden wird. Es wird auch aufgerufen, wenn der Zeitpunkt der letzten Änderung des Images später als die des Kopiervorgangs im Cache liegt.

Die Miniaturansichten in diesem Cache werden in unterschiedlichen Größen gespeichert. Alle Größen werden in Pixel angegeben.

  • 32 x 32
  • 96 x 96
  • 256x256
  • 1\.024 × 1.024

Hinweis

Diese Werte können sich ändern. Sie sollten nicht davon ausgehen, dass immer eine bestimmte Größe verwendet wird.

 

Wenn ein Bild nicht quadratisch ist, sollten Sie es nicht selbst auffüllen. Windows ist dafür verantwortlich, das ursprüngliche Seitenverhältnis zu respektieren und das Bild auf ein Quadrat zu auffüllen.

Wenn ein Bild einer bestimmten Größe angefordert wird, sofern keine genaue Übereinstimmung gefunden wird, ruft Windows Vista immer das nächstgrößerte Bild ab und skaliert es auf die angeforderte Größe. Ein Image wird nie in der Größe hochskaliert, wie dies in früheren Versionen von Windows der Fall war.

Die folgende Tabelle enthält einige Beispiele für die Beziehung zwischen angeforderter Größe und verfügbarer Größe.

Maximale Von Ihnen bereitgestellte Bildgröße Vom Extraktor angeforderte Größe Sie geben an
156x120 256x256 156 x 120 (Nicht paden, Seitenverhältnis beibehalten)
2048x1024 256x256 256 x 128 (Nicht paden, Seitenverhältnis beibehalten)

 

Sie können einen Cutoff-Punkt als Teil des Programm-ID-Eintrags der zugeordneten App in der Registrierung deklarieren. Unterhalb dieser Größe werden keine Miniaturansichten verwendet.

HKEY_CLASSES_ROOT
   .{ProgId}
      ThumbnailCutoff

Der Eintrag ThumbnailCutoff ist einer dieser REG_DWORD Werte.

Wert Cutoff HighDPI-empfindlich
0 32 x 32 Ja
1 16 x 16 Ja
2 48x48 Ja
3 16 x 16 Ja

Hohe Dpi-Empfindlichkeit (Dots per Inch) bedeutet, dass die Pixelabmessungen der Miniaturansicht automatisch an den größeren DPI-Wert angepasst werden. Bei instance wäre ein 32x32-Bild mit 96 dpi ein 40x40-Bild mit 120 dpi.

Wenn der Eintrag ThumbnailCutoff nicht angegeben ist, ist der Standardausschnitt 20x20 (nicht dpi-empfindlich).

Miniaturansichtsüberlagerungen

Miniaturansichtsüberlagerungen, ein kleines Bild, das über der unteren rechten Ecke der Miniaturansicht angezeigt wird, bieten Entwicklern die Möglichkeit, markenidentifikation auf ihre Miniaturansichten anzuwenden. Überlagerungen werden in der Registrierung als Teil des Programm-ID-Eintrags der zugeordneten App deklariert, wie hier gezeigt:

HKEY_CLASSES_ROOT
   .{ProgId}
      TypeOverlay

Der TypeOverlay-Eintrag enthält einen REG_SZ Wert, der wie folgt interpretiert wird:

  • Wenn der Wert ein Ressourcenverweis (eine in die DLL eingebettete ICO-Datei ) ISVComponent.dll,-155wie ist, wird dieses Bild als Überlagerung für Dateien mit dieser Dateinamenerweiterung verwendet. Beachten Sie, dass in diesem Beispiel 155 die Ressourcen-ID ist, und wenn die DLL nicht in einem Standardpfad (z. B. C:/Windows/System32) vorhanden ist, ist der vollständige Pfad anstelle des DLL-Namens erforderlich.
  • Wenn der Wert eine leere Zeichenfolge ist, wird keine Überlagerung auf das Bild angewendet.
  • Wenn der Wert nicht vorhanden ist, wird das Standardsymbol der zugeordneten Anwendung verwendet.

Überlagerungen für Ihre Miniaturansichten sollten nur über diesen Mechanismus bereitgestellt und von Windows angewendet werden. Überlagerungen nicht selbst anwenden.

Miniaturansichts-Zierer

Verzierungen wie Schlagschatten werden basierend auf dem aktuell ausgewählten Design des Benutzers auf Miniaturansichten angewendet. Verzierungen werden von Windows bereitgestellt; erstellen Sie sie nicht selbst. Windows könnte das Aussehen bestimmter Verzierungen jederzeit ändern. Wenn Sie also ihre eigenen Angaben gemacht haben, könnten Sie gefahrgehen, nicht mehr mit dem System synchronisiert zu werden. Ihre Miniaturansichten sehen möglicherweise veraltet oder unortiert aus.

Potenzielle Verzierungen werden in der Registrierung als Teil des Programm-ID-Eintrags der zugeordneten App deklariert, wie hier gezeigt:

HKEY_CLASSES_ROOT
   .{ProgId}
      Treatment

Der Eintrag Behandlung enthält einen der folgenden REG_DWORD Werte:

Wert Bedeutung
0 Keine Verzierung
1 Schatten
2 Fotorahmen
3 Video Sprockets

Ein Schlagschatten wird standardmäßig auf Bilder angewendet.

Registrieren Ihres Miniaturansichtshandlers

Die Registrierung eines Miniaturansichtshandlers basiert auf Standarddateizuordnungen.

Die GUID für die Shellerweiterung des Miniaturansichtshandlers ist E357FCCD-A995-4576-B01F-234630154E96.

IThumbnailProvider

Erstellen von Miniaturansichtshandlern

Richtlinien für Miniaturansichthandler