Partager via


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.

Diagramme montrant le client connecté à un contexte de liaison ou à un moniker pour le système fourni.

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.

Diagramme montrant les connexions entre le client fourni, le 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 à 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.

monikers asynchrones