energy/cef/cef-types-binary-value.go
2023-03-04 11:58:35 +08:00

94 lines
2.6 KiB
Go

//----------------------------------------
//
// Copyright © yanghy. All Rights Reserved.
//
// Licensed under Apache License Version 2.0, January 2004
//
// https://www.apache.org/licenses/LICENSE-2.0
//
//----------------------------------------
// CEF 二进制类型 BinaryValueRef.New() or Create()
//
// ICefBinaryValue
// 示例:
// Go: 创建并绑定 ICefBinaryValue 对象名称: myobj
// JavaScript: let obj = new Uint8Array(window.myobj);
// console.log(obj)
package cef
import (
"github.com/energye/energy/common/imports"
"github.com/energye/energy/types"
"github.com/energye/golcl/lcl/api"
"unsafe"
)
// BinaryValueRef -> ICefBinaryValue
var BinaryValueRef cefBinaryValue
//cefBinaryValue
type cefBinaryValue uintptr
// New 创建一个带有数据的二进对象
func (*cefBinaryValue) New(data []byte) *ICefBinaryValue {
var result uintptr
imports.Proc(internale_CefBinaryValueRef_New).Call(uintptr(unsafe.Pointer(&data[0])), uintptr(uint32(len(data))), uintptr(unsafe.Pointer(&result)))
return &ICefBinaryValue{
instance: unsafe.Pointer(result),
}
}
// Create 创建一个二进对象
func (*cefBinaryValue) Create() *ICefBinaryValue {
var result uintptr
imports.Proc(internale_CefBinaryValueRef_Create).Call(uintptr(unsafe.Pointer(&result)))
return &ICefBinaryValue{
instance: unsafe.Pointer(result),
}
}
// UnWrap
func (*cefBinaryValue) UnWrap(data *ICefBinaryValue) *ICefBinaryValue {
var result uintptr
imports.Proc(internale_CefBinaryValueRef_UnWrap).Call(data.Instance(), uintptr(unsafe.Pointer(&result)))
data.instance = unsafe.Pointer(result)
return data
}
// Instance 实例
func (m *ICefBinaryValue) Instance() uintptr {
if m == nil {
return 0
}
return uintptr(m.instance)
}
func (m *ICefBinaryValue) IsValid() bool {
r1, _, _ := imports.Proc(internale_CefBinaryValue_IsValid).Call(m.Instance())
return api.GoBool(r1)
}
func (m *ICefBinaryValue) IsOwned() bool {
r1, _, _ := imports.Proc(internale_CefBinaryValue_IsOwned).Call(m.Instance())
return api.GoBool(r1)
}
func (m *ICefBinaryValue) Copy() *ICefBinaryValue {
var result uintptr
imports.Proc(internale_CefBinaryValue_Copy).Call(m.Instance(), uintptr(unsafe.Pointer(&result)))
return &ICefBinaryValue{
instance: unsafe.Pointer(result),
}
}
func (m *ICefBinaryValue) GetSize() uint32 {
r1, _, _ := imports.Proc(internale_CefBinaryValue_GetSize).Call(m.Instance())
return uint32(r1)
}
func (m *ICefBinaryValue) GetData(buffer []byte, dataOffset types.NativeUInt) uint32 {
r1, _, _ := imports.Proc(internale_CefBinaryValue_GetData).Call(m.Instance(), uintptr(unsafe.Pointer(&buffer[0])), uintptr(uint32(len(buffer))), dataOffset.ToPtr())
return uint32(r1)
}