Hoe u de URL van een webpagina ophalen uit een ActiveX-besturingselement

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 181678
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

In dit artikel wordt gedemonstreerd hoe een ActiveX-besturingselement Uniform kunt ophalen Resource Locator (URL) van de webpagina (document) die wordt ondergebracht.

Dit kan handig zijn voor het gebruik van een ActiveX-besturingselement te beperken zijn een bepaalde domein/website of openen van bestanden als een relatief pad is opgegeven.

Meer informatie

Tijdens de initialisatie van een ingesloten ActiveX-besturingselement, Internet Explorer (IE) aanwijzer een naar de site van de client door het aanroepen van IOleObject::SetClientSite(). Dit proces kan worden gebruikt om beide halen een bijnaam voor de container of de toegang tot het document objectmodel ophalen de URL van de webpagina hosten.

Dit artikel wordt beschreven hoe u kunt ophalen van de huidige URL van de moniker container. Voor meer informatie over het verkrijgen van de URL van de document objectmodel, raadpleegt u het volgende artikel in de Microsoft Knowledge Base:
172763INFO: Toegang tot het objectmodel van binnen een ActiveX- Besturings element
De huidige URL ophalen uit de container moniker, gaat u als volgt te werk:
  1. De client site (IOleClientSite) interface pointer verkrijgen. De container roept een pointer doorgeven aan de client site IOleObject::SetClientSite(). Deze methode om deze verwijzing in de cache overschreven.
  2. Bestellen via een moniker aan de client-site IOleClientSite::GetMoniker().
  3. IMoniker::GetDisplayName() voor de URL van de huidige oproep document.
De volgende voorbeeldcode wordt gedemonstreerd hoe u door de bovenstaande stappen uitvoert de methode IOleObject::SetClientSite() in een actieve sjabloon overschrijven ActiveX-besturingselement Library (ATL):

Voorbeeldcode

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);
}
				

Referenties

Voor meer informatie over de gegevens, IoleClientSite en IOleContainer interfaces, Raadpleeg de on line help van Microsoft Visual C++.

(c) Microsoft Corporation 1998, alle rechten voorbehouden. Bijdragen door Mark Davis, Microsoft Corporation

Eigenschappen

Artikel ID: 181678 - Laatste beoordeling: vrijdag 25 februari 2011 - Wijziging: 2.0
Trefwoorden: 
kbhowto kbmt KB181678 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:181678
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com