Udostępnij przez


Asynchroniczne i synchroniczne Monikers

Klient standardowego, synchronicznego monikera OLE zwykle tworzy i przechowuje odwołanie do pseudonimu, a także kontekst powiązania, który ma być używany podczas tworzenia powiązania. Składniki związane z używaniem tradycyjnych monikers są pokazane na poniższym diagramie.

Diagram przedstawiający klienta połączonego z kontekstem powiązania lub dowolnym monikerem podanym przez system.

Klienci zazwyczaj tworzą standardowe elementy monikers, wywołując funkcje, takie jak CreateFileMoniker, CreateItemMonikerlub CreatePointerMoniker lub, ponieważ można je zapisać w magazynie trwałym za pośrednictwem OleSaveToStream i OleLoadFromStream. Narzędzia Monikers można również uzyskać z obiektu kontenera, wywołując metodę IBindHost::CreateMoniker. Klienci tworzą konteksty powiązania, wywołując funkcję CreateBindCtx, a następnie przekazują kontekst powiązania do moniker z wywołaniami IMoniker::BindToStorage lub IMoniker::BindToObject.

Jak pokazano na poniższym diagramie, klient asynchronicznego monikera tworzy również i przechowuje odwołanie do pseudonimu i kontekstu powiązania, który ma być używany podczas tworzenia powiązania.

Diagram przedstawiający połączenia między elementami Client-Provided, Monker-Provided i System-Provided.

Aby uzyskać zachowanie asynchroniczne, klient implementuje interfejs IBindStatusCallback w obiekcie bind-status-callback i wywołuje funkcję RegisterBindStatusCallback lub CreateAsyncBindCtx funkcji w celu zarejestrowania tego interfejsu w kontekście powiązania. Moniker przekazuje wskaźnik do interfejsu IBinding w wywołaniu metody IBindStatusCallback::OnStartBinding. Klient informuje asynchroniczny moniker, jak chce powiązać po powrocie z wywołania moniker do IBindStatusCallback::GetBindInfo metody.

Asynchronous Monikers