Blender V4.3
GHOST_TaskbarWin32.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011-2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8#pragma once
9
10#ifndef WIN32
11# error WIN32 only!
12#endif // WIN32
13
14#define WIN32_LEAN_AND_MEAN
15#include <shlobj.h>
16#include <windows.h>
17
18// ITaskbarList, ITaskbarList2 and ITaskbarList3 might be missing, present here in that case.
19// Note, ITaskbarList3 is supported only since Windows 7, though. Check for that is done in
20// GHOST_WindowWin32
21#ifndef __ITaskbarList_INTERFACE_DEFINED__
22# define __ITaskbarList_INTERFACE_DEFINED__
23extern "C" {
24const GUID CLSID_TaskbarList = {
25 0x56FDF344, 0xFD6D, 0x11D0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}};
26const GUID IID_ITaskbarList = {
27 0x56FDF342, 0xFD6D, 0x11D0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90}};
28}
29
30class ITaskbarList : public IUnknown {
31 public:
32 virtual HRESULT STDMETHODCALLTYPE HrInit(void) = 0;
33 virtual HRESULT STDMETHODCALLTYPE AddTab(HWND hwnd) = 0;
34 virtual HRESULT STDMETHODCALLTYPE DeleteTab(HWND hwnd) = 0;
35 virtual HRESULT STDMETHODCALLTYPE ActivateTab(HWND hwnd) = 0;
36 virtual HRESULT STDMETHODCALLTYPE SetActiveAlt(HWND hwnd) = 0;
37};
38#endif /* ITaskbarList */
39
40#ifndef __ITaskbarList2_INTERFACE_DEFINED__
41# define __ITaskbarList2_INTERFACE_DEFINED__
42extern "C" {
43const GUID IID_ITaskbarList2 = {
44 0x602D4995, 0xB13A, 0x429b, {0xA6, 0x6E, 0x19, 0x35, 0xE4, 0x4F, 0x43, 0x17}};
45}
47 public:
48 virtual HRESULT STDMETHODCALLTYPE MarkFullscreenWindow(HWND hwnd, BOOL fFullscreen) = 0;
49};
50#endif /* ITaskbarList2 */
51
52#ifndef __ITaskbarList3_INTERFACE_DEFINED__
53# define __ITaskbarList3_INTERFACE_DEFINED__
62
69
78
86
87# define THBN_CLICKED 0x1800
88
89extern "C" {
90const GUID IID_ITaskList3 = {
91 0xEA1AFB91, 0x9E28, 0x4B86, {0x90, 0xE9, 0x9E, 0x9F, 0x8A, 0x5E, 0xEF, 0xAF}};
92}
93
95 public:
96 virtual HRESULT STDMETHODCALLTYPE SetProgressValue(HWND hwnd,
97 ULONGLONG ullCompleted,
98 ULONGLONG ullTotal) = 0;
99 virtual HRESULT STDMETHODCALLTYPE SetProgressState(HWND hwnd, TBPFLAG tbpFlags) = 0;
100 virtual HRESULT STDMETHODCALLTYPE RegisterTab(HWND hwndTab, HWND hwndMDI) = 0;
101 virtual HRESULT STDMETHODCALLTYPE UnregisterTab(HWND hwndTab) = 0;
102 virtual HRESULT STDMETHODCALLTYPE SetTabOrder(HWND hwndTab, HWND hwndInsertBefore) = 0;
103 virtual HRESULT STDMETHODCALLTYPE SetTabActive(HWND hwndTab, HWND hwndMDI, DWORD dwReserved) = 0;
104 virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons(HWND hwnd,
105 UINT cButtons,
106 THUMBBUTTON *pButton) = 0;
107 virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons(HWND hwnd,
108 UINT cButtons,
109 THUMBBUTTON *pButton) = 0;
110 virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList(HWND hwnd, HIMAGELIST himl) = 0;
111 virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon(HWND hwnd,
112 HICON hIcon,
113 LPCWSTR pszDescription) = 0;
114 virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip(HWND hwnd, LPCWSTR pszTip) = 0;
115 virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip(HWND hwnd, RECT *prcClip) = 0;
116};
117#endif /* ITaskbarList3 */
const GUID IID_ITaskList3
@ TBPF_NOPROGRESS
@ TBPF_INDETERMINATE
@ TBPF_NORMAL
@ TBPF_ERROR
@ TBPF_PAUSED
THUMBBUTTONMASK
@ THB_FLAGS
@ THB_BITMAP
@ 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
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
THUMBBUTTONFLAGS dwFlags
THUMBBUTTONMASK dwMask