Partager via


Monikers asynchrones et synchrones

Un client d’un moniker OLE synchrone standard crée et conserve généralement une référence au moniker, ainsi que le contexte de liaison à utiliser pendant la liaison. Les composants impliqués dans l’utilisation de monikers traditionnels sont présentés dans le diagramme suivant.

Diagramme montrant le client connecté au contexte de liaison ou à n’importe quel moniker pour le système fourni.

Les clients créent généralement des monikers standard en appelant des fonctions telles que CreateFileMoniker, CreateItemMoniker ou CreatePointerMoniker ou, parce qu’ils peuvent être enregistrés dans un stockage persistant, via OleSaveToStream et OleLoadFromStream. Les monikers peuvent également être obtenus à partir d’un objet conteneur en appelant la méthode IBindHost::CreateMoniker . Les clients créent des contextes de liaison en appelant la fonction CreateBindCtx , puis passent le contexte de liaison au moniker avec des appels à IMoniker::BindToStorage ou IMoniker::BindToObject.

Comme le montre le diagramme suivant, un client d’un moniker asynchrone crée et conserve également une référence au moniker et au contexte de liaison à utiliser pendant la liaison.

Diagramme montrant les connexions entre le client fourni, monker fourni et le système fourni.

Pour obtenir un comportement asynchrone, le client implémente l’interface IBindStatusCallback sur un objet bind-status-callback et appelle la fonction RegisterBindStatusCallback ou la fonction CreateAsyncBindCtx pour inscrire cette interface avec le contexte de liaison. Le moniker transmet un pointeur vers son interface IBinding dans un appel à la méthode IBindStatusCallback::OnStartBinding . Le client indique au moniker asynchrone comment il souhaite établir une liaison à partir de l’appel du moniker à la méthode IBindStatusCallback::GetBindInfo .

Monikers asynchrones