64 lines
1.0 KiB
Go
64 lines
1.0 KiB
Go
|
// +build windows
|
||
|
|
||
|
package ole
|
||
|
|
||
|
import (
|
||
|
"syscall"
|
||
|
"unsafe"
|
||
|
)
|
||
|
|
||
|
func (enum *IEnumVARIANT) Clone() (cloned *IEnumVARIANT, err error) {
|
||
|
hr, _, _ := syscall.Syscall(
|
||
|
enum.VTable().Clone,
|
||
|
2,
|
||
|
uintptr(unsafe.Pointer(enum)),
|
||
|
uintptr(unsafe.Pointer(&cloned)),
|
||
|
0)
|
||
|
if hr != 0 {
|
||
|
err = NewError(hr)
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func (enum *IEnumVARIANT) Reset() (err error) {
|
||
|
hr, _, _ := syscall.Syscall(
|
||
|
enum.VTable().Reset,
|
||
|
1,
|
||
|
uintptr(unsafe.Pointer(enum)),
|
||
|
0,
|
||
|
0)
|
||
|
if hr != 0 {
|
||
|
err = NewError(hr)
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func (enum *IEnumVARIANT) Skip(celt uint) (err error) {
|
||
|
hr, _, _ := syscall.Syscall(
|
||
|
enum.VTable().Skip,
|
||
|
2,
|
||
|
uintptr(unsafe.Pointer(enum)),
|
||
|
uintptr(celt),
|
||
|
0)
|
||
|
if hr != 0 {
|
||
|
err = NewError(hr)
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func (enum *IEnumVARIANT) Next(celt uint) (array VARIANT, length uint, err error) {
|
||
|
hr, _, _ := syscall.Syscall6(
|
||
|
enum.VTable().Next,
|
||
|
4,
|
||
|
uintptr(unsafe.Pointer(enum)),
|
||
|
uintptr(celt),
|
||
|
uintptr(unsafe.Pointer(&array)),
|
||
|
uintptr(unsafe.Pointer(&length)),
|
||
|
0,
|
||
|
0)
|
||
|
if hr != 0 {
|
||
|
err = NewError(hr)
|
||
|
}
|
||
|
return
|
||
|
}
|