github.com/gofiber/fiber/v2@v2.47.0/internal/go-ole/ienumvariant_windows.go (about)

     1  //go:build windows
     2  // +build windows
     3  
     4  package ole
     5  
     6  import (
     7  	"syscall"
     8  	"unsafe"
     9  )
    10  
    11  func (enum *IEnumVARIANT) Clone() (cloned *IEnumVARIANT, err error) {
    12  	hr, _, _ := syscall.Syscall(
    13  		enum.VTable().Clone,
    14  		2,
    15  		uintptr(unsafe.Pointer(enum)),
    16  		uintptr(unsafe.Pointer(&cloned)),
    17  		0)
    18  	if hr != 0 {
    19  		err = NewError(hr)
    20  	}
    21  	return
    22  }
    23  
    24  func (enum *IEnumVARIANT) Reset() (err error) {
    25  	hr, _, _ := syscall.Syscall(
    26  		enum.VTable().Reset,
    27  		1,
    28  		uintptr(unsafe.Pointer(enum)),
    29  		0,
    30  		0)
    31  	if hr != 0 {
    32  		err = NewError(hr)
    33  	}
    34  	return
    35  }
    36  
    37  func (enum *IEnumVARIANT) Skip(celt uint) (err error) {
    38  	hr, _, _ := syscall.Syscall(
    39  		enum.VTable().Skip,
    40  		2,
    41  		uintptr(unsafe.Pointer(enum)),
    42  		uintptr(celt),
    43  		0)
    44  	if hr != 0 {
    45  		err = NewError(hr)
    46  	}
    47  	return
    48  }
    49  
    50  func (enum *IEnumVARIANT) Next(celt uint) (array VARIANT, length uint, err error) {
    51  	hr, _, _ := syscall.Syscall6(
    52  		enum.VTable().Next,
    53  		4,
    54  		uintptr(unsafe.Pointer(enum)),
    55  		uintptr(celt),
    56  		uintptr(unsafe.Pointer(&array)),
    57  		uintptr(unsafe.Pointer(&length)),
    58  		0,
    59  		0)
    60  	if hr != 0 {
    61  		err = NewError(hr)
    62  	}
    63  	return
    64  }