go-tg-screenshot-bot

Форк
0
213 строк · 5.8 Кб
1
// Copyright 2010 The win Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
4

5
// +build windows
6

7
package win
8

9
import (
10
	"syscall"
11
	"unsafe"
12
)
13

14
type REOBJECT struct {
15
	cbStruct uint32          // Size of structure
16
	cp       int32           // Character position of object
17
	clsid    CLSID           // Class ID of object
18
	poleobj  *IOleObject     // OLE object interface
19
	pstg     *IStorage       // Associated storage interface
20
	polesite *IOleClientSite // Associated client site interface
21
	sizel    SIZE            // Size of object (may be 0,0)
22
	dvaspect uint32          // Display aspect to use
23
	dwFlags  uint32          // Object status flags
24
	dwUser   uint32          // Dword for user's use
25
}
26

27
type IRichEditOleVtbl struct {
28
	IUnknownVtbl
29
	GetClientSite        uintptr
30
	GetObjectCount       uintptr
31
	GetLinkCount         uintptr
32
	GetObject            uintptr
33
	InsertObject         uintptr
34
	ConvertObject        uintptr
35
	ActivateAs           uintptr
36
	SetHostNames         uintptr
37
	SetLinkAvailable     uintptr
38
	SetDvaspect          uintptr
39
	HandsOffStorage      uintptr
40
	SaveCompleted        uintptr
41
	InPlaceDeactivate    uintptr
42
	ContextSensitiveHelp uintptr
43
	GetClipboardData     uintptr
44
	ImportDataObject     uintptr
45
}
46

47
type IRichEditOle struct {
48
	LpVtbl *IRichEditOleVtbl
49
}
50

51
func (obj *IRichEditOle) QueryInterface(riid REFIID, ppvObject *unsafe.Pointer) HRESULT {
52
	ret, _, _ := syscall.Syscall(obj.LpVtbl.QueryInterface, 3,
53
		uintptr(unsafe.Pointer(obj)),
54
		uintptr(unsafe.Pointer(riid)),
55
		uintptr(unsafe.Pointer(ppvObject)))
56
	return HRESULT(ret)
57
}
58

59
func (obj *IRichEditOle) AddRef() uint32 {
60
	ret, _, _ := syscall.Syscall(obj.LpVtbl.AddRef, 1,
61
		uintptr(unsafe.Pointer(obj)),
62
		0,
63
		0)
64
	return uint32(ret)
65
}
66

67
func (obj *IRichEditOle) Release() uint32 {
68
	ret, _, _ := syscall.Syscall(obj.LpVtbl.Release, 1,
69
		uintptr(unsafe.Pointer(obj)),
70
		0,
71
		0)
72
	return uint32(ret)
73
}
74

75
func (obj *IRichEditOle) GetClientSite(lplpolesite **IOleClientSite) HRESULT {
76
	ret, _, _ := syscall.Syscall(obj.LpVtbl.GetClientSite, 2,
77
		uintptr(unsafe.Pointer(obj)),
78
		uintptr(unsafe.Pointer(lplpolesite)),
79
		0)
80
	return HRESULT(ret)
81
}
82

83
func (obj *IRichEditOle) GetObjectCount() int32 {
84
	ret, _, _ := syscall.Syscall(obj.LpVtbl.GetObjectCount, 1,
85
		uintptr(unsafe.Pointer(obj)),
86
		0,
87
		0)
88
	return int32(ret)
89
}
90

91
func (obj *IRichEditOle) GetLinkCount() int32 {
92
	ret, _, _ := syscall.Syscall(obj.LpVtbl.GetLinkCount, 1,
93
		uintptr(unsafe.Pointer(obj)),
94
		0,
95
		0)
96
	return int32(ret)
97
}
98

99
func (obj *IRichEditOle) GetObject(iob int32, lpreobject *REOBJECT, dwFlags uint32) HRESULT {
100
	ret, _, _ := syscall.Syscall6(obj.LpVtbl.GetObject, 4,
101
		uintptr(unsafe.Pointer(obj)),
102
		uintptr(iob),
103
		uintptr(unsafe.Pointer(lpreobject)),
104
		uintptr(dwFlags),
105
		0,
106
		0)
107
	return HRESULT(ret)
108
}
109

110
func (obj *IRichEditOle) InsertObject(lpreobject *REOBJECT) HRESULT {
111
	ret, _, _ := syscall.Syscall(obj.LpVtbl.InsertObject, 2,
112
		uintptr(unsafe.Pointer(obj)),
113
		uintptr(unsafe.Pointer(lpreobject)),
114
		0)
115
	return HRESULT(ret)
116
}
117

118
func (obj *IRichEditOle) ConvertObject(iob int32, rclsidNew REFCLSID, lpstrUserTypeNew *byte) HRESULT {
119
	ret, _, _ := syscall.Syscall6(obj.LpVtbl.ConvertObject, 4,
120
		uintptr(unsafe.Pointer(obj)),
121
		uintptr(iob),
122
		uintptr(unsafe.Pointer(rclsidNew)),
123
		uintptr(unsafe.Pointer(lpstrUserTypeNew)),
124
		0,
125
		0)
126
	return HRESULT(ret)
127
}
128

129
func (obj *IRichEditOle) ActivateAs(rclsid REFCLSID, rclsidAs REFCLSID) HRESULT {
130
	ret, _, _ := syscall.Syscall(obj.LpVtbl.ActivateAs, 3,
131
		uintptr(unsafe.Pointer(obj)),
132
		uintptr(unsafe.Pointer(rclsid)),
133
		uintptr(unsafe.Pointer(rclsidAs)))
134
	return HRESULT(ret)
135
}
136

137
func (obj *IRichEditOle) SetHostNames(lpstrContainerApp *byte, lpstrContainerObj *byte) HRESULT {
138
	ret, _, _ := syscall.Syscall(obj.LpVtbl.SetHostNames, 3,
139
		uintptr(unsafe.Pointer(obj)),
140
		uintptr(unsafe.Pointer(lpstrContainerApp)),
141
		uintptr(unsafe.Pointer(lpstrContainerObj)))
142
	return HRESULT(ret)
143
}
144

145
func (obj *IRichEditOle) SetLinkAvailable(iob int32, fAvailable BOOL) HRESULT {
146
	ret, _, _ := syscall.Syscall(obj.LpVtbl.SetLinkAvailable, 3,
147
		uintptr(unsafe.Pointer(obj)),
148
		uintptr(iob),
149
		uintptr(fAvailable))
150
	return HRESULT(ret)
151
}
152

153
func (obj *IRichEditOle) SetDvaspect(iob int32, dvaspect uint32) HRESULT {
154
	ret, _, _ := syscall.Syscall(obj.LpVtbl.SetDvaspect, 3,
155
		uintptr(unsafe.Pointer(obj)),
156
		uintptr(iob),
157
		uintptr(dvaspect))
158
	return HRESULT(ret)
159
}
160

161
func (obj *IRichEditOle) HandsOffStorage(iob int32) HRESULT {
162
	ret, _, _ := syscall.Syscall(obj.LpVtbl.HandsOffStorage, 2,
163
		uintptr(unsafe.Pointer(obj)),
164
		uintptr(iob),
165
		0)
166
	return HRESULT(ret)
167
}
168

169
func (obj *IRichEditOle) SaveCompleted(iob int32, lpstg *IStorage) HRESULT {
170
	ret, _, _ := syscall.Syscall(obj.LpVtbl.SaveCompleted, 3,
171
		uintptr(unsafe.Pointer(obj)),
172
		uintptr(iob),
173
		uintptr(unsafe.Pointer(lpstg)))
174
	return HRESULT(ret)
175
}
176

177
func (obj *IRichEditOle) InPlaceDeactivate() HRESULT {
178
	ret, _, _ := syscall.Syscall(obj.LpVtbl.InPlaceDeactivate, 1,
179
		uintptr(unsafe.Pointer(obj)),
180
		0,
181
		0)
182
	return HRESULT(ret)
183
}
184

185
func (obj *IRichEditOle) ContextSensitiveHelp(fEnterMode BOOL) HRESULT {
186
	ret, _, _ := syscall.Syscall(obj.LpVtbl.ContextSensitiveHelp, 2,
187
		uintptr(unsafe.Pointer(obj)),
188
		uintptr(fEnterMode),
189
		0)
190
	return HRESULT(ret)
191
}
192

193
func (obj *IRichEditOle) GetClipboardData(lpchrg *CHARRANGE, reco uint32, lplpdataobj **IDataObject) HRESULT {
194
	ret, _, _ := syscall.Syscall6(obj.LpVtbl.GetClipboardData, 4,
195
		uintptr(unsafe.Pointer(obj)),
196
		uintptr(unsafe.Pointer(lpchrg)),
197
		uintptr(reco),
198
		uintptr(unsafe.Pointer(lplpdataobj)),
199
		0,
200
		0)
201
	return HRESULT(ret)
202
}
203

204
func (obj *IRichEditOle) ImportDataObject(lpdataobj *IDataObject, cf CLIPFORMAT, hMetaPict HGLOBAL) HRESULT {
205
	ret, _, _ := syscall.Syscall6(obj.LpVtbl.ImportDataObject, 4,
206
		uintptr(unsafe.Pointer(obj)),
207
		uintptr(unsafe.Pointer(lpdataobj)),
208
		uintptr(cf),
209
		uintptr(hMetaPict),
210
		0,
211
		0)
212
	return HRESULT(ret)
213
}
214

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.