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