Ich habe ein Webbrowser-Steuerelement und ich versuche, IDocHostUIHandler im Container zu implementieren. Da ich jedoch keine Standard-IOleClientSite habe, kann ich nicht alle Ereignisse an einen Standard-Container weiterleiten.Wie kann ich IDocHostUIHandler in .NET erfolgreich implementieren?
Und ich konnte keinen Weg finden, alle zu beantworten, falsche Antworten auf einige der Ereignisse zu geben oder nichts zu tun, was zum Absturz der Anwendung führte.
Fox Beispiel:
Public Sub ShowUI(ByVal dwID As UInteger, ByRef pActiveObject As Object, ByRef pCommandTarget As Object, ByRef pFrame As Object, ByRef pDoc As Object) Implements SecureBrowser.IDocHostUIHandler.ShowUI
'DefaultClientSite.ShowUI(dwID, pActiveObject, pCommandTarget, pFrame, pDoc)
End Sub
Da ich so nicht in IE oder etwas bin ich nicht über eine Standard-IOleClientSite. MSDN hilft nicht viel, wenn es darum geht, herauszufinden, wie diese Zeiger/ByRefs gefüllt werden.
Im Grunde wird die Rückkehr von E_NOTIMPL die COM zwingen, die Standardeinstellungen zu verwenden. Verstehe ich das richtig? Weil das gut klingt :) –
Das ist die Theorie, und es funktioniert normalerweise für die Erweiterungsschnittstellen, die Microsoft bereitstellt. Es ist jedoch Sache des Aufrufers (hier IE) zu bemerken, dass Sie E_NOTIMPL zurückgegeben haben und das Richtige tun. Ich würde vorschlagen, mit E_NOTIMPL zu versuchen und wenn das fehlschlägt, untersuchen, was MFC tut (meistens S_FALSE zurückgeben). – DavidK