forked from lxn/win
-
Notifications
You must be signed in to change notification settings - Fork 0
/
shobj.go
73 lines (64 loc) · 1.83 KB
/
shobj.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// Copyright 2012 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"
)
var (
CLSID_TaskbarList = CLSID{0x56FDF344, 0xFD6D, 0x11d0, [8]byte{0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}}
IID_ITaskbarList3 = IID{0xea1afb91, 0x9e28, 0x4b86, [8]byte{0x90, 0xe9, 0x9e, 0x9f, 0x8a, 0x5e, 0xef, 0xaf}}
)
//TBPFLAG
const (
TBPF_NOPROGRESS = 0
TBPF_INDETERMINATE = 0x1
TBPF_NORMAL = 0x2
TBPF_ERROR = 0x4
TBPF_PAUSED = 0x8
)
type ITaskbarList3Vtbl struct {
QueryInterface uintptr
AddRef uintptr
Release uintptr
HrInit uintptr
AddTab uintptr
DeleteTab uintptr
ActivateTab uintptr
SetActiveAlt uintptr
MarkFullscreenWindow uintptr
SetProgressValue uintptr
SetProgressState uintptr
RegisterTab uintptr
UnregisterTab uintptr
SetTabOrder uintptr
SetTabActive uintptr
ThumbBarAddButtons uintptr
ThumbBarUpdateButtons uintptr
ThumbBarSetImageList uintptr
SetOverlayIcon uintptr
SetThumbnailTooltip uintptr
SetThumbnailClip uintptr
}
type ITaskbarList3 struct {
LpVtbl *ITaskbarList3Vtbl
}
func (obj *ITaskbarList3) SetProgressState(hwnd HWND, state int) HRESULT {
ret, _, _ := syscall.Syscall(obj.LpVtbl.SetProgressState, 3,
uintptr(unsafe.Pointer(obj)),
uintptr(hwnd),
uintptr(state))
return HRESULT(ret)
}
func (obj *ITaskbarList3) SetOverlayIcon(hwnd HWND, icon HICON, description *uint16) HRESULT {
ret, _, _ := syscall.Syscall6(obj.LpVtbl.SetOverlayIcon, 4,
uintptr(unsafe.Pointer(obj)),
uintptr(hwnd),
uintptr(icon),
uintptr(unsafe.Pointer(description)),
0,
0)
return HRESULT(ret)
}