Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Gdy plik zostanie skopiowany do schowka lub przeciągnięty i upuszczony, Shell tworzy obiekt danych, który obsługuje różne standardowe formaty schowka . W przypadku plików o określonym typie pliku można rozszerzyć dostępne formaty schowka, implementując i rejestrując program obsługi danych . Gdy plik określonego typu jest przesyłany, Shell deleguje wywołania do interfejsu IDataObject obiektu danych do obsługującego dane, jeśli jest używany jeden z formatów niestandardowych.
Ogólne procedury implementowania i rejestrowania programu obsługi rozszerzenia powłoki zostały omówione w Tworzenie programów obsługi rozszerzeń powłoki. Ten dokument koncentruje się na tych aspektach implementacji, które są specyficzne dla procedur obsługi danych.
Instrukcje
Krok 1. Implementowanie procedur obsługi danych
Podobnie jak wszystkie moduły obsługi rozszerzeń powłoki, moduły obsługujące dane są obiektami Modelu Obiektów Składników (COM) działającymi w procesie i implementowanymi jako dynamiczne biblioteki łączne (DLL). Eksportują dwa interfejsy oprócz IUnknown: IPersistFile i IDataObject.
Powłoka inicjalizuje obsługę za pomocą interfejsu IPersistFile. Używa tego interfejsu do żądania identyfikatora klasy programu obsługi (CLSID) i dostarcza mu nazwę pliku. Ogólne omówienie sposobu implementowania procedur obsługi rozszerzeń powłoki, w tym interfejsu IPersistFile, zobacz Creating Shell Extension Handlers.
Po zainicjowaniu programu obsługi danych powłoka deleguje wywołania z obiektu danych do interfejsu IDataObject programu obsługi, jeśli jest używany jeden z formatów niestandardowych.
Krok 2. Rejestrowanie programów obsługi danych
Procedury obsługi danych są rejestrowane w podkluczu ProgID typu pliku, jak pokazano tutaj: HKEY_CLASSES_ROOT\ProgID\shellex\DataHandler
Utwórz podklucz nazwany dla programu obsługi w DataHandler i ustaw domyślną wartość tego podklucza programu obsługi na postać ciągu 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 danych 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
DataHandler
(Default) = {00000000-1111-2222-3333-444444444444}
Tematy pokrewne