Monikers d’URL
L’architecture moniker OLE fournit un modèle de programmation pratique pour l’utilisation des URL. L’architecture moniker prend en charge l’analyse extensible et complète des noms via la fonction MkParseDisplayName et les interfaces IParseDisplayName et IMoniker , ainsi que les noms imprimables via la méthode IMoniker::GetDisplayName . L’interface IMoniker est la façon dont vous utilisez réellement les URL que vous rencontrez, et la création de composants qui s’intègrent dans l’architecture moniker est la façon d’étendre réellement les espaces de noms d’URL dans la pratique.
Une classe moniker fournie par le système, le moniker d’URL, fournit une infrastructure pour la création et l’utilisation de certaines URL. Étant donné que les URL voient fréquemment des ressources sur des réseaux à latence élevée, le moniker d’URL prend en charge la liaison asynchrone et synchrone. Le moniker d’URL ne prend actuellement pas en charge le stockage asynchrone.
Le diagramme suivant montre les composants impliqués dans l’utilisation des monikers d’URL. Tous ces composants doivent être familiers. (Voir Monikers asynchrones.)
Comme tous les clients moniker, un utilisateur d’URL Monikers crée et conserve généralement une référence au moniker ainsi qu’au contexte de liaison à utiliser pendant la liaison (IMoniker::BindToStorage ou IMoniker::BindToObject). Pour prendre en charge la liaison asynchrone, le client peut implémenter un objet bind-status-callback, qui implémente l’interface IBindStatusCallback, et l’inscrire avec le contexte de liaison à l’aide de la fonction RegisterBindStatusCallback. Cet objet recevra l’interface IBinding du transport lors des appels à IBindStatusCallback::OnStartBinding.
L’URL Moniker identifie le protocole utilisé en analysant le préfixe d’URL, puis récupère l’interface IBinding de la couche de transport. Le client utilise IBinding pour prendre en charge la suspension, l’annulation et la hiérarchisation de l’opération de liaison. L’objet de rappel reçoit également une notification de progression via IBindStatusCallback::OnProgress, une notification de disponibilité des données via IBindStatusCallback::OnDataAvailable et diverses autres notifications de couche de transport sur la status de la liaison. Le moniker d’URL ou des couches de transport spécifiques peuvent également demander des informations étendues au client via IBindStatusCallback::QueryInterface, ce qui permet au client de fournir des informations spécifiques au protocole qui affecteront l’opération de liaison.
Pour plus d'informations, voir les rubriques suivantes :
Rubriques connexes