Frage

Ich entwickle derzeit eine IE-Symbolleistenschaltfläche in C #, die den Inhalt der aktuellen Registerkarte erhalten und damit arbeiten kann. Wenn jedoch die Schaltfläche angeklickt wird, wird die iObjectWithSite.setsite-Funktion aufgerufen (mein Code wird am Ende gestellt) und gibt den folgenden Fehler zurück:

COM-Objekt des Typs nicht in der Lage ist 'System .__ COMOBJECT' an den Schnittstellentyp Shdocvw.iwebbrowser2 '. Diese Operation fehlgeschlagen, weil der QueryInterface-Anruf anruft auf dem com componsenet für das Schnittstelle mit IID. '

Die Funktion funktioniert ordnungsgemäß, wenn eine Site geladen ist, jedoch diesen Fehler nur auswirkt, wenn die Schaltfläche in der Symbolleiste angeklickt wird. Wie bereits erwähnt, wird die Setsite-Funktion aufgerufen, und dann wird die Funktion iolecommandtarget.exec aufgerufen.

Ich denke, meine Frage ist: Was wirft ich das Objekt aus, das in die Setsite-Funktion übergeben wird, damit ich auf das Dokument auf der Registerkarte auf der Registerkarte zugreifen kann, dass Internet Explorer derzeit geöffnet ist?

Mein aktueller relevanter Code für diese beiden Funktionen ist wie folgt:

generasacodicetagpre.

Vielen Dank im Voraus.

War es hilfreich?

Lösung 2

The Exec function calls SetSite before actually executing. In order to work around this and still have the Exec function be able to access information about the browser, the SetSite and GetSite functions should exist in a separate class that the Exec function accesses.

Andere Tipps

das dokumentierte Weise zuQuery iwebbrowser2 Von der Symbolleisten-Schaltfläche ist die Abfrage von iservecrovider von der Site, dann Queryservice for iid_iwebbrowserapp

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top