Condividi tramite


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. Anche altre applicazioni possono usare l'anteprima. Anche la visualizzazione dell'anteprima è cambiata. 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 attive.

 

Le anteprime di risoluzione a 32 bit e di dimensioni pari a 256x256 pixel vengono spesso usate nell'interfaccia utente di Windows Vista. I proprietari del formato di file devono essere preparati a 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 dovrebbe 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 IExtractImage sarebbe stato invece usato. Si noti che il codice esistente che usa IExtractImage è ancora valido in Windows Vista. Tuttavia, IExtractImage non è supportato nel riquadro Dettagli.

Questo argomento illustra quanto segue:

Processi di anteprima

I gestori, inclusi i gestori di anteprima, vengono eseguiti per impostazione predefinita in un processo separato. È possibile forzare l'esecuzione in-process del gestore 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 esplicitamente l'esaurimento 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} è CLSID per implementazioni di IThumbnailProvider.

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

Cache di anteprima e ridimensionamento

Quando è necessaria un'anteprima, Windows controlla innanzitutto 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'ora dell'ultima modifica 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. Il codice non deve presupporre che venga sempre usata alcuna dimensione specifica.

 

Se un'immagine non è quadrata, non è consigliabile riempirla manualmente. Windows è responsabile del rispetto delle proporzioni originali e della spaziatura interna dell'immagine a 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 base alle dimensioni, come nel caso delle versioni precedenti di Windows.

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

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

 

È possibile dichiarare un punto di ritaglio come parte della voce ID programma dell'app associata nel Registro di sistema. Al di sotto di 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 per pollice (dpi) elevata indica che le dimensioni pixel dell'anteprima vengono regolate automaticamente per i valori DPI maggiori. Ad esempio, un'immagine da 32x32 a 96 dpi sarà un'immagine da 40x40 a 120 dpi.

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

Sovrimpressioni di anteprima

Le anteprime sovrapposte, una piccola immagine visualizzata nell'angolo inferiore destro dell'anteprima, offrono agli sviluppatori l'opportunità di applicare l'identificazione del marchio alle anteprime. Le sovrimpressioni 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 a una risorsa (un file .ico incorporato nella DLL), ad esempio ISVComponent.dll,-155, tale immagine viene usata come sovrimpressione per i file con tale estensione di 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, all'immagine non viene applicata alcuna sovrimpressione.
  • Se il valore non è presente, viene usata l'icona predefinita dell'applicazione associata.

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

Adornamenti anteprima

Gli oggetti decorativi, ad esempio le ombreggiature, vengono applicati alle anteprime in base al tema attualmente selezionato dell'utente. Gli strumenti decorativi sono forniti da Windows; non crearli da soli. Windows potrebbe cambiare l'aspetto di particolari adornamenti in qualsiasi momento, quindi se si è a disposizione si rischia di non essere sincronizzati con il sistema. Le anteprime potrebbero risultare datate o fuori posto.

Le potenziali decorazioni vengono dichiarate 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 Nessun elemento decorativo
1 Ombra
2 Bordo foto
3 Video Sprockets

Un'ombreggiatura viene applicata alle immagini per impostazione predefinita.

Registrazione del gestore delle anteprime

La registrazione di un gestore di anteprima si basa sulle associazioni di file standard.

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

IThumbnailProvider

creazione di gestori di anteprime

linee guida del gestore delle anteprime