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.
Jedną z najbardziej przydatnych funkcji monikers jest to, że można połączyć lub tworzyć monikers razem. złożony moniker jest pseudonimem, który jest kompozycją innych monikers i może określić relację między częściami. Dzięki temu można utworzyć pełną ścieżkę do obiektu, biorąc pod uwagę co najmniej dwa elementy monikers, które są odpowiednikiem częściowych ścieżek. Można tworzyć elementy jnikerów tej samej klasy (np. dwóch monikers plików) lub różnych klas (takich jak moniker pliku i moniker elementu). Jeśli chcesz napisać własną klasę moniker, możesz również utworzyć monikers za pomocą monikers plików lub elementów monikers. Podstawową zaletą złożonego jest to, że daje jeden fragment kodu w celu zaimplementowania każdego możliwego monikera, który jest kombinacją prostszych monikers. Znacznie zmniejsza to zapotrzebowanie na określone niestandardowe klasy moniker.
Ponieważ elementy monikers różnych klas mogą składać się ze sobą, monikers zapewniają możliwość łączenia wielu przestrzeni nazw. System plików definiuje wspólną przestrzeń nazw dla obiektów przechowywanych jako pliki, ponieważ wszystkie aplikacje rozumieją nazwę ścieżki systemu plików. Podobnie obiekt kontenera definiuje również prywatną przestrzeń nazw dla obiektów, które zawiera, ponieważ żaden kontener nie rozumie nazw generowanych przez inny kontener. Monikers umożliwiają sprzężenie tych przestrzeni nazw, ponieważ mogą być komponowane monikers plików i monikers elementów. Klient moniker może przeszukiwać przestrzeń nazw dla wszystkich obiektów przy użyciu jednego mechanizmu. Klient po prostu wywołuje IMoniker::BindToObject w moniker, a kod moniker obsługuje resztę. Wywołanie IMoniker::GetDisplayName w obiekcie złożonym powoduje utworzenie nazwy przy użyciu łączenia wszystkich nazw wyświetlanych poszczególnych podmiotów monikers.
Ponadto, ponieważ można napisać własną klasę moniker, kompozycja moniker umożliwia dodawanie niestandardowych rozszerzeń do przestrzeni nazw dla obiektów.
Czasami dwa moniki określonych klas można połączyć w specjalny sposób. Na przykład moniker pliku reprezentujący niekompletną ścieżkę, a inny moniker pliku reprezentujący ścieżkę względną można połączyć w celu utworzenia pojedynczego monikera pliku reprezentującego pełną ścieżkę. Na przykład pliki monikers "c:\work\art" mogą składać się z względnego moniker pliku "..\backup\myfile.doc" równe "c:\work\backup\myfile.doc". Jest to przykład niegenerowanej kompozycji .
kompozycji ogólnej, z drugiej strony, zezwala na połączenie dwóch monikers, bez względu na ich klasy. Na przykład można utworzyć moniker elementu na moniker pliku, choć nie, oczywiście, w drugą stronę.
Ponieważ kompozycja niegeneryczna zależy od klasy zaangażowanych monikers, jego szczegóły są definiowane przez implementację konkretnej klasy moniker. W przypadku pisania nowej klasy moniker można zdefiniować nowe typy niegenerycznych kompozycji. Natomiast kompozycje ogólne są definiowane przez obiekt OLE. Monikers utworzone w wyniku kompozycji ogólnej są nazywane rodzajowych monikers złożonych.
Te trzy klasy, monikers plików, monikers elementów i ogólne złożone monikers, wszystkie współpracują ze sobą i są najczęściej używane klasy monikers.
Klienci moniker powinni wywołać IMoniker::ComposeWith, aby utworzyć złożony w moniker z innym. Pseudonim, który jest wywoływany wewnętrznie decyduje, czy może zrobić ogólny lub niegeneryczny skład. Jeśli implementacja moniker określa, że ogólny skład jest używany, ole udostępnia CreateGenericComposite funkcji, aby to ułatwić.
Tematy pokrewne