Von Access Methoden/Eigenschaften der Container von Skripts

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 188015 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Zusammenfassung

Wenn Sie das Webbrowser-Steuerelement in einer Visual C++-Anwendung zu hosten, kann es erforderlich, Methoden oder Eigenschaften des Containers von Skript auf einer Webseite zugreifen sein. Dieser Artikel beschreibt Vorgehensweise durch Implementieren der IDocHostUIHandler-Schnittstelle.

Weitere Informationen

IDocHostUIHandler-Schnittstelle implementiert wird, können Sie viele der Features Benutzeroberfläche des WebBrowser-Steuerelements in der hostenden Anwendung steuern. IDocHostUIHandler können Sie auch das Dynamic HTML (DHTML)-Objektmodell Zugriff auf Methoden und Eigenschaften des Containers aus in Skript zu erweitern.

Die GetExternal()-Methode der IDocHostUIHandler stellt diese Funktionalität bereit. Wenn Skript auf einer Webseite "window.external.yourMethod" aufruft, ruft das WebBrowser-Steuerelement eine Methode GetExternal, um einen Zeiger auf die IDispatch der hostenden Anwendung abzurufen. Es ist über diesen Zeiger das Webbrowser-Steuerelement auf die Methoden und Eigenschaften zugreifen.

Sobald das Webbrowser-Steuerelement einen Zeiger auf die IDispatch des Containers hat, IDispatch::GetIDsOfNames(), um die DISPID der Methode oder Eigenschaft von einem Skript, YourMethod aufgerufen, in diesem Fall erhalten anschließend aufgerufen.

Schließlich die WebBrowser-Steuerelement Aufrufe IDispatch::Invoke() mit der DISPID aus GetIDsOfNames() abgerufen.

Besteht aus folgenden die Schritten befolgen, erweitern DHTML-Objektmodell zu Methoden und Eigenschaften des Containers aus Skript zugreifen können:
  1. Implementieren Sie IDocHostUIHandler.
  2. Implementieren Sie die IDocHostUIHandler::GetExternal-Methode. Legen Sie die IDispatch Parameter, um von Ihrem Container wie folgt:
    STDMETHOD(GetExternal)(IDispatch** ppDispatch)
    {
       // Assumes you inherit from IDispatch
       *ppDispatch = (IDispatch*)this;
       (*ppDispatch)->AddRef();
    
       return S_OK;
    }
    					
  3. Der Dispatch (DISPID) der Methode oder Eigenschaft aus GetIDsOfNames zurück. Wenn Sie die Methode oder Eigenschaft mit einem Assistenten hinzugefügt haben, wird dies für Sie durchgeführt werden.
  4. Implementieren die DISPID der Ihre Methode oder Eigenschaft in der Implementierung von IDispatch:: Invoke wie folgt:
    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. Rufen Sie eine Methode oder-Eigenschaft des Containers aus einem Skript wie folgt:
     <SCRIPT LANGUAGE="VBScript">
        Sub SomeControl_OnClick
           window.external.yourMethod
        End Sub
     </SCRIPT>
    					

Informationsquellen

Weitere Informationen zu den in diesem Artikel beschriebenen Technologien finden Sie in der Dokumentation bezüglich Hostingschnittstellen erweitert und IDocHostUIHandler in MSDN Online Web Workshop:
http://msdn.microsoft.com/workshop/
(c) 1998 Microsoft Corporation, alle Rechte vorbehalten. Beiträge von Scott Roberts, Microsoft Corporation

Eigenschaften

Artikel-ID: 188015 - Geändert am: Freitag, 7. Februar 2014 - Version: 2.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
Keywords: 
kbnosurvey kbarchive kbmt kbfaq kbhowto kbscript kbwebbrowser KB188015 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 188015
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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