Blender  V2.59
GHOST_TaskbarWin32.h
Go to the documentation of this file.
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_*/