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
Argomenti correlati