Liaison asynchrone et synchrone
Le client peut case activée pour voir si le moniker est asynchrone en appelant la fonction IsAsyncMoniker. Si le client retourne l’indicateur BINDF_ASYNCHRONOUS, au lieu de renvoyer un pointeur d’objet ou un pointeur de stockage à partir d’appels ultérieurs à IMoniker::BindToStorage ou IMoniker::BindToObject, le moniker retourne MK_S_ASYNCHRONOUS à la place du pointeur de l’objet et NULL à la place du pointeur de stockage. En réponse, le client doit attendre de recevoir l’objet ou le stockage demandé pendant l’implémentation de IBindStatusCallback::OnDataAvailable et IBindStatusCallBack::OnObjectAvailable.
L’objet de rappel reçoit également une notification de progression via IBindStatusCallback::OnProgress, une notification de disponibilité des données via OnDataAvailable et diverses autres notifications du moniker concernant la status de l’opération de liaison.
Si le client ne retourne pas l’indicateur de BINDF_ASYNCHRONOUS à partir de l’appel du moniker à IBindStatusCallback::GetBindInfo, l’opération de liaison se poursuit de manière synchrone et l’objet ou le stockage souhaité sera retourné à partir des appels suivants à BindToObject ou BindToStorage. De même, si le client souhaite une opération synchrone et ne souhaite pas recevoir de notifications de progression ou de rappels, il peut demander à un moniker asynchrone de se comporter de manière synchrone en n’implémentant pas IBindStatusCallback. Dans ce cas, le moniker asynchrone se comporte comme un moniker synchrone standard.
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour