summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-02-28 08:12:55 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2019-05-08 10:52:27 +0200
commitc43083af043a28ca9188a30602043abdf5a5fb3f (patch)
tree3d1c22728a6951437bd20eb484b776ee10e34349
parentglobal: replace class names (diff)
downloadwireguard-windows-c43083af043a28ca9188a30602043abdf5a5fb3f.tar.xz
wireguard-windows-c43083af043a28ca9188a30602043abdf5a5fb3f.zip
webview: remove
We don't want anything resembling a browser engine near this app.
-rw-r--r--form.go24
-rw-r--r--webview.go513
-rw-r--r--webview_dwebbrowserevents2.go314
-rw-r--r--webview_events.go393
-rw-r--r--webview_idochostuihandler.go151
-rw-r--r--webview_ioleclientsite.go92
-rw-r--r--webview_ioleinplaceframe.go104
-rw-r--r--webview_ioleinplacesite.go128
8 files changed, 0 insertions, 1719 deletions
diff --git a/form.go b/form.go
index c3021d7d..57079ee2 100644
--- a/form.go
+++ b/form.go
@@ -405,13 +405,6 @@ func (fb *FormBase) Run() int {
return -1
}
- switch msg.Message {
- case win.WM_KEYDOWN:
- if fb.webViewTranslateAccelerator(msg) {
- // handled accelerator key of webview and its childen (ie IE)
- }
- }
-
if !win.IsDialogMessage(fb.hWnd, msg) {
win.TranslateMessage(msg)
win.DispatchMessage(msg)
@@ -423,23 +416,6 @@ func (fb *FormBase) Run() int {
return 0
}
-func (fb *FormBase) webViewTranslateAccelerator(msg *win.MSG) bool {
- ret := false
- walkDescendants(fb.window, func(w Window) bool {
- if webView, ok := w.(*WebView); ok {
- webViewHWnd := webView.Handle()
- if webViewHWnd == msg.HWnd || win.IsChild(webViewHWnd, msg.HWnd) {
- _ret := webView.translateAccelerator(msg)
- if _ret {
- ret = _ret
- }
- }
- }
- return true
- })
- return ret
-}
-
func (fb *FormBase) Starting() *Event {
return fb.startingPublisher.Event()
}
diff --git a/webview.go b/webview.go
deleted file mode 100644
index 2adeb5b8..00000000
--- a/webview.go
+++ /dev/null
@@ -1,513 +0,0 @@
-// Copyright 2010 The Walk Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build windows
-
-package walk
-
-import (
- "fmt"
- "syscall"
- "unsafe"
-)
-
-import (
- "github.com/lxn/win"
-)
-
-const webViewWindowClass = "WireGuard UI - WebView"
-
-func init() {
- MustRegisterWindowClass(webViewWindowClass)
-}
-
-type WebView struct {
- WidgetBase
- clientSite webViewIOleClientSite // IMPORTANT: Must remain first member after WidgetBase
- browserObject *win.IOleObject
- urlChangedPublisher EventPublisher
- shortcutsEnabled bool
- shortcutsEnabledChangedPublisher EventPublisher
- nativeContextMenuEnabled bool
- nativeContextMenuEnabledChangedPublisher EventPublisher
- navigatingPublisher WebViewNavigatingEventPublisher
- navigatedPublisher StringEventPublisher
- downloadingPublisher EventPublisher
- downloadedPublisher EventPublisher
- documentCompletedPublisher StringEventPublisher
- navigatedErrorPublisher WebViewNavigatedErrorEventPublisher
- newWindowPublisher WebViewNewWindowEventPublisher
- quittingPublisher EventPublisher
- windowClosingPublisher WebViewWindowClosingEventPublisher
- statusBarVisible bool
- statusBarVisibleChangedPublisher EventPublisher
- isTheaterMode bool
- theaterModeChangedPublisher EventPublisher
- toolBarVisible bool
- toolBarVisibleChangedPublisher EventPublisher
- browserVisible bool
- browserVisibleChangedPublisher EventPublisher
- toolBarEnabled bool
- toolBarEnabledChangedPublisher EventPublisher
- canGoBack bool
- canGoBackChangedPublisher EventPublisher
- canGoForward bool
- canGoForwardChangedPublisher EventPublisher
- progressValue int32
- progressMax int32
- progressChangedPublisher EventPublisher
- statusText string
- statusTextChangedPublisher EventPublisher
- documentTitle string
- documentTitleChangedPublisher EventPublisher
-}
-
-func NewWebView(parent Container) (*WebView, error) {
- if hr := win.OleInitialize(); hr != win.S_OK && hr != win.S_FALSE {
- return nil, newError(fmt.Sprint("OleInitialize Error: ", hr))
- }
-
- wv := &WebView{
- clientSite: webViewIOleClientSite{
- IOleClientSite: win.IOleClientSite{
- LpVtbl: webViewIOleClientSiteVtbl,
- },
- inPlaceSite: webViewIOleInPlaceSite{
- IOleInPlaceSite: win.IOleInPlaceSite{
- LpVtbl: webViewIOleInPlaceSiteVtbl,
- },
- inPlaceFrame: webViewIOleInPlaceFrame{
- IOleInPlaceFrame: win.IOleInPlaceFrame{
- LpVtbl: webViewIOleInPlaceFrameVtbl,
- },
- },
- },
- docHostUIHandler: webViewIDocHostUIHandler{
- IDocHostUIHandler: win.IDocHostUIHandler{
- LpVtbl: webViewIDocHostUIHandlerVtbl,
- },
- },
- webBrowserEvents2: webViewDWebBrowserEvents2{
- DWebBrowserEvents2: win.DWebBrowserEvents2{
- LpVtbl: webViewDWebBrowserEvents2Vtbl,
- },
- },
- },
- shortcutsEnabled: false,
- nativeContextMenuEnabled: false,
- }
-
- if err := InitWidget(
- wv,
- parent,
- webViewWindowClass,
- win.WS_CLIPCHILDREN|win.WS_VISIBLE,
- 0); err != nil {
- return nil, err
- }
-
- wv.clientSite.inPlaceSite.inPlaceFrame.webView = wv
-
- succeeded := false
-
- defer func() {
- if !succeeded {
- wv.Dispose()
- }
- }()
-
- var classFactoryPtr unsafe.Pointer
- if hr := win.CoGetClassObject(&win.CLSID_WebBrowser, win.CLSCTX_INPROC_HANDLER|win.CLSCTX_INPROC_SERVER, nil, &win.IID_IClassFactory, &classFactoryPtr); win.FAILED(hr) {
- return nil, errorFromHRESULT("CoGetClassObject", hr)
- }
- classFactory := (*win.IClassFactory)(classFactoryPtr)
- defer classFactory.Release()
-
- var browserObjectPtr unsafe.Pointer
- if hr := classFactory.CreateInstance(nil, &win.IID_IOleObject, &browserObjectPtr); win.FAILED(hr) {
- return nil, errorFromHRESULT("IClassFactory.CreateInstance", hr)
- }
- browserObject := (*win.IOleObject)(browserObjectPtr)
-
- wv.browserObject = browserObject
-
- if hr := browserObject.SetClientSite((*win.IOleClientSite)(unsafe.Pointer(&wv.clientSite))); win.FAILED(hr) {
- return nil, errorFromHRESULT("IOleObject.SetClientSite", hr)
- }
-
- if hr := browserObject.SetHostNames(syscall.StringToUTF16Ptr("Walk.WebView"), nil); win.FAILED(hr) {
- return nil, errorFromHRESULT("IOleObject.SetHostNames", hr)
- }
-
- if hr := win.OleSetContainedObject((*win.IUnknown)(unsafe.Pointer(browserObject)), true); win.FAILED(hr) {
- return nil, errorFromHRESULT("OleSetContainedObject", hr)
- }
-
- var rect win.RECT
- win.GetClientRect(wv.hWnd, &rect)
-
- if hr := browserObject.DoVerb(win.OLEIVERB_SHOW, nil, (*win.IOleClientSite)(unsafe.Pointer(&wv.clientSite)), 0, wv.hWnd, &rect); win.FAILED(hr) {
- return nil, errorFromHRESULT("IOleObject.DoVerb", hr)
- }
-
- var cpcPtr unsafe.Pointer
- if hr := browserObject.QueryInterface(&win.IID_IConnectionPointContainer, &cpcPtr); win.FAILED(hr) {
- return nil, errorFromHRESULT("IOleObject.QueryInterface(IID_IConnectionPointContainer)", hr)
- }
- cpc := (*win.IConnectionPointContainer)(cpcPtr)
- defer cpc.Release()
-
- var cp *win.IConnectionPoint
- if hr := cpc.FindConnectionPoint(&win.DIID_DWebBrowserEvents2, &cp); win.FAILED(hr) {
- return nil, errorFromHRESULT("IConnectionPointContainer.FindConnectionPoint(DIID_DWebBrowserEvents2)", hr)
- }
- defer cp.Release()
-
- var cookie uint32
- if hr := cp.Advise(unsafe.Pointer(&wv.clientSite.webBrowserEvents2), &cookie); win.FAILED(hr) {
- return nil, errorFromHRESULT("IConnectionPoint.Advise", hr)
- }
-
- wv.onResize()
-
- wv.MustRegisterProperty("URL", NewProperty(
- func() interface{} {
- url, _ := wv.URL()
- return url
- },
- func(v interface{}) error {
- return wv.SetURL(assertStringOr(v, ""))
- },
- wv.urlChangedPublisher.Event()))
-
- wv.MustRegisterProperty("ShortcutsEnabled", NewProperty(
- func() interface{} {
- return wv.ShortcutsEnabled()
- },
- func(v interface{}) error {
- wv.SetShortcutsEnabled(v.(bool))
- return nil
- },
- wv.shortcutsEnabledChangedPublisher.Event()))
-
- wv.MustRegisterProperty("NativeContextMenuEnabled", NewProperty(
- func() interface{} {
- return wv.NativeContextMenuEnabled()
- },
- func(v interface{}) error {
- wv.SetNativeContextMenuEnabled(v.(bool))
- return nil
- },
- wv.nativeContextMenuEnabledChangedPublisher.Event()))
-
- succeeded = true
-
- return wv, nil
-}
-
-func (wv *WebView) Dispose() {
- if wv.browserObject != nil {
- wv.browserObject.Close(win.OLECLOSE_NOSAVE)
- wv.browserObject.Release()
-
- wv.browserObject = nil
-
- win.OleUninitialize()
- }
-
- wv.WidgetBase.Dispose()
-}
-
-func (*WebView) LayoutFlags() LayoutFlags {
- return ShrinkableHorz | ShrinkableVert | GrowableHorz | GrowableVert | GreedyHorz | GreedyVert
-}
-
-func (*WebView) SizeHint() Size {
- return Size{100, 100}
-}
-
-func (wv *WebView) URL() (url string, err error) {
- err = wv.withWebBrowser2(func(webBrowser2 *win.IWebBrowser2) error {
- var urlBstr *uint16 /*BSTR*/
- if hr := webBrowser2.Get_LocationURL(&urlBstr); win.FAILED(hr) {
- return errorFromHRESULT("IWebBrowser2.Get_LocationURL", hr)
- }
- defer win.SysFreeString(urlBstr)
-
- url = win.BSTRToString(urlBstr)
-
- return nil
- })
-
- return
-}
-
-func (wv *WebView) SetURL(url string) error {
- return wv.withWebBrowser2(func(webBrowser2 *win.IWebBrowser2) error {
- urlBstr := win.StringToVariantBSTR(url)
- flags := win.IntToVariantI4(0)
- targetFrameName := win.StringToVariantBSTR("_self")
-
- if hr := webBrowser2.Navigate2(urlBstr, flags, targetFrameName, nil, nil); win.FAILED(hr) {
- return errorFromHRESULT("IWebBrowser2.Navigate2", hr)
- }
-
- return nil
- })
-}
-
-func (wv *WebView) URLChanged() *Event {
- return wv.urlChangedPublisher.Event()
-}
-
-func (wv *WebView) ShortcutsEnabled() bool {
- return wv.shortcutsEnabled
-}
-
-func (wv *WebView) SetShortcutsEnabled(value bool) {
- wv.shortcutsEnabled = value
- wv.shortcutsEnabledChangedPublisher.Publish()
-}
-
-func (wv *WebView) ShortcutsEnabledChanged() *Event {
- return wv.shortcutsEnabledChangedPublisher.Event()
-}
-
-func (wv *WebView) NativeContextMenuEnabled() bool {
- return wv.nativeContextMenuEnabled
-}
-
-func (wv *WebView) SetNativeContextMenuEnabled(value bool) {
- wv.nativeContextMenuEnabled = value
- wv.nativeContextMenuEnabledChangedPublisher.Publish()
-}
-
-func (wv *WebView) NativeContextMenuEnabledChanged() *Event {
- return wv.nativeContextMenuEnabledChangedPublisher.Event()
-}
-
-func (wv *WebView) Navigating() *WebViewNavigatingEvent {
- return wv.navigatingPublisher.Event()
-}
-
-func (wv *WebView) Navigated() *StringEvent {
- return wv.navigatedPublisher.Event()
-}
-
-func (wv *WebView) Downloading() *Event {
- return wv.downloadingPublisher.Event()
-}
-
-func (wv *WebView) Downloaded() *Event {
- return wv.downloadedPublisher.Event()
-}
-
-func (wv *WebView) DocumentCompleted() *StringEvent {
- return wv.documentCompletedPublisher.Event()
-}
-
-func (wv *WebView) NavigatedError() *WebViewNavigatedErrorEvent {
- return wv.navigatedErrorPublisher.Event()
-}
-
-func (wv *WebView) NewWindow() *WebViewNewWindowEvent {
- return wv.newWindowPublisher.Event()
-}
-
-func (wv *WebView) Quitting() *Event {
- return wv.quittingPublisher.Event()
-}
-
-func (wv *WebView) WindowClosing() *WebViewWindowClosingEvent {
- return wv.windowClosingPublisher.Event()
-}
-
-func (wv *WebView) StatusBarVisible() bool {
- return wv.statusBarVisible
-}
-
-func (wv *WebView) StatusBarVisibleChanged() *Event {
- return wv.statusBarVisibleChangedPublisher.Event()
-}
-
-func (wv *WebView) IsTheaterMode() bool {
- return wv.isTheaterMode
-}
-
-func (wv *WebView) TheaterModeChanged() *Event {
- return wv.theaterModeChangedPublisher.Event()
-}
-
-func (wv *WebView) ToolBarVisible() bool {
- return wv.toolBarVisible
-}
-
-func (wv *WebView) ToolBarVisibleChanged() *Event {
- return wv.toolBarVisibleChangedPublisher.Event()
-}
-
-func (wv *WebView) BrowserVisible() bool {
- return wv.browserVisible
-}
-
-func (wv *WebView) BrowserVisibleChanged() *Event {
- return wv.browserVisibleChangedPublisher.Event()
-}
-
-func (wv *WebView) ToolBarEnabled() bool {
- return wv.toolBarEnabled
-}
-
-func (wv *WebView) ToolBarEnabledChanged() *Event {
- return wv.toolBarEnabledChangedPublisher.Event()
-}
-
-func (wv *WebView) CanGoBack() bool {
- return wv.canGoBack
-}
-
-func (wv *WebView) CanGoBackChanged() *Event {
- return wv.canGoBackChangedPublisher.Event()
-}
-
-func (wv *WebView) CanGoForward() bool {
- return wv.canGoForward
-}
-
-func (wv *WebView) CanGoForwardChanged() *Event {
- return wv.canGoForwardChangedPublisher.Event()
-}
-
-func (wv *WebView) ProgressValue() int32 {
- return wv.progressValue
-}
-
-func (wv *WebView) ProgressMax() int32 {
- return wv.progressMax
-}
-
-func (wv *WebView) ProgressChanged() *Event {
- return wv.progressChangedPublisher.Event()
-}
-
-func (wv *WebView) StatusText() string {
- return wv.statusText
-}
-
-func (wv *WebView) StatusTextChanged() *Event {
- return wv.statusTextChangedPublisher.Event()
-}
-
-func (wv *WebView) DocumentTitle() string {
- return wv.documentTitle
-}
-
-func (wv *WebView) DocumentTitleChanged() *Event {
- return wv.documentTitleChangedPublisher.Event()
-}
-
-func (wv *WebView) Refresh() error {
- return wv.withWebBrowser2(func(webBrowser2 *win.IWebBrowser2) error {
- if hr := webBrowser2.Refresh(); win.FAILED(hr) {
- return errorFromHRESULT("IWebBrowser2.Refresh", hr)
- }
-
- return nil
- })
-}
-
-func (wv *WebView) withWebBrowser2(f func(webBrowser2 *win.IWebBrowser2) error) error {
- var webBrowser2Ptr unsafe.Pointer
- if hr := wv.browserObject.QueryInterface(&win.IID_IWebBrowser2, &webBrowser2Ptr); win.FAILED(hr) {
- return errorFromHRESULT("IOleObject.QueryInterface", hr)
- }
- webBrowser2 := (*win.IWebBrowser2)(webBrowser2Ptr)
- defer webBrowser2.Release()
-
- return f(webBrowser2)
-}
-
-func (wv *WebView) onResize() {
- // FIXME: handle error?
- wv.withWebBrowser2(func(webBrowser2 *win.IWebBrowser2) error {
- bounds := wv.ClientBoundsPixels()
-
- webBrowser2.Put_Left(0)
- webBrowser2.Put_Top(0)
- webBrowser2.Put_Width(int32(bounds.Width))
- webBrowser2.Put_Height(int32(bounds.Height))
-
- return nil
- })
-}
-
-func (wv *WebView) withInPlaceActiveObject(f func(activeObject *win.IOleInPlaceActiveObject) error) error {
- if wv.browserObject == nil {
- return nil
- }
- wv.withWebBrowser2(func(webBrowser2 *win.IWebBrowser2) error {
- var activeObjectPtr unsafe.Pointer
- if hr := webBrowser2.QueryInterface(&win.IID_IOleInPlaceActiveObject, &activeObjectPtr); win.FAILED(hr) {
- return errorFromHRESULT("WebBowser2.QueryInterface", hr)
- }
- activeObject := (*win.IOleInPlaceActiveObject)(activeObjectPtr)
- defer activeObject.Release()
- return f(activeObject)
- })
- return nil
-}
-
-func (wv *WebView) translateAccelerator(msg *win.MSG) bool {
- if wv.shortcutsEnabled {
- hr := wv.inPlaceActiveObjectTranslateAccelerator(msg)
- return hr == win.S_OK
- }
- return false
-}
-
-func (wv *WebView) inPlaceActiveObjectTranslateAccelerator(msg *win.MSG) win.HRESULT {
- var ret win.HRESULT
- ret = win.S_FALSE
- wv.withInPlaceActiveObject(func(activeObject *win.IOleInPlaceActiveObject) error {
- hr := activeObject.TranslateAccelerator(msg)
- if hr == win.S_OK {
- ret = win.S_OK
- }
- return nil
- })
- return ret
-}
-
-func (wv *WebView) inPlaceActiveObjectSetFocus() win.HRESULT {
- var ret win.HRESULT
- ret = win.S_FALSE
- wv.withInPlaceActiveObject(func(activeObject *win.IOleInPlaceActiveObject) error {
- var hWndActive win.HWND
- hr := activeObject.GetWindow(&hWndActive)
- if hr != win.S_OK {
- return nil
- }
- win.SetFocus(hWndActive)
- ret = win.S_OK
-
- return nil
- })
- return ret
-}
-
-func (wv *WebView) WndProc(hwnd win.HWND, msg uint32, wParam, lParam uintptr) uintptr {
- switch msg {
- case win.WM_SIZE, win.WM_SIZING:
- if wv.clientSite.inPlaceSite.inPlaceFrame.webView == nil {
- break
- }
-
- wv.onResize()
-
- case win.WM_MOUSEACTIVATE:
- wv.invalidateBorderInParent()
- }
-
- return wv.WidgetBase.WndProc(hwnd, msg, wParam, lParam)
-}
diff --git a/webview_dwebbrowserevents2.go b/webview_dwebbrowserevents2.go
deleted file mode 100644
index ec2b448e..00000000
--- a/webview_dwebbrowserevents2.go
+++ /dev/null
@@ -1,314 +0,0 @@
-// Copyright 2010 The Walk Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build windows
-
-package walk
-
-import (
- "syscall"
- "unsafe"
-)
-
-import (
- "time"
-
- "github.com/lxn/win"
-)
-
-var webViewDWebBrowserEvents2Vtbl *win.DWebBrowserEvents2Vtbl
-
-func init() {
- webViewDWebBrowserEvents2Vtbl = &win.DWebBrowserEvents2Vtbl{
- syscall.NewCallback(webView_DWebBrowserEvents2_QueryInterface),
- syscall.NewCallback(webView_DWebBrowserEvents2_AddRef),
- syscall.NewCallback(webView_DWebBrowserEvents2_Release),
- syscall.NewCallback(webView_DWebBrowserEvents2_GetTypeInfoCount),
- syscall.NewCallback(webView_DWebBrowserEvents2_GetTypeInfo),
- syscall.NewCallback(webView_DWebBrowserEvents2_GetIDsOfNames),
- syscall.NewCallback(webView_DWebBrowserEvents2_Invoke),
- }
-}
-
-type webViewDWebBrowserEvents2 struct {
- win.DWebBrowserEvents2
-}
-
-func webView_DWebBrowserEvents2_QueryInterface(wbe2 *webViewDWebBrowserEvents2, riid win.REFIID, ppvObject *unsafe.Pointer) uintptr {
- // Just reuse the QueryInterface implementation we have for IOleClientSite.
- // We need to adjust object, which initially points at our
- // webViewDWebBrowserEvents2, so it refers to the containing
- // webViewIOleClientSite for the call.
- var clientSite win.IOleClientSite
- var webViewInPlaceSite webViewIOleInPlaceSite
- var docHostUIHandler webViewIDocHostUIHandler
-
- ptr := uintptr(unsafe.Pointer(wbe2)) -
- uintptr(unsafe.Sizeof(clientSite)) -
- uintptr(unsafe.Sizeof(webViewInPlaceSite)) -
- uintptr(unsafe.Sizeof(docHostUIHandler))
-
- return webView_IOleClientSite_QueryInterface((*webViewIOleClientSite)(unsafe.Pointer(ptr)), riid, ppvObject)
-}
-
-func webView_DWebBrowserEvents2_AddRef(args *uintptr) uintptr {
- return 1
-}
-
-func webView_DWebBrowserEvents2_Release(args *uintptr) uintptr {
- return 1
-}
-
-func webView_DWebBrowserEvents2_GetTypeInfoCount(args *uintptr) uintptr {
- /* p := (*struct {
- wbe2 *webViewDWebBrowserEvents2
- pctinfo *uint
- })(unsafe.Pointer(args))
-
- *p.pctinfo = 0
-
- return S_OK*/
-
- return win.E_NOTIMPL
-}
-
-func webView_DWebBrowserEvents2_GetTypeInfo(args *uintptr) uintptr {
- /* p := (*struct {
- wbe2 *webViewDWebBrowserEvents2
- })(unsafe.Pointer(args))
-
- unsigned int iTInfo,
- LCID lcid,
- ITypeInfo FAR* FAR* ppTInfo*/
-
- return win.E_NOTIMPL
-}
-
-func webView_DWebBrowserEvents2_GetIDsOfNames(args *uintptr) uintptr {
- /* p := (*struct {
- wbe2 *webViewDWebBrowserEvents2
- riid REFIID
- rgszNames **uint16
- cNames uint32
- lcid LCID
- rgDispId *DISPID
- })(unsafe.Pointer(args))*/
-
- return win.E_NOTIMPL
-}
-
-/*
-func webView_DWebBrowserEvents2_Invoke(
- wbe2 *webViewDWebBrowserEvents2,
- dispIdMember win.DISPID,
- riid win.REFIID,
- lcid uint32, // LCID
- wFlags uint16,
- pDispParams *win.DISPPARAMS,
- pVarResult *win.VARIANT,
- pExcepInfo unsafe.Pointer, // *EXCEPINFO
- puArgErr *uint32) uintptr {
-*/
-func webView_DWebBrowserEvents2_Invoke(
- arg0 uintptr,
- arg1 uintptr,
- arg2 uintptr,
- arg3 uintptr,
- arg4 uintptr,
- arg5 uintptr,
- arg6 uintptr,
- arg7 uintptr,
- arg8 uintptr) uintptr {
-
- wbe2 := (*webViewDWebBrowserEvents2)(unsafe.Pointer(arg0))
- dispIdMember := *(*win.DISPID)(unsafe.Pointer(&arg1))
- //riid := *(*win.REFIID)(unsafe.Pointer(&arg2))
- //lcid := *(*uint32)(unsafe.Pointer(&arg3))
- //wFlags := *(*uint16)(unsafe.Pointer(&arg4))
- pDispParams := (*win.DISPPARAMS)(unsafe.Pointer(arg5))
- //pVarResult := (*win.VARIANT)(unsafe.Pointer(arg6))
- //pExcepInfo := unsafe.Pointer(arg7)
- //puArgErr := (*uint32)(unsafe.Pointer(arg8))
-
- var wb WidgetBase
- var wvcs webViewIOleClientSite
-
- wv := (*WebView)(unsafe.Pointer(uintptr(unsafe.Pointer(wbe2)) +
- uintptr(unsafe.Sizeof(*wbe2)) -
- uintptr(unsafe.Sizeof(wvcs)) -
- uintptr(unsafe.Sizeof(wb))))
-
- switch dispIdMember {
- case win.DISPID_BEFORENAVIGATE2:
- rgvargPtr := (*[7]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- eventData := &WebViewNavigatingEventData{
- pDisp: (*rgvargPtr)[6].MustPDispatch(),
- url: (*rgvargPtr)[5].MustPVariant(),
- flags: (*rgvargPtr)[4].MustPVariant(),
- targetFrameName: (*rgvargPtr)[3].MustPVariant(),
- postData: (*rgvargPtr)[2].MustPVariant(),
- headers: (*rgvargPtr)[1].MustPVariant(),
- cancel: (*rgvargPtr)[0].MustPBool(),
- }
- wv.navigatingPublisher.Publish(eventData)
-
- case win.DISPID_NAVIGATECOMPLETE2:
- rgvargPtr := (*[2]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- url := (*rgvargPtr)[0].MustPVariant()
- urlStr := ""
- if url != nil && url.MustBSTR() != nil {
- urlStr = win.BSTRToString(url.MustBSTR())
- }
- wv.navigatedPublisher.Publish(urlStr)
-
- wv.urlChangedPublisher.Publish()
-
- case win.DISPID_DOWNLOADBEGIN:
- wv.downloadingPublisher.Publish()
-
- case win.DISPID_DOWNLOADCOMPLETE:
- wv.downloadedPublisher.Publish()
-
- case win.DISPID_DOCUMENTCOMPLETE:
- rgvargPtr := (*[2]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- url := (*rgvargPtr)[0].MustPVariant()
- urlStr := ""
- if url != nil && url.MustBSTR() != nil {
- urlStr = win.BSTRToString(url.MustBSTR())
- }
-
- // FIXME: Horrible hack to avoid glitch where the document is not displayed.
- time.AfterFunc(time.Millisecond*100, func() {
- wv.Synchronize(func() {
- b := wv.BoundsPixels()
- b.Width++
- wv.SetBoundsPixels(b)
- b.Width--
- wv.SetBoundsPixels(b)
- })
- })
-
- wv.documentCompletedPublisher.Publish(urlStr)
-
- case win.DISPID_NAVIGATEERROR:
- rgvargPtr := (*[5]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- eventData := &WebViewNavigatedErrorEventData{
- pDisp: (*rgvargPtr)[4].MustPDispatch(),
- url: (*rgvargPtr)[3].MustPVariant(),
- targetFrameName: (*rgvargPtr)[2].MustPVariant(),
- statusCode: (*rgvargPtr)[1].MustPVariant(),
- cancel: (*rgvargPtr)[0].MustPBool(),
- }
- wv.navigatedErrorPublisher.Publish(eventData)
-
- case win.DISPID_NEWWINDOW3:
- rgvargPtr := (*[5]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- eventData := &WebViewNewWindowEventData{
- ppDisp: (*rgvargPtr)[4].MustPPDispatch(),
- cancel: (*rgvargPtr)[3].MustPBool(),
- dwFlags: (*rgvargPtr)[2].MustULong(),
- bstrUrlContext: (*rgvargPtr)[1].MustBSTR(),
- bstrUrl: (*rgvargPtr)[0].MustBSTR(),
- }
- wv.newWindowPublisher.Publish(eventData)
-
- case win.DISPID_ONQUIT:
- wv.quittingPublisher.Publish()
-
- case win.DISPID_WINDOWCLOSING:
- rgvargPtr := (*[2]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- eventData := &WebViewWindowClosingEventData{
- bIsChildWindow: (*rgvargPtr)[1].MustBool(),
- cancel: (*rgvargPtr)[0].MustPBool(),
- }
- wv.windowClosingPublisher.Publish(eventData)
-
- case win.DISPID_ONSTATUSBAR:
- rgvargPtr := (*[1]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- statusBar := (*rgvargPtr)[0].MustBool()
- if statusBar != win.VARIANT_FALSE {
- wv.statusBarVisible = true
- } else {
- wv.statusBarVisible = false
- }
- wv.statusBarVisibleChangedPublisher.Publish()
-
- case win.DISPID_ONTHEATERMODE:
- rgvargPtr := (*[1]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- theaterMode := (*rgvargPtr)[0].MustBool()
- if theaterMode != win.VARIANT_FALSE {
- wv.isTheaterMode = true
- } else {
- wv.isTheaterMode = false
- }
- wv.theaterModeChangedPublisher.Publish()
-
- case win.DISPID_ONTOOLBAR:
- rgvargPtr := (*[1]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- toolBar := (*rgvargPtr)[0].MustBool()
- if toolBar != win.VARIANT_FALSE {
- wv.toolBarVisible = true
- } else {
- wv.toolBarVisible = false
- }
- wv.toolBarVisibleChangedPublisher.Publish()
-
- case win.DISPID_ONVISIBLE:
- rgvargPtr := (*[1]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- vVisible := (*rgvargPtr)[0].MustBool()
- if vVisible != win.VARIANT_FALSE {
- wv.browserVisible = true
- } else {
- wv.browserVisible = false
- }
- wv.browserVisibleChangedPublisher.Publish()
-
- case win.DISPID_COMMANDSTATECHANGE:
- rgvargPtr := (*[2]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- command := (*rgvargPtr)[1].MustLong()
- enable := (*rgvargPtr)[0].MustBool()
- enableBool := (enable != win.VARIANT_FALSE)
- switch command {
- case win.CSC_UPDATECOMMANDS:
- wv.toolBarEnabled = enableBool
- wv.toolBarEnabledChangedPublisher.Publish()
-
- case win.CSC_NAVIGATEFORWARD:
- wv.canGoForward = enableBool
- wv.canGoForwardChangedPublisher.Publish()
-
- case win.CSC_NAVIGATEBACK:
- wv.canGoBack = enableBool
- wv.canGoBackChangedPublisher.Publish()
- }
-
- case win.DISPID_PROGRESSCHANGE:
- rgvargPtr := (*[2]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- wv.progressValue = (*rgvargPtr)[1].MustLong()
- wv.progressMax = (*rgvargPtr)[0].MustLong()
- wv.progressChangedPublisher.Publish()
-
- case win.DISPID_STATUSTEXTCHANGE:
- rgvargPtr := (*[1]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- sText := (*rgvargPtr)[0].MustBSTR()
- if sText != nil {
- wv.statusText = win.BSTRToString(sText)
- } else {
- wv.statusText = ""
- }
- wv.statusTextChangedPublisher.Publish()
-
- case win.DISPID_TITLECHANGE:
- rgvargPtr := (*[1]win.VARIANTARG)(unsafe.Pointer(pDispParams.Rgvarg))
- sText := (*rgvargPtr)[0].MustBSTR()
- if sText != nil {
- wv.documentTitle = win.BSTRToString(sText)
- } else {
- wv.documentTitle = ""
- }
- wv.documentTitleChangedPublisher.Publish()
- }
-
- return win.DISP_E_MEMBERNOTFOUND
-}
diff --git a/webview_events.go b/webview_events.go
deleted file mode 100644
index 697ae5d3..00000000
--- a/webview_events.go
+++ /dev/null
@@ -1,393 +0,0 @@
-// Copyright 2011 The Walk Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build windows
-
-package walk
-
-import (
- "unsafe"
-)
-
-import (
- "github.com/lxn/win"
-)
-
-type WebViewNavigatingEventData struct {
- pDisp *win.IDispatch
- url *win.VARIANT
- flags *win.VARIANT
- targetFrameName *win.VARIANT
- postData *win.VARIANT
- headers *win.VARIANT
- cancel *win.VARIANT_BOOL
-}
-
-func (eventData *WebViewNavigatingEventData) Url() string {
- url := eventData.url
- if url != nil && url.MustBSTR() != nil {
- return win.BSTRToString(url.MustBSTR())
- }
- return ""
-}
-
-func (eventData *WebViewNavigatingEventData) Flags() int32 {
- flags := eventData.flags
- if flags != nil {
- return flags.MustLong()
- }
- return 0
-}
-
-func (eventData *WebViewNavigatingEventData) PostData() string {
- postData := eventData.postData
- if postData != nil {
- pvar := postData.MustPVariant()
- if pvar != nil && pvar.Vt == win.VT_ARRAY|win.VT_UI1 {
- psa := pvar.MustPSafeArray()
- if psa != nil && psa.CDims == 1 && psa.CbElements == 1 {
- postDataSize := psa.Rgsabound[0].CElements * psa.CbElements
- byteAryPtr := (*[200000000]byte)(unsafe.Pointer(psa.PvData))
- byteArySlice := (*byteAryPtr)[0 : postDataSize-1]
- return string(byteArySlice)
- }
- }
- }
- return ""
-}
-
-func (eventData *WebViewNavigatingEventData) Headers() string {
- headers := eventData.headers
- if headers != nil && headers.MustBSTR() != nil {
- return win.BSTRToString(headers.MustBSTR())
- }
- return ""
-}
-
-func (eventData *WebViewNavigatingEventData) TargetFrameName() string {
- targetFrameName := eventData.targetFrameName
- if targetFrameName != nil && targetFrameName.MustBSTR() != nil {
- return win.BSTRToString(targetFrameName.MustBSTR())
- }
- return ""
-}
-
-func (eventData *WebViewNavigatingEventData) Canceled() bool {
- cancel := eventData.cancel
- if cancel != nil {
- if *cancel != win.VARIANT_FALSE {
- return true
- } else {
- return false
- }
- }
- return false
-}
-
-func (eventData *WebViewNavigatingEventData) SetCanceled(value bool) {
- cancel := eventData.cancel
- if cancel != nil {
- if value {
- *cancel = win.VARIANT_TRUE
- } else {
- *cancel = win.VARIANT_FALSE
- }
- }
-}
-
-type WebViewNavigatingEventHandler func(eventData *WebViewNavigatingEventData)
-
-type WebViewNavigatingEvent struct {
- handlers []WebViewNavigatingEventHandler
-}
-
-func (e *WebViewNavigatingEvent) Attach(handler WebViewNavigatingEventHandler) int {
- for i, h := range e.handlers {
- if h == nil {
- e.handlers[i] = handler
- return i
- }
- }
-
- e.handlers = append(e.handlers, handler)
- return len(e.handlers) - 1
-}
-
-func (e *WebViewNavigatingEvent) Detach(handle int) {
- e.handlers[handle] = nil
-}
-
-type WebViewNavigatingEventPublisher struct {
- event WebViewNavigatingEvent
-}
-
-func (p *WebViewNavigatingEventPublisher) Event() *WebViewNavigatingEvent {
- return &p.event
-}
-
-func (p *WebViewNavigatingEventPublisher) Publish(eventData *WebViewNavigatingEventData) {
- for _, handler := range p.event.handlers {
- if handler != nil {
- handler(eventData)
- }
- }
-}
-
-type WebViewNavigatedErrorEventData struct {
- pDisp *win.IDispatch
- url *win.VARIANT
- targetFrameName *win.VARIANT
- statusCode *win.VARIANT
- cancel *win.VARIANT_BOOL
-}
-
-func (eventData *WebViewNavigatedErrorEventData) Url() string {
- url := eventData.url
- if url != nil && url.MustBSTR() != nil {
- return win.BSTRToString(url.MustBSTR())
- }
- return ""
-}
-
-func (eventData *WebViewNavigatedErrorEventData) TargetFrameName() string {
- targetFrameName := eventData.targetFrameName
- if targetFrameName != nil && targetFrameName.MustBSTR() != nil {
- return win.BSTRToString(targetFrameName.MustBSTR())
- }
- return ""
-}
-
-func (eventData *WebViewNavigatedErrorEventData) StatusCode() int32 {
- statusCode := eventData.statusCode
- if statusCode != nil {
- return statusCode.MustLong()
- }
- return 0
-}
-
-func (eventData *WebViewNavigatedErrorEventData) Canceled() bool {
- cancel := eventData.cancel
- if cancel != nil {
- if *cancel != win.VARIANT_FALSE {
- return true
- } else {
- return false
- }
- }
- return false
-}
-
-func (eventData *WebViewNavigatedErrorEventData) SetCanceled(value bool) {
- cancel := eventData.cancel
- if cancel != nil {
- if value {
- *cancel = win.VARIANT_TRUE
- } else {
- *cancel = win.VARIANT_FALSE
- }
- }
-}
-
-type WebViewNavigatedErrorEventHandler func(eventData *WebViewNavigatedErrorEventData)
-
-type WebViewNavigatedErrorEvent struct {
- handlers []WebViewNavigatedErrorEventHandler
-}
-
-func (e *WebViewNavigatedErrorEvent) Attach(handler WebViewNavigatedErrorEventHandler) int {
- for i, h := range e.handlers {
- if h == nil {
- e.handlers[i] = handler
- return i
- }
- }
-
- e.handlers = append(e.handlers, handler)
- return len(e.handlers) - 1
-}
-
-func (e *WebViewNavigatedErrorEvent) Detach(handle int) {
- e.handlers[handle] = nil
-}
-
-type WebViewNavigatedErrorEventPublisher struct {
- event WebViewNavigatedErrorEvent
-}
-
-func (p *WebViewNavigatedErrorEventPublisher) Event() *WebViewNavigatedErrorEvent {
- return &p.event
-}
-
-func (p *WebViewNavigatedErrorEventPublisher) Publish(eventData *WebViewNavigatedErrorEventData) {
- for _, handler := range p.event.handlers {
- if handler != nil {
- handler(eventData)
- }
- }
-}
-
-type WebViewNewWindowEventData struct {
- ppDisp **win.IDispatch
- cancel *win.VARIANT_BOOL
- dwFlags uint32
- bstrUrlContext *uint16
- bstrUrl *uint16
-}
-
-func (eventData *WebViewNewWindowEventData) Canceled() bool {
- cancel := eventData.cancel
- if cancel != nil {
- if *cancel != win.VARIANT_FALSE {
- return true
- } else {
- return false
- }
- }
- return false
-}
-
-func (eventData *WebViewNewWindowEventData) SetCanceled(value bool) {
- cancel := eventData.cancel
- if cancel != nil {
- if value {
- *cancel = win.VARIANT_TRUE
- } else {
- *cancel = win.VARIANT_FALSE
- }
- }
-}
-
-func (eventData *WebViewNewWindowEventData) Flags() uint32 {
- return eventData.dwFlags
-}
-
-func (eventData *WebViewNewWindowEventData) UrlContext() string {
- bstrUrlContext := eventData.bstrUrlContext
- if bstrUrlContext != nil {
- return win.BSTRToString(bstrUrlContext)
- }
- return ""
-}
-
-func (eventData *WebViewNewWindowEventData) Url() string {
- bstrUrl := eventData.bstrUrl
- if bstrUrl != nil {
- return win.BSTRToString(bstrUrl)
- }
- return ""
-}
-
-type WebViewNewWindowEventHandler func(eventData *WebViewNewWindowEventData)
-
-type WebViewNewWindowEvent struct {
- handlers []WebViewNewWindowEventHandler
-}
-
-func (e *WebViewNewWindowEvent) Attach(handler WebViewNewWindowEventHandler) int {
- for i, h := range e.handlers {
- if h == nil {
- e.handlers[i] = handler
- return i
- }
- }
-
- e.handlers = append(e.handlers, handler)
- return len(e.handlers) - 1
-}
-
-func (e *WebViewNewWindowEvent) Detach(handle int) {
- e.handlers[handle] = nil
-}
-
-type WebViewNewWindowEventPublisher struct {
- event WebViewNewWindowEvent
-}
-
-func (p *WebViewNewWindowEventPublisher) Event() *WebViewNewWindowEvent {
- return &p.event
-}
-
-func (p *WebViewNewWindowEventPublisher) Publish(eventData *WebViewNewWindowEventData) {
- for _, handler := range p.event.handlers {
- if handler != nil {
- handler(eventData)
- }
- }
-}
-
-type WebViewWindowClosingEventData struct {
- bIsChildWindow win.VARIANT_BOOL
- cancel *win.VARIANT_BOOL
-}
-
-func (eventData *WebViewWindowClosingEventData) IsChildWindow() bool {
- bIsChildWindow := eventData.bIsChildWindow
- if bIsChildWindow != win.VARIANT_FALSE {
- return true
- } else {
- return false
- }
- return false
-}
-
-func (eventData *WebViewWindowClosingEventData) Canceled() bool {
- cancel := eventData.cancel
- if cancel != nil {
- if *cancel != win.VARIANT_FALSE {
- return true
- } else {
- return false
- }
- }
- return false
-}
-
-func (eventData *WebViewWindowClosingEventData) SetCanceled(value bool) {
- cancel := eventData.cancel
- if cancel != nil {
- if value {
- *cancel = win.VARIANT_TRUE
- } else {
- *cancel = win.VARIANT_FALSE
- }
- }
-}
-
-type WebViewWindowClosingEventHandler func(eventData *WebViewWindowClosingEventData)
-
-type WebViewWindowClosingEvent struct {
- handlers []WebViewWindowClosingEventHandler
-}
-
-func (e *WebViewWindowClosingEvent) Attach(handler WebViewWindowClosingEventHandler) int {
- for i, h := range e.handlers {
- if h == nil {
- e.handlers[i] = handler
- return i
- }
- }
-
- e.handlers = append(e.handlers, handler)
- return len(e.handlers) - 1
-}
-
-func (e *WebViewWindowClosingEvent) Detach(handle int) {
- e.handlers[handle] = nil
-}
-
-type WebViewWindowClosingEventPublisher struct {
- event WebViewWindowClosingEvent
-}
-
-func (p *WebViewWindowClosingEventPublisher) Event() *WebViewWindowClosingEvent {
- return &p.event
-}
-
-func (p *WebViewWindowClosingEventPublisher) Publish(eventData *WebViewWindowClosingEventData) {
- for _, handler := range p.event.handlers {
- if handler != nil {
- handler(eventData)
- }
- }
-}
diff --git a/webview_idochostuihandler.go b/webview_idochostuihandler.go
deleted file mode 100644
index 15253824..00000000
--- a/webview_idochostuihandler.go
+++ /dev/null
@@ -1,151 +0,0 @@
-// Copyright 2010 The Walk Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build windows
-
-package walk
-
-import (
- "syscall"
- "unsafe"
-)
-
-import (
- "github.com/lxn/win"
-)
-
-var webViewIDocHostUIHandlerVtbl *win.IDocHostUIHandlerVtbl
-
-func init() {
- webViewIDocHostUIHandlerVtbl = &win.IDocHostUIHandlerVtbl{
- syscall.NewCallback(webView_IDocHostUIHandler_QueryInterface),
- syscall.NewCallback(webView_IDocHostUIHandler_AddRef),
- syscall.NewCallback(webView_IDocHostUIHandler_Release),
- syscall.NewCallback(webView_IDocHostUIHandler_ShowContextMenu),
- syscall.NewCallback(webView_IDocHostUIHandler_GetHostInfo),
- syscall.NewCallback(webView_IDocHostUIHandler_ShowUI),
- syscall.NewCallback(webView_IDocHostUIHandler_HideUI),
- syscall.NewCallback(webView_IDocHostUIHandler_UpdateUI),
- syscall.NewCallback(webView_IDocHostUIHandler_EnableModeless),
- syscall.NewCallback(webView_IDocHostUIHandler_OnDocWindowActivate),
- syscall.NewCallback(webView_IDocHostUIHandler_OnFrameWindowActivate),
- syscall.NewCallback(webView_IDocHostUIHandler_ResizeBorder),
- syscall.NewCallback(webView_IDocHostUIHandler_TranslateAccelerator),
- syscall.NewCallback(webView_IDocHostUIHandler_GetOptionKeyPath),
- syscall.NewCallback(webView_IDocHostUIHandler_GetDropTarget),
- syscall.NewCallback(webView_IDocHostUIHandler_GetExternal),
- syscall.NewCallback(webView_IDocHostUIHandler_TranslateUrl),
- syscall.NewCallback(webView_IDocHostUIHandler_FilterDataObject),
- }
-}
-
-type webViewIDocHostUIHandler struct {
- win.IDocHostUIHandler
-}
-
-func webView_IDocHostUIHandler_QueryInterface(docHostUIHandler *webViewIDocHostUIHandler, riid win.REFIID, ppvObject *unsafe.Pointer) uintptr {
- // Just reuse the QueryInterface implementation we have for IOleClientSite.
- // We need to adjust object, which initially points at our
- // webViewIDocHostUIHandler, so it refers to the containing
- // webViewIOleClientSite for the call.
- var clientSite win.IOleClientSite
- var webViewInPlaceSite webViewIOleInPlaceSite
-
- ptr := uintptr(unsafe.Pointer(docHostUIHandler)) - uintptr(unsafe.Sizeof(clientSite)) -
- uintptr(unsafe.Sizeof(webViewInPlaceSite))
-
- return webView_IOleClientSite_QueryInterface((*webViewIOleClientSite)(unsafe.Pointer(ptr)), riid, ppvObject)
-}
-
-func webView_IDocHostUIHandler_AddRef(docHostUIHandler *webViewIDocHostUIHandler) uintptr {
- return 1
-}
-
-func webView_IDocHostUIHandler_Release(docHostUIHandler *webViewIDocHostUIHandler) uintptr {
- return 1
-}
-
-func webView_IDocHostUIHandler_ShowContextMenu(docHostUIHandler *webViewIDocHostUIHandler, dwID uint32, ppt *win.POINT, pcmdtReserved *win.IUnknown, pdispReserved uintptr) uintptr {
- var webViewInPlaceSite webViewIOleInPlaceSite
- var iOleClientSite win.IOleClientSite
- var wb WidgetBase
- ptr := uintptr(unsafe.Pointer(docHostUIHandler)) -
- uintptr(unsafe.Sizeof(webViewInPlaceSite)) -
- uintptr(unsafe.Sizeof(iOleClientSite)) -
- uintptr(unsafe.Sizeof(wb))
- webView := (*WebView)(unsafe.Pointer(ptr))
-
- // show context menu
- if webView.NativeContextMenuEnabled() {
- return win.S_FALSE
- }
-
- return win.S_OK
-}
-
-func webView_IDocHostUIHandler_GetHostInfo(docHostUIHandler *webViewIDocHostUIHandler, pInfo *win.DOCHOSTUIINFO) uintptr {
- pInfo.CbSize = uint32(unsafe.Sizeof(*pInfo))
- pInfo.DwFlags = win.DOCHOSTUIFLAG_NO3DBORDER
- pInfo.DwDoubleClick = win.DOCHOSTUIDBLCLK_DEFAULT
-
- return win.S_OK
-}
-
-func webView_IDocHostUIHandler_ShowUI(docHostUIHandler *webViewIDocHostUIHandler, dwID uint32, pActiveObject uintptr, pCommandTarget uintptr, pFrame *win.IOleInPlaceFrame, pDoc uintptr) uintptr {
- return win.S_OK
-}
-
-func webView_IDocHostUIHandler_HideUI(docHostUIHandler *webViewIDocHostUIHandler) uintptr {
- return win.S_OK
-}
-
-func webView_IDocHostUIHandler_UpdateUI(docHostUIHandler *webViewIDocHostUIHandler) uintptr {
- return win.S_OK
-}
-
-func webView_IDocHostUIHandler_EnableModeless(docHostUIHandler *webViewIDocHostUIHandler, fEnable win.BOOL) uintptr {
- return win.S_OK
-}
-
-func webView_IDocHostUIHandler_OnDocWindowActivate(docHostUIHandler *webViewIDocHostUIHandler, fActivate win.BOOL) uintptr {
- return win.S_OK
-}
-
-func webView_IDocHostUIHandler_OnFrameWindowActivate(docHostUIHandler *webViewIDocHostUIHandler, fActivate win.BOOL) uintptr {
- return win.S_OK
-}
-
-func webView_IDocHostUIHandler_ResizeBorder(docHostUIHandler *webViewIDocHostUIHandler, prcBorder *win.RECT, pUIWindow uintptr, fRameWindow win.BOOL) uintptr {
- return win.S_OK
-}
-
-func webView_IDocHostUIHandler_TranslateAccelerator(docHostUIHandler *webViewIDocHostUIHandler, lpMsg *win.MSG, pguidCmdGroup *syscall.GUID, nCmdID uint) uintptr {
- return win.S_FALSE
-}
-
-func webView_IDocHostUIHandler_GetOptionKeyPath(docHostUIHandler *webViewIDocHostUIHandler, pchKey *uint16, dw uint) uintptr {
- return win.S_FALSE
-}
-
-func webView_IDocHostUIHandler_GetDropTarget(docHostUIHandler *webViewIDocHostUIHandler, pDropTarget uintptr, ppDropTarget *uintptr) uintptr {
- return win.S_FALSE
-}
-
-func webView_IDocHostUIHandler_GetExternal(docHostUIHandler *webViewIDocHostUIHandler, ppDispatch *uintptr) uintptr {
- *ppDispatch = 0
-
- return win.S_FALSE
-}
-
-func webView_IDocHostUIHandler_TranslateUrl(docHostUIHandler *webViewIDocHostUIHandler, dwTranslate uint32, pchURLIn *uint16, ppchURLOut **uint16) uintptr {
- *ppchURLOut = nil
-
- return win.S_FALSE
-}
-
-func webView_IDocHostUIHandler_FilterDataObject(docHostUIHandler *webViewIDocHostUIHandler, pDO uintptr, ppDORet *uintptr) uintptr {
- *ppDORet = 0
-
- return win.S_FALSE
-}
diff --git a/webview_ioleclientsite.go b/webview_ioleclientsite.go
deleted file mode 100644
index 0bfea3c5..00000000
--- a/webview_ioleclientsite.go
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2010 The Walk Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build windows
-
-package walk
-
-import (
- "syscall"
- "unsafe"
-)
-
-import (
- "github.com/lxn/win"
-)
-
-var webViewIOleClientSiteVtbl *win.IOleClientSiteVtbl
-
-func init() {
- webViewIOleClientSiteVtbl = &win.IOleClientSiteVtbl{
- syscall.NewCallback(webView_IOleClientSite_QueryInterface),
- syscall.NewCallback(webView_IOleClientSite_AddRef),
- syscall.NewCallback(webView_IOleClientSite_Release),
- syscall.NewCallback(webView_IOleClientSite_SaveObject),
- syscall.NewCallback(webView_IOleClientSite_GetMoniker),
- syscall.NewCallback(webView_IOleClientSite_GetContainer),
- syscall.NewCallback(webView_IOleClientSite_ShowObject),
- syscall.NewCallback(webView_IOleClientSite_OnShowWindow),
- syscall.NewCallback(webView_IOleClientSite_RequestNewObjectLayout),
- }
-}
-
-type webViewIOleClientSite struct {
- win.IOleClientSite
- inPlaceSite webViewIOleInPlaceSite
- docHostUIHandler webViewIDocHostUIHandler
- webBrowserEvents2 webViewDWebBrowserEvents2
-}
-
-func webView_IOleClientSite_QueryInterface(clientSite *webViewIOleClientSite, riid win.REFIID, ppvObject *unsafe.Pointer) uintptr {
- if win.EqualREFIID(riid, &win.IID_IUnknown) {
- *ppvObject = unsafe.Pointer(clientSite)
- } else if win.EqualREFIID(riid, &win.IID_IOleClientSite) {
- *ppvObject = unsafe.Pointer(clientSite)
- } else if win.EqualREFIID(riid, &win.IID_IOleInPlaceSite) {
- *ppvObject = unsafe.Pointer(&clientSite.inPlaceSite)
- } else if win.EqualREFIID(riid, &win.IID_IDocHostUIHandler) {
- *ppvObject = unsafe.Pointer(&clientSite.docHostUIHandler)
- } else if win.EqualREFIID(riid, &win.DIID_DWebBrowserEvents2) {
- *ppvObject = unsafe.Pointer(&clientSite.webBrowserEvents2)
- } else {
- *ppvObject = nil
- return win.E_NOINTERFACE
- }
-
- return win.S_OK
-}
-
-func webView_IOleClientSite_AddRef(clientSite *webViewIOleClientSite) uintptr {
- return 1
-}
-
-func webView_IOleClientSite_Release(clientSite *webViewIOleClientSite) uintptr {
- return 1
-}
-
-func webView_IOleClientSite_SaveObject(clientSite *webViewIOleClientSite) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleClientSite_GetMoniker(clientSite *webViewIOleClientSite, dwAssign, dwWhichMoniker uint32, ppmk *unsafe.Pointer) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleClientSite_GetContainer(clientSite *webViewIOleClientSite, ppContainer *unsafe.Pointer) uintptr {
- *ppContainer = nil
-
- return win.E_NOINTERFACE
-}
-
-func webView_IOleClientSite_ShowObject(clientSite *webViewIOleClientSite) uintptr {
- return win.S_OK
-}
-
-func webView_IOleClientSite_OnShowWindow(clientSite *webViewIOleClientSite, fShow win.BOOL) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleClientSite_RequestNewObjectLayout(clientSite *webViewIOleClientSite) uintptr {
- return win.E_NOTIMPL
-}
diff --git a/webview_ioleinplaceframe.go b/webview_ioleinplaceframe.go
deleted file mode 100644
index e5685571..00000000
--- a/webview_ioleinplaceframe.go
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright 2010 The Walk Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build windows
-
-package walk
-
-import (
- "syscall"
-)
-
-import (
- "github.com/lxn/win"
-)
-
-var webViewIOleInPlaceFrameVtbl *win.IOleInPlaceFrameVtbl
-
-func init() {
- webViewIOleInPlaceFrameVtbl = &win.IOleInPlaceFrameVtbl{
- syscall.NewCallback(webView_IOleInPlaceFrame_QueryInterface),
- syscall.NewCallback(webView_IOleInPlaceFrame_AddRef),
- syscall.NewCallback(webView_IOleInPlaceFrame_Release),
- syscall.NewCallback(webView_IOleInPlaceFrame_GetWindow),
- syscall.NewCallback(webView_IOleInPlaceFrame_ContextSensitiveHelp),
- syscall.NewCallback(webView_IOleInPlaceFrame_GetBorder),
- syscall.NewCallback(webView_IOleInPlaceFrame_RequestBorderSpace),
- syscall.NewCallback(webView_IOleInPlaceFrame_SetBorderSpace),
- syscall.NewCallback(webView_IOleInPlaceFrame_SetActiveObject),
- syscall.NewCallback(webView_IOleInPlaceFrame_InsertMenus),
- syscall.NewCallback(webView_IOleInPlaceFrame_SetMenu),
- syscall.NewCallback(webView_IOleInPlaceFrame_RemoveMenus),
- syscall.NewCallback(webView_IOleInPlaceFrame_SetStatusText),
- syscall.NewCallback(webView_IOleInPlaceFrame_EnableModeless),
- syscall.NewCallback(webView_IOleInPlaceFrame_TranslateAccelerator),
- }
-}
-
-type webViewIOleInPlaceFrame struct {
- win.IOleInPlaceFrame
- webView *WebView
-}
-
-func webView_IOleInPlaceFrame_QueryInterface(inPlaceFrame *webViewIOleInPlaceFrame, riid win.REFIID, ppvObj *uintptr) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleInPlaceFrame_AddRef(inPlaceFrame *webViewIOleInPlaceFrame) uintptr {
- return 1
-}
-
-func webView_IOleInPlaceFrame_Release(inPlaceFrame *webViewIOleInPlaceFrame) uintptr {
- return 1
-}
-
-func webView_IOleInPlaceFrame_GetWindow(inPlaceFrame *webViewIOleInPlaceFrame, lphwnd *win.HWND) uintptr {
- *lphwnd = inPlaceFrame.webView.hWnd
-
- return win.S_OK
-}
-
-func webView_IOleInPlaceFrame_ContextSensitiveHelp(inPlaceFrame *webViewIOleInPlaceFrame, fEnterMode win.BOOL) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleInPlaceFrame_GetBorder(inPlaceFrame *webViewIOleInPlaceFrame, lprectBorder *win.RECT) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleInPlaceFrame_RequestBorderSpace(inPlaceFrame *webViewIOleInPlaceFrame, pborderwidths uintptr) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleInPlaceFrame_SetBorderSpace(inPlaceFrame *webViewIOleInPlaceFrame, pborderwidths uintptr) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleInPlaceFrame_SetActiveObject(inPlaceFrame *webViewIOleInPlaceFrame, pActiveObject uintptr, pszObjName *uint16) uintptr {
- return win.S_OK
-}
-
-func webView_IOleInPlaceFrame_InsertMenus(inPlaceFrame *webViewIOleInPlaceFrame, hmenuShared win.HMENU, lpMenuWidths uintptr) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleInPlaceFrame_SetMenu(inPlaceFrame *webViewIOleInPlaceFrame, hmenuShared win.HMENU, holemenu win.HMENU, hwndActiveObject win.HWND) uintptr {
- return win.S_OK
-}
-
-func webView_IOleInPlaceFrame_RemoveMenus(inPlaceFrame *webViewIOleInPlaceFrame, hmenuShared win.HMENU) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleInPlaceFrame_SetStatusText(inPlaceFrame *webViewIOleInPlaceFrame, pszStatusText *uint16) uintptr {
- return win.S_OK
-}
-
-func webView_IOleInPlaceFrame_EnableModeless(inPlaceFrame *webViewIOleInPlaceFrame, fEnable win.BOOL) uintptr {
- return win.S_OK
-}
-
-func webView_IOleInPlaceFrame_TranslateAccelerator(inPlaceFrame *webViewIOleInPlaceFrame, lpmsg *win.MSG, wID uint32) uintptr {
- return win.E_NOTIMPL
-}
diff --git a/webview_ioleinplacesite.go b/webview_ioleinplacesite.go
deleted file mode 100644
index c6bfe8a1..00000000
--- a/webview_ioleinplacesite.go
+++ /dev/null
@@ -1,128 +0,0 @@
-// Copyright 2010 The Walk Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build windows
-
-package walk
-
-import (
- "syscall"
- "unsafe"
-)
-
-import (
- "github.com/lxn/win"
-)
-
-var webViewIOleInPlaceSiteVtbl *win.IOleInPlaceSiteVtbl
-
-func init() {
- webViewIOleInPlaceSiteVtbl = &win.IOleInPlaceSiteVtbl{
- syscall.NewCallback(webView_IOleInPlaceSite_QueryInterface),
- syscall.NewCallback(webView_IOleInPlaceSite_AddRef),
- syscall.NewCallback(webView_IOleInPlaceSite_Release),
- syscall.NewCallback(webView_IOleInPlaceSite_GetWindow),
- syscall.NewCallback(webView_IOleInPlaceSite_ContextSensitiveHelp),
- syscall.NewCallback(webView_IOleInPlaceSite_CanInPlaceActivate),
- syscall.NewCallback(webView_IOleInPlaceSite_OnInPlaceActivate),
- syscall.NewCallback(webView_IOleInPlaceSite_OnUIActivate),
- syscall.NewCallback(webView_IOleInPlaceSite_GetWindowContext),
- syscall.NewCallback(webView_IOleInPlaceSite_Scroll),
- syscall.NewCallback(webView_IOleInPlaceSite_OnUIDeactivate),
- syscall.NewCallback(webView_IOleInPlaceSite_OnInPlaceDeactivate),
- syscall.NewCallback(webView_IOleInPlaceSite_DiscardUndoState),
- syscall.NewCallback(webView_IOleInPlaceSite_DeactivateAndUndo),
- syscall.NewCallback(webView_IOleInPlaceSite_OnPosRectChange),
- }
-}
-
-type webViewIOleInPlaceSite struct {
- win.IOleInPlaceSite
- inPlaceFrame webViewIOleInPlaceFrame
-}
-
-func webView_IOleInPlaceSite_QueryInterface(inPlaceSite *webViewIOleInPlaceSite, riid win.REFIID, ppvObject *unsafe.Pointer) uintptr {
- // Just reuse the QueryInterface implementation we have for IOleClientSite.
- // We need to adjust object from the webViewIDocHostUIHandler to the
- // containing webViewIOleInPlaceSite.
- var clientSite win.IOleClientSite
-
- ptr := uintptr(unsafe.Pointer(inPlaceSite)) - uintptr(unsafe.Sizeof(clientSite))
-
- return webView_IOleClientSite_QueryInterface((*webViewIOleClientSite)(unsafe.Pointer(ptr)), riid, ppvObject)
-}
-
-func webView_IOleInPlaceSite_AddRef(inPlaceSite *webViewIOleInPlaceSite) uintptr {
- return 1
-}
-
-func webView_IOleInPlaceSite_Release(inPlaceSite *webViewIOleInPlaceSite) uintptr {
- return 1
-}
-
-func webView_IOleInPlaceSite_GetWindow(inPlaceSite *webViewIOleInPlaceSite, lphwnd *win.HWND) uintptr {
- *lphwnd = inPlaceSite.inPlaceFrame.webView.hWnd
-
- return win.S_OK
-}
-
-func webView_IOleInPlaceSite_ContextSensitiveHelp(inPlaceSite *webViewIOleInPlaceSite, fEnterMode win.BOOL) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleInPlaceSite_CanInPlaceActivate(inPlaceSite *webViewIOleInPlaceSite) uintptr {
- return win.S_OK
-}
-
-func webView_IOleInPlaceSite_OnInPlaceActivate(inPlaceSite *webViewIOleInPlaceSite) uintptr {
- return win.S_OK
-}
-
-func webView_IOleInPlaceSite_OnUIActivate(inPlaceSite *webViewIOleInPlaceSite) uintptr {
- return win.S_OK
-}
-
-func webView_IOleInPlaceSite_GetWindowContext(inPlaceSite *webViewIOleInPlaceSite, lplpFrame **webViewIOleInPlaceFrame, lplpDoc *uintptr, lprcPosRect, lprcClipRect *win.RECT, lpFrameInfo *win.OLEINPLACEFRAMEINFO) uintptr {
- *lplpFrame = &inPlaceSite.inPlaceFrame
- *lplpDoc = 0
-
- lpFrameInfo.FMDIApp = win.FALSE
- lpFrameInfo.HwndFrame = inPlaceSite.inPlaceFrame.webView.hWnd
- lpFrameInfo.Haccel = 0
- lpFrameInfo.CAccelEntries = 0
-
- return win.S_OK
-}
-
-func webView_IOleInPlaceSite_Scroll(inPlaceSite *webViewIOleInPlaceSite, scrollExtentX, scrollExtentY int32) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleInPlaceSite_OnUIDeactivate(inPlaceSite *webViewIOleInPlaceSite, fUndoable win.BOOL) uintptr {
- return win.S_OK
-}
-
-func webView_IOleInPlaceSite_OnInPlaceDeactivate(inPlaceSite *webViewIOleInPlaceSite) uintptr {
- return win.S_OK
-}
-
-func webView_IOleInPlaceSite_DiscardUndoState(inPlaceSite *webViewIOleInPlaceSite) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleInPlaceSite_DeactivateAndUndo(inPlaceSite *webViewIOleInPlaceSite) uintptr {
- return win.E_NOTIMPL
-}
-
-func webView_IOleInPlaceSite_OnPosRectChange(inPlaceSite *webViewIOleInPlaceSite, lprcPosRect *win.RECT) uintptr {
- browserObject := inPlaceSite.inPlaceFrame.webView.browserObject
- var inPlaceObjectPtr unsafe.Pointer
- if hr := browserObject.QueryInterface(&win.IID_IOleInPlaceObject, &inPlaceObjectPtr); win.FAILED(hr) {
- return uintptr(hr)
- }
- inPlaceObject := (*win.IOleInPlaceObject)(inPlaceObjectPtr)
- defer inPlaceObject.Release()
-
- return uintptr(inPlaceObject.SetObjectRects(lprcPosRect, lprcPosRect))
-}