go-tg-screenshot-bot

Форк
0
86 строк · 3.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,amd64
6

7
package win
8

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

14
// SetPropValue identifies the accessible element to be annotated, specify the property to be annotated, and provide a new value for that property.
15
// If server developers know the HWND of the accessible element they want to annotate, they can use one of the following methods: SetHwndPropStr, SetHwndProp, or SetHwndPropServer
16
func (obj *IAccPropServices) SetPropValue(idString []byte, idProp *MSAAPROPID, v *VARIANT) HRESULT {
17
	var idStringPtr unsafe.Pointer
18
	idStringLen := len(idString)
19
	if idStringLen != 0 {
20
		idStringPtr = unsafe.Pointer(&idString[0])
21
	}
22
	ret, _, _ := syscall.Syscall6(obj.LpVtbl.SetPropValue, 5,
23
		uintptr(unsafe.Pointer(obj)),
24
		uintptr(idStringPtr),
25
		uintptr(idStringLen),
26
		uintptr(unsafe.Pointer(idProp)),
27
		uintptr(unsafe.Pointer(v)),
28
		0)
29
	return HRESULT(ret)
30
}
31

32
// SetHwndProp wraps SetPropValue, providing a convenient entry point for callers who are annotating HWND-based accessible elements. If the new value is a string, you can use SetHwndPropStr instead.
33
func (obj *IAccPropServices) SetHwndProp(hwnd HWND, idObject int32, idChild uint32, idProp *MSAAPROPID, v *VARIANT) HRESULT {
34
	ret, _, _ := syscall.Syscall6(obj.LpVtbl.SetHwndProp, 6,
35
		uintptr(unsafe.Pointer(obj)),
36
		uintptr(hwnd),
37
		uintptr(idObject),
38
		uintptr(idChild),
39
		uintptr(unsafe.Pointer(idProp)),
40
		uintptr(unsafe.Pointer(v)))
41
	return HRESULT(ret)
42
}
43

44
// SetHwndPropStr wraps SetPropValue, providing a more convenient entry point for callers who are annotating HWND-based accessible elements.
45
func (obj *IAccPropServices) SetHwndPropStr(hwnd HWND, idObject int32, idChild uint32, idProp *MSAAPROPID, str string) HRESULT {
46
	str16, err := syscall.UTF16PtrFromString(str)
47
	if err != nil {
48
		return -((E_INVALIDARG ^ 0xFFFFFFFF) + 1)
49
	}
50
	ret, _, _ := syscall.Syscall6(obj.LpVtbl.SetHwndPropStr, 6,
51
		uintptr(unsafe.Pointer(obj)),
52
		uintptr(hwnd),
53
		uintptr(idObject),
54
		uintptr(idChild),
55
		uintptr(unsafe.Pointer(idProp)),
56
		uintptr(unsafe.Pointer(str16)))
57
	return HRESULT(ret)
58
}
59

60
// SetHmenuProp wraps SetPropValue, providing a convenient entry point for callers who are annotating HMENU-based accessible elements. If the new value is a string, you can use IAccPropServices::SetHmenuPropStr instead.
61
func (obj *IAccPropServices) SetHmenuProp(hmenu HMENU, idChild uint32, idProp *MSAAPROPID, v *VARIANT) HRESULT {
62
	ret, _, _ := syscall.Syscall6(obj.LpVtbl.SetHmenuProp, 5,
63
		uintptr(unsafe.Pointer(obj)),
64
		uintptr(hmenu),
65
		uintptr(idChild),
66
		uintptr(unsafe.Pointer(idProp)),
67
		uintptr(unsafe.Pointer(v)),
68
		0)
69
	return HRESULT(ret)
70
}
71

72
// SetHmenuPropStr wraps SetPropValue, providing a more convenient entry point for callers who are annotating HMENU-based accessible elements.
73
func (obj *IAccPropServices) SetHmenuPropStr(hmenu HMENU, idChild uint32, idProp *MSAAPROPID, str string) HRESULT {
74
	str16, err := syscall.UTF16PtrFromString(str)
75
	if err != nil {
76
		return -((E_INVALIDARG ^ 0xFFFFFFFF) + 1)
77
	}
78
	ret, _, _ := syscall.Syscall6(obj.LpVtbl.SetHmenuPropStr, 5,
79
		uintptr(unsafe.Pointer(obj)),
80
		uintptr(hmenu),
81
		uintptr(idChild),
82
		uintptr(unsafe.Pointer(idProp)),
83
		uintptr(unsafe.Pointer(str16)),
84
		0)
85
	return HRESULT(ret)
86
}
87

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

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

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

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