Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Comment faire pour récupérer l'URL d'une Page Web à partir d'un contrôle ActiveX

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 181678
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.
Résumé
Cet article explique comment un contrôle ActiveX pouvez extraire l'URL (Uniform Resource Locator) de la page Web (document) sur lequel il est hébergé.

Cela peut être utile pour restreindre l'utilisation d'un contrôle ActiveX à un site/domaine particulier ou de l'accès aux fichiers lorsque fourni un chemin d'accès relatif.
Plus d'informations
Pendant l'initialisation d'un contrôle ActiveX incorporé, Internet Explorer (IE) passe un pointeur vers son site client en appelant IOleObject::SetClientSite(). Ce processus peut servir à récupérer un moniker pour le conteneur ou à accéder au modèle d'objet document pour récupérer l'URL de la page Web hôte.

Cet article montre comment récupérer l'URL actuelle à partir du moniker de conteneur. Pour plus d'informations sur la façon d'obtenir l'URL à partir du modèle d'objet document, consultez l'article suivant dans la base de connaissances Microsoft :
172763Information : Accessing the Object Model from dans un contrôle ActiveX
Procédez comme suit pour extraire l'URL actuelle le moniker de conteneur :
  1. Obtenir le client de pointeur d'interface de site (IOleClientSite). Le conteneur appelle IOleObject::SetClientSite() pour passer un pointeur vers le site client. Substituez cette méthode pour mettre en cache ce pointeur.
  2. Obtenir un moniker sur le site client en appelant IOleClientSite::GetMoniker().
  3. Appelez IMoniker::GetDisplayName() pour obtenir l'URL pour le document actif.
L'exemple de code suivant montre comment effectuer les étapes ci-dessus en substituant la méthode IOleObject::SetClientSite() dans un contrôle ActiveX ATL (Active Template Library) :

Exemple de code

STDMETHOD(SetClientSite)(IOleClientSite *pClientSite){   if (pClientSite != NULL)   {      // Obtain URL from container moniker.      CComPtr<IMoniker> spmk;      LPOLESTR pszDisplayName;      if (SUCCEEDED(pClientSite->GetMoniker(                                    OLEGETMONIKER_TEMPFORUSER,                                    OLEWHICHMK_CONTAINER,                                    &spmk)))      {         if (SUCCEEDED(spmk->GetDisplayName(                                 NULL, NULL, &pszDisplayName)))         {            USES_CONVERSION;            CComBSTR bstrURL;            bstrURL = pszDisplayName;            ATLTRACE("The current URL is %s\n", OLE2T(bstrURL));            CoTaskMemFree((LPVOID)pszDisplayName);         }      }   }   return IOleObject_SetClientSite(pClientSite);}				
Références
Pour plus d'informations sur les interfaces IOleObject IoleClientSite et IOleContainer, reportez-vous à l'aide en ligne de Microsoft Visual C++.

(c) 1998 Microsoft Corporation, tous droits réservés. Contribution de Mark Davis, Microsoft Corporation

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 181678 - Dernière mise à jour : 07/15/2004 15:46:29 - Révision : 2.3

Microsoft Internet Explorer 3.0, Microsoft Internet Explorer 3.01, Microsoft Internet Explorer 3.02, Microsoft Internet Explorer 4.0 Édition 128 bits, Microsoft Internet Explorer 4.01 Service Pack 2, Microsoft Internet Explorer 5.0, Microsoft Internet Explorer 5.5

  • kbmt kbhowto KB181678 KbMtfr
Commentaires