Programy obsługi miniatur
System Windows Vista korzysta z obrazów miniatur specyficznych dla pliku niż wcześniejsze wersje systemu Windows. System Windows Vista używa ich we wszystkich widokach, w oknach dialogowych i dla dowolnego typu pliku, który je udostępnia. Inne aplikacje mogą również korzystać z miniatury. Zmieniono również wyświetlanie miniatur. Teraz dostępne jest ciągłe spektrum rozmiarów wybieranych przez użytkownika, a nie odrębnych rozmiarów, takich jak ikony i miniatury dostępne w systemie Windows XP.
Nuta
Możesz usłyszeć te miniatury nazywane ikonami na żywo.
Miniatury 32-bitowej rozdzielczości i tak duże, jak 256x256 pikseli są często używane w interfejsie użytkownika systemu Windows Vista. Właściciele formatów plików powinni być przygotowani do wyświetlania miniatur w tym rozmiarze. Powinny również udostępniać niestatyczne obrazy miniatur, które odzwierciedlają zawartość określonego pliku. Na przykład miniatura pliku tekstowego powinna zawierać miniaturową wersję dokumentu, w tym jej tekst.
Interfejs IThumbnailProvider został wprowadzony, aby zapewnić miniaturę łatwiejszą i prostszą niż w przeszłości, kiedy IExtractImage zamiast tego byłyby używane. Należy pamiętać, że istniejący kod używający IExtractImage jest nadal prawidłowy w systemie Windows Vista. Jednak IExtractImage nie jest obsługiwana w okienku szczegółów.
W tym temacie omówiono następujące zagadnienia:
- procesów miniatur
- pamięć podręczna Thumbnail Cache i ustalanie rozmiaru
- nakładki miniatur
- Miniatury
- rejestrowanie obsługi miniatur
- Tematy pokrewne
Procesy miniatur
Programy obsługi, w tym programy obsługi miniatur, są domyślnie uruchamiane w osobnym procesie. Możesz wymusić uruchomienie procedury obsługi, przekazując wartość NULL jako kontekst powiązania w wywołaniu polecenia IShellItem::BindToHandler, jak pokazano poniżej:
IShellItem::BindToHandler(NULL, BHID_ThumbnailHandler,..)
Możesz również zrezygnować z braku procesu domyślnie, ustawiając wpis DisableProcessIsolation w rejestrze, jak pokazano w tym przykładzie. Identyfikator klasy (CLSID) {E357FCCD-A995-4576-B01F-234630154E96} jest identyfikatorem CLSID IThumbnailProvider implementacji.
HKEY_CLASSES_ROOT
CLSID
{E357FCCD-A995-4576-B01F-234630154E96}
DisableProcessIsolation = 1
Pamięć podręczna miniatur i ustalanie rozmiaru
Gdy potrzebna jest miniatura, system Windows najpierw sprawdza pamięć podręczną miniatur obrazu. Funkcja wyodrębniania miniatur jest wywoływana, jeśli obraz nie zostanie znaleziony w pamięci podręcznej. Jest on również wywoływany, gdy czas ostatniej modyfikacji obrazu jest późniejszy niż kopia w pamięci podręcznej.
Obrazy miniatur w tej pamięci podręcznej są przechowywane w zestawie odrębnych rozmiarów. Wszystkie rozmiary są podane w pikselach.
- 32x32
- 96x96
- 256x256
- 1024x1024
Nuta
Te wartości mogą ulec zmianie. Kod nie powinien zakładać, że każdy konkretny rozmiar będzie zawsze używany.
Jeśli obraz nie jest kwadratowy, nie należy dodawać go samodzielnie. System Windows jest odpowiedzialny za przestrzeganie oryginalnego współczynnika proporcji i wypełnienie obrazu do rozmiaru kwadratowego.
Gdy zostanie wyświetlony obraz o określony rozmiar, chyba że zostanie znalezione dokładne dopasowanie, system Windows Vista zawsze pobiera następny największy obraz i skaluje go w dół do żądanego rozmiaru. Obraz nigdy nie jest skalowany w górę, tak jak w poprzednich wersjach systemu Windows.
W poniższej tabeli przedstawiono kilka przykładów relacji między żądanym rozmiarem a dostępnym rozmiarem.
Maksymalny rozmiar podanego obrazu | Rozmiar żądany przez program wyodrębniania | Podajesz |
---|---|---|
156x120 | 256x256 | 156x120 (Nie dopełnij, zachowaj współczynnik proporcji) |
2048x1024 | 256x256 | 256x128 (Nie dopełnij, zachowaj współczynnik proporcji) |
Punkt redukcji można zadeklarować jako część wpisu identyfikatora programu skojarzonej aplikacji w rejestrze. Poniżej tego rozmiaru miniatury nie są używane.
HKEY_CLASSES_ROOT
.{ProgId}
ThumbnailCutoff
Wpis ThumbnailCutoff jest jedną z tych wartości REG_DWORD.
Wartość | Odcięcia | Poufne wartości HighDPI |
---|---|---|
0 | 32x32 | Tak |
1 | 16x16 | Tak |
2 | 48x48 | Tak |
3 | 16x16 | Tak |
Wysoka czułość kropek na cal (dpi) oznacza, że wymiary pikseli miniatury automatycznie dopasowują się do większej dpi. Na przykład obraz 32x32 o rozdzielczości 96 dpi będzie obrazem 40x40 o rozdzielczości 120 dpi.
Jeśli nie określono wpisu ThumbnailCutoff, domyślna wartość odcięcia to 20x20 (nie jest rozróżniana dpi).
Nakładki miniatur
Nakładki miniatur, mały obraz wyświetlany w prawym dolnym rogu miniatury, umożliwiają deweloperom stosowanie identyfikacji marki do miniatur. Nakładki są deklarowane w rejestrze w ramach wpisu identyfikatora programu skojarzonej aplikacji, jak pokazano poniżej:
HKEY_CLASSES_ROOT
.{ProgId}
TypeOverlay
Wpis TypeOverlay zawiera wartość REG_SZ interpretowaną w następujący sposób:
- Jeśli wartość jest odwołaniem do zasobu (plik .ico osadzony w dll), takim jak
ISVComponent.dll,-155
, ten obraz jest używany jako nakładka dla plików z tym rozszerzeniem nazwy pliku. Należy pamiętać, że w tym przykładzie 155 jest identyfikatorem zasobu, a jeśli biblioteka DLL nie znajduje się w standardowej ścieżce (takiej jak C:/Windows/System32), pełna ścieżka jest wymagana zamiast tylko nazwy biblioteki DLL. - Jeśli wartość jest pustym ciągiem, do obrazu nie jest stosowana żadna nakładka.
- Jeśli wartość nie jest obecna, zostanie użyta domyślna ikona skojarzonej aplikacji.
Nakładki dla miniatur powinny być udostępniane tylko za pomocą tego mechanizmu i stosowane przez system Windows. Nie należy samodzielnie stosować nakładek.
Ozdoby miniatur
Ozdoby, takie jak cienie upuszczania, są stosowane do miniatur na podstawie aktualnie wybranego motywu użytkownika. Ozdoby są dostarczane przez system Windows; nie twórz ich samodzielnie. System Windows może w dowolnym momencie zmienić wygląd określonych elementów ozdobnych, więc jeśli pod warunkiem, że jesteś właścicielem, możesz zaryzykować wypadnięcie synchronizacji z systemem. Twoje miniatury mogą być nieaktualne lub nieaktualne.
Potencjalne ozdoby są deklarowane w rejestrze w ramach wpisu identyfikatora programu skojarzonej aplikacji, jak pokazano poniżej:
HKEY_CLASSES_ROOT
.{ProgId}
Treatment
Wpis Leczenie zawiera jedną z następujących wartości REG_DWORD:
Wartość | Znaczenie |
---|---|
0 | Brak ozdobności |
1 | Cień |
2 | Zdjęcie Obramowanie |
3 | Zestawy graficznych wideo |
Cień domyślnie jest stosowany do obrazów.
Rejestrowanie programu obsługi miniatur
Rejestracja programu obsługi miniatur jest oparta na standardowych skojarzeniach plików.
Identyfikator GUID rozszerzenia powłoki miniatury jest E357FCCD-A995-4576-B01F-234630154E96
.
Tematy pokrewne