INFO: Zugreifen auf das Objektmodell von in einem ActiveX-Steuerelement

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 172763 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Wenn Sie ein ActiveX-Steuerelement für das Internet zu schreiben, kann es häufig erforderlich, das Objektmodell der HTML-Seite zugegriffen sein. Das Objektmodell ermöglicht Zugriff auf verschiedene Elemente in der HTML-Seite.

Dieser Artikel erläutert, Zugriff auf das Objektmodell von Visual C++ und von Visual Basic und befasst sich mit Internet Explorer (IE) 3.x und 4.0.

Weitere Informationen

DAS OBJEKTMODELL

Dokumentation für das Objektmodell kann in ActiveX-Software Development Kit (SDK) und dem Internet Client SDK für Internet Explorer 3.x und 4.0, bzw. gefunden werden. Das Objektmodell wird wie folgt dokumentiert:
   window
      - location
      - frames
      - ...
      - document
         - links
         - forms
            - elements
				
das Fensterobjekt ist, auf der obersten Ebene dieser Hierarchie. Das Fenster verfügt über eine Dokumenteigenschaft, die wiederum einen eigenen Satz von Eigenschaften verfügt. Weitere Informationen finden Sie in das entsprechende SDK.

WARUM SOLLTE EIN STEUERELEMENT AUF DAS OBJEKTMODELL ZUGREIFEN MÜSSEN?

Ein Steuerelement kann zuzugreifen (und in einigen Fällen ändern) Informationen zu der Seite, der es in eingebettet ist. Dazu muss das Steuerelement das Objektmodell zugreifen. Beispielsweise kann ein Steuerelement alle Elemente auf einer Seite durchlaufen. Im Fall von dynamic HTML kann das Steuerelement fast alle HTML-Element auf der Seite zugreifen.

ZUGRIFF AUF DAS OBJEKTMODELL

Das Objektmodell wird mithilfe von Automatisierung und COM-Schnittstellen implementiert. Sobald das Steuerelement auf die oberste Ebene des Objektmodells zugreifen wird, kann er Detailinformationen, bis das Objektmodell mithilfe von Automatisierung oder COM-Schnittstellen ist. Dieser Artikel beschreibt beide Schritte:
  1. Abrufen der obersten Ebene des Objektmodells.
  2. Drilling down in das Objektmodell.

ABRUFEN DER OBERSTEN EBENE DES OBJEKTMODELLS (VISUAL C++)

Verwenden von IWebBrowserApp (für Internet Explorer 3.x und 4.x)

IWebBrowserApp ist eine Schnittstelle, die durch das Webbrowser-Steuerelement verfügbar gemacht wird. Es hat eine Dokumenteigenschaft (oder Get_document-Methode), wenn Vtable-Schnittstelle verwenden, ermöglicht den Zugriff auf das Automatisierungsobjekt des aktiven Dokuments. Wenn das Dokument ein HTML-Dokument ist, hat das Automatisierungsobjekt eine Skript-Eigenschaft, die das Fensterobjekt des scripting-Objektmodell bietet. Damit für ein Steuerelement, das Objektmodell zu erreichen, die folgenden durchgeführt werden müssen:

  • Rufen Sie IWebBrowserApp aus der enthaltenden HTML-Seite.
  • Rufen Sie die Dokument-Eigenschaft des IWebBrowserApp.
  • Rufen Sie die Skripts-Eigenschaft des Dokuments.
Dies wird auf der obersten Ebene (Window-Objekt) im Objektmodell abgelegt werden. Verwenden Sie dann Automatisierung, um einen Drilldown weiter.

Abrufen der IWebBrowserApp

Abrufen der IWebBrowserApp ist ein zweistufiger Prozess:
  1. Verwenden Sie den IOleClientSite-Zeiger, um IServiceProvider abzurufen. In einem ATL-Steuerelement dieser Zeiger kann abgerufen werden durch Zugriff auf den Member M_spClientSite des Steuerelements. In einem MFC-Steuerelement kann diesen Zeiger abgerufen werden, durch Aufrufen von COleControl::GetClientSite(). Das Steuerelement hat Zugriff auf die IOleClientSite-Schnittstelle des Containers. Sie verwenden diesen Zeiger zum QI für IServiceProvider:
    pClientSite->QueryInterface(IID_IServiceProvider,
                              (void **)&pISP);
    						
  2. Verwenden Sie die IServiceProvider, um IWebBrowserApp zu erhalten. Verwenden die IServiceProvider, eine QueryService erfolgen der IWebBrowserApp abrufen:
          pISP->QueryService(SID_SWebBrowserApp, IID_IWebBrowserApp,
                            (void **)&pIWebBrowserApp));
    						
Auch wenn Sie die Programmierung für Internet Explorer 4 oder höher sind, Sie erhalten einen Zeiger auf die IWebBrowser2-Schnittstelle des Containers mit diesem Code:
   pISP->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2,
     (void **)&pIWebBrowser2));
				
QueryService unterscheidet sich von QueryInterface darin, dass es nicht die Identität in COM Regel folgen Wenn das Objekt selbst nicht IWebBrowserApp implementiert, kann es an das enthaltende Objekt und die QueryService es für eine IWebBrowserApp delegieren.

Abrufen der Dokumenteigenschaft IWebBrowserApp

IWebBrowserApp ist eine duale Schnittstelle. Es verfügt über eine Dokumenteigenschaft und auch eine Get_Document-Methode. Entweder kann zum Abrufen der IDispatch des aktiven Dokuments verwendet werden. Nachdem Sie die IDispatch haben, kann die Skript-Eigenschaft abgerufen werden.

Abrufen der Skript-Eigenschaft des Dokuments

Verwenden die IDispatch oben erhalten, rufen Sie die Skript--Eigenschaft mithilfe der Automatisierung. Dadurch erhalten die oberste Ebene in das scripting-Objektmodell oder Window-Objekts.

ABRUFEN DER OBERSTEN EBENE DAS OBJEKTMODELL (VISUAL C++)

(Nur Internet Explorer 4.0)

Internet Explorer 4.0 ermöglicht den Zugriff auf das Objektmodell viel einfacher. Dies ist ein Schritt-Prozess:
  1. Rufen Sie die IHTMLDocument2 aus der IClientSite.

IHTMLDocument2 beziehen von IOleClientSite

Jedes Steuerelement hat Zugriff auf IClientSite des zugehörigen Containers. QI-Ing für IHTMLDocument2 von Client-Website sollte das scripting-Objektmodell bieten.
   IOleContainer* pContainer = NULL;
   IHTMLDocument2* pDoc = NULL;

   pClientSite->GetContainer( &pContainer );
   if ( pContainer != NULL )
      pContainer->QueryInterface( &IID_IHTMLDocument2, &pDoc );
				
den Rückgabewert aus dem oben genannten Aufruf überprüfen. Wenn das Steuerelement nicht in eine HTML-Seite eingebettet ist oder wenn der Container nicht Internet Explorer 4.0 ist, wird der oben genannten Aufruf fehl.

Erste IHTMLDocument2 gibt das Document-Objekt in das scripting-Objektmodell. Dann können Automatisierungsschnittstellen oder Vtable-Schnittstellen verwendet werden, das Objektmodell Drilldown.

ABRUFEN DER OBERSTEN EBENE DER-OBJEKTMODELL (VISUAL BASIC)

Die übergeordnete Eigenschaft des Benutzersteuerelements kann Zugriff auf das Automatisierungsobjekt verwendet werden. Internet Explorer gibt aus der Visual Basic-Dokumentation für die übergeordnete Eigenschaft zurück ein Objekt, dessen Skript-Eigenschaft das IOmWindow-Objekt zurückgibt.

Das Beispiel in Visual Basic-Dokumentation lautet wie folgt:
Parent.Script.get_document.bgColor = "Blue"
				
ruft Sie die Parent-Eigenschaft auf das Automatisierungsobjekt. Die Skript-Eigenschaft gibt uns dann das Fensterobjekt des scripting-Objektmodell. Dann können die verschiedenen Eigenschaften und Methoden so wie andere Automation-Objekt zugegriffen werden.

Die obige Codezeile sollte wie folgt lauten:
Parent.Script.document.bgColor = "Blue"
				
Obwohl mithilfe von Get_document in Internet Explorer 3.x korrekt ist, funktioniert nicht in Internet Explorer 4.0. Die richtige Methode ist die Verwendung die Dokumenteigenschaft. Dies funktioniert in Internet Explorer 3.x und 4.0.

DAS OBJEKTMODELL DRILLDOWN

Das Objektmodell Drilldown ist ebenso einfach wie das Aufrufen der Eigenschaften und Methoden mithilfe der Automatisierung. Verwenden Sie für Internet Explorer 3.x nur die Automatisierung. Für Internet Explorer 4.0 können Vtable-Schnittstellen verwendet werden. Weitere Informationen finden Sie in das Driller-Beispiel im Internet Client SDK.

Eigenschaften

Artikel-ID: 172763 - Geändert am: Mittwoch, 18. Juli 2001 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Internet Explorer 3.01
  • Microsoft Internet Explorer 3.02
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Client Software Development Kit 4.01
Keywords: 
kbmt kbfaq kbinfo KB172763 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: 172763
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