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}

Creazione di gestori di estensione della shell

Idroptarget

Ipersistfile