iconnectionpoint_windows.go 865 B

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