Monikers assíncronos e síncronos

Um cliente de um moniker OLE padrão e síncrono normalmente cria e mantém uma referência ao moniker, bem como o contexto de ligação a ser usado durante a vinculação. Os componentes envolvidos no uso de apelidos tradicionais são mostrados no diagrama a seguir.

Diagram that shows the Client connected to either Bind Context or Any Moniker for the System-Provided.

Os clientes normalmente criam monikers padrão chamando funções como CreateFileMoniker, CreateItemMoniker ou CreatePointerMoniker ou, como eles podem ser salvos no armazenamento persistente, por meio de OleSaveToStream e OleLoadFromStream. Monikers também podem ser obtidos de um objeto de contêiner chamando o método IBindHost::CreateMoniker. Os clientes criam contextos de ligação chamando a função CreateBindCtx e, em seguida, passam o contexto de ligação para o moniker com chamadas para IMoniker::BindToStorage ou IMoniker::BindToObject.

Conforme mostrado no diagrama a seguir, um cliente de um moniker assíncrono também cria e mantém uma referência ao moniker e ao contexto de ligação a ser usado durante a vinculação.

Diagram that shows the connections between Client-Provided, Monker-Provided, and System-Provided.

Para obter um comportamento assíncrono, o cliente implementa a interface IBindStatusCallback em um objeto bind-status-callback e chama a função RegisterBindStatusCallback ou a função CreateAsyncBindCtx para registrar essa interface com o contexto de ligação. O moniker passa um ponteiro para sua interface IBinding em uma chamada para o método IBindStatusCallback::OnStartBinding. O cliente informa ao moniker assíncrono como ele deseja vincular no retorno da chamada do moniker ao método IBindStatusCallback::GetBindInfo.

Monikers assíncronos