summaryrefslogtreecommitdiffstatshomepage
path: root/richole.go
diff options
context:
space:
mode:
Diffstat (limited to 'richole.go')
-rw-r--r--richole.go213
1 files changed, 213 insertions, 0 deletions
diff --git a/richole.go b/richole.go
new file mode 100644
index 00000000..e1e3fa65
--- /dev/null
+++ b/richole.go
@@ -0,0 +1,213 @@
+// Copyright 2010 The win Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build windows
+
+package win
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+type REOBJECT struct {
+ cbStruct uint32 // Size of structure
+ cp int32 // Character position of object
+ clsid CLSID // Class ID of object
+ poleobj *IOleObject // OLE object interface
+ pstg *IStorage // Associated storage interface
+ polesite *IOleClientSite // Associated client site interface
+ sizel SIZE // Size of object (may be 0,0)
+ dvaspect uint32 // Display aspect to use
+ dwFlags uint32 // Object status flags
+ dwUser uint32 // Dword for user's use
+}
+
+type IRichEditOleVtbl struct {
+ IUnknownVtbl
+ GetClientSite uintptr
+ GetObjectCount uintptr
+ GetLinkCount uintptr
+ GetObject uintptr
+ InsertObject uintptr
+ ConvertObject uintptr
+ ActivateAs uintptr
+ SetHostNames uintptr
+ SetLinkAvailable uintptr
+ SetDvaspect uintptr
+ HandsOffStorage uintptr
+ SaveCompleted uintptr
+ InPlaceDeactivate uintptr
+ ContextSensitiveHelp uintptr
+ GetClipboardData uintptr
+ ImportDataObject uintptr
+}
+
+type IRichEditOle struct {
+ LpVtbl *IRichEditOleVtbl
+}
+
+func (obj *IRichEditOle) QueryInterface(riid REFIID, ppvObject *unsafe.Pointer) HRESULT {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.QueryInterface, 3,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(unsafe.Pointer(riid)),
+ uintptr(unsafe.Pointer(ppvObject)))
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) AddRef() uint32 {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.AddRef, 1,
+ uintptr(unsafe.Pointer(obj)),
+ 0,
+ 0)
+ return uint32(ret)
+}
+
+func (obj *IRichEditOle) Release() uint32 {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.Release, 1,
+ uintptr(unsafe.Pointer(obj)),
+ 0,
+ 0)
+ return uint32(ret)
+}
+
+func (obj *IRichEditOle) GetClientSite(lplpolesite **IOleClientSite) HRESULT {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.GetClientSite, 2,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(unsafe.Pointer(lplpolesite)),
+ 0)
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) GetObjectCount() int32 {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.GetObjectCount, 1,
+ uintptr(unsafe.Pointer(obj)),
+ 0,
+ 0)
+ return int32(ret)
+}
+
+func (obj *IRichEditOle) GetLinkCount() int32 {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.GetLinkCount, 1,
+ uintptr(unsafe.Pointer(obj)),
+ 0,
+ 0)
+ return int32(ret)
+}
+
+func (obj *IRichEditOle) GetObject(iob int32, lpreobject *REOBJECT, dwFlags uint32) HRESULT {
+ ret, _, _ := syscall.Syscall6(obj.LpVtbl.GetObject, 4,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(iob),
+ uintptr(unsafe.Pointer(lpreobject)),
+ uintptr(dwFlags),
+ 0,
+ 0)
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) InsertObject(lpreobject *REOBJECT) HRESULT {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.InsertObject, 2,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(unsafe.Pointer(lpreobject)),
+ 0)
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) ConvertObject(iob int32, rclsidNew REFCLSID, lpstrUserTypeNew *byte) HRESULT {
+ ret, _, _ := syscall.Syscall6(obj.LpVtbl.ConvertObject, 4,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(iob),
+ uintptr(unsafe.Pointer(rclsidNew)),
+ uintptr(unsafe.Pointer(lpstrUserTypeNew)),
+ 0,
+ 0)
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) ActivateAs(rclsid REFCLSID, rclsidAs REFCLSID) HRESULT {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.ActivateAs, 3,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(unsafe.Pointer(rclsid)),
+ uintptr(unsafe.Pointer(rclsidAs)))
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) SetHostNames(lpstrContainerApp *byte, lpstrContainerObj *byte) HRESULT {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.SetHostNames, 3,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(unsafe.Pointer(lpstrContainerApp)),
+ uintptr(unsafe.Pointer(lpstrContainerObj)))
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) SetLinkAvailable(iob int32, fAvailable BOOL) HRESULT {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.SetLinkAvailable, 3,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(iob),
+ uintptr(fAvailable))
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) SetDvaspect(iob int32, dvaspect uint32) HRESULT {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.SetDvaspect, 3,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(iob),
+ uintptr(dvaspect))
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) HandsOffStorage(iob int32) HRESULT {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.HandsOffStorage, 2,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(iob),
+ 0)
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) SaveCompleted(iob int32, lpstg *IStorage) HRESULT {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.SaveCompleted, 3,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(iob),
+ uintptr(unsafe.Pointer(lpstg)))
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) InPlaceDeactivate() HRESULT {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.InPlaceDeactivate, 1,
+ uintptr(unsafe.Pointer(obj)),
+ 0,
+ 0)
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) ContextSensitiveHelp(fEnterMode BOOL) HRESULT {
+ ret, _, _ := syscall.Syscall(obj.LpVtbl.ContextSensitiveHelp, 2,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(fEnterMode),
+ 0)
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) GetClipboardData(lpchrg *CHARRANGE, reco uint32, lplpdataobj **IDataObject) HRESULT {
+ ret, _, _ := syscall.Syscall6(obj.LpVtbl.GetClipboardData, 4,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(unsafe.Pointer(lpchrg)),
+ uintptr(reco),
+ uintptr(unsafe.Pointer(lplpdataobj)),
+ 0,
+ 0)
+ return HRESULT(ret)
+}
+
+func (obj *IRichEditOle) ImportDataObject(lpdataobj *IDataObject, cf CLIPFORMAT, hMetaPict HGLOBAL) HRESULT {
+ ret, _, _ := syscall.Syscall6(obj.LpVtbl.ImportDataObject, 4,
+ uintptr(unsafe.Pointer(obj)),
+ uintptr(unsafe.Pointer(lpdataobj)),
+ uintptr(cf),
+ uintptr(hMetaPict),
+ 0,
+ 0)
+ return HRESULT(ret)
+}