URL Monikers

A arquitetura de moniker OLE fornece um modelo de programação conveniente para trabalhar com URLs. A arquitetura de moniker oferece suporte à análise de nome extensível e completa por meio da função MkParseDisplayName e das interfaces IParseDisplayName e IMoniker, bem como nomes imprimíveis por meio do método IMoniker::GetDisplayName. A interface do IMoniker é a maneira como você realmente usa URLs que você encontra, e criar componentes que se encaixam na arquitetura de moniker é a maneira de realmente estender namespaces de URL na prática.

Uma classe de moniker fornecida pelo sistema, o moniker de URL, fornece uma estrutura para criar e usar determinadas URLs. Como as URLs frequentemente veem recursos em redes de alta latência, o moniker de URL oferece suporte à vinculação assíncrona e síncrona. O moniker de URL atualmente não oferece suporte a armazenamento assíncrono.

O diagrama a seguir mostra os componentes envolvidos no uso de monikers de URL. Todos esses componentes devem ser familiares. (Veja Apelidos assíncronos.)

Diagram that shows the components involved in using U R L monikers.

Como todos os clientes de moniker, um usuário de Monikers de URL normalmente cria e mantém uma referência ao moniker, bem como ao contexto de ligação a ser usado durante a vinculação (IMoniker::BindToStorage ou IMoniker::BindToObject). Para oferecer suporte à associação assíncrona, o cliente pode implementar um objeto bind-status-callback, que implementa a interface IBindStatusCallback, e registrá-lo com o contexto bind usando a função RegisterBindStatusCallback. Esse objeto receberá a interface IBinding do transporte durante chamadas para IBindStatusCallback::OnStartBinding.

O URL Moniker identifica o protocolo que está sendo usado analisando o prefixo da URL e, em seguida, recupera a interface IBinding da camada de transporte. O cliente usa o IBinding para suportar a pausa, o cancelamento e a priorização da operação de vinculação. O objeto de retorno de chamada também recebe notificação de progresso por meio de IBindStatusCallback::OnProgress, notificação de disponibilidade de dados por meio de IBindStatusCallback::OnDataAvailable e várias outras notificações de camada de transporte sobre o status da associação. O moniker de URL ou camadas de transporte específicas também podem solicitar informações estendidas do cliente por meio de IBindStatusCallback::QueryInterface, permitindo que o cliente forneça informações específicas do protocolo que afetarão a operação de ligação.

Para Mais informações, consulte os seguintes tópicos:

Monikers assíncronos

Sobre o URL Monikers