Come creare gestori di rilascio
Per impostazione predefinita, i file non sono destinazioni di rilascio. È possibile rendere i membri di un tipo di file in destinazioni di rilascio implementando e registrando un gestore di rilascio.
Se un gestore di rilascio viene registrato per un tipo di file, viene chiamato ogni volta che un oggetto viene trascinato o rilasciato su un membro del tipo di file. Shell gestisce l'operazione chiamando i metodi appropriati nell'interfaccia IDropTarget del gestore.
Le procedure generali per l'implementazione e la registrazione di un gestore di estensioni shell sono descritte in Creazione di gestori di estensioni della shell. Questo documento è incentrato sugli aspetti dell'implementazione specifici dei gestori di rilascio.
Istruzioni
Passaggio 1: Implementazione dei gestori di rilascio
Analogamente a tutti i gestori di estensioni shell, i gestori di rilascio sono oggetti COM (Component Object Model) in-process implementati come DLL. Esportano due interfacce oltre a IUnknown: IPersistFile e IDropTarget.
Shell inizializza il gestore tramite l'interfaccia IPersistFile . Usa questa interfaccia per richiedere l'identificatore di classe (CLSID) del gestore e lo fornisce con il nome del file. Per una descrizione generale su come implementare i gestori di estensione della shell, inclusa l'interfaccia IPersistFile , vedere Creazione di gestori estensioni shell.
Dopo aver inizializzato il gestore di rilascio, Shell chiama il metodo appropriato nell'interfaccia IDropTarget del gestore.
Passaggio 2: Registrazione dei gestori di rilascio
I gestori di rilascio vengono registrati nella sottochiave del tipo di file.
HKEY_CLASSES_ROOT
ProgID
shellex
DropHandler
Creare una sottochiave di DropHandler denominata per il gestore e impostare il valore predefinito della sottochiave sul formato stringa del GUID CLSID del gestore. Per informazioni generali su come registrare i gestori di estensioni della shell, vedere Creazione di gestori di estensioni della shell.
Nell'esempio seguente vengono illustrate le voci del Registro di sistema che abilitano un gestore di rilascio per un tipo di file con estensione myp di esempio.
HKEY_CLASSES_ROOT
.myp
(Default) = MyProgram.1
CLSID
{00000000-1111-2222-3333-444444444444}
InProcServer32
(Default) = C:\MyDir\MyCommand.dll
ThreadingModel = Apartment
MyProgram.1
(Default) = MyProgram Application
shellex
DropHandler
(Default) = {00000000-1111-2222-3333-444444444444}
Argomenti correlati