Zrozumienie rozszerzeń przestrzeni nazw powłoki
Eksplorator Windows udostępnia graficzną reprezentację przestrzeni nazw powłoki w połączeniu z narzędziami, które umożliwiają użytkownikom interakcję z obiektami powłoki. Za pomocą rozszerzenia przestrzeni nazw można pobrać dowolną treść danych i udostępnić użytkownikowi eksploratora Windows jako folder wirtualny. Gdy użytkownik przegląda ten folder, dane są prezentowane jako hierarchia w postaci drzewa folderów i plików, podobnie jak w pozostałej części przestrzeni nazw powłoki systemowej. Użytkownicy i aplikacje mogą wchodzić w interakcje z zawartością tego folderu wirtualnego w taki sam sposób, jak w przypadku dowolnego innego obiektu przestrzeni nazw. W tym dokumencie omówiono sposób tworzenia rozszerzenia przestrzeni nazw.
- Jak działa rozszerzenie przestrzeni nazw
- domyślny obiekt widoku folderu systemowego (DefView)
-
sposób interakcji Eksploratora Windows z rozszerzeniem przestrzeni nazw
- widok drzewa
- Widok folderu
- Pasek menu i Paski narzędzi
- Pasek stanu
Jak działa rozszerzenie przestrzeni nazw
W tle każdy folder wyświetlany przez Eksploratora Windows jest reprezentowany przez obiekt Modelu obiektów składników (COM) nazywany obiektem folderu . Za każdym razem, gdy użytkownik wchodzi w interakcję z folderem lub jego zawartością, powłoka komunikuje się ze skojarzonym obiektem folderu za pośrednictwem jednego z wielu standardowych interfejsów. Następnie obiekt folderu wykonuje wszystko, co konieczne, aby zareagować na działanie użytkownika, a powłoka aktualizuje widok Eksploratora Windows.
Większość plików i folderów, z których użytkownicy korzystają, jest częścią systemu plików lub wirtualnego folderu systemowego, takiego jak Kosz. W innej dokumentacji omówiono sposób dostosowywania zachowania tych folderów standardowych w celu spełnienia wymagań aplikacji przez zmodyfikowanie rejestru lub zaimplementowanie programów obsługi rozszerzeń Shell. Jednak rozszerzenie powłoki w ten sposób jest najbardziej przydatne, gdy informacje można łatwo spakować w postaci zwykłych plików lub folderów systemu plików.
Istnieje wiele sytuacji, w których przechowywanie danych jako kolekcji folderów i plików systemu plików może być niepożądane lub nawet niemożliwe. Oto kilka przykładów tego typu danych:
- Kolekcja elementów, które są najbardziej efektywnie pakowane w jednym pliku, takim jak baza danych.
- Kolekcja elementów przechowywanych na komputerze zdalnym, który nie ma standardowego systemu plików Systemu Windows. Przykładem takich danych są informacje przechowywane w osobistym asystencie cyfrowym (PDA) lub cyfrowym aparacie fotograficznym.
- Kolekcja elementów, które nie reprezentują przechowywanych danych. Przykładem takich danych są łącza drukarki zawarte w standardowym folderze Drukarki.
Jednym ze sposobów przedstawienia tego rodzaju danych użytkownikowi jest napisanie aplikacji w celu umożliwienia użytkownikom wyświetlania różnych elementów i interakcji z nimi. Jeśli jednak dane mogą być prezentowane jako hierarchia folderów/plików, większość funkcji, które należy zaimplementować, może to być usługi interfejsu użytkownika, które są już udostępniane przez Eksploratora Windows. Znacznie bardziej wydajnym podejściem może być napisanie rozszerzenia przestrzeni nazw i pozwolić Eksploratorowi Windows stać się graficznym interfejsem użytkownika.
Aby zaimplementować rozszerzenie przestrzeni nazw, informacje muszą być zorganizowane jako przestrzeń nazw ze strukturą drzewa. Twoja przestrzeń nazw root jest prezentowana jako folder wirtualny w przestrzeni nazw powłoki. Folder główny i wszystkie jego podfoldery i elementy danych stają się częścią przestrzeni nazw powłoki, a Eksplorator Windows staje się interfejsem użytkownika. W ten sposób możesz przedstawić informacje użytkownikowi w znany i łatwo dostępny sposób z znacznie mniejszym programowaniem interfejsu użytkownika, niż byłoby wymagane w przypadku aplikacji niestandardowej.
Rozszerzenie przestrzeni nazw składa się z dwóch podstawowych składników:
- Menedżer danych
- Interfejs między menedżerem danych a Eksploratorem Windows
Pierwszy element na liście całkowicie zależy od Ciebie. Dane można przechowywać i zarządzać nimi w sposób najbardziej efektywny. Drugi składnik to kod potrzebny do spakowania danych jako obiektów folderów i obsługi interakcji z Eksploratorem Windows. Eksplorator Windows może następnie wywoływać te obiekty, aby umożliwić użytkownikom wyświetlanie danych i interakcję z nimi tak, jakby były to kolekcje folderów i plików. Obiekty folderów rozszerzenia przestrzeni nazw muszą wchodzić w interakcje z Eksploratorem Windows tak, jakby były normalnymi folderami. Przed podjęciem próby zaimplementowania rozszerzenia przestrzeni nazw należy najpierw zrozumieć, jak Eksplorator Windows obsługuje obiekt folderu.
Domyślny obiekt widoku folderu systemowego (DefView)
Powłoka zapewnia domyślną implementację widoku folderu, potocznie znaną jako DefView, dzięki czemu można uniknąć dużej części pracy implementacji własnego rozszerzenia przestrzeni nazw. Ponieważ niektórych funkcji widoku nie można osiągnąć za pomocą widoków niestandardowych, często zaleca się, aby domyślny obiekt widoku folderu systemowego był używany zamiast widoku niestandardowego. Aby uzyskać więcej informacji, zobacz SHCreateShellFolderView.
Jak Eksplorator Windows współdziała z rozszerzeniem przestrzeni nazw
Eksplorator Windows udostępnia użytkownikom graficzny interfejs użytkownika, który umożliwia im wykonywanie różnych zadań, w tym:
- Nawigowanie hierarchii przestrzeni nazw i wyświetlanie zawartości folderów.
- Zarządzanie zawartości przestrzeni nazw przez przenoszenie, usuwanie i kopiowanie obiektów.
- pobieranie informacji o różnych obiektach.
- Uruchamianie aplikacji.
Graficzny interfejs użytkownika Eksploratora Windows ma pięć podstawowych składników. Poniższa ilustracja nazywa składniki i pokazuje, gdzie są one zwykle wyświetlane w Eksploratorze Windows.
Gdy użytkownik wyświetli folder należący do rozszerzenia przestrzeni nazw w Eksploratorze Windows, obiekt folderu ma co najmniej częściową kontrolę nad zawartością wszystkich pięciu obszarów.
Widok drzewa
Widok drzewa zapewnia ogólny widok przestrzeni nazw. Ten obszar hostuje kontrolkę widoku drzewa , która może wyświetlać każdy folder przestrzeni nazw i położenie folderu w hierarchii przestrzeni nazw. Użytkownik może wykonać kilka operacji z obszarem widoku drzewa, w tym:
- Wyświetlanie lub ukrywanie następnego poziomu w przestrzeni nazw.
- Kopiowanie, przenoszenie lub usuwanie folderów.
- Kliknięcie prawym przyciskiem myszy folderu w celu wyświetlenia menu skrótów.
- Wybranie folderu i wyświetlenie jego zawartości w widoku folderu.
Widok drzewa komunikuje się z obiektami folderów głównie za pośrednictwem interfejsu IShellFolder. Na przykład gdy użytkownik kliknie znak plus (+) obok ikony folderu, Eksplorator Windows rozwija ekran, aby wyświetlić podfoldery folderu. Aby uzyskać informacje potrzebne do zaktualizowania widoku drzewa, powłoka wykonuje kilka wywołań do interfejsu IShellFold er obiektu folderu w celu:
- Zażądaj atrybutów folderu.
- Wyliczanie zawartości folderu.
- Żądaj nazw wyświetlanych dla każdego podfolderu.
- Zażądaj ikony, aby wyświetlić obok każdego folderu.
Następnie Eksplorator Windows aktualizuje widok drzewa, aby wyświetlić podfoldery wybranego folderu. Jeśli podfoldery mają podfoldery, obok ikony folderu zostanie wyświetlony znak "+". Istnieje wiele bardziej zaawansowanych zadań, które użytkownik może również wykonać w widoku drzewa, w tym:
- Używanie schowka do wycinania lub kopiowania folderu i wklejania go do innego folderu.
- Przeciągnij i upuść, aby wyciąć lub skopiować folder i upuść go w innym folderze.
- Wyszukiwanie elementów w folderze lub jego podfolderach za pomocą wyszukiwarki.
- Modyfikowanie właściwości folderu.
Aby uzyskać bardziej szczegółowe omówienie, w jaki sposób rozszerzenie przestrzeni nazw obsługuje te działania użytkownika, zobacz Implementowanie podstawowych interfejsów obiektów folderów.
Widok folderu
Gdy użytkownik wybierze folder, zawartość folderu będzie wyświetlana w widoku folderu. W pewnym stopniu normalne funkcje widoku folderu nakładają się na widok drzewa. Użytkownicy mogą przenosić lub kopiować foldery, zmieniać właściwości folderów, wyświetlać zawartość podfolderu, wyświetlać menu skrótów dla folderu itd. Istnieją jednak pewne różne różnice między widokiem drzewa a widokiem folderu:
- Widok folderu wyświetla tylko zawartość pojedynczego folderu, a nie część lub całą hierarchię przestrzeni nazw.
- Widok folderu wyświetla obiekty plików, a także obiekty folderów.
- Widok folderu może wyświetlać o wiele więcej informacji o obiektach niż widok drzewa.
- Widok folderu umożliwia rozszerzeniu przestrzeni nazw niemal pełną kontrolę nad tym, jakie informacje są wyświetlane i w jaki sposób. Można modyfikować tylko drobne aspekty widoku drzewa, takie jak ikony folderów.
W przeciwieństwie do widoku drzewa Eksplorator Windows nie kontroluje bezpośrednio zawartości widoku folderu. Widok folderu jest obszarem, który eksplorator Windows udostępnia obiektom folderów. Wyświetlanie zawartości folderu w widoku folderu i zarządzanie nią to odpowiedzialność za obiekt folderu. Chociaż większość widoków folderów ma dość standardowy format, istnieje w rzeczywistości kilka ograniczeń dotyczących tego, co można wyświetlić lub jak. Skrajnym przypadkiem jest folder internetowy, który jest w pełni funkcjonalna przeglądarka.
Gdy użytkownik wybierze folder będący częścią rozszerzenia przestrzeni nazw, należy utworzyć okno i przekazać jego uchwyt do Eksploratora Windows. To okno staje się elementem podrzędnym okna widoku folderu. Eksplorator Windows udostępnia wymiary okna widoku folderu, ale nie nakłada żadnych ograniczeń na zawartość okna podrzędnego. Następnie możesz użyć okna podrzędnego, aby wyświetlić widok folderu.
Rozszerzenia przestrzeni nazw używają jednego z dwóch podejść do tworzenia widoku folderu:
- Użyj swojego okna podrzędnego, aby hostować kontrolkę widoku listy . Ta kontrolka umożliwia wyświetlanie zawartości folderu podobnie jak w klasycznym widoku Eksploratora Windows .
- Użyj okna podrzędnego do hostowania kontrolki WebBrowser i użyj dokumentu Dynamic HTML (DHTML), aby wyświetlić zawartość folderu.
Oba podejścia wyświetlają widok folderu, który wygląda bardzo podobnie do wyświetlanego dla folderów systemowych. Jeśli jednak chcesz użyć innego schematu wyświetlania, możesz to zrobić.
Pasek menu i paski narzędzi
Podobnie jak większość aplikacji systemu Windows, Eksplorator Windows udostępnia użytkownikowi kolekcję narzędzi. Pełny wybór narzędzi jest dostępny na pasku menu. Najczęściej używane narzędzia są również reprezentowane przez przyciski lub pola edycji na pasku narzędzi. W przeciwieństwie do wielu aplikacji systemu Windows, pasek menu Eksploratora Windows jest w rzeczywistości paskiem narzędzi, który został dostosowany, aby zachowywać się jak konwencjonalne menu. Zarówno pasek menu, jak i pasek narzędzi są zintegrowane w kontrolkę rebaru , aby umożliwić użytkownikom organizowanie indywidualnych kontrolek zgodnie z ich potrzebami.
Domyślnie Eksplorator Windows obsługuje standardowy zestaw przycisków i elementów menu, takich jak Kopiowanie i właściwości. Rozszerzenie przestrzeni nazw może dostosować pasek menu i paski narzędzi, usuwając standardowe narzędzia i dodając narzędzia niestandardowe. Po zainicjowaniu obiektu widoku folderu Eksplorator Windows przekazuje wskaźnik do interfejsu IShellBrowser. Ten interfejs obsługuje kilka metod, które można wywołać, aby dostosować pasek menu i pasek narzędzi. Gdy użytkownik wybierze jeden z niestandardowych elementów menu lub przycisków paska narzędzi, Eksplorator Windows przekazuje komunikaty WM_COMMAND dla niestandardowych elementów menu i paska narzędzi do procedury okna podrzędnego.
Pasek stanu
Na pasku stanu Eksploratora Windows są wyświetlane informacje o aktualnie wybranym obiekcie. Rozszerzenie przestrzeni nazw może wykorzystywać pasek stanu do wyświetlania informacji o statusie, na przykład w formie ciągu tekstowego. Pasek stanu można dostosować, wywołując IShellBrowser.