Monikers asynchrones et synchrones
Un client d’un moniker OLE standard synchrone crée et contient 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, CreateItemMonikerou CreatePointerMoniker ou, car ils peuvent être enregistrés dans un stockage persistant, via OleSaveToStream et OleLoadFromStream. Monikers peut également être obtenu à 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 passez le contexte de liaison au moniker avec des appels à IMoniker ::BindToStorage ou IMoniker ::BindToObject.
Comme illustré dans le diagramme suivant, un client d’un moniker asynchrone crée et contient également une référence au moniker et lie le contexte à 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 à 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 vers méthode IBindStatusCallback ::GetBindInfo.
Rubriques connexes