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.
Procedury obsługi nakładek ikonowych to obiekty modelu COM (Component Object Model) działające wewnątrz procesu, implementowane jako biblioteki DLL. Eksportują jeden interfejs, poza IUnknown, IShellIconOverlayIdentifier. Ten interfejs ma trzy metody: IShellIconOverlayIdentifier::GetOverlayInfo, IShellIconOverlayIdentifier::GetPriorityi IShellIconOverlayIdentifier::IsMemberOf.
Instrukcje
Krok 1. Implementowanie polecenia GetOverlayInfo
Metoda GetOverlayInfo jest najpierw wywoływana podczas inicjowania. Metoda zwraca w pełni kwalifikowaną ścieżkę do pliku zawierającego obraz nakładki ikony oraz jego indeks rozpoczynający się od zera w tym pliku. Następnie powłoka dodaje obraz do listy obrazów systemowych. Nakładki ikon mogą być zawarte w dowolnym standardowym typie plików, w tym .exe, .dlli .ico.
Po zakończeniu inicjowania, Powłoka wywołuje GetOverlayInfo, gdy potrzebuje wyświetlić nakładkę ikony obsługującego. Metoda powinna zwrócić tę samą nazwę pliku i indeks, które miała podczas inicjalizacji. Mimo że Shell używa obrazu zbuforowanego na liście obrazów systemowych zamiast ładować obraz z pliku, nakładka ikony jest nadal identyfikowana poprzez jej nazwę pliku i indeks.
Krok 2. Implementowanie polecenia GetPriority
Metoda GetPriority jest wywoływana tylko podczas inicjowania. Przypisuje wartość priorytetu nakładce ikony obsługi. Wartość może wahać się od zera do 100, gdzie 100 jest najniższym priorytetem. Celem tej wartości priorytetu jest pomoc Shell w rozwiązaniu konfliktu, który pojawia się, gdy dla pojedynczego obiektu określono wiele nakładek na ikony. Powłoka najpierw używa wewnętrznego zestawu reguł, aby określić nakładkę ikony najwyższego priorytetu. Jeśli te reguły nie rozwiążą konfliktu, wartości przypisane do nakładek ikony przez GetPriority określają priorytet.
Wartość priorytetu ustawiona przez GetPriority nie jest niezawodnym sposobem rozwiązywania konfliktów między niepowiązanymi procedurami obsługi nakładek ikon. Nie ma możliwości, aby program obsługi określał, jakie wartości priorytetów używają inne programy obsługi. Zwykle należy ustawić wartość na zero. Jednak wartość priorytetu jest przydatna w przypadku zaimplementowania co najmniej dwóch procedur obsługi nakładki ikon, które mogą żądać ikon nakładki ikon dla tego samego obiektu. Ustawiając odpowiednio wartości priorytetów, możesz określić, które z żądanych nakładek ikon zostaną wyświetlone.
Krok 3. Implementowanie elementu IsMemberOf
Powłoka wywołuje metodę IsMemberOf, aby określić, czy powinna wyświetlać nakładkę ikony programu obsługi dla określonego obiektu. Powłoka określa obiekt, przekazując jego nazwę do metody . Jeśli program obsługi chce wyświetlić nakładkę ikony, IsMemberOf zwraca S_OK. Jeśli nie, zwraca S_FALSE.
Programy obsługi nakładek ikon są zwykle przeznaczone do pracy z określoną grupą plików. Typowym przykładem jest typ pliku, zidentyfikowany przez określone rozszerzenie nazwy pliku. Procedura obsługi nakładki ikon może zażądać nakładki na ikonę dla wszystkich plików danego typu. Niektóre programy obsługi żądają nakładki ikony tylko wtedy, gdy plik danego typu jest w określonym stanie. Jednak obsługujący nakładki ikon mogą swobodnie żądać nakładki ikony dla dowolnego wybranego obiektu.