Compartir a través de


Monikers asincrónicos y sincrónicos

Un cliente de un moniker OLE estándar y sincrónico normalmente crea y contiene una referencia al moniker, así como al contexto de enlace que se va a usar durante el enlace. Los componentes implicados en el uso de monikers tradicionales se muestran en el diagrama siguiente.

Diagrama que muestra el cliente conectado al contexto de enlace o a cualquier moniker para el sistema proporcionado.

Normalmente, los clientes crean monikers estándar mediante una llamada a funciones como CreateFileMoniker, CreateItemMoniker o CreatePointerMoniker o, porque se pueden guardar en el almacenamiento persistente, a través de OleSaveToStream y OleLoadFromStream. También se pueden obtener monikers de un objeto contenedor llamando al método IBindHost::CreateMoniker . Los clientes crean contextos de enlace mediante una llamada a la función CreateBindCtx y, a continuación, pasan el contexto de enlace al moniker con llamadas a IMoniker::BindToStorage o IMoniker::BindToObject.

Como se muestra en el diagrama siguiente, un cliente de un moniker asincrónico también crea y contiene una referencia al contexto de enlace y moniker que se usará durante el enlace.

Diagrama que muestra las conexiones entre Client-Provided, Monker-Provided y System-Provided.

Para obtener el comportamiento asincrónico, el cliente implementa la interfaz IBindStatusCallback en un objeto bind-status-callback y llama a la función RegisterBindStatusCallback o a la función CreateAsyncBindCtx para registrar esta interfaz con el contexto de enlace. El moniker pasa un puntero a su interfaz IBinding en una llamada al método IBindStatusCallback::OnStartBinding . El cliente indica al moniker asincrónico cómo desea enlazar a cambio de la llamada del moniker al método IBindStatusCallback::GetBindInfo .

Monikers asincrónicos