Sdílet prostřednictvím


Vytváření obslužných rutin dat

Při zkopírování souboru do schránky nebo při jeho přetažení Shell vytvoří datový objekt, který podporuje různé standardní formáty schránky . U souborů určitého typu můžete rozšířit dostupné formáty schránky implementací a registrací obslužné rutiny dat . Když se přenese soubor daného typu, Shell deleguje volání na rozhraní IDataObject datového handleru, pokud se použije některý z vlastních formátů.

Obecné postupy implementace a registrace obslužné rutiny rozšíření prostředí jsou popsány v Vytváření obslužných rutin rozšíření prostředí. Tento dokument se zaměřuje na aspekty implementace, které jsou specifické pro obslužné rutiny dat.

Instrukce

Krok 1: Implementace obslužných rutin dat

Stejně jako všechny obslužné rutiny rozšíření shellu jsou obslužné rutiny dat objekty Component Object Modelu (COM) implementované jako knihovny DLL. Kromě IUnknownexportují dvě rozhraní: IPersistFile a IDataObject.

Shell inicializuje obslužnou rutinu prostřednictvím svého rozhraní IPersistFile. Toto rozhraní používá k vyžádání identifikátoru třídy obslužné rutiny (CLSID) a poskytne mu název souboru. Obecné informace o tom, jak implementovat obslužné rutiny rozšíření prostředí, včetně rozhraní IPersistFile, najdete v tématu Vytváření obslužných rutin rozšíření prostředí.

Jakmile je obslužná rutina dat inicializována, Shell deleguje volání z datového objektu do IDataObject rozhraní obslužné rutiny, pokud se používá některý z vlastních formátů.

Krok 2: Registrace zpracovatelů dat

Obslužné rutiny dat se registrují v podklíči ProgID typu souboru, jak je znázorněno tady: HKEY_CLASSES_ROOT\ProgID\shellex\DataHandler

Vytvořte podklíč pojmenovaný pro obslužnou rutinu v části DataHandler a nastavte výchozí hodnotu podklíče této obslužné rutiny na řetězcový formulář identifikátoru CLSID GUID obslužné rutiny. Obecné informace o registraci obslužných rutin rozšíření prostředí najdete v tématu Vytváření obslužných rutin rozšíření prostředí.

Následující příklad znázorňuje položky registru, které umožňují obslužnou rutinu dat pro příklad typu souboru .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
         DataHandler
            (Default) = {00000000-1111-2222-3333-444444444444}

vytváření obslužných rutin rozšíření prostředí

IPersistFile

objektu IDataObject