| 1 | //go:build windows && !native_webview2loader |
| 2 | |
| 3 | package edge |
| 4 | |
| 5 | import ( |
| 6 | "unsafe" |
| 7 | |
| 8 | "github.com/wailsapp/go-webview2/webviewloader" |
| 9 | ) |
| 10 | |
| 11 | func createCoreWebView2EnvironmentWithOptions(browserExecutableFolder, userDataFolder string, environmentCompletedHandle *iCoreWebView2CreateCoreWebView2EnvironmentCompletedHandler, additionalBrowserArgs string) error { |
| 12 | e := &environmentCreatedHandler{environmentCompletedHandle} |
| 13 | return webviewloader.CreateCoreWebView2EnvironmentWithOptions( |
| 14 | e, |
| 15 | webviewloader.WithBrowserExecutableFolder(browserExecutableFolder), |
| 16 | webviewloader.WithUserDataFolder(userDataFolder), |
| 17 | webviewloader.WithAdditionalBrowserArguments(additionalBrowserArgs), |
| 18 | ) |
| 19 | } |
| 20 | |
| 21 | type environmentCreatedHandler struct { |
| 22 | originalHandler *iCoreWebView2CreateCoreWebView2EnvironmentCompletedHandler |
| 23 | } |
| 24 | |
| 25 | func (r *environmentCreatedHandler) EnvironmentCompleted(errorCode webviewloader.HRESULT, createdEnvironment *webviewloader.ICoreWebView2Environment) webviewloader.HRESULT { |
| 26 | env := (*ICoreWebView2Environment)(unsafe.Pointer(createdEnvironment)) |
| 27 | res := r.originalHandler.impl.EnvironmentCompleted(uintptr(errorCode), env) |
| 28 | return webviewloader.HRESULT(res) |
| 29 | } |
| 30 |