Z pogranicza

Rozszerzenia Powłoki Windows (Windows Shell Extension)

  • 2010-06-08 12:29
  • 3 komentarze
  • 1715 odsłon
  • Oceń ten tekst jako pierwszy


Wstęp


Kilka wstępnie zebranych informacji na temat powłoki windows.
Powinno się tu jeszcze znaleźć mnóstwo informacji (komunikaty, funkcje SH*).
Na razie to na dobry początek, zachęcam do rozwoju.

Interfejsy związane z powłoką windows


Nazwy interfejsów Opis skrócony Powiązane artykuły/FAQ/Gotowce Minimalna wersja shella/systemu
IDropTarget Odpowiedzialny za obsługę obiektów (OLE) upuszczonych na dane okno. Obsługa_Interfejsu_IDropTarget_(DragNDrop)
IDropTargetHelper pozwala dodać bajery i pokazywać za pomocą obrazków co się przenosi.
IDropSource Odpowiedzialny za źródło obiektów, które zostaną upuszczone (można tu np. dostosowywać format do danej aplikacji, na którą obiekt ma być upuszczony).
IDragSourceHelper pozwala dodać bajery i pokazywać za pomocą obrazków co się przenosi.
IShellIconOverlayIdentifier Umożliwia utworzenie ikonki w rogu ikonki (jak np. ikonka skrótu lub udostępniania). Skojarzenie_pliku_z_naszym_programem_bez_względu_na_rozszerzenie
IExtractIcon Tworzenie ikony w locie w zależności od zawartości pliku lub też jej uzyskanie.
IExtractImage Pozwala uzyskać albo utworzyć miniaturkę dla danego pliku. Dla windows Vista i wyżej patrz IThumbnailProvider 4.70
IThumbnailProvider Odpowiednik IExtractImage w Vista i wyżej. Większa funkcjonalność Vista
IPreviewHandler Wymagane Vista lub wyżej. Pozwala uzyskać/tworzyć podgląd pliku w oknie explorer'a. Vista
IInitializeWithStream Potrzebny do współdziałania z IThumbnailProvider oraz IPreviewHandler. Vista
IQueryInfo Umożliwia dodawanie niestandardowych elementów do opisu pliku (widzianych w ToolTip'ie oraz w bocznym panelu) Jak_wstawić_własne_dymki_podpowiedzi_dla_plików_w_powłoce_windows_(IQueryInfo)
IContextMenu Umożliwia dodanie własnych menu do menu kontekstowego (danego rozszerzenia). Przykład w katalogu Demos\ActiveX\ShellExt (delphi 6 i 7)
IContextMenu_-_jak_dodać_podmenu Icontextmenu_i_Ikoną
IContextMenu2 Rozszerzona wersja IContextMenu
IContextMenu3 Rozszerzona wersja IContextMenu
IPersistFile Potrzebny do współpracy z interfejsami, które potrzebują informacji o danym pliku (np ścieżka). Np. IContextMenu, IQueryInfo
IShellExecuteHook Umożliwia dodanie niestandardowej reakcji na dwukrotne kliknięcie (uruchomienie z powłoki) pliku. Skojarzenie_pliku_z_naszym_programem_bez_względu_na_rozszerzenie
ICopyHook Umożliwia dodanie niestandardowej reakcji podczas kopiowania/przenoszenia/kasowania plików w powłoce. Przykład w katalogu Demos\ActiveX\ShellExt (delphi 6 i 7)
IColumnProvider Umożliwia dodanie niestandardowej kolumny do widoku szczegółowego.
IEmptyVolumeCache Zabytek, patrz IEmptyVolumeCache2. 5.0
IEmptyVolumeCache2 Za pomocą tego interfejsu można dodać własną akcje w przypadku gdy zabraknie miejsca na dysku (np oczyszczenie pliku tymczasowego naszego programu). 5.0
IShellPropSheetExt Pozwala dodać zakładkę do właściwości obiektów powłoki. Np. pliki, właściwości pulpit, ekran, etc.
IDeskBand Pozwala utworzyć własny pasek narzędziowy, który może być zadokowany w: pasku narzędziowym (tam gdzie guzik start), w pasku narzędziowym okien windows oraz IE.
IInputObject Odpowiedzialny za interakcje z użytkownikiem. Np. w IDeskBand.
IShellBrowser Przechowuje informacje dotyczące całego okna. Tego interfejsu nie implementuje się. Pozwala on jednak na interakcje z oknem windows (np zmiana tekstu w pasku statusu.). Najczęściej we współpracy z IShellView oraz IShellFolder
IShellView dzięki temu interfejsowi można uzyskać widok okna. Znacznie częściej stosuje się go jednak do wykreowania niestandardowego widoku okna wraz z interfejsem IShellFolder. Te interfejsy razem pozwalają na utworzenie rozszerzenia przestrzeni nazw w powłoce windows (Windows Shell Namespace Extension). Do tego typu rozszerzeń należą takie obiekty jak: aktówka, folder drukarek, historia
IShellFolder Odpowiedzialny za budowanie wirtualnej struktury plików. Patrz IShellView. Ikonka_w_oknie_Mój_komputer_i_innych_folderach_specjalnych 4.0
IShellFolder2 Rozszerzony IShellFolder 5.0
IENumIDList Pozwala tworzyć liste katalogow, plikow (PIDL) często (a własciwie powinno być zawsze) z IShellFolder oraz IShellView 4.0
IShellItem 6.0
IShellLibrary Umożliwia tworzenie specjalnych folderów (bibliotek) ewolucja folderów w stylu CSIDL np. moje dokumenty w7 ws2008r2
ITaskBarList Nie do końca opisany interfejs (2010 już tak). Pozwala na modyfikacje paska zawierającego guziki związane z oknami na pasku zadań. w2000 ws2000
ITaskBarList2 ITaskBarList + oznaczanie okna Full Screen wXP ws2003
ITaskBarList3 ITaskBarList2 + gadżety dla windows 7 oraz 2008 R2 (ikonki, obrazki, historia plików) w7 ws2008r2
ITaskBarList4 w7 ws2008r2
IShellDispatch Umożliwia dobranie się do systemowych okien Uruchom i Szukaj
IThumbnailCapture Bazujący na funkcjonalności IE. Umożliwia stworzenie miniaturki z podanej strony WWW.
IDelegateFolder Nie do końca opisany interfejs przez MS. Umożliwia tworzenie folderów (np w mój komputer), które dostępne są bezpośrednio z pominięciem drzewa. Jako przykład można tu podać folder skanerów i aparatów. W mo komputer dostępne są bezpośrednio foldery z konkretnym modelem skanear/aparatu, jednak w strukturze poprzedza je folder skanery i aparaty
IObjectWithSite Pozwala budować rozszerzenia (najczęściej wraz z innymi interfejsami) dla paska narzędzi/menu/... IE oraz okien windows.
IOleWindow Wszędzie tam gdzie potrzeba okna. Niekoniecznie związany z powłoką.
IDockingWindow Jesli rozszerzenie będzie paskiem narzędziowym (np. IDeskBand). Niekoniecznie związany z powłoką.
IPersist Tu dostaje się info o CLSID. Interfejs niekoniecznie związany z powłoką.


Inne artykuły powiązane z powłoką windows


(może doczekają sie jakiejś inne systematyzacji)

3 komentarze

xc1024 2008-05-29 15:41

~reichel, jak masz "przykladow testowych ze set mb", to moze podeslij mi je, co? akurat jestem w kropce bo po wpisaniu w Google hasla "IContextMenu Delphi" to idzie od razu fala stron o wykorzystaniu ToolTip. a ja akurat potrzebuje o IContextMenu bo to niezbedne dla projektow ktore robie. to podeslesz?

reichel 2008-03-16 16:43

che che dlugo myslalem aby cos napisac (przykladow testowych swoich mam ze set mb), ale czas .... zachecam do dopiskow i rozwoju. Wlasciwie dzial delphi jest przypadkiem (bo najwiecej w tym pisalem) ale moze byc cokolwiek. Ideaa wszedzie ta sama (a i naglowkow wiecej).

bordeux 2008-03-16 15:34

reichel: Zaskakujesz mnie. O co się zapytam to ty o tym piszesz :D Oby tak dalej :p