Gestori di anteprime

Windows Vista usa più immagini di anteprima specifiche dei file rispetto alle versioni precedenti di Windows. Windows Vista li usa in tutte le visualizzazioni, nelle finestre di dialogo e per qualsiasi tipo di file che li fornisce. Altre applicazioni possono usare anche l'anteprima. La visualizzazione delle anteprime è stata modificata. Ora, è disponibile uno spettro continuo di dimensioni selezionabili dall'utente anziché le dimensioni discrete, ad esempio icone e anteprime fornite in Windows XP.

Nota

Potresti sentire queste anteprime denominate Icone live.

 

Le anteprime di risoluzione a 32 bit e le dimensioni di 256x256 pixel vengono spesso usate nell'interfaccia utente di Windows Vista. I proprietari del formato di file devono essere preparati per visualizzare le anteprime a tale dimensione. Devono inoltre fornire immagini non statiche per le anteprime che riflettono il contenuto del file specifico. Ad esempio, l'anteprima di un file di testo deve mostrare una versione in miniatura del documento, incluso il testo.

L'interfaccia IThumbnailProvider è stata introdotta per rendere più semplice e semplice un'anteprima rispetto al passato, quando invece sarebbe stata usata IExtractImage . Si noti che il codice esistente che usa IExtractImage è ancora valido in Windows Vista. Tuttavia, IExtractImage non è supportato nel riquadro Dettagli .

In questo argomento vengono trattati i seguenti temi:

Processi di anteprima

I gestori, inclusi i gestori di anteprima, vengono eseguiti per impostazione predefinita in un processo separato. È possibile forzare il gestore a eseguire in-process passando un valore NULL come contesto di associazione in una chiamata a IShellItem::BindToHandler come illustrato di seguito:

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

È anche possibile rifiutare l'interruzione del processo per impostazione predefinita impostando la voce DisableProcessIsolation nel Registro di sistema, come illustrato in questo esempio. L'identificatore di classe (CLSID) {E357FCCD-A995-4576-B01F-234630154E96} è l'implementazione CLSID per IThumbnailProvider .

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

Cache di anteprima e ridimensionamento

Quando è necessaria un'anteprima, Windows controlla prima la cache delle anteprime per l'immagine. L'estrattore di anteprima viene chiamato se l'immagine non viene trovata nella cache. Viene chiamato anche quando l'ultima ora modificata dell'immagine è successiva a quella della copia nella cache.

Le immagini di anteprima in questa cache vengono archiviate in un set di dimensioni discrete. Tutte le dimensioni vengono specificate in pixel.

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

Nota

Questi valori sono soggetti a modifiche. Non è consigliabile presupporre che venga sempre usata alcuna dimensione specifica.

 

Se un'immagine non è quadrata, non dovresti riquadrirti. Windows è responsabile del rispetto delle proporzioni originali e della spaziatura interna dell'immagine in una dimensione quadrata.

Quando viene richiesta un'immagine di una determinata dimensione, a meno che non venga trovata una corrispondenza esatta, Windows Vista recupera sempre l'immagine più grande successiva e la ridimensiona fino alle dimensioni richieste. Un'immagine non viene mai ridimensionata in dimensioni, come accade nelle versioni precedenti di Windows.

La tabella seguente fornisce alcuni esempi della relazione tra le dimensioni richieste e le dimensioni disponibili.

Dimensioni massime dell'immagine fornite Dimensioni richieste dall'estrattore Specificare
156x120 256x256 156x120 (Non tastiera, mantenere le proporzioni)
2048x1024 256x256 256x128 (Non riquadri, mantenere le proporzioni)

 

È possibile dichiarare un punto di taglio come parte della voce ID programma dell'app associata nel Registro di sistema. Sotto questa dimensione, le anteprime non vengono usate.

HKEY_CLASSES_ROOT
   .{ProgId}
      ThumbnailCutoff

La voce ThumbnailCutoff è uno di questi valori REG_DWORD.

Valore Taglio Sensibile HighDPI
0 32x32
1 16x16
2 48x48
3 16x16

La sensibilità dei punti alti per pollice (dpi) significa che le dimensioni pixel dell'anteprima si regolano automaticamente per i valori dpi maggiori. Ad esempio, un'immagine da 32x32 a 96 dpi sarebbe un'immagine da 40x40 a 120 dpi.

Se la voce ThumbnailCutoff non è specificata, il cutoff predefinito è 20x20 (non con distinzione dpi).

Sovrimpressione anteprime

Le sovrapposizioni di anteprime, un'immagine piccola visualizzata nell'angolo inferiore destro dell'anteprima, offre agli sviluppatori l'opportunità di applicare l'identificazione del marchio alle anteprime. Le sovrapposizioni vengono dichiarate nel Registro di sistema come parte della voce ID programma dell'app associata, come illustrato di seguito:

HKEY_CLASSES_ROOT
   .{ProgId}
      TypeOverlay

La voce TypeOverlay contiene un valore REG_SZ interpretato come segue:

  • Se il valore è un riferimento alla risorsa (un file con estensione ico incorporato nella DLL), ad ISVComponent.dll,-155esempio , tale immagine viene usata come sovrimpressione per i file con l'estensione del nome file. Si noti che in questo esempio 155 è l'ID risorsa e se la DLL non è presente in un percorso standard (ad esempio C:/Windows/System32), il percorso completo è necessario anziché solo il nome della DLL.
  • Se il valore è una stringa vuota, non viene applicata alcuna sovrapposizione all'immagine.
  • Se il valore non è presente, viene usata l'icona predefinita dell'applicazione associata.

Le sovrimpressione per le anteprime devono essere fornite solo tramite questo meccanismo e applicate da Windows. Non applicare sovrimpressione.

Miniature Adornments

Le decorazioni, ad esempio le ombreggiature a discesa, vengono applicate alle anteprime in base al tema attualmente selezionato dall'utente. Le decorazioni vengono fornite da Windows; non crearle autonomamente. Windows potrebbe modificare l'aspetto di particolari decorazioni in qualsiasi momento, quindi se si è forniti di avere il rischio di cadere in sincronizzazione con il sistema. Le anteprime potrebbero finisce per cercare datati o fuori posto.

I potenziali adornmenti vengono dichiarati nel Registro di sistema come parte della voce ID programma dell'app associata, come illustrato di seguito:

HKEY_CLASSES_ROOT
   .{ProgId}
      Treatment

La voce Trattamento contiene uno di questi valori REG_DWORD:

Valore Significato
0 Nessuna decorazione
1 Ombreggiatura
2 Bordo foto
3 Video Sprocket

Un'ombreggiatura a discesa viene applicata alle immagini per impostazione predefinita.

Registrazione del gestore delle anteprime

La registrazione di un gestore di anteprime è basata su associazioni di file standard.

Il GUID per l'estensione Shell del gestore di anteprima è E357FCCD-A995-4576-B01F-234630154E96.

IThumbnailProvider

Compilazione di gestori di anteprime

Linee guida per il gestore delle anteprime