返回 DeepSeek-Reasonix
ICoreWebView2WebMessageReceivedEventArgs.go
根目录 / desktop / third_party / go-webview2 / pkg / edge / ICoreWebView2WebMessageReceivedEventArgs.go
1 //go:build windows
2
3 package edge
4
5 import (
6 "unsafe"
7
8 "golang.org/x/sys/windows"
9 )
10
11 type iCoreWebView2WebMessageReceivedEventArgsVtbl struct {
12 _IUnknownVtbl
13 GetSource ComProc
14 GetWebMessageAsJSON ComProc
15 TryGetWebMessageAsString ComProc
16 GetAdditionalObjects ComProc
17 }
18
19 type ICoreWebView2WebMessageReceivedEventArgs struct {
20 vtbl *iCoreWebView2WebMessageReceivedEventArgsVtbl
21 }
22
23 func (i *ICoreWebView2WebMessageReceivedEventArgs) GetSource() (string, error) {
24 var _source *uint16
25 hr, _, _ := i.vtbl.GetSource.Call(
26 uintptr(unsafe.Pointer(i)),
27 uintptr(unsafe.Pointer(&_source)),
28 )
29 if windows.Handle(hr) != windows.S_OK {
30 return "", windows.Errno(hr)
31 }
32 source := windows.UTF16PtrToString(_source)
33 windows.CoTaskMemFree(unsafe.Pointer(_source))
34 return source, nil
35 }
36
37 func (i *ICoreWebView2WebMessageReceivedEventArgs) GetAdditionalObjects() (*ICoreWebView2ObjectCollectionView, error) {
38 var value *ICoreWebView2ObjectCollectionView
39
40 hr, _, _ := i.vtbl.GetAdditionalObjects.Call(
41 uintptr(unsafe.Pointer(i)),
42 uintptr(unsafe.Pointer(&value)),
43 )
44 if windows.Handle(hr) != windows.S_OK {
45 return nil, windows.Errno(hr)
46 }
47 return value, nil
48 }
49
50 func (i *ICoreWebView2WebMessageReceivedEventArgs) TryGetWebMessageAsString() (string, error) {
51 var u16msg *uint16
52
53 hr, _, _ := i.vtbl.TryGetWebMessageAsString.Call(
54 uintptr(unsafe.Pointer(i)),
55 uintptr(unsafe.Pointer(&u16msg)),
56 )
57 if windows.Handle(hr) != windows.S_OK {
58 return "", windows.Errno(hr)
59 }
60 defer windows.CoTaskMemFree(unsafe.Pointer(u16msg))
61
62 msg := windows.UTF16PtrToString(u16msg)
63
64 return msg, nil
65 }
66
66 lines GO