Hoe u toegangs methoden/eigenschappen van Container uit Script

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 188015 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Samenvatting

Wanneer het WebBrowser-besturingselement in een Visual C++-toepassingen hosten, kan het zijn vereiste toegangs methoden of eigenschappen van de container vanuit script in een Webpagina. In dit artikel wordt beschreven hoe u dit doen door de uitvoering van de IDocHostUIHandler-interface.

Meer informatie

De IDocHostUIHandler-interface implementeert, kunt u bepalen aantal functies van de gebruikersinterface van het besturings element WebBrowser in uw hosting toepassing. IDocHostUIHandler kunt u ook Dynamic HTML uitbreiden (DHTML) Toegang krijgen tot methoden en eigenschappen van het container objectmodel binnen het script.

De methode GetExternal() van IDocHostUIHandler biedt deze functionaliteit. Wanneer het script op een webpagina 'window.external.yourMethod', roept de WebBrowser-besturingselement roept de GetExternal-methode voor het ophalen van een verwijzing naar de IDispatch uw hosttoepassing. Via deze aanwijzer die het besturings element WebBrowser is geen toegang tot de eigenschappen en methoden.

Nadat u het besturings element WebBrowser is een aanwijzer naar de IDispatch van de container, vervolgens roept IDispatch::GetIDsOfNames() om de DISPID de methode of eigenschap vanuit aangeroepen script, yourMethod in dit geval.

Ten slotte roept het besturings element WebBrowser IDispatch::Invoke() met de DISPID opgehaald uit de GetIDsOfNames().

Hier zijn de stappen die u uitvoeren moet om uit te breiden van het DHTML-objectmodel worden geen toegang tot de methoden en eigenschappen van de container script:
  1. IDocHostUIHandler implementeren.
  2. De methode IDocHostUIHandler::GetExternal implementeren. Stel de IDispatch parameter van de container als volgt:
    STDMETHOD(GetExternal)(IDispatch** ppDispatch)
    {
       // Assumes you inherit from IDispatch
       *ppDispatch = (IDispatch*)this;
       (*ppDispatch)->AddRef();
    
       return S_OK;
    }
    					
  3. Retour verzending ID (DISPID) van de methode of eigenschap vanuit GetIDsOfNames. Als u de methode of eigenschap met een wizard toegevoegd Dit zal voor u worden uitgevoerd.
  4. De DISPID van de methode of eigenschap implementeren in uw implementatie van IDispatch::Invoke als volgt:
    STDMETHODIMP CAtlBrCon::Invoke(DISPID dispidMember, REFIID riid,
                                   LCID lcid, WORD wFlags,
                                   DISPPARAMS* pDispParams,
                                   VARIANT* pvarResult,
                                   EXCEPINFO* pExcepInfo, UINT* puArgErr)
    {
       switch (dispidMember)
       {
          case DISPID_MYMETHOD_OR_PROPERTY:
             // Do something here
    
          default:
             return E_INVALIDARG;
       }
    
       return S_OK;
    }
    					
  5. Een methode of eigenschap van de container aanroepen vanuit een script als volgt:
     <SCRIPT LANGUAGE="VBScript">
        Sub SomeControl_OnClick
           window.external.yourMethod
        End Sub
     </SCRIPT>
    					

Referenties

Voor meer informatie over de technologieën die in dit artikel besproken Raadpleeg de documentatie met betrekking tot geavanceerde Hosting Interfaces en IDocHostUIHandler in de MSDN Online Web Workshop:
http://msdn.Microsoft.com/workshop/
(c) Microsoft Corporation 1998, alle rechten voorbehouden. Bijdragen door Scott Dorner, Microsoft Corporation

Eigenschappen

Artikel ID: 188015 - Laatste beoordeling: zaterdag 26 februari 2011 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Internet Explorer 4.01 Service Pack 1
Trefwoorden: 
kbfaq kbhowto kbscript kbwebbrowser kbmt KB188015 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:188015
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