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}
Související témata