xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/FileManager/MyWindowsNew.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1 // MyWindowsNew.h
2 
3 #ifndef ZIP7_INC_MY_WINDOWS_NEW_H
4 #define ZIP7_INC_MY_WINDOWS_NEW_H
5 
6 #if defined(__MINGW32__) || defined(__MINGW64__) || defined(__MINGW32_VERSION)
7 #include <shobjidl.h>
8 
9 #if defined(__MINGW32_VERSION) && !defined(__ITaskbarList3_INTERFACE_DEFINED__)
10 // for old mingw
11 extern "C" {
12 DEFINE_GUID(IID_ITaskbarList3, 0xEA1AFB91, 0x9E28, 0x4B86, 0x90, 0xE9, 0x9E, 0x9F, 0x8A, 0x5E, 0xEF, 0xAF);
13 DEFINE_GUID(CLSID_TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
14 }
15 #endif
16 
17 #else // is not __MINGW*
18 
19 #ifndef Z7_OLD_WIN_SDK
20 #include <ShObjIdl.h>
21 #else
22 
23 #ifndef HIMAGELIST
24 struct _IMAGELIST;
25 typedef struct _IMAGELIST* HIMAGELIST;
26 #endif
27 
28 #ifndef __ITaskbarList_INTERFACE_DEFINED__
29 #define __ITaskbarList_INTERFACE_DEFINED__
30 DEFINE_GUID(IID_ITaskbarList, 0x56FDF342, 0xFD6D, 0x11d0, 0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90);
31 struct ITaskbarList: public IUnknown
32 {
33   STDMETHOD(HrInit)(void) = 0;
34   STDMETHOD(AddTab)(HWND hwnd) = 0;
35   STDMETHOD(DeleteTab)(HWND hwnd) = 0;
36   STDMETHOD(ActivateTab)(HWND hwnd) = 0;
37   STDMETHOD(SetActiveAlt)(HWND hwnd) = 0;
38 };
39 #endif // __ITaskbarList_INTERFACE_DEFINED__
40 
41 #ifndef __ITaskbarList2_INTERFACE_DEFINED__
42 #define __ITaskbarList2_INTERFACE_DEFINED__
43 DEFINE_GUID(IID_ITaskbarList2, 0x602D4995, 0xB13A, 0x429b, 0xA6, 0x6E, 0x19, 0x35, 0xE4, 0x4F, 0x43, 0x17);
44 struct ITaskbarList2: public ITaskbarList
45 {
46   STDMETHOD(MarkFullscreenWindow)(HWND hwnd, BOOL fFullscreen) = 0;
47 };
48 #endif // __ITaskbarList2_INTERFACE_DEFINED__
49 
50 #endif // Z7_OLD_WIN_SDK
51 
52 
53 #ifndef __ITaskbarList3_INTERFACE_DEFINED__
54 #define __ITaskbarList3_INTERFACE_DEFINED__
55 
56 typedef enum THUMBBUTTONFLAGS
57 {
58   THBF_ENABLED = 0,
59   THBF_DISABLED = 0x1,
60   THBF_DISMISSONCLICK = 0x2,
61   THBF_NOBACKGROUND = 0x4,
62   THBF_HIDDEN = 0x8,
63   THBF_NONINTERACTIVE = 0x10
64 } THUMBBUTTONFLAGS;
65 
66 typedef enum THUMBBUTTONMASK
67 {
68   THB_BITMAP = 0x1,
69   THB_ICON = 0x2,
70   THB_TOOLTIP = 0x4,
71   THB_FLAGS = 0x8
72 } THUMBBUTTONMASK;
73 
74 // #include <pshpack8.h>
75 
76 typedef struct THUMBBUTTON
77 {
78   THUMBBUTTONMASK dwMask;
79   UINT iId;
80   UINT iBitmap;
81   HICON hIcon;
82   WCHAR szTip[260];
83   THUMBBUTTONFLAGS dwFlags;
84 } THUMBBUTTON;
85 
86 typedef struct THUMBBUTTON *LPTHUMBBUTTON;
87 
88 typedef enum TBPFLAG
89 {
90   TBPF_NOPROGRESS = 0,
91   TBPF_INDETERMINATE = 0x1,
92   TBPF_NORMAL = 0x2,
93   TBPF_ERROR = 0x4,
94   TBPF_PAUSED = 0x8
95 } TBPFLAG;
96 
97 DEFINE_GUID(IID_ITaskbarList3, 0xEA1AFB91, 0x9E28, 0x4B86, 0x90, 0xE9, 0x9E, 0x9F, 0x8A, 0x5E, 0xEF, 0xAF);
98 
99 struct ITaskbarList3: public ITaskbarList2
100 {
101   STDMETHOD(SetProgressValue)(HWND hwnd, ULONGLONG ullCompleted, ULONGLONG ullTotal) = 0;
102   STDMETHOD(SetProgressState)(HWND hwnd, TBPFLAG tbpFlags) = 0;
103   STDMETHOD(RegisterTab)(HWND hwndTab, HWND hwndMDI) = 0;
104   STDMETHOD(UnregisterTab)(HWND hwndTab) = 0;
105   STDMETHOD(SetTabOrder)(HWND hwndTab, HWND hwndInsertBefore) = 0;
106   STDMETHOD(SetTabActive)(HWND hwndTab, HWND hwndMDI, DWORD dwReserved) = 0;
107   STDMETHOD(ThumbBarAddButtons)(HWND hwnd, UINT cButtons, LPTHUMBBUTTON pButton) = 0;
108   STDMETHOD(ThumbBarUpdateButtons)(HWND hwnd, UINT cButtons, LPTHUMBBUTTON pButton) = 0;
109   STDMETHOD(ThumbBarSetImageList)(HWND hwnd, HIMAGELIST himl) = 0;
110   STDMETHOD(SetOverlayIcon)(HWND hwnd, HICON hIcon, LPCWSTR pszDescription) = 0;
111   STDMETHOD(SetThumbnailTooltip)(HWND hwnd, LPCWSTR pszTip) = 0;
112   STDMETHOD(SetThumbnailClip)(HWND hwnd, RECT *prcClip) = 0;
113 };
114 
115 #endif // __ITaskbarList3_INTERFACE_DEFINED__
116 
117 #endif // __MINGW*
118 
119 #endif
120