| 123456789101112131415161718192021222324252627282930313233 |
- //go:build windows
- package ole
- import (
- "unsafe"
- )
- func safeArrayFromByteSlice(slice []byte) *SafeArray {
- array, _ := safeArrayCreateVector(VT_UI1, 0, uint32(len(slice)))
- if array == nil {
- panic("Could not convert []byte to SAFEARRAY")
- }
- for i, v := range slice {
- safeArrayPutElement(array, int64(i), uintptr(unsafe.Pointer(&v)))
- }
- return array
- }
- func safeArrayFromStringSlice(slice []string) *SafeArray {
- array, _ := safeArrayCreateVector(VT_BSTR, 0, uint32(len(slice)))
- if array == nil {
- panic("Could not convert []string to SAFEARRAY")
- }
- // SysAllocStringLen(s)
- for i, v := range slice {
- safeArrayPutElement(array, int64(i), uintptr(unsafe.Pointer(SysAllocStringLen(v))))
- }
- return array
- }
|