Moniker URL
L'architettura del moniker OLE offre un modello di programmazione pratico per l'uso degli URL. L'architettura del moniker supporta l'analisi estensibile e completa dei nomi tramite la funzione MkParseDisplayName e le interfacce IParseDisplayName e IMoniker, nonché i nomi stampabili tramite il metodo IMoniker::GetDisplayName. L'interfaccia IMoniker è il modo in cui si usano effettivamente gli URL riscontrati e la creazione di componenti che rientrano nell'architettura del moniker è il modo per estendere effettivamente gli spazi dei nomi URL in pratica.
Una classe moniker fornita dal sistema, il moniker URL, fornisce un framework per la compilazione e l'uso di determinati URL. Poiché gli URL visualizzano spesso risorse tra reti a latenza elevata, il moniker URL supporta l'associazione asincrona e sincrona. Il moniker URL attualmente non supporta l'archiviazione asincrona.
Il diagramma seguente illustra i componenti coinvolti nell'uso dei moniker URL. Tutti questi componenti devono essere familiari. (Vedere Moniker asincroni.
Analogamente a tutti i client moniker, un utente di Moniker URL crea e contiene in genere un riferimento al moniker, nonché al contesto di binding da usare durante l'associazione (IMoniker::BindTo Archiviazione o IMoniker::BindToObject). Per supportare l'associazione asincrona, il client può implementare un oggetto bind-status-callback, che implementa l'interfaccia IBindStatusCallback e registrarlo con il contesto di associazione usando la funzione RegisterBindStatusCallback. Questo oggetto riceverà l'interfaccia IBinding del trasporto durante le chiamate a IBindStatusCallback::OnStartBinding.
Il moniker URL identifica il protocollo usato analizzando il prefisso URL e quindi recupera l'interfaccia IBinding dal livello di trasporto. Il client usa IBinding per supportare la sospensione, l'annullamento e la definizione delle priorità dell'operazione di associazione. L'oggetto callback riceve anche una notifica sullo stato di avanzamento tramite IBindStatusCallback::OnProgress, la notifica sulla disponibilità dei dati tramite IBindStatusCallback::OnDataAvailable e varie notifiche a livello di trasporto sullo stato dell'associazione. Il moniker URL o i livelli di trasporto specifici possono anche richiedere informazioni estese dal client tramite IBindStatusCallback::QueryInterface, consentendo al client di fornire informazioni specifiche del protocollo che influiranno sull'operazione di associazione.
Per ulteriori informazioni, vedi gli argomenti seguenti:
Argomenti correlati