first commit
This commit is contained in:
101
windows/foundation/collections/ivectorview.go
Normal file
101
windows/foundation/collections/ivectorview.go
Normal file
@ -0,0 +1,101 @@
|
||||
// Code generated by winrt-go-gen. DO NOT EDIT.
|
||||
|
||||
//go:build windows
|
||||
|
||||
//nolint:all
|
||||
package collections
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
|
||||
"github.com/go-ole/go-ole"
|
||||
)
|
||||
|
||||
const GUIDIVectorView string = "bbe1fa4c-b0e3-4583-baef-1f1b2e483e56"
|
||||
const SignatureIVectorView string = "{bbe1fa4c-b0e3-4583-baef-1f1b2e483e56}"
|
||||
|
||||
type IVectorView struct {
|
||||
ole.IInspectable
|
||||
}
|
||||
|
||||
type IVectorViewVtbl struct {
|
||||
ole.IInspectableVtbl
|
||||
|
||||
GetAt uintptr
|
||||
GetSize uintptr
|
||||
IndexOf uintptr
|
||||
GetMany uintptr
|
||||
}
|
||||
|
||||
func (v *IVectorView) VTable() *IVectorViewVtbl {
|
||||
return (*IVectorViewVtbl)(unsafe.Pointer(v.RawVTable))
|
||||
}
|
||||
|
||||
func (v *IVectorView) GetAt(index uint32) (unsafe.Pointer, error) {
|
||||
var out unsafe.Pointer
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().GetAt,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(index), // in uint32
|
||||
uintptr(unsafe.Pointer(&out)), // out unsafe.Pointer
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return nil, ole.NewError(hr)
|
||||
}
|
||||
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (v *IVectorView) GetSize() (uint32, error) {
|
||||
var out uint32
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().GetSize,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(unsafe.Pointer(&out)), // out uint32
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return 0, ole.NewError(hr)
|
||||
}
|
||||
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (v *IVectorView) IndexOf(value unsafe.Pointer) (uint32, bool, error) {
|
||||
var index uint32
|
||||
var out bool
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().IndexOf,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(value), // in unsafe.Pointer
|
||||
uintptr(unsafe.Pointer(&index)), // out uint32
|
||||
uintptr(unsafe.Pointer(&out)), // out bool
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return 0, false, ole.NewError(hr)
|
||||
}
|
||||
|
||||
return index, out, nil
|
||||
}
|
||||
|
||||
func (v *IVectorView) GetMany(startIndex uint32, itemsSize uint32) ([]unsafe.Pointer, uint32, error) {
|
||||
var items []unsafe.Pointer = make([]unsafe.Pointer, itemsSize)
|
||||
var out uint32
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().GetMany,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(startIndex), // in uint32
|
||||
uintptr(itemsSize), // in uint32
|
||||
uintptr(unsafe.Pointer(&items[0])), // out unsafe.Pointer
|
||||
uintptr(unsafe.Pointer(&out)), // out uint32
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return nil, 0, ole.NewError(hr)
|
||||
}
|
||||
|
||||
return items, out, nil
|
||||
}
|
Reference in New Issue
Block a user