/* * Common controls definitions */ #ifndef __WINE_COMMCTRL_H #define __WINE_COMMCTRL_H #include "windows.h" void WINAPI InitCommonControls(void); typedef struct tagINITCOMMONCONTROLSEX { DWORD dwSize; DWORD dwICC; } INITCOMMONCONTROLSEX, *LPINITCOMMONCONTROLSEX; BOOL32 WINAPI InitCommonControlsEx(LPINITCOMMONCONTROLSEX); #define ICC_LISTVIEW_CLASSES 0x00000001 /* listview, header */ #define ICC_TREEVIEW_CLASSES 0x00000002 /* treeview, tooltips */ #define ICC_BAR_CLASSES 0x00000004 /* toolbar, statusbar, trackbar, tooltips */ #define ICC_TAB_CLASSES 0x00000008 /* tab, tooltips */ #define ICC_UPDOWN_CLASS 0x00000010 /* updown */ #define ICC_PROGRESS_CLASS 0x00000020 /* progress */ #define ICC_HOTKEY_CLASS 0x00000040 /* hotkey */ #define ICC_ANIMATE_CLASS 0x00000080 /* animate */ #define ICC_WIN95_CLASSES 0x000000FF #define ICC_DATE_CLASSES 0x00000100 /* month picker, date picker, time picker, updown */ #define ICC_USEREX_CLASSES 0x00000200 /* comboex */ #define ICC_COOL_CLASSES 0x00000400 /* rebar (coolbar) */ #define ICC_INTERNET_CLASSES 0x00000800 /* IP address, ... */ #define ICC_PAGESCROLLER_CLASS 0x00001000 /* page scroller */ #define ICC_NATIVEFNTCTL_CLASS 0x00002000 /* native font control ???*/ /* common control styles */ #define CCS_TOP 0x00000001L #define CCS_NOMOVEY 0x00000002L #define CCS_BOTTOM 0x00000003L #define CCS_NORESIZE 0x00000004L #define CCS_NOPARENTALIGN 0x00000008L #define CCS_ADJUSTABLE 0x00000020L #define CCS_NODIVIDER 0x00000040L #define CCS_VERT 0x00000080L #define CCS_LEFT (CCS_VERT|CCS_TOP) #define CCS_RIGHT (CCS_VERT|CCS_BOTTOM) #define CCS_NOMOVEX (CCS_VERT|CCS_NOMOVEY) /* common control shared messages */ #define CCM_FIRST 0x2000 #define CCM_SETBKCOLOR (CCM_FIRST+1) /* lParam = bkColor */ /* common notification codes */ #define NM_FIRST (0U-0U) #define NM_LAST (0U-99U) #define NM_OUTOFMEMORY (NM_FIRST-1) #define NM_CLICK (NM_FIRST-2) #define NM_DBLCLK (NM_FIRST-3) #define NM_RETURN (NM_FIRST-4) #define NM_RCLICK (NM_FIRST-5) #define NM_RDBLCLK (NM_FIRST-6) #define NM_SETFOCUS (NM_FIRST-7) #define NM_KILLFOCUS (NM_FIRST-8) #define NM_CUSTOMDRAW (NM_FIRST-12) #define NM_HOVER (NM_FIRST-13) #define NM_NCHITTEST (NM_FIRST-14) #define NM_KEYDOWN (NM_FIRST-15) #define NM_RELEASEDCAPTURE (NM_FIRST-16) #define NM_SETCURSOR (NM_FIRST-17) #define NM_CHAR (NM_FIRST-18) #define NM_TOOLTIPSCREATED (NM_FIRST-19) /* StatusWindow */ #define STATUSCLASSNAME16 "msctls_statusbar" #define STATUSCLASSNAME32A "msctls_statusbar32" #define STATUSCLASSNAME32W L"msctls_statusbar32" /*FIXME*/ #define STATUSCLASSNAME WINELIB_NAME_AW(STATUSCLASSNAME) #define SB_SETTEXT32A (WM_USER+1) #define SB_SETTEXT32W (WM_USER+11) #define SB_SETTEXT WINELIB_NAME_AW(SB_SETTEXT) #define SB_GETTEXT32A (WM_USER+2) #define SB_GETTEXT32W (WM_USER+13) #define SB_GETTEXT WINELIB_NAME_AW(SB_GETTEXT) #define SB_GETTEXTLENGTH32A (WM_USER+3) #define SB_GETTEXTLENGTH32W (WM_USER+12) #define SB_GETTEXTLENGTH WINELIB_NAME_AW(SB_GETTEXTLENGTH) #define SB_SETPARTS (WM_USER+4) #define SB_GETPARTS (WM_USER+6) #define SB_GETBORDERS (WM_USER+7) #define SB_SETMINHEIGHT (WM_USER+8) #define SB_SIMPLE (WM_USER+9) #define SB_GETRECT (WM_USER+10) #define SB_ISSIMPLE (WM_USER+14) #define SB_SETICON (WM_USER+15) #define SB_GETICON (WM_USER+20) #define SB_SETBKCOLOR CCM_SETBKCOLOR /* lParam = bkColor */ #define SBT_NOBORDERS 0x0100 #define SBT_POPOUT 0x0200 #define SBT_RTLREADING 0x0400 /* not supported */ #define SBT_OWNERDRAW 0x1000 #define SBARS_SIZEGRIP 0x0100 #define SBN_FIRST (0U-880U) #define SBN_LAST (0U-899U) #define SBN_SIMPLEMODECHANGE (SBN_FIRST-0) void WINAPI MenuHelp (UINT32, WPARAM32, LPARAM, HMENU32, HINSTANCE32, HWND32, LPUINT32); /* UpDown */ #define UPDOWN_CLASS16 "msctls_updown" #define UPDOWN_CLASS32A "msctls_updown32" #define UPDOWN_CLASS32W L"msctls_updown32" /*FIXME*/ #define UPDOWN_CLASS WINELIB_NAME_AW(UPDOWN_CLASS) typedef struct tagUDACCEL { UINT32 nSec; UINT32 nInc; } UDACCEL; #define UD_MAXVAL 0x7fff #define UD_MINVAL 0x8001 #define UDS_WRAP 0x0001 #define UDS_SETBUDDYINT 0x0002 #define UDS_ALIGNRIGHT 0x0004 #define UDS_ALIGNLEFT 0x0008 #define UDS_AUTOBUDDY 0x0010 #define UDS_ARROWKEYS 0x0020 #define UDS_HORZ 0x0040 #define UDS_NOTHOUSANDS 0x0080 #define UDN_FIRST (0U-721) #define UDN_DELTAPOS (UDN_FIRST-1) #define UDM_SETRANGE (WM_USER+101) #define UDM_GETRANGE (WM_USER+102) #define UDM_SETPOS (WM_USER+103) #define UDM_GETPOS (WM_USER+104) #define UDM_SETBUDDY (WM_USER+105) #define UDM_GETBUDDY (WM_USER+106) #define UDM_SETACCEL (WM_USER+107) #define UDM_GETACCEL (WM_USER+108) #define UDM_SETBASE (WM_USER+109) #define UDM_GETBASE (WM_USER+110) #define UDM_SETRANGE32 (WM_USER+111) #define UDM_GETRANGE32 (WM_USER+112) /* Progress Bar */ #define PROGRESS_CLASS32A "msctls_progress32" #define PROGRESS_CLASS32W L"msctls_progress32" #define PROGRESS_CLASS16 "msctls_progress" #define PROGRESS_CLASS WINELIB_NAME_AW(PROGRESS_CLASS) #define PBM_SETRANGE (WM_USER+1) #define PBM_SETPOS (WM_USER+2) #define PBM_DELTAPOS (WM_USER+3) #define PBM_SETSTEP (WM_USER+4) #define PBM_STEPIT (WM_USER+5) #define PBM_SETRANGE32 (WM_USER+6) #define PBM_GETRANGE (WM_USER+7) #define PBM_GETPOS (WM_USER+8) #define PBM_SETBARCOLOR (WM_USER+9) #define PBM_SETBKCOLOR CCM_SETBKCOLOR #define PBS_SMOOTH 0x01 #define PBS_VERTICAL 0x04 typedef struct { INT32 iLow; INT32 iHigh; } PBRANGE, *PPBRANGE; /* Functions prototypes */ HWND16 WINAPI CreateStatusWindow16(INT16,LPCSTR,HWND16,UINT16); HWND32 WINAPI CreateStatusWindow32A(INT32,LPCSTR,HWND32,UINT32); HWND32 WINAPI CreateStatusWindow32W(INT32,LPCWSTR,HWND32,UINT32); #define CreateStatusWindow WINELIB_NAME_AW(CreateStatusWindow) HWND32 WINAPI CreateUpDownControl(DWORD,INT32,INT32,INT32,INT32, HWND32,INT32,HINSTANCE32,HWND32, INT32,INT32,INT32); VOID WINAPI DrawStatusText16(HDC16,LPRECT16,LPCSTR,UINT16); VOID WINAPI DrawStatusText32A(HDC32,LPRECT32,LPCSTR,UINT32); VOID WINAPI DrawStatusText32W(HDC32,LPRECT32,LPCWSTR,UINT32); #define DrawStatusText WINELIB_NAME_AW(DrawStatusText) /* ImageList */ #if defined(__WINE__) && defined(__WINE_IMAGELIST_C) #else struct _IMAGELIST; typedef struct _IMAGELIST *HIMAGELIST; #endif /* __WINE__ */ #define CLR_NONE 0xFFFFFFFF #define CLR_DEFAULT 0xFF000000 #define CLR_HILIGHT CLR_DEFAULT #define ILC_MASK 0x0001 #define ILC_COLOR 0x0000 #define ILC_COLORDDB 0x00FE #define ILC_COLOR4 0x0004 #define ILC_COLOR8 0x0008 #define ILC_COLOR16 0x0010 #define ILC_COLOR24 0x0018 #define ILC_COLOR32 0x0020 #define ILC_PALETTE 0x0800 /* no longer supported by M$ */ #define ILD_NORMAL 0x0000 #define ILD_TRANSPARENT 0x0001 #define ILD_BLEND25 0x0002 #define ILD_BLEND50 0x0004 #define ILD_MASK 0x0010 #define ILD_IMAGE 0x0020 #define ILD_ROP 0x0040 #define ILD_OVERLAYMASK 0x0F00 #define ILD_SELECTED ILD_BLEND50 #define ILD_FOCUS ILD_BLEND25 #define ILD_BLEND ILD_BLEND50 #define INDEXTOOVERLAYMASK(i) ((i)<<8) #define ILCF_MOVE (0x00000000) #define ILCF_SWAP (0x00000001) typedef struct _IMAGEINFO { HBITMAP32 hbmImage; HBITMAP32 hbmMask; INT32 Unused1; INT32 Unused2; RECT32 rcImage; } IMAGEINFO; typedef struct _IMAGELISTDRAWPARAMS { DWORD cbSize; HIMAGELIST himl; INT32 i; HDC32 hdcDst; INT32 x; INT32 y; INT32 cx; INT32 cy; INT32 xBitmap; /* x offest from the upperleft of bitmap */ INT32 yBitmap; /* y offset from the upperleft of bitmap */ COLORREF rgbBk; COLORREF rgbFg; UINT32 fStyle; DWORD dwRop; } IMAGELISTDRAWPARAMS, *LPIMAGELISTDRAWPARAMS; INT32 WINAPI ImageList_Add(HIMAGELIST,HBITMAP32,HBITMAP32); INT32 WINAPI ImageList_AddMasked(HIMAGELIST,HBITMAP32,COLORREF); BOOL32 WINAPI ImageList_BeginDrag(HIMAGELIST,INT32,INT32,INT32); BOOL32 WINAPI ImageList_Copy(HIMAGELIST,INT32,HIMAGELIST,INT32,INT32); HIMAGELIST WINAPI ImageList_Create(INT32,INT32,UINT32,INT32,INT32); BOOL32 WINAPI ImageList_Destroy(HIMAGELIST); BOOL32 WINAPI ImageList_DragEnter(HWND32,INT32,INT32); BOOL32 WINAPI ImageList_DragLeave(HWND32); BOOL32 WINAPI ImageList_DragMove(INT32,INT32); BOOL32 WINAPI ImageList_DragShowNolock (BOOL32 bShow); BOOL32 WINAPI ImageList_Draw(HIMAGELIST,INT32,HDC32,INT32,INT32,UINT32); BOOL32 WINAPI ImageList_DrawEx(HIMAGELIST,INT32,HDC32,INT32,INT32,INT32, INT32,COLORREF,COLORREF,UINT32); BOOL32 WINAPI ImageList_DrawIndirect(IMAGELISTDRAWPARAMS*); HIMAGELIST WINAPI ImageList_Duplicate(HIMAGELIST); BOOL32 WINAPI ImageList_EndDrag (VOID); COLORREF WINAPI ImageList_GetBkColor(HIMAGELIST); HIMAGELIST WINAPI ImageList_GetDragImage(POINT32*,POINT32*); HICON32 WINAPI ImageList_GetIcon(HIMAGELIST,INT32,UINT32); BOOL32 WINAPI ImageList_GetIconSize(HIMAGELIST,INT32*,INT32*); INT32 WINAPI ImageList_GetImageCount(HIMAGELIST); BOOL32 WINAPI ImageList_GetImageInfo(HIMAGELIST,INT32,IMAGEINFO*); BOOL32 WINAPI ImageList_GetImageRect (HIMAGELIST,INT32,LPRECT32); HIMAGELIST WINAPI ImageList_LoadImage32A(HINSTANCE32,LPCSTR,INT32,INT32, COLORREF,UINT32,UINT32); HIMAGELIST WINAPI ImageList_LoadImage32W(HINSTANCE32,LPCWSTR,INT32,INT32, COLORREF,UINT32,UINT32); #define ImageList_LoadImage WINELIB_NAME_AW(ImageList_LoadImage) HIMAGELIST WINAPI ImageList_Merge(HIMAGELIST,INT32,HIMAGELIST,INT32,INT32,INT32); BOOL32 WINAPI ImageList_Remove(HIMAGELIST,INT32); BOOL32 WINAPI ImageList_Replace(HIMAGELIST,INT32,HBITMAP32,HBITMAP32); INT32 WINAPI ImageList_ReplaceIcon(HIMAGELIST,INT32,HICON32); COLORREF WINAPI ImageList_SetBkColor(HIMAGELIST,COLORREF); BOOL32 WINAPI ImageList_SetDragCursorImage(HIMAGELIST,INT32,INT32,INT32); BOOL32 WINAPI ImageList_SetIconSize (HIMAGELIST,INT32,INT32); BOOL32 WINAPI ImageList_SetImageCount (HIMAGELIST,INT32); BOOL32 WINAPI ImageList_SetOverlayImage(HIMAGELIST,INT32,INT32); #define ImageList_AddIcon(himl,hicon) ImageList_ReplaceIcon(himl,-1,hicon) #define ImageList_ExtractIcon(hi,himl,i) ImageList_GetIcon(himl,i,0) #define ImageList_LoadBitmap(hi,lpbmp,cx,cGrow,crMask) \ ImageList_LoadImage(hi,lpbmp,cx,cGrow,crMask,IMAGE_BITMAP,0) #define ImageList_RemoveAll(himl) ImageList_Remove(himl,-1) /* Header control */ #define WC_HEADER16 "SysHeader" #define WC_HEADER32A "SysHeader32" #define WC_HEADER32W L"SysHeader32" #define WC_HEADER WINELIB_NAME_AW(WC_HEADER) #define HDS_HORZ 0x0000 #define HDS_BUTTONS 0x0002 #define HDS_HOTTRACK 0x0004 #define HDS_HIDDEN 0x0008 #define HDS_DRAGDROP 0x0040 #define HDS_FULLDRAG 0x0080 #define HDI_WIDTH 0x0001 #define HDI_HEIGHT HDI_WIDTH #define HDI_TEXT 0x0002 #define HDI_FORMAT 0x0004 #define HDI_LPARAM 0x0008 #define HDI_BITMAP 0x0010 #define HDI_IMAGE 0x0020 #define HDI_DI_SETITEM 0x0040 #define HDI_ORDER 0x0080 #define HDF_LEFT 0x0000 #define HDF_RIGHT 0x0001 #define HDF_CENTER 0x0002 #define HDF_JUSTIFYMASK 0x0003 #define HDF_IMAGE 0x0800 #define HDF_BITMAP_ON_RIGHT 0x1000 #define HDF_BITMAP 0x2000 #define HDF_STRING 0x4000 #define HDF_OWNERDRAW 0x8000 #define HHT_NOWHERE 0x0001 #define HHT_ONHEADER 0x0002 #define HHT_ONDIVIDER 0x0004 #define HHT_ONDIVOPEN 0x0008 #define HHT_ABOVE 0x0100 #define HHT_BELOW 0x0200 #define HHT_TORIGHT 0x0400 #define HHT_TOLEFT 0x0800 #define HDM_FIRST 0x1200 #define HDM_GETITEMCOUNT (HDM_FIRST+0) #define HDM_INSERTITEM32A (HDM_FIRST+1) #define HDM_INSERTITEM32W (HDM_FIRST+10) #define HDM_INSERTITEM WINELIB_NAME_AW(HDM_INSERTITEM) #define HDM_DELETEITEM (HDM_FIRST+2) #define HDM_GETITEM32A (HDM_FIRST+3) #define HDM_GETITEM32W (HDM_FIRST+11) #define HDM_GETITEM WINELIB_NAME_AW(HDM_GETITEM) #define HDM_SETITEM32A (HDM_FIRST+4) #define HDM_SETITEM32W (HDM_FIRST+12) #define HDM_SETITEM WINELIB_NAME_AW(HDM_SETITEM) #define HDM_LAYOUT (HDM_FIRST+5) #define HDM_HITTEST (HDM_FIRST+6) #define HDM_GETITEMRECT (HDM_FIRST+7) #define HDM_SETIMAGELIST (HDM_FIRST+8) #define HDM_GETIMAGELIST (HDM_FIRST+9) #define HDM_ORDERTOINDEX (HDM_FIRST+15) #define HDM_CREATEDRAGIMAGE (HDM_FIRST+16) #define HDM_GETORDERARRAY (HDM_FIRST+17) #define HDM_SETORDERARRAY (HDM_FIRST+18) #define HDM_SETHOTDIVIDER (HDM_FIRST+19) #define HDN_FIRST (0U-300U) #define HDN_LAST (0U-399U) #define HDN_ITEMCHANGING32A (HDN_FIRST-0) #define HDN_ITEMCHANGING32W (HDN_FIRST-20) #define HDN_ITEMCHANGED32A (HDN_FIRST-1) #define HDN_ITEMCHANGED32W (HDN_FIRST-21) #define HDN_ITEMCLICK32A (HDN_FIRST-2) #define HDN_ITEMCLICK32W (HDN_FIRST-22) #define HDN_ITEMDBLCLICK32A (HDN_FIRST-3) #define HDN_ITEMDBLCLICK32W (HDN_FIRST-23) #define HDN_DIVIDERDBLCLICK32A (HDN_FIRST-5) #define HDN_DIVIDERDBLCLICK32W (HDN_FIRST-25) #define HDN_BEGINTRACK32A (HDN_FIRST-6) #define HDN_BEGINTRACK32W (HDN_FIRST-26) #define HDN_ENDTRACK32A (HDN_FIRST-7) #define HDN_ENDTRACK32W (HDN_FIRST-27) #define HDN_TRACK32A (HDN_FIRST-8) #define HDN_TRACK32W (HDN_FIRST-28) #define HDN_GETDISPINFO32A (HDN_FIRST-9) #define HDN_GETDISPINFO32W (HDN_FIRST-29) #define HDN_BEGINDRACK (HDN_FIRST-10) #define HDN_ENDDRACK (HDN_FIRST-11) #define Header_Layout(hwndHD,playout) \ (BOOL32)SendMessage32A((hwndHD),HDM_LAYOUT,0,(LPARAM)(LPHDLAYOUT)(playout)) typedef struct _HD_LAYOUT { RECT32 *prc; WINDOWPOS32 *pwpos; } HDLAYOUT, *LPHDLAYOUT; #define HD_LAYOUT HDLAYOUT typedef struct _HD_ITEMA { UINT32 mask; INT32 cxy; LPSTR pszText; HBITMAP32 hbm; INT32 cchTextMax; INT32 fmt; LPARAM lParam; INT32 iImage; INT32 iOrder; } HD_ITEMA; typedef struct _HD_HITTESTINFO { POINT32 pt; UINT32 flags; INT32 iItem; } HDHITTESTINFO, *LPHDHITTESTINFO; #define HD_HITTESTINFO HDHITTESTINFO typedef struct tagNMHEADERA { NMHDR hdr; INT32 iItem; INT32 iButton; HD_ITEMA *pitem; } NMHEADERA, *LPNMHEADERA; #endif /* __WINE_COMMCTRL_H */