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