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