44 lines
864 B
Go
44 lines
864 B
Go
|
// +build windows
|
||
|
|
||
|
package ole
|
||
|
|
||
|
import (
|
||
|
"syscall"
|
||
|
"unsafe"
|
||
|
)
|
||
|
|
||
|
func (v *IConnectionPoint) GetConnectionInterface(piid **GUID) int32 {
|
||
|
// XXX: This doesn't look like it does what it's supposed to
|
||
|
return release((*IUnknown)(unsafe.Pointer(v)))
|
||
|
}
|
||
|
|
||
|
func (v *IConnectionPoint) Advise(unknown *IUnknown) (cookie uint32, err error) {
|
||
|
hr, _, _ := syscall.Syscall(
|
||
|
v.VTable().Advise,
|
||
|
3,
|
||
|
uintptr(unsafe.Pointer(v)),
|
||
|
uintptr(unsafe.Pointer(unknown)),
|
||
|
uintptr(unsafe.Pointer(&cookie)))
|
||
|
if hr != 0 {
|
||
|
err = NewError(hr)
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func (v *IConnectionPoint) Unadvise(cookie uint32) (err error) {
|
||
|
hr, _, _ := syscall.Syscall(
|
||
|
v.VTable().Unadvise,
|
||
|
2,
|
||
|
uintptr(unsafe.Pointer(v)),
|
||
|
uintptr(cookie),
|
||
|
0)
|
||
|
if hr != 0 {
|
||
|
err = NewError(hr)
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func (v *IConnectionPoint) EnumConnections(p *unsafe.Pointer) error {
|
||
|
return NewError(E_NOTIMPL)
|
||
|
}
|