Files
go-winrt/windows/storage/streams/idatawriter.go
2025-08-22 17:42:23 -04:00

87 lines
2.0 KiB
Go

// Code generated by winrt-go-gen. DO NOT EDIT.
//go:build windows
//nolint:all
package streams
import (
"syscall"
"unsafe"
"github.com/go-ole/go-ole"
)
const GUIDIDataWriter string = "64b89265-d341-4922-b38a-dd4af8808c4e"
const SignatureIDataWriter string = "{64b89265-d341-4922-b38a-dd4af8808c4e}"
type IDataWriter struct {
ole.IInspectable
}
type IDataWriterVtbl struct {
ole.IInspectableVtbl
GetUnstoredBufferLength uintptr
GetUnicodeEncoding uintptr
SetUnicodeEncoding uintptr
GetByteOrder uintptr
SetByteOrder uintptr
WriteByte uintptr
WriteBytes uintptr
WriteBuffer uintptr
WriteBufferRange uintptr
WriteBoolean uintptr
WriteGuid uintptr
WriteInt16 uintptr
WriteInt32 uintptr
WriteInt64 uintptr
WriteUInt16 uintptr
WriteUInt32 uintptr
WriteUInt64 uintptr
WriteSingle uintptr
WriteDouble uintptr
WriteDateTime uintptr
WriteTimeSpan uintptr
WriteString uintptr
MeasureString uintptr
StoreAsync uintptr
FlushAsync uintptr
DetachBuffer uintptr
DetachStream uintptr
}
func (v *IDataWriter) VTable() *IDataWriterVtbl {
return (*IDataWriterVtbl)(unsafe.Pointer(v.RawVTable))
}
func (v *IDataWriter) WriteBytes(valueSize uint32, value []uint8) error {
hr, _, _ := syscall.SyscallN(
v.VTable().WriteBytes,
uintptr(unsafe.Pointer(v)), // this
uintptr(valueSize), // in uint32
uintptr(unsafe.Pointer(&value[0])), // in uint8
)
if hr != 0 {
return ole.NewError(hr)
}
return nil
}
func (v *IDataWriter) DetachBuffer() (*IBuffer, error) {
var out *IBuffer
hr, _, _ := syscall.SyscallN(
v.VTable().DetachBuffer,
uintptr(unsafe.Pointer(v)), // this
uintptr(unsafe.Pointer(&out)), // out IBuffer
)
if hr != 0 {
return nil, ole.NewError(hr)
}
return out, nil
}