mirror of
https://github.com/wavetermdev/wails.git
synced 2026-08-05 13:53:43 -07:00
Update headers code
This commit is contained in:
+56
@@ -7,6 +7,10 @@ import (
|
||||
"golang.org/x/sys/windows"
|
||||
)
|
||||
|
||||
const (
|
||||
ERROR_ELEMENT_NOT_FOUND syscall.Errno = 0x80070490
|
||||
)
|
||||
|
||||
type _ICoreWebView2HttpRequestHeadersVtbl struct {
|
||||
_IUnknownVtbl
|
||||
GetHeader ComProc
|
||||
@@ -25,6 +29,58 @@ func (i *ICoreWebView2HttpRequestHeaders) Release() error {
|
||||
return i.vtbl.CallRelease(unsafe.Pointer(i))
|
||||
}
|
||||
|
||||
// GetHeader returns the value of the specified header. If the header is not found
|
||||
// ERROR_ELEMENT_NOT_FOUND is returned as error.
|
||||
func (i *ICoreWebView2HttpRequestHeaders) GetHeader(name string) (string, error) {
|
||||
_name, err := windows.UTF16PtrFromString(name)
|
||||
if err != nil {
|
||||
return "", nil
|
||||
}
|
||||
|
||||
var _value *uint16
|
||||
res, _, err := i.vtbl.GetHeader.Call(
|
||||
uintptr(unsafe.Pointer(i)),
|
||||
uintptr(unsafe.Pointer(_name)),
|
||||
uintptr(unsafe.Pointer(&_value)),
|
||||
)
|
||||
if err != windows.ERROR_SUCCESS {
|
||||
return "", err
|
||||
}
|
||||
if windows.Handle(res) != windows.S_OK {
|
||||
return "", syscall.Errno(res)
|
||||
}
|
||||
|
||||
value := windows.UTF16PtrToString(_value)
|
||||
windows.CoTaskMemFree(unsafe.Pointer(_value))
|
||||
return value, nil
|
||||
}
|
||||
|
||||
// SetHeader sets the specified header to the value.
|
||||
func (i *ICoreWebView2HttpRequestHeaders) SetHeader(name, value string) error {
|
||||
_name, err := windows.UTF16PtrFromString(name)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
_value, err := windows.UTF16PtrFromString(value)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
res, _, err := i.vtbl.SetHeader.Call(
|
||||
uintptr(unsafe.Pointer(i)),
|
||||
uintptr(unsafe.Pointer(_name)),
|
||||
uintptr(unsafe.Pointer(_value)),
|
||||
)
|
||||
if err != windows.ERROR_SUCCESS {
|
||||
return err
|
||||
}
|
||||
if windows.Handle(res) != windows.S_OK {
|
||||
return syscall.Errno(res)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetIterator returns an iterator over the collection of request headers. Make sure to call
|
||||
// Release on the returned Object after finished using it.
|
||||
func (i *ICoreWebView2HttpRequestHeaders) GetIterator() (*ICoreWebView2HttpHeadersCollectionIterator, error) {
|
||||
|
||||
Reference in New Issue
Block a user