Blender V2.61 - r43446
|
00001 00004 #ifndef GHOST_TASKBARWIN32_H_ 00005 #define GHOST_TASKBARWIN32_H_ 00006 00007 #ifndef WIN32 00008 #error WIN32 only! 00009 #endif // WIN32 00010 00011 #define _WIN32_WINNT 0x501 // require Windows XP or newer 00012 #define WIN32_LEAN_AND_MEAN 00013 #include <windows.h> 00014 #include <shlobj.h> 00015 00016 00017 // ITaskbarList, ITaskbarList2 and ITaskbarList3 might be missing, present here in that case. 00018 // Note, ITaskbarList3 is supported only since Windows 7, though. Check for that is done in 00019 // GHOST_WindowWin32 00020 #ifndef __ITaskbarList_INTERFACE_DEFINED__ 00021 #define __ITaskbarList_INTERFACE_DEFINED__ 00022 extern "C" {const GUID CLSID_TaskbarList = {0x56FDF344, 0xFD6D, 0x11D0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90} }; 00023 const GUID IID_ITaskbarList = {0x56FDF342, 0xFD6D, 0x11D0, {0x95, 0x8A, 0x00, 0x60, 0x97, 0xC9, 0xA0, 0x90} }; } 00024 class ITaskbarList : public IUnknown 00025 { 00026 public: 00027 virtual HRESULT STDMETHODCALLTYPE HrInit (void) = 0; 00028 virtual HRESULT STDMETHODCALLTYPE AddTab (HWND hwnd) = 0; 00029 virtual HRESULT STDMETHODCALLTYPE DeleteTab (HWND hwnd) = 0; 00030 virtual HRESULT STDMETHODCALLTYPE ActivateTab (HWND hwnd) = 0; 00031 virtual HRESULT STDMETHODCALLTYPE SetActiveAlt (HWND hwnd) = 0; 00032 }; 00033 #endif /* ITaskbarList */ 00034 00035 #ifndef __ITaskbarList2_INTERFACE_DEFINED__ 00036 #define __ITaskbarList2_INTERFACE_DEFINED__ 00037 extern "C" {const GUID IID_ITaskbarList2 = {0x602D4995, 0xB13A, 0x429b, {0xA6, 0x6E, 0x19, 0x35, 0xE4, 0x4F, 0x43, 0x17} }; } 00038 class ITaskbarList2 : public ITaskbarList 00039 { 00040 public: 00041 virtual HRESULT STDMETHODCALLTYPE MarkFullscreenWindow(HWND hwnd, BOOL fFullscreen) = 0; 00042 }; 00043 #endif /* ITaskbarList2 */ 00044 00045 #ifndef __ITaskbarList3_INTERFACE_DEFINED__ 00046 #define __ITaskbarList3_INTERFACE_DEFINED__ 00047 typedef enum THUMBBUTTONFLAGS {THBF_ENABLED = 0, THBF_DISABLED = 0x1, THBF_DISMISSONCLICK = 0x2, THBF_NOBACKGROUND = 0x4, THBF_HIDDEN = 0x8, THBF_NONINTERACTIVE = 0x10} THUMBBUTTONFLAGS; 00048 typedef enum THUMBBUTTONMASK {THB_BITMAP = 0x1, THB_ICON = 0x2, THB_TOOLTIP = 0x4, THB_FLAGS = 0x8} THUMBBUTTONMASK; 00049 typedef struct THUMBBUTTON {THUMBBUTTONMASK dwMask; UINT iId; UINT iBitmap; HICON hIcon; WCHAR szTip[260]; THUMBBUTTONFLAGS dwFlags; } THUMBBUTTON; 00050 typedef enum TBPFLAG {TBPF_NOPROGRESS = 0, TBPF_INDETERMINATE = 0x1, TBPF_NORMAL = 0x2, TBPF_ERROR = 0x4, TBPF_PAUSED = 0x8 } TBPFLAG; 00051 #define THBN_CLICKED 0x1800 00052 extern "C" {const GUID IID_ITaskList3 = { 0xEA1AFB91, 0x9E28, 0x4B86, {0x90, 0xE9, 0x9E, 0x9F, 0x8A, 0x5E, 0xEF, 0xAF} };} 00053 00054 class ITaskbarList3 : public ITaskbarList2 00055 { 00056 public: 00057 virtual HRESULT STDMETHODCALLTYPE SetProgressValue (HWND hwnd, ULONGLONG ullCompleted, ULONGLONG ullTotal) = 0; 00058 virtual HRESULT STDMETHODCALLTYPE SetProgressState (HWND hwnd, TBPFLAG tbpFlags) = 0; 00059 virtual HRESULT STDMETHODCALLTYPE RegisterTab (HWND hwndTab, HWND hwndMDI) = 0; 00060 virtual HRESULT STDMETHODCALLTYPE UnregisterTab (HWND hwndTab) = 0; 00061 virtual HRESULT STDMETHODCALLTYPE SetTabOrder (HWND hwndTab, HWND hwndInsertBefore) = 0; 00062 virtual HRESULT STDMETHODCALLTYPE SetTabActive (HWND hwndTab, HWND hwndMDI, DWORD dwReserved) = 0; 00063 virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons (HWND hwnd, UINT cButtons, THUMBBUTTON * pButton) = 0; 00064 virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons (HWND hwnd, UINT cButtons, THUMBBUTTON * pButton) = 0; 00065 virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList (HWND hwnd, HIMAGELIST himl) = 0; 00066 virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon (HWND hwnd, HICON hIcon, LPCWSTR pszDescription) = 0; 00067 virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip (HWND hwnd, LPCWSTR pszTip) = 0; 00068 virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip (HWND hwnd, RECT *prcClip) = 0; 00069 }; 00070 #endif /* ITaskbarList3 */ 00071 00072 #endif /*GHOST_TASKBARWIN32_H_*/