go-tg-screenshot-bot

Форк
0
327 строк · 9.3 Кб
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
const (
15
	DOCHOSTUIDBLCLK_DEFAULT        = 0
16
	DOCHOSTUIDBLCLK_SHOWPROPERTIES = 1
17
	DOCHOSTUIDBLCLK_SHOWCODE       = 2
18
)
19

20
const (
21
	DOCHOSTUIFLAG_DIALOG                     = 0x1
22
	DOCHOSTUIFLAG_DISABLE_HELP_MENU          = 0x2
23
	DOCHOSTUIFLAG_NO3DBORDER                 = 0x4
24
	DOCHOSTUIFLAG_SCROLL_NO                  = 0x8
25
	DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE    = 0x10
26
	DOCHOSTUIFLAG_OPENNEWWIN                 = 0x20
27
	DOCHOSTUIFLAG_DISABLE_OFFSCREEN          = 0x40
28
	DOCHOSTUIFLAG_FLAT_SCROLLBAR             = 0x80
29
	DOCHOSTUIFLAG_DIV_BLOCKDEFAULT           = 0x100
30
	DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY    = 0x200
31
	DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY    = 0x400
32
	DOCHOSTUIFLAG_CODEPAGELINKEDFONTS        = 0x800
33
	DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8  = 0x1000
34
	DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8   = 0x2000
35
	DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE  = 0x4000
36
	DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION  = 0x10000
37
	DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION    = 0x20000
38
	DOCHOSTUIFLAG_THEME                      = 0x40000
39
	DOCHOSTUIFLAG_NOTHEME                    = 0x80000
40
	DOCHOSTUIFLAG_NOPICS                     = 0x100000
41
	DOCHOSTUIFLAG_NO3DOUTERBORDER            = 0x200000
42
	DOCHOSTUIFLAG_DISABLE_EDIT_NS_FIXUP      = 0x400000
43
	DOCHOSTUIFLAG_LOCAL_MACHINE_ACCESS_CHECK = 0x800000
44
	DOCHOSTUIFLAG_DISABLE_UNTRUSTEDPROTOCOL  = 0x1000000
45
)
46

47
// BrowserNavConstants
48
const (
49
	NavOpenInNewWindow       = 0x1
50
	NavNoHistory             = 0x2
51
	NavNoReadFromCache       = 0x4
52
	NavNoWriteToCache        = 0x8
53
	NavAllowAutosearch       = 0x10
54
	NavBrowserBar            = 0x20
55
	NavHyperlink             = 0x40
56
	NavEnforceRestricted     = 0x80
57
	NavNewWindowsManaged     = 0x0100
58
	NavUntrustedForDownload  = 0x0200
59
	NavTrustedForActiveX     = 0x0400
60
	NavOpenInNewTab          = 0x0800
61
	NavOpenInBackgroundTab   = 0x1000
62
	NavKeepWordWheelText     = 0x2000
63
	NavVirtualTab            = 0x4000
64
	NavBlockRedirectsXDomain = 0x8000
65
	NavOpenNewForegroundTab  = 0x10000
66
)
67

68
var (
69
	CLSID_WebBrowser            = CLSID{0x8856F961, 0x340A, 0x11D0, [8]byte{0xA9, 0x6B, 0x00, 0xC0, 0x4F, 0xD7, 0x05, 0xA2}}
70
	DIID_DWebBrowserEvents2     = IID{0x34A715A0, 0x6587, 0x11D0, [8]byte{0x92, 0x4A, 0x00, 0x20, 0xAF, 0xC7, 0xAC, 0x4D}}
71
	IID_IWebBrowser2            = IID{0xD30C1661, 0xCDAF, 0x11D0, [8]byte{0x8A, 0x3E, 0x00, 0xC0, 0x4F, 0xC9, 0xE2, 0x6E}}
72
	IID_IDocHostUIHandler       = IID{0xBD3F23C0, 0xD43E, 0x11CF, [8]byte{0x89, 0x3B, 0x00, 0xAA, 0x00, 0xBD, 0xCE, 0x1A}}
73
	IID_IOleInPlaceActiveObject = IID{0x00000117, 0x0000, 0x0000, [8]byte{0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}
74
)
75

76
type DWebBrowserEvents2Vtbl struct {
77
	QueryInterface   uintptr
78
	AddRef           uintptr
79
	Release          uintptr
80
	GetTypeInfoCount uintptr
81
	GetTypeInfo      uintptr
82
	GetIDsOfNames    uintptr
83
	Invoke           uintptr
84
}
85

86
type DWebBrowserEvents2 struct {
87
	LpVtbl *DWebBrowserEvents2Vtbl
88
}
89

90
type IWebBrowser2Vtbl struct {
91
	QueryInterface           uintptr
92
	AddRef                   uintptr
93
	Release                  uintptr
94
	GetTypeInfoCount         uintptr
95
	GetTypeInfo              uintptr
96
	GetIDsOfNames            uintptr
97
	Invoke                   uintptr
98
	GoBack                   uintptr
99
	GoForward                uintptr
100
	GoHome                   uintptr
101
	GoSearch                 uintptr
102
	Navigate                 uintptr
103
	Refresh                  uintptr
104
	Refresh2                 uintptr
105
	Stop                     uintptr
106
	Get_Application          uintptr
107
	Get_Parent               uintptr
108
	Get_Container            uintptr
109
	Get_Document             uintptr
110
	Get_TopLevelContainer    uintptr
111
	Get_Type                 uintptr
112
	Get_Left                 uintptr
113
	Put_Left                 uintptr
114
	Get_Top                  uintptr
115
	Put_Top                  uintptr
116
	Get_Width                uintptr
117
	Put_Width                uintptr
118
	Get_Height               uintptr
119
	Put_Height               uintptr
120
	Get_LocationName         uintptr
121
	Get_LocationURL          uintptr
122
	Get_Busy                 uintptr
123
	Quit                     uintptr
124
	ClientToWindow           uintptr
125
	PutProperty              uintptr
126
	GetProperty              uintptr
127
	Get_Name                 uintptr
128
	Get_HWND                 uintptr
129
	Get_FullName             uintptr
130
	Get_Path                 uintptr
131
	Get_Visible              uintptr
132
	Put_Visible              uintptr
133
	Get_StatusBar            uintptr
134
	Put_StatusBar            uintptr
135
	Get_StatusText           uintptr
136
	Put_StatusText           uintptr
137
	Get_ToolBar              uintptr
138
	Put_ToolBar              uintptr
139
	Get_MenuBar              uintptr
140
	Put_MenuBar              uintptr
141
	Get_FullScreen           uintptr
142
	Put_FullScreen           uintptr
143
	Navigate2                uintptr
144
	QueryStatusWB            uintptr
145
	ExecWB                   uintptr
146
	ShowBrowserBar           uintptr
147
	Get_ReadyState           uintptr
148
	Get_Offline              uintptr
149
	Put_Offline              uintptr
150
	Get_Silent               uintptr
151
	Put_Silent               uintptr
152
	Get_RegisterAsBrowser    uintptr
153
	Put_RegisterAsBrowser    uintptr
154
	Get_RegisterAsDropTarget uintptr
155
	Put_RegisterAsDropTarget uintptr
156
	Get_TheaterMode          uintptr
157
	Put_TheaterMode          uintptr
158
	Get_AddressBar           uintptr
159
	Put_AddressBar           uintptr
160
	Get_Resizable            uintptr
161
	Put_Resizable            uintptr
162
}
163

164
type IWebBrowser2 struct {
165
	LpVtbl *IWebBrowser2Vtbl
166
}
167

168
func (wb2 *IWebBrowser2) QueryInterface(riid REFIID, ppvObject *unsafe.Pointer) HRESULT {
169
	ret, _, _ := syscall.Syscall(wb2.LpVtbl.QueryInterface, 3,
170
		uintptr(unsafe.Pointer(wb2)),
171
		uintptr(unsafe.Pointer(riid)),
172
		uintptr(unsafe.Pointer(ppvObject)))
173

174
	return HRESULT(ret)
175
}
176

177
func (wb2 *IWebBrowser2) Release() HRESULT {
178
	ret, _, _ := syscall.Syscall(wb2.LpVtbl.Release, 1,
179
		uintptr(unsafe.Pointer(wb2)),
180
		0,
181
		0)
182

183
	return HRESULT(ret)
184
}
185

186
func (wb2 *IWebBrowser2) Refresh() HRESULT {
187
	ret, _, _ := syscall.Syscall(wb2.LpVtbl.Refresh, 1,
188
		uintptr(unsafe.Pointer(wb2)),
189
		0,
190
		0)
191

192
	return HRESULT(ret)
193
}
194

195
func (wb2 *IWebBrowser2) Put_Left(Left int32) HRESULT {
196
	ret, _, _ := syscall.Syscall(wb2.LpVtbl.Put_Left, 2,
197
		uintptr(unsafe.Pointer(wb2)),
198
		uintptr(Left),
199
		0)
200

201
	return HRESULT(ret)
202
}
203

204
func (wb2 *IWebBrowser2) Put_Top(Top int32) HRESULT {
205
	ret, _, _ := syscall.Syscall(wb2.LpVtbl.Put_Top, 2,
206
		uintptr(unsafe.Pointer(wb2)),
207
		uintptr(Top),
208
		0)
209

210
	return HRESULT(ret)
211
}
212

213
func (wb2 *IWebBrowser2) Put_Width(Width int32) HRESULT {
214
	ret, _, _ := syscall.Syscall(wb2.LpVtbl.Put_Width, 2,
215
		uintptr(unsafe.Pointer(wb2)),
216
		uintptr(Width),
217
		0)
218

219
	return HRESULT(ret)
220
}
221

222
func (wb2 *IWebBrowser2) Put_Height(Height int32) HRESULT {
223
	ret, _, _ := syscall.Syscall(wb2.LpVtbl.Put_Height, 2,
224
		uintptr(unsafe.Pointer(wb2)),
225
		uintptr(Height),
226
		0)
227

228
	return HRESULT(ret)
229
}
230

231
func (wb2 *IWebBrowser2) Get_LocationURL(pbstrLocationURL **uint16 /*BSTR*/) HRESULT {
232
	ret, _, _ := syscall.Syscall(wb2.LpVtbl.Get_LocationURL, 2,
233
		uintptr(unsafe.Pointer(wb2)),
234
		uintptr(unsafe.Pointer(pbstrLocationURL)),
235
		0)
236

237
	return HRESULT(ret)
238
}
239

240
func (wb2 *IWebBrowser2) Navigate2(URL *VAR_BSTR, Flags *VAR_I4, TargetFrameName *VAR_BSTR, PostData unsafe.Pointer, Headers *VAR_BSTR) HRESULT {
241
	ret, _, _ := syscall.Syscall6(wb2.LpVtbl.Navigate2, 6,
242
		uintptr(unsafe.Pointer(wb2)),
243
		uintptr(unsafe.Pointer(URL)),
244
		uintptr(unsafe.Pointer(Flags)),
245
		uintptr(unsafe.Pointer(TargetFrameName)),
246
		uintptr(PostData),
247
		uintptr(unsafe.Pointer(Headers)))
248

249
	return HRESULT(ret)
250
}
251

252
type IDocHostUIHandlerVtbl struct {
253
	QueryInterface        uintptr
254
	AddRef                uintptr
255
	Release               uintptr
256
	ShowContextMenu       uintptr
257
	GetHostInfo           uintptr
258
	ShowUI                uintptr
259
	HideUI                uintptr
260
	UpdateUI              uintptr
261
	EnableModeless        uintptr
262
	OnDocWindowActivate   uintptr
263
	OnFrameWindowActivate uintptr
264
	ResizeBorder          uintptr
265
	TranslateAccelerator  uintptr
266
	GetOptionKeyPath      uintptr
267
	GetDropTarget         uintptr
268
	GetExternal           uintptr
269
	TranslateUrl          uintptr
270
	FilterDataObject      uintptr
271
}
272

273
type IDocHostUIHandler struct {
274
	LpVtbl *IDocHostUIHandlerVtbl
275
}
276

277
type DOCHOSTUIINFO struct {
278
	CbSize        uint32
279
	DwFlags       uint32
280
	DwDoubleClick uint32
281
	PchHostCss    *uint16
282
	PchHostNS     *uint16
283
}
284

285
type IOleInPlaceActiveObjectVtbl struct {
286
	QueryInterface        uintptr
287
	AddRef                uintptr
288
	Release               uintptr
289
	GetWindow             uintptr
290
	ContextSensitiveHelp  uintptr
291
	TranslateAccelerator  uintptr
292
	OnFrameWindowActivate uintptr
293
	OnDocWindowActivate   uintptr
294
	ResizeBorder          uintptr
295
	EnableModeless        uintptr
296
}
297

298
type IOleInPlaceActiveObject struct {
299
	LpVtbl *IOleInPlaceActiveObjectVtbl
300
}
301

302
func (activeObj *IOleInPlaceActiveObject) Release() HRESULT {
303
	ret, _, _ := syscall.Syscall(activeObj.LpVtbl.Release, 1,
304
		uintptr(unsafe.Pointer(activeObj)),
305
		0,
306
		0)
307

308
	return HRESULT(ret)
309
}
310

311
func (activeObj *IOleInPlaceActiveObject) GetWindow(hWndPtr *HWND) HRESULT {
312
	ret, _, _ := syscall.Syscall(activeObj.LpVtbl.GetWindow, 2,
313
		uintptr(unsafe.Pointer(activeObj)),
314
		uintptr(unsafe.Pointer(hWndPtr)),
315
		0)
316

317
	return HRESULT(ret)
318
}
319

320
func (activeObj *IOleInPlaceActiveObject) TranslateAccelerator(msg *MSG) HRESULT {
321
	ret, _, _ := syscall.Syscall(activeObj.LpVtbl.TranslateAccelerator, 2,
322
		uintptr(unsafe.Pointer(activeObj)),
323
		uintptr(unsafe.Pointer(msg)),
324
		0)
325

326
	return HRESULT(ret)
327
}
328

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

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

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

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