Condividi tramite


Come registrare un gestore di anteprima

Questo argomento illustra come registrare un gestore di anteprima associato a un determinato tipo di dati. Ai fini dell'illustrazione, gli esempi in questo argomento usano un tipo di file con estensione xyz. La registrazione di un gestore di anteprima è una registrazione standard basata sull'associazione di file.

Disposizioni

Passaggio 1:

Prima di tutto, un'estensione di nome file viene associata a un ProgID. La voce seguente associa la sottochiave ProgID xyzfile all'estensione del nome file .xyz.

HKEY_CLASSES_ROOT
   .xyz
      (Default) = [REG_SZ] xyzfile

La sottochiave xyzfile ProgID viene memorizzata con gli altri ProgID, come mostrato qui.

HKEY_CLASSES_ROOT
   xyzfile

Ogni sottochiave ProgID del gestore di anteprima contiene una sottochiave denominata shellex che contiene una sottochiave sempre denominata {8895b1c6-b41f-4c1c-a562-0d564250836f}. La presenza di tale sottochiave indica al sistema che il gestore è un gestore di anteprima.

Il valore predefinito del {8895b1c6-b41f-4c1c-a562-0d564250836f} sottochiave è l'identificatore di classe (CLSID) del gestore. Di seguito è mostrato un esempio della sottochiave xyzfile ProgID, che associa un gestore al CLSID {ec3a629a-a47c-4245-bc78-b4b63d0e3154}.

HKEY_CLASSES_ROOT
   xyzfile
      shellex
         {8895b1c6-b41f-4c1c-a562-0d564250836f}
            (Default) = [REG_SZ] {ec3a629a-a47c-4245-bc78-b4b63d0e3154}

Passaggio 2:

Successivamente, aggiungi la sottochiave sotto CLSID per il gestore di anteprima. Di seguito è riportato un esempio. Di seguito viene fornita una spiegazione delle singole voci.

HKEY_CLASSES_ROOT
   CLSID
      {ec3a629a-a47c-4245-bc78-b4b63d0e3154}
         (Default) = [REG_SZ] Fabricam XYZ Preview Handler
         DisplayName = [REG_SZ] @myhandler.dll,-101
         Icon = [REG_SZ] myhandler.dll,201
         AppID = [REG_SZ] {6d2b5079-2f0b-48dd-ab7f-97cec514d30b}
         InprocServer32
            (Default) = [REG_EXPAND_SZ] %ProgramFiles%\Fabricam\myhandler.dll
            ThreadingModel = [REG_SZ] Apartment
            ProgID = [REG_SZ] xyzfile
            VersionIndependentProgID = [REG_SZ] Version IndependentProgID

Il valore predefinito per la sottochiave (qui, {ec3a629a-a47c-4245-bc78-b4b63d0e3154}) non è obbligatorio o usato. Tuttavia, impostandolo su una stringa non localizzata, è possibile eseguire il debug dei problemi di registrazione.

Il segno meno (-101) nella risorsa .dll nella voce DisplayName esiste per motivi legacy. La voce Icona, invece, non richiede un segno meno.

Il valore AppID fornisce un riferimento all'APPID dell'applicazione associata all'estensione del nome file (archiviata in HKEY_CLASSES_ROOT\APPID. Il valore usato qui, {6d2b5079-2f0b-48dd-ab7f-97cec514d30b}, è l'ID dell'host surrogato Prevhost.exe. I gestori di anteprima a 32 bit devono usare AppID {534A1E02-D58F-44f0-B58B-36CBED287C7C} quando sono installati nei sistemi operativi a 64 bit.

Le voci sotto la sottochiave InprocServer32 includono un riferimento alla sottochiave ProgID dell'estensione del file, nonché una voce per un VersionIndependentProgID.

Passaggio 3:

Infine, il gestore di anteprima deve essere aggiunto all'elenco di tutti i gestori di anteprima. Questo elenco viene usato come ottimizzazione dal sistema per enumerare tutti i gestori di anteprima registrati a scopo di visualizzazione. Anche in questo caso, il valore predefinito non è obbligatorio, semplifica semplicemente il processo di debug.

Nota

In Windows 7, se l'applicazione è installata per tutti gli utenti del computer, usare HKEY_LOCAL_MACHINE; se per un solo utente, usare HKEY_CURRENT_USER.

 

HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
   SOFTWARE
      Microsoft
         Windows
            CurrentVersion
               PreviewHandlers
                  {ec3a629a-a47c-4245-bc78-b4b63d0e3154}
                     (Default) = [REG_SZ] Fabricam XYZ Preview Handler

Gestori di anteprima e host di anteprima della shell

creazione dei gestori di anteprima

linee guida per i gestori di anteprima