Delen via


Asynchrone en synchrone monikers

Een client van een standaard, synchrone OLE-moniker maakt en bevat doorgaans een verwijzing naar de moniker, evenals de bindingscontext die tijdens de binding moet worden gebruikt. De onderdelen die betrokken zijn bij het gebruik van traditionele monikers, worden weergegeven in het volgende diagram.

diagram met de client die is verbonden met bindcontext of een willekeurige moniker voor het systeem.

Clients maken doorgaans standaard monikers door functies aan te roepen, zoals CreateFileMoniker, CreateItemMonikerof CreatePointerMoniker of, omdat ze kunnen worden opgeslagen in permanente opslag, via OleSaveToStream- en OleLoadFromStream-. Monikers kunnen ook worden verkregen uit een containerobject door de methode IBindHost::CreateMoniker aan te roepen. Clients maken bindcontexten door de functie CreateBindCtx- aan te roepen en vervolgens de bindingscontext door te geven aan de moniker met aanroepen naar IMoniker::BindToStorage of IMoniker::BindToObject.

Zoals wordt weergegeven in het volgende diagram, maakt en bevat een client van een asynchrone moniker ook een verwijzing naar de moniker en bindingscontext die tijdens de binding moet worden gebruikt.

diagram met de verbindingen tussen door de client geleverde, door monker geleverde en door het systeem geleverde verbindingen.

Om asynchroon gedrag te krijgen, implementeert de client de IBindStatusCallback interface op een bind-status-callback-object en roept de RegisterBindStatusCallback-functie of de CreateAsyncBindCtx-functie aan om deze interface te registreren met de bindingscontext. De moniker geeft een aanwijzer door aan de IBinding-interface in een aanroep naar de methode IBindStatusCallback::OnStartBinding. De client vertelt de asynchrone moniker hoe deze verbinding wil maken bij het retourneren van de aanroep van de moniker naar methode IBindStatusCallback::GetBindInfo methode.

Asynchrone Monikers