Blender  V2.93
GHOST_TaskbarWin32.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16 
20 #pragma once
21 
22 #ifndef WIN32
23 # error WIN32 only!
24 #endif // WIN32
25 
26 #define WIN32_LEAN_AND_MEAN
27 #include <shlobj.h>
28 #include <windows.h>
29 
30 // ITaskbarList, ITaskbarList2 and ITaskbarList3 might be missing, present here in that case.
31 // Note, ITaskbarList3 is supported only since Windows 7, though. Check for that is done in
32 // GHOST_WindowWin32
33 #ifndef __ITaskbarList_INTERFACE_DEFINED__
34 # define __ITaskbarList_INTERFACE_DEFINED__
35 extern "C" {
36 const GUID CLSID_TaskbarList = {
37  0x56FDF344, 0xFD6D, 0x11D0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}};
38 const GUID IID_ITaskbarList = {
39  0x56FDF342, 0xFD6D, 0x11D0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}};
40 }
41 
42 class ITaskbarList : public IUnknown {
43  public:
44  virtual HRESULT STDMETHODCALLTYPE HrInit(void) = 0;
45  virtual HRESULT STDMETHODCALLTYPE AddTab(HWND hwnd) = 0;
46  virtual HRESULT STDMETHODCALLTYPE DeleteTab(HWND hwnd) = 0;
47  virtual HRESULT STDMETHODCALLTYPE ActivateTab(HWND hwnd) = 0;
48  virtual HRESULT STDMETHODCALLTYPE SetActiveAlt(HWND hwnd) = 0;
49 };
50 #endif /* ITaskbarList */
51 
52 #ifndef __ITaskbarList2_INTERFACE_DEFINED__
53 # define __ITaskbarList2_INTERFACE_DEFINED__
54 extern "C" {
55 const GUID IID_ITaskbarList2 = {
56  0x602D4995, 0xB13A, 0x429b, {0xA6, 0x6E, 0x19, 0x35, 0xE4, 0x4F, 0x43, 0x17}};
57 }
58 class ITaskbarList2 : public ITaskbarList {
59  public:
60  virtual HRESULT STDMETHODCALLTYPE MarkFullscreenWindow(HWND hwnd, BOOL fFullscreen) = 0;
61 };
62 #endif /* ITaskbarList2 */
63 
64 #ifndef __ITaskbarList3_INTERFACE_DEFINED__
65 # define __ITaskbarList3_INTERFACE_DEFINED__
66 typedef enum THUMBBUTTONFLAGS {
71  THBF_HIDDEN = 0x8,
74 
75 typedef enum THUMBBUTTONMASK {
76  THB_BITMAP = 0x1,
77  THB_ICON = 0x2,
78  THB_TOOLTIP = 0x4,
79  THB_FLAGS = 0x8,
81 
82 typedef struct THUMBBUTTON {
86  HICON hIcon;
87  WCHAR szTip[260];
90 
91 typedef enum TBPFLAG {
94  TBPF_NORMAL = 0x2,
95  TBPF_ERROR = 0x4,
96  TBPF_PAUSED = 0x8,
98 
99 # define THBN_CLICKED 0x1800
100 
101 extern "C" {
102 const GUID IID_ITaskList3 = {
103  0xEA1AFB91, 0x9E28, 0x4B86, {0x90, 0xE9, 0x9E, 0x9F, 0x8A, 0x5E, 0xEF, 0xAF}};
104 }
105 
106 class ITaskbarList3 : public ITaskbarList2 {
107  public:
108  virtual HRESULT STDMETHODCALLTYPE SetProgressValue(HWND hwnd,
109  ULONGLONG ullCompleted,
110  ULONGLONG ullTotal) = 0;
111  virtual HRESULT STDMETHODCALLTYPE SetProgressState(HWND hwnd, TBPFLAG tbpFlags) = 0;
112  virtual HRESULT STDMETHODCALLTYPE RegisterTab(HWND hwndTab, HWND hwndMDI) = 0;
113  virtual HRESULT STDMETHODCALLTYPE UnregisterTab(HWND hwndTab) = 0;
114  virtual HRESULT STDMETHODCALLTYPE SetTabOrder(HWND hwndTab, HWND hwndInsertBefore) = 0;
115  virtual HRESULT STDMETHODCALLTYPE SetTabActive(HWND hwndTab, HWND hwndMDI, DWORD dwReserved) = 0;
116  virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons(HWND hwnd,
117  UINT cButtons,
118  THUMBBUTTON *pButton) = 0;
119  virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons(HWND hwnd,
120  UINT cButtons,
121  THUMBBUTTON *pButton) = 0;
122  virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList(HWND hwnd, HIMAGELIST himl) = 0;
123  virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon(HWND hwnd,
124  HICON hIcon,
125  LPCWSTR pszDescription) = 0;
126  virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip(HWND hwnd, LPCWSTR pszTip) = 0;
127  virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip(HWND hwnd, RECT *prcClip) = 0;
128 };
129 #endif /* ITaskbarList3 */
const GUID IID_ITaskList3
@ TBPF_NOPROGRESS
@ TBPF_INDETERMINATE
@ TBPF_NORMAL
@ TBPF_ERROR
@ TBPF_PAUSED
THUMBBUTTONMASK
@ THB_FLAGS
@ THB_BITMAP
@ THB_ICON
@ THB_TOOLTIP
const GUID IID_ITaskbarList2
struct THUMBBUTTON THUMBBUTTON
THUMBBUTTONFLAGS
@ THBF_HIDDEN
@ THBF_ENABLED
@ THBF_NONINTERACTIVE
@ THBF_NOBACKGROUND
@ THBF_DISMISSONCLICK
@ THBF_DISABLED
const GUID IID_ITaskbarList
const GUID CLSID_TaskbarList
typedef UINT
virtual HRESULT STDMETHODCALLTYPE MarkFullscreenWindow(HWND hwnd, BOOL fFullscreen)=0
virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons(HWND hwnd, UINT cButtons, THUMBBUTTON *pButton)=0
virtual HRESULT STDMETHODCALLTYPE SetTabActive(HWND hwndTab, HWND hwndMDI, DWORD dwReserved)=0
virtual HRESULT STDMETHODCALLTYPE SetProgressState(HWND hwnd, TBPFLAG tbpFlags)=0
virtual HRESULT STDMETHODCALLTYPE SetProgressValue(HWND hwnd, ULONGLONG ullCompleted, ULONGLONG ullTotal)=0
virtual HRESULT STDMETHODCALLTYPE UnregisterTab(HWND hwndTab)=0
virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon(HWND hwnd, HICON hIcon, LPCWSTR pszDescription)=0
virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip(HWND hwnd, RECT *prcClip)=0
virtual HRESULT STDMETHODCALLTYPE SetTabOrder(HWND hwndTab, HWND hwndInsertBefore)=0
virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip(HWND hwnd, LPCWSTR pszTip)=0
virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList(HWND hwnd, HIMAGELIST himl)=0
virtual HRESULT STDMETHODCALLTYPE RegisterTab(HWND hwndTab, HWND hwndMDI)=0
virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons(HWND hwnd, UINT cButtons, THUMBBUTTON *pButton)=0
virtual HRESULT STDMETHODCALLTYPE DeleteTab(HWND hwnd)=0
virtual HRESULT STDMETHODCALLTYPE ActivateTab(HWND hwnd)=0
virtual HRESULT STDMETHODCALLTYPE HrInit(void)=0
virtual HRESULT STDMETHODCALLTYPE SetActiveAlt(HWND hwnd)=0
virtual HRESULT STDMETHODCALLTYPE AddTab(HWND hwnd)=0
WCHAR szTip[260]
THUMBBUTTONFLAGS dwFlags
THUMBBUTTONMASK dwMask