first commit
This commit is contained in:
223
windows/foundation/collections/ivector.go
Normal file
223
windows/foundation/collections/ivector.go
Normal file
@ -0,0 +1,223 @@
|
||||
// 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 GUIDIVector string = "913337e9-11a1-4345-a3a2-4e7f956e222d"
|
||||
const SignatureIVector string = "{913337e9-11a1-4345-a3a2-4e7f956e222d}"
|
||||
|
||||
type IVector struct {
|
||||
ole.IInspectable
|
||||
}
|
||||
|
||||
type IVectorVtbl struct {
|
||||
ole.IInspectableVtbl
|
||||
|
||||
GetAt uintptr
|
||||
GetSize uintptr
|
||||
GetView uintptr
|
||||
IndexOf uintptr
|
||||
SetAt uintptr
|
||||
InsertAt uintptr
|
||||
RemoveAt uintptr
|
||||
Append uintptr
|
||||
RemoveAtEnd uintptr
|
||||
Clear uintptr
|
||||
GetMany uintptr
|
||||
ReplaceAll uintptr
|
||||
}
|
||||
|
||||
func (v *IVector) VTable() *IVectorVtbl {
|
||||
return (*IVectorVtbl)(unsafe.Pointer(v.RawVTable))
|
||||
}
|
||||
|
||||
func (v *IVector) 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 *IVector) 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 *IVector) GetView() (*IVectorView, error) {
|
||||
var out *IVectorView
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().GetView,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(unsafe.Pointer(&out)), // out IVectorView
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return nil, ole.NewError(hr)
|
||||
}
|
||||
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (v *IVector) 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 *IVector) SetAt(index uint32, value unsafe.Pointer) error {
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().SetAt,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(index), // in uint32
|
||||
uintptr(value), // in unsafe.Pointer
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return ole.NewError(hr)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v *IVector) InsertAt(index uint32, value unsafe.Pointer) error {
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().InsertAt,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(index), // in uint32
|
||||
uintptr(value), // in unsafe.Pointer
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return ole.NewError(hr)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v *IVector) RemoveAt(index uint32) error {
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().RemoveAt,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(index), // in uint32
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return ole.NewError(hr)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v *IVector) Append(value unsafe.Pointer) error {
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().Append,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(value), // in unsafe.Pointer
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return ole.NewError(hr)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v *IVector) RemoveAtEnd() error {
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().RemoveAtEnd,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return ole.NewError(hr)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v *IVector) Clear() error {
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().Clear,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return ole.NewError(hr)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v *IVector) 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
|
||||
}
|
||||
|
||||
func (v *IVector) ReplaceAll(itemsSize uint32, items []unsafe.Pointer) error {
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().ReplaceAll,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(itemsSize), // in uint32
|
||||
uintptr(unsafe.Pointer(&items[0])), // in unsafe.Pointer
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return ole.NewError(hr)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user