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, esempi in questo argomento usano un tipo di file con estensione xyz. La registrazione di un gestore di anteprima è una registrazione basata su associazione file standard.

Istruzioni

Passaggio 1:

Prima di tutto, un'estensione di nome file è 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 ProgID xyzfile viene archiviata con gli altri progID, come illustrato di seguito:

HKEY_CLASSES_ROOT
   xyzfile

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

Il valore predefinito della sottochiave {8895b1c6-b41f-4c1c-a562-0d564250836f} è l'identificatore di classe (CLSID) del gestore. Un esempio della sottochiave progID xyzfile viene illustrato qui, associando un gestore di 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:

Aggiungere quindi la sottochiave in CLSID per il gestore di anteprima. Di seguito è riportato un esempio. Una spiegazione delle singole voci segue.

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, d'altra parte, non richiede un segno meno.

Il valore AppID fornisce un riferimento all'AppID dell'applicazione associata all'estensione del nome file (archiviato 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 installato nei sistemi operativi a 64 bit.

Le voci nella sottochiave InprocServer32 includono un riferimento alla sottochiave ProgID dell'estensione del file e una voce per un Oggetto 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, è sufficiente aiutarlo nel 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 di gestori di anteprima

Linee guida per il gestore di anteprima