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.
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.
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 .
Rubriques connexes