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.
moniker wskaźnika identyfikuje obiekt, który może istnieć tylko w stanie aktywnym lub uruchomionym. Różni się to od innych klas monikers, które identyfikują obiekty, które mogą istnieć w stanie pasywnym lub aktywnym.
Załóżmy na przykład, że aplikacja ma obiekt, który nie ma trwałej reprezentacji. Zwykle, jeśli klient aplikacji potrzebuje dostępu do tego obiektu, można po prostu przekazać klientowi wskaźnik do obiektu. Załóżmy jednak, że klient oczekuje monikera. Nie można zidentyfikować obiektu z pseudonimem pliku, ponieważ nie jest on przechowywany w pliku ani z pseudonimem elementu, ponieważ nie jest on zawarty w innym obiekcie.
Zamiast tego aplikacja może utworzyć moniker wskaźnika, który jest pseudonimem, który po prostu zawiera wskaźnik wewnętrznie, i przekazać go do klienta. Klient może traktować ten pseudonim jak każdy inny. Jeśli jednak klient wywołuje IMoniker::BindToObject w moniker wskaźnika, kod monikera nie sprawdza działającej tabeli obiektów (ROT) ani nie ładuje żadnych elementów z magazynu. Zamiast tego kod moniker po prostu wywołuje QueryInterface w wskaźniku przechowywanym wewnątrz moniker.
Wskaźniki monikers zezwalają na obiekty, które istnieją tylko w stanie aktywnym lub uruchomionym, aby uczestniczyć w operacjach moniker i być używane przez klientów moniker. Jedną z ważnych różnic między wskaźnikami monikers i innymi klasami monikers jest to, że nie można zapisać wskaźników w magazynie trwałym. Jeśli tak, wywołanie metody IMoniker::Save zwróci błąd. Oznacza to, że wskaźniki są przydatne tylko w wyspecjalizowanych sytuacjach. Możesz użyć funkcji CreatePointerMoniker, jeśli musisz użyć moniker wskaźnika.
Tematy pokrewne