Udostępnij za pośrednictwem


Jak tworzyć obsługujące pola upuszczania

Domyślnie pliki nie są obiektami docelowymi. Możesz uczynić członków typu pliku docelowymi miejscami upuszczania, implementując i rejestrując obsługę upuszczania .

Jeśli procedura obsługi upuszczania jest zarejestrowana dla typu pliku, jest wywoływana za każdym razem, gdy obiekt zostanie przeciągnięty lub porzucony na elemencie członkowskim typu pliku. Powłoka zarządza operacją, wywołując odpowiednie metody w interfejsie IDropTarget programu obsługi.

Ogólne procedury implementowania i rejestrowania rozszerzeń powłoki zostały omówione w Tworzenie obsługiwaczy rozszerzeń powłoki. Ten dokument koncentruje się na tych aspektach implementacji, które są specyficzne dla procedur obsługi porzucania.

Instrukcje

Krok 1. Implementowanie procedur obsługi porzucania

Podobnie jak wszystkie uchwyty rozszerzeń powłoki, uchwyty przeciągania i upuszczania są obiektami modelu obiektów składników (COM) implementowanymi jako biblioteki DLL. Eksportują dwa interfejsy oprócz IUnknown: IPersistFile i IDropTarget.

Powłoka inicjuje obsługę za pomocą interfejsu IPersistFile. Używa tego interfejsu do żądania identyfikatora klasy programu obsługi (CLSID) i przekazuje mu nazwę pliku. Ogólne omówienie sposobu implementowania narzędzi obsługi rozszerzeń powłoki, w tym interfejsu IPersistFile, zobacz Tworzenie programów rozszerzeń powłoki.

Po zainicjowaniu uchwytu przeciągania/opuszczania, system wywołuje odpowiednią metodę w interfejsie IDropTarget programu obsługi.

Krok 2. Rejestrowanie procedur obsługi porzucania

Procedury obsługi przeciągania i upuszczania są rejestrowane w podkluczu tego typu pliku.

HKEY_CLASSES_ROOT
   ProgID
      shellex
         DropHandler

Utwórz podklucz DropHandler o nazwie programu obsługi i ustaw wartość domyślną podklucza na tekstową postać identyfikatora GUID CLSID programu obsługi. Aby zapoznać się z ogólnym omówieniem sposobu rejestrowania procedur obsługi rozszerzeń powłoki, zobacz Creating Shell Extension Handlers.

Poniższy przykład ilustruje wpisy rejestru, które umożliwiają procedurę obsługi upuszczania dla przykładowego typu pliku .myp.

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}

Tworzenie Programów Obsługi Rozszerzeń Powłoki

IDropTarget

IPersistFile