Rozszerzenia Powłoki Windows (Windows Shell Extension)
reichel
1 Wstęp
2 Interfejsy związane z powłoką windows
3 Inne artykuły powiązane z powłoką windows
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. | [[Delphi/Gotowce/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). | [[Z_pogranicza/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) | [[Delphi/FAQ/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) [[Delphi/Gotowce/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. | [[Z_pogranicza/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. | [[Z_pogranicza/FAQ/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
|
||
[[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)- Jak pobrać nazwy plików w koszu
- Jak dodać ikonę programu do Traya. ( ikonka obok zegara Windows )
- Jak odczytać ścieżki folderów specjalnych
- Jak odświeżyć pulpit
- Jak odświeżyć widok pulpitu
- Jak wyświetlić ikonę skojarzoną z danym rozszerzeniem
- Jak wygodnie odczytać nazwy plików upuszczanych na komponenty naszego programu z pulpitu
- Jak dodać ikonę do traya
~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?
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).
reichel: Zaskakujesz mnie. O co się zapytam to ty o tym piszesz :D Oby tak dalej :p