1// +build windows
2
3package ole
4
5import (
6	"syscall"
7	"unsafe"
8)
9
10func (v *IConnectionPoint) GetConnectionInterface(piid **GUID) int32 {
11	// XXX: This doesn't look like it does what it's supposed to
12	return release((*IUnknown)(unsafe.Pointer(v)))
13}
14
15func (v *IConnectionPoint) Advise(unknown *IUnknown) (cookie uint32, err error) {
16	hr, _, _ := syscall.Syscall(
17		v.VTable().Advise,
18		3,
19		uintptr(unsafe.Pointer(v)),
20		uintptr(unsafe.Pointer(unknown)),
21		uintptr(unsafe.Pointer(&cookie)))
22	if hr != 0 {
23		err = NewError(hr)
24	}
25	return
26}
27
28func (v *IConnectionPoint) Unadvise(cookie uint32) (err error) {
29	hr, _, _ := syscall.Syscall(
30		v.VTable().Unadvise,
31		2,
32		uintptr(unsafe.Pointer(v)),
33		uintptr(cookie),
34		0)
35	if hr != 0 {
36		err = NewError(hr)
37	}
38	return
39}
40
41func (v *IConnectionPoint) EnumConnections(p *unsafe.Pointer) error {
42	return NewError(E_NOTIMPL)
43}
44