first commit
This commit is contained in:
102
windows/foundation/deferral.go
Normal file
102
windows/foundation/deferral.go
Normal file
@ -0,0 +1,102 @@
|
||||
// Code generated by winrt-go-gen. DO NOT EDIT.
|
||||
|
||||
//go:build windows
|
||||
|
||||
//nolint:all
|
||||
package foundation
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
|
||||
"github.com/go-ole/go-ole"
|
||||
)
|
||||
|
||||
const SignatureDeferral string = "rc(Windows.Foundation.Deferral;{d6269732-3b7f-46a7-b40b-4fdca2a2c693})"
|
||||
|
||||
type Deferral struct {
|
||||
ole.IUnknown
|
||||
}
|
||||
|
||||
func (impl *Deferral) Complete() error {
|
||||
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiDeferral))
|
||||
defer itf.Release()
|
||||
v := (*iDeferral)(unsafe.Pointer(itf))
|
||||
return v.Complete()
|
||||
}
|
||||
|
||||
func (impl *Deferral) Close() error {
|
||||
itf := impl.MustQueryInterface(ole.NewGUID(GUIDIClosable))
|
||||
defer itf.Release()
|
||||
v := (*IClosable)(unsafe.Pointer(itf))
|
||||
return v.Close()
|
||||
}
|
||||
|
||||
const GUIDiDeferral string = "d6269732-3b7f-46a7-b40b-4fdca2a2c693"
|
||||
const SignatureiDeferral string = "{d6269732-3b7f-46a7-b40b-4fdca2a2c693}"
|
||||
|
||||
type iDeferral struct {
|
||||
ole.IInspectable
|
||||
}
|
||||
|
||||
type iDeferralVtbl struct {
|
||||
ole.IInspectableVtbl
|
||||
|
||||
Complete uintptr
|
||||
}
|
||||
|
||||
func (v *iDeferral) VTable() *iDeferralVtbl {
|
||||
return (*iDeferralVtbl)(unsafe.Pointer(v.RawVTable))
|
||||
}
|
||||
|
||||
func (v *iDeferral) Complete() error {
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().Complete,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return ole.NewError(hr)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
const GUIDiDeferralFactory string = "65a1ecc5-3fb5-4832-8ca9-f061b281d13a"
|
||||
const SignatureiDeferralFactory string = "{65a1ecc5-3fb5-4832-8ca9-f061b281d13a}"
|
||||
|
||||
type iDeferralFactory struct {
|
||||
ole.IInspectable
|
||||
}
|
||||
|
||||
type iDeferralFactoryVtbl struct {
|
||||
ole.IInspectableVtbl
|
||||
|
||||
DeferralCreate uintptr
|
||||
}
|
||||
|
||||
func (v *iDeferralFactory) VTable() *iDeferralFactoryVtbl {
|
||||
return (*iDeferralFactoryVtbl)(unsafe.Pointer(v.RawVTable))
|
||||
}
|
||||
|
||||
func DeferralCreate(handler *DeferralCompletedHandler) (*Deferral, error) {
|
||||
inspectable, err := ole.RoGetActivationFactory("Windows.Foundation.Deferral", ole.NewGUID(GUIDiDeferralFactory))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
v := (*iDeferralFactory)(unsafe.Pointer(inspectable))
|
||||
|
||||
var out *Deferral
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().DeferralCreate,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(unsafe.Pointer(handler)), // in DeferralCompletedHandler
|
||||
uintptr(unsafe.Pointer(&out)), // out Deferral
|
||||
)
|
||||
|
||||
if hr != 0 {
|
||||
return nil, ole.NewError(hr)
|
||||
}
|
||||
|
||||
return out, nil
|
||||
}
|
Reference in New Issue
Block a user