blob: 70d00b4c67e6e6ffd2f0dce1630ef2fca7ad1b70 [file] [log] [blame]
/**
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER within this package.
*/
#include <winapifamily.h>
#ifndef _INC_COMMCTRL
#define _INC_COMMCTRL
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
#include <_mingw_unicode.h>
#ifndef _WINRESRC_
#ifndef _WIN32_IE
#define _WIN32_IE 0x0501
#endif
#endif
#ifndef _HRESULT_DEFINED
#define _HRESULT_DEFINED
typedef LONG HRESULT;
#endif
#ifndef NOUSER
#ifndef WINCOMMCTRLAPI
#ifndef _COMCTL32_
#define WINCOMMCTRLAPI DECLSPEC_IMPORT
#else
#define WINCOMMCTRLAPI
#endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
#include <prsht.h>
#ifndef SNDMSG
#ifdef __cplusplus
#define SNDMSG ::SendMessage
#else
#define SNDMSG SendMessage
#endif
#endif
WINCOMMCTRLAPI void WINAPI InitCommonControls(void);
typedef struct tagINITCOMMONCONTROLSEX {
DWORD dwSize;
DWORD dwICC;
} INITCOMMONCONTROLSEX,*LPINITCOMMONCONTROLSEX;
#define ICC_LISTVIEW_CLASSES 0x1
#define ICC_TREEVIEW_CLASSES 0x2
#define ICC_BAR_CLASSES 0x4
#define ICC_TAB_CLASSES 0x8
#define ICC_UPDOWN_CLASS 0x10
#define ICC_PROGRESS_CLASS 0x20
#define ICC_HOTKEY_CLASS 0x40
#define ICC_ANIMATE_CLASS 0x80
#define ICC_WIN95_CLASSES 0xff
#define ICC_DATE_CLASSES 0x100
#define ICC_USEREX_CLASSES 0x200
#define ICC_COOL_CLASSES 0x400
#define ICC_INTERNET_CLASSES 0x800
#define ICC_PAGESCROLLER_CLASS 0x1000
#define ICC_NATIVEFNTCTL_CLASS 0x2000
#define ICC_STANDARD_CLASSES 0x4000
#define ICC_LINK_CLASS 0x8000
WINCOMMCTRLAPI WINBOOL WINAPI InitCommonControlsEx(const INITCOMMONCONTROLSEX *);
#define ODT_HEADER 100
#define ODT_TAB 101
#define ODT_LISTVIEW 102
#define LVM_FIRST 0x1000
#define TV_FIRST 0x1100
#define HDM_FIRST 0x1200
#define TCM_FIRST 0x1300
#define PGM_FIRST 0x1400
#define ECM_FIRST 0x1500
#define BCM_FIRST 0x1600
#define CBM_FIRST 0x1700
#define CCM_FIRST 0x2000
#define CCM_LAST (CCM_FIRST+0x200)
#define CCM_SETBKCOLOR (CCM_FIRST+1)
#define CCM_SETCOLORSCHEME (CCM_FIRST+2)
#define CCM_GETCOLORSCHEME (CCM_FIRST+3)
#define CCM_GETDROPTARGET (CCM_FIRST+4)
#define CCM_SETUNICODEFORMAT (CCM_FIRST+5)
#define CCM_GETUNICODEFORMAT (CCM_FIRST+6)
#define CCM_SETVERSION (CCM_FIRST+0x7)
#define CCM_GETVERSION (CCM_FIRST+0x8)
#define CCM_SETNOTIFYWINDOW (CCM_FIRST+0x9)
#define CCM_SETWINDOWTHEME (CCM_FIRST+0xb)
#define CCM_DPISCALE (CCM_FIRST+0xc)
#define COMCTL32_VERSION 6
typedef struct tagCOLORSCHEME {
DWORD dwSize;
COLORREF clrBtnHighlight;
COLORREF clrBtnShadow;
} COLORSCHEME,*LPCOLORSCHEME;
#define INFOTIPSIZE 1024
#define HANDLE_WM_NOTIFY(hwnd,wParam,lParam,fn) (fn)((hwnd),(int)(wParam),(NMHDR *)(lParam))
#define FORWARD_WM_NOTIFY(hwnd,idFrom,pnmhdr,fn) (LRESULT)(fn)((hwnd),WM_NOTIFY,(WPARAM)(int)(idFrom),(LPARAM)(NMHDR *)(pnmhdr))
#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)
#define NM_LDOWN (NM_FIRST-20)
#define NM_RDOWN (NM_FIRST-21)
#define NM_THEMECHANGED (NM_FIRST-22)
#if NTDDI_VERSION >= 0x06000000
#define NM_FONTCHANGED (NM_FIRST-23)
#define NM_CUSTOMTEXT (NM_FIRST-24)
#define NM_TVSTATEIMAGECHANGING (NM_FIRST-24)
#endif
#ifndef CCSIZEOF_STRUCT
#define CCSIZEOF_STRUCT(structname,member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0))))+sizeof(((structname*)0)->member))
#endif
typedef struct tagNMTOOLTIPSCREATED {
NMHDR hdr;
HWND hwndToolTips;
} NMTOOLTIPSCREATED,*LPNMTOOLTIPSCREATED;
typedef struct tagNMMOUSE {
NMHDR hdr;
DWORD_PTR dwItemSpec;
DWORD_PTR dwItemData;
POINT pt;
LPARAM dwHitInfo;
} NMMOUSE,*LPNMMOUSE;
typedef NMMOUSE NMCLICK;
typedef LPNMMOUSE LPNMCLICK;
typedef struct tagNMOBJECTNOTIFY {
NMHDR hdr;
int iItem;
#ifdef __IID_DEFINED__
const IID *piid;
#else
const void *piid;
#endif
void *pObject;
HRESULT hResult;
DWORD dwFlags;
} NMOBJECTNOTIFY,*LPNMOBJECTNOTIFY;
typedef struct tagNMKEY {
NMHDR hdr;
UINT nVKey;
UINT uFlags;
} NMKEY,*LPNMKEY;
typedef struct tagNMCHAR {
NMHDR hdr;
UINT ch;
DWORD dwItemPrev;
DWORD dwItemNext;
} NMCHAR,*LPNMCHAR;
#if _WIN32_IE >= 0x0600
typedef struct tagNMCUSTOMTEXT {
NMHDR hdr;
HDC hDC;
LPCWSTR lpString;
int nCount;
LPRECT lpRect;
UINT uFormat;
WINBOOL fLink;
} NMCUSTOMTEXT,*LPNMCUSTOMTEXT;
#endif
#define NM_FIRST (0U- 0U)
#define NM_LAST (0U- 99U)
#define LVN_FIRST (0U-100U)
#define LVN_LAST (0U-199U)
#define HDN_FIRST (0U-300U)
#define HDN_LAST (0U-399U)
#define TVN_FIRST (0U-400U)
#define TVN_LAST (0U-499U)
#define TTN_FIRST (0U-520U)
#define TTN_LAST (0U-549U)
#define TCN_FIRST (0U-550U)
#define TCN_LAST (0U-580U)
#ifndef CDN_FIRST
#define CDN_FIRST (0U-601U)
#define CDN_LAST (0U-699U)
#endif
#define TBN_FIRST (0U-700U)
#define TBN_LAST (0U-720U)
#define UDN_FIRST (0U-721)
#define UDN_LAST (0U-729U)
#define DTN_FIRST (0U-740U)
#define DTN_LAST (0U-745U)
#define MCN_FIRST (0U-746U)
#define MCN_LAST (0U-752U)
#define DTN_FIRST2 (0U-753U)
#define DTN_LAST2 (0U-799U)
#define CBEN_FIRST (0U-800U)
#define CBEN_LAST (0U-830U)
#define RBN_FIRST (0U-831U)
#define RBN_LAST (0U-859U)
#define IPN_FIRST (0U-860U)
#define IPN_LAST (0U-879U)
#define SBN_FIRST (0U-880U)
#define SBN_LAST (0U-899U)
#define PGN_FIRST (0U-900U)
#define PGN_LAST (0U-950U)
#ifndef WMN_FIRST
#define WMN_FIRST (0U-1000U)
#define WMN_LAST (0U-1200U)
#endif
#define BCN_FIRST (0U-1250U)
#define BCN_LAST (0U-1350U)
#if NTDDI_VERSION >= 0x06000000
#define TRBN_FIRST (0U-1501U)
#define TRBN_LAST (0U-1519U)
#endif
#define MSGF_COMMCTRL_BEGINDRAG 0x4200
#define MSGF_COMMCTRL_SIZEHEADER 0x4201
#define MSGF_COMMCTRL_DRAGSELECT 0x4202
#define MSGF_COMMCTRL_TOOLBARCUST 0x4203
#define CDRF_DODEFAULT 0x0
#define CDRF_NEWFONT 0x2
#define CDRF_SKIPDEFAULT 0x4
#define CDRF_DOERASE 0x8
#define CDRF_SKIPPOSTPAINT 0x100
#define CDRF_NOTIFYPOSTPAINT 0x10
#define CDRF_NOTIFYITEMDRAW 0x20
#define CDRF_NOTIFYSUBITEMDRAW 0x20
#define CDRF_NOTIFYPOSTERASE 0x40
#define CDDS_PREPAINT 0x1
#define CDDS_POSTPAINT 0x2
#define CDDS_PREERASE 0x3
#define CDDS_POSTERASE 0x4
#define CDDS_ITEM 0x10000
#define CDDS_ITEMPREPAINT (CDDS_ITEM | CDDS_PREPAINT)
#define CDDS_ITEMPOSTPAINT (CDDS_ITEM | CDDS_POSTPAINT)
#define CDDS_ITEMPREERASE (CDDS_ITEM | CDDS_PREERASE)
#define CDDS_ITEMPOSTERASE (CDDS_ITEM | CDDS_POSTERASE)
#define CDDS_SUBITEM 0x20000
#define CDIS_SELECTED 0x1
#define CDIS_GRAYED 0x2
#define CDIS_DISABLED 0x4
#define CDIS_CHECKED 0x8
#define CDIS_FOCUS 0x10
#define CDIS_DEFAULT 0x20
#define CDIS_HOT 0x40
#define CDIS_MARKED 0x80
#define CDIS_INDETERMINATE 0x100
#define CDIS_SHOWKEYBOARDCUES 0x200
#if NTDDI_VERSION >= 0x06000000
#define CDIS_NEARHOT 0x0400
#define CDIS_OTHERSIDEHOT 0x0800
#define CDIS_DROPHILITED 0x1000
#endif
typedef struct tagNMCUSTOMDRAWINFO {
NMHDR hdr;
DWORD dwDrawStage;
HDC hdc;
RECT rc;
DWORD_PTR dwItemSpec;
UINT uItemState;
LPARAM lItemlParam;
} NMCUSTOMDRAW,*LPNMCUSTOMDRAW;
typedef struct tagNMTTCUSTOMDRAW {
NMCUSTOMDRAW nmcd;
UINT uDrawFlags;
} NMTTCUSTOMDRAW,*LPNMTTCUSTOMDRAW;
typedef struct tagNMCUSTOMSPLITRECTINFO {
NMHDR hdr;
RECT rcClient;
RECT rcButton;
RECT rcSplit;
} NMCUSTOMSPLITRECTINFO,*LPNMCUSTOMSPLITRECTINFO;
#define NM_GETCUSTOMSPLITRECT (BCN_FIRST + 0x0003)
#ifndef NOIMAGEAPIS
#define CLR_NONE __MSABI_LONG(0xffffffff)
#define CLR_DEFAULT __MSABI_LONG(0xff000000)
#ifndef HIMAGELIST
struct _IMAGELIST;
typedef struct _IMAGELIST *HIMAGELIST;
#endif
#ifndef IMAGELISTDRAWPARAMS
typedef struct _IMAGELISTDRAWPARAMS {
DWORD cbSize;
HIMAGELIST himl;
int i;
HDC hdcDst;
int x;
int y;
int cx;
int cy;
int xBitmap;
int yBitmap;
COLORREF rgbBk;
COLORREF rgbFg;
UINT fStyle;
DWORD dwRop;
DWORD fState;
DWORD Frame;
COLORREF crEffect;
} IMAGELISTDRAWPARAMS,*LPIMAGELISTDRAWPARAMS;
#define IMAGELISTDRAWPARAMS_V3_SIZE CCSIZEOF_STRUCT(IMAGELISTDRAWPARAMS,dwRop)
#endif
#define ILC_MASK 0x1
#define ILC_COLOR 0x0
#define ILC_COLORDDB 0xfe
#define ILC_COLOR4 0x4
#define ILC_COLOR8 0x8
#define ILC_COLOR16 0x10
#define ILC_COLOR24 0x18
#define ILC_COLOR32 0x20
#define ILC_PALETTE 0x800
#define ILC_MIRROR 0x2000
#define ILC_PERITEMMIRROR 0x8000
#if NTDDI_VERSION >= 0x06000000
#define ILC_ORIGINALSIZE 0x00010000
#define ILC_HIGHQUALITYSCALE 0x00020000
#endif
WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Create(int cx,int cy,UINT flags,int cInitial,int cGrow);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_Destroy(HIMAGELIST himl);
WINCOMMCTRLAPI int WINAPI ImageList_GetImageCount(HIMAGELIST himl);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_SetImageCount(HIMAGELIST himl,UINT uNewCount);
WINCOMMCTRLAPI int WINAPI ImageList_Add(HIMAGELIST himl,HBITMAP hbmImage,HBITMAP hbmMask);
WINCOMMCTRLAPI int WINAPI ImageList_ReplaceIcon(HIMAGELIST himl,int i,HICON hicon);
WINCOMMCTRLAPI COLORREF WINAPI ImageList_SetBkColor(HIMAGELIST himl,COLORREF clrBk);
WINCOMMCTRLAPI COLORREF WINAPI ImageList_GetBkColor(HIMAGELIST himl);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_SetOverlayImage(HIMAGELIST himl,int iImage,int iOverlay);
#define ImageList_AddIcon(himl,hicon) ImageList_ReplaceIcon(himl,-1,hicon)
#define ILD_NORMAL 0x0
#define ILD_TRANSPARENT 0x1
#define ILD_MASK 0x10
#define ILD_IMAGE 0x20
#define ILD_ROP 0x40
#define ILD_BLEND25 0x2
#define ILD_BLEND50 0x4
#define ILD_OVERLAYMASK 0xf00
#define INDEXTOOVERLAYMASK(i) ((i) << 8)
#define ILD_PRESERVEALPHA 0x1000
#define ILD_SCALE 0x2000
#define ILD_DPISCALE 0x4000
#if NTDDI_VERSION >= 0x06000000
#define ILD_ASYNC 0x8000
#endif
#define ILD_SELECTED ILD_BLEND50
#define ILD_FOCUS ILD_BLEND25
#define ILD_BLEND ILD_BLEND50
#define CLR_HILIGHT CLR_DEFAULT
#define ILS_NORMAL 0x0
#define ILS_GLOW 0x1
#define ILS_SHADOW 0x2
#define ILS_SATURATE 0x4
#define ILS_ALPHA 0x8
#if NTDDI_VERSION >= 0x06000000
#define ILGT_NORMAL 0x0
#define ILGT_ASYNC 0x1
#define HBITMAP_CALLBACK ((HBITMAP)-1)
#endif
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_Draw(HIMAGELIST himl,int i,HDC hdcDst,int x,int y,UINT fStyle);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_Replace(HIMAGELIST himl,int i,HBITMAP hbmImage,HBITMAP hbmMask);
WINCOMMCTRLAPI int WINAPI ImageList_AddMasked(HIMAGELIST himl,HBITMAP hbmImage,COLORREF crMask);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_DrawEx(HIMAGELIST himl,int i,HDC hdcDst,int x,int y,int dx,int dy,COLORREF rgbBk,COLORREF rgbFg,UINT fStyle);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_DrawIndirect(IMAGELISTDRAWPARAMS *pimldp);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_Remove(HIMAGELIST himl,int i);
WINCOMMCTRLAPI HICON WINAPI ImageList_GetIcon(HIMAGELIST himl,int i,UINT flags);
WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_LoadImageA(HINSTANCE hi,LPCSTR lpbmp,int cx,int cGrow,COLORREF crMask,UINT uType,UINT uFlags);
WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_LoadImageW(HINSTANCE hi,LPCWSTR lpbmp,int cx,int cGrow,COLORREF crMask,UINT uType,UINT uFlags);
#define ImageList_LoadImage __MINGW_NAME_AW(ImageList_LoadImage)
#define ILCF_MOVE 0x0
#define ILCF_SWAP 0x1
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_Copy(HIMAGELIST himlDst,int iDst,HIMAGELIST himlSrc,int iSrc,UINT uFlags);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_BeginDrag(HIMAGELIST himlTrack,int iTrack,int dxHotspot,int dyHotspot);
WINCOMMCTRLAPI void WINAPI ImageList_EndDrag(void);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_DragEnter(HWND hwndLock,int x,int y);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_DragLeave(HWND hwndLock);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_DragMove(int x,int y);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_SetDragCursorImage(HIMAGELIST himlDrag,int iDrag,int dxHotspot,int dyHotspot);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_DragShowNolock(WINBOOL fShow);
WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_GetDragImage(POINT *ppt,POINT *pptHotspot);
#define ImageList_RemoveAll(himl) ImageList_Remove(himl,-1)
#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)
#ifdef __IStream_INTERFACE_DEFINED__
WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Read(LPSTREAM pstm);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_Write(HIMAGELIST himl,LPSTREAM pstm);
#define ILP_NORMAL 0
#define ILP_DOWNLEVEL 1
WINCOMMCTRLAPI HRESULT WINAPI ImageList_ReadEx(DWORD dwFlags,LPSTREAM pstm,REFIID riid,PVOID *ppv);
WINCOMMCTRLAPI HRESULT WINAPI ImageList_WriteEx(HIMAGELIST himl,DWORD dwFlags,LPSTREAM pstm);
#endif
#ifndef IMAGEINFO
typedef struct _IMAGEINFO {
HBITMAP hbmImage;
HBITMAP hbmMask;
int Unused1;
int Unused2;
RECT rcImage;
} IMAGEINFO,*LPIMAGEINFO;
#endif
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_GetIconSize(HIMAGELIST himl,int *cx,int *cy);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_SetIconSize(HIMAGELIST himl,int cx,int cy);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_GetImageInfo(HIMAGELIST himl,int i,IMAGEINFO *pImageInfo);
WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Merge(HIMAGELIST himl1,int i1,HIMAGELIST himl2,int i2,int dx,int dy);
WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Duplicate(HIMAGELIST himl);
WINCOMMCTRLAPI HRESULT WINAPI HIMAGELIST_QueryInterface (HIMAGELIST himl, REFIID riid, void **ppv);
#ifdef __cplusplus
FORCEINLINE HIMAGELIST IImageListToHIMAGELIST (struct IImageList *il) {
return reinterpret_cast<HIMAGELIST> (il);
}
#else
#define IImageListToHIMAGELIST(IL) ((HIMAGELIST) (IL))
#endif
#endif
#ifndef NOHEADER
#define WC_HEADERA "SysHeader32"
#define WC_HEADERW L"SysHeader32"
#define WC_HEADER __MINGW_NAME_AW(WC_HEADER)
#define HDS_HORZ 0x0
#define HDS_BUTTONS 0x2
#define HDS_HOTTRACK 0x4
#define HDS_HIDDEN 0x8
#define HDS_DRAGDROP 0x40
#define HDS_FULLDRAG 0x80
#define HDS_FILTERBAR 0x100
#define HDS_FLAT 0x200
#if (_WIN32_WINNT >= 0x0600)
#define HDS_CHECKBOXES 0x400
#define HDS_NOSIZING 0x800
#define HDS_OVERFLOW 0x1000
#endif
#define HDFT_ISSTRING 0x0
#define HDFT_ISNUMBER 0x1
#define HDFT_ISDATE 0x2
#define HDFT_HASNOVALUE 0x8000
#define HD_TEXTFILTER __MINGW_NAME_AW(HD_TEXTFILTER)
#define HDTEXTFILTER __MINGW_NAME_AW(HD_TEXTFILTER)
#define LPHD_TEXTFILTER __MINGW_NAME_AW(LPHD_TEXTFILTER)
#define LPHDTEXTFILTER __MINGW_NAME_AW(LPHD_TEXTFILTER)
typedef struct _HD_TEXTFILTERA {
LPSTR pszText;
INT cchTextMax;
} HD_TEXTFILTERA,*LPHD_TEXTFILTERA;
typedef struct _HD_TEXTFILTERW {
LPWSTR pszText;
INT cchTextMax;
} HD_TEXTFILTERW,*LPHD_TEXTFILTERW;
#define HD_ITEMA HDITEMA
#define HD_ITEMW HDITEMW
#define HD_ITEM HDITEM
typedef struct _HD_ITEMA {
UINT mask;
int cxy;
LPSTR pszText;
HBITMAP hbm;
int cchTextMax;
int fmt;
LPARAM lParam;
int iImage;
int iOrder;
UINT type;
void *pvFilter;
#if NTDDI_VERSION >= 0x06000000
UINT state;
#endif
} HDITEMA,*LPHDITEMA;
#define HDITEMA_V1_SIZE CCSIZEOF_STRUCT(HDITEMA,lParam)
#define HDITEMW_V1_SIZE CCSIZEOF_STRUCT(HDITEMW,lParam)
typedef struct _HD_ITEMW {
UINT mask;
int cxy;
LPWSTR pszText;
HBITMAP hbm;
int cchTextMax;
int fmt;
LPARAM lParam;
int iImage;
int iOrder;
UINT type;
void *pvFilter;
#if NTDDI_VERSION >= 0x06000000
UINT state;
#endif
} HDITEMW,*LPHDITEMW;
#define HDITEM __MINGW_NAME_AW(HDITEM)
#define LPHDITEM __MINGW_NAME_AW(LPHDITEM)
#define HDITEM_V1_SIZE __MINGW_NAME_AW_EXT(HDITEM,_V1_SIZE)
#define HDI_WIDTH 0x1
#define HDI_HEIGHT HDI_WIDTH
#define HDI_TEXT 0x2
#define HDI_FORMAT 0x4
#define HDI_LPARAM 0x8
#define HDI_BITMAP 0x10
#define HDI_IMAGE 0x20
#define HDI_DI_SETITEM 0x40
#define HDI_ORDER 0x80
#define HDI_FILTER 0x100
#if NTDDI_VERSION >= 0x06000000
#define HDI_STATE 0x0200
#endif
#define HDF_LEFT 0x0
#define HDF_RIGHT 0x1
#define HDF_CENTER 0x2
#define HDF_JUSTIFYMASK 0x3
#define HDF_RTLREADING 0x4
#define HDF_OWNERDRAW 0x8000
#define HDF_STRING 0x4000
#define HDF_BITMAP 0x2000
#define HDF_BITMAP_ON_RIGHT 0x1000
#define HDF_IMAGE 0x800
#define HDF_SORTUP 0x400
#define HDF_SORTDOWN 0x200
#if NTDDI_VERSION >= 0x06000000
#define HDF_CHECKBOX 0x40
#define HDF_CHECKED 0x80
#define HDF_FIXEDWIDTH 0x100
#define HDF_SPLITBUTTON 0x1000000
#define HDIS_FOCUSED 0x1
#endif
#define HDM_GETITEMCOUNT (HDM_FIRST+0)
#define Header_GetItemCount(hwndHD) (int)SNDMSG((hwndHD),HDM_GETITEMCOUNT,(WPARAM)0,(LPARAM)0)
#define HDM_INSERTITEMA (HDM_FIRST+1)
#define HDM_INSERTITEMW (HDM_FIRST+10)
#define HDM_INSERTITEM __MINGW_NAME_AW(HDM_INSERTITEM)
#define Header_InsertItem(hwndHD,i,phdi) (int)SNDMSG((hwndHD),HDM_INSERTITEM,(WPARAM)(int)(i),(LPARAM)(const HD_ITEM *)(phdi))
#define HDM_DELETEITEM (HDM_FIRST+2)
#define Header_DeleteItem(hwndHD,i) (WINBOOL)SNDMSG((hwndHD),HDM_DELETEITEM,(WPARAM)(int)(i),(LPARAM)0)
#define HDM_GETITEMA (HDM_FIRST+3)
#define HDM_GETITEMW (HDM_FIRST+11)
#define HDM_GETITEM __MINGW_NAME_AW(HDM_GETITEM)
#define Header_GetItem(hwndHD,i,phdi) (WINBOOL)SNDMSG((hwndHD),HDM_GETITEM,(WPARAM)(int)(i),(LPARAM)(HD_ITEM *)(phdi))
#define HDM_SETITEMA (HDM_FIRST+4)
#define HDM_SETITEMW (HDM_FIRST+12)
#define HDM_SETITEM __MINGW_NAME_AW(HDM_SETITEM)
#define Header_SetItem(hwndHD,i,phdi) (WINBOOL)SNDMSG((hwndHD),HDM_SETITEM,(WPARAM)(int)(i),(LPARAM)(const HD_ITEM *)(phdi))
#define HD_LAYOUT HDLAYOUT
typedef struct _HD_LAYOUT {
RECT *prc;
WINDOWPOS *pwpos;
} HDLAYOUT,*LPHDLAYOUT;
#define HDM_LAYOUT (HDM_FIRST+5)
#define Header_Layout(hwndHD,playout) (WINBOOL)SNDMSG((hwndHD),HDM_LAYOUT,0,(LPARAM)(HD_LAYOUT *)(playout))
#define HHT_NOWHERE 0x1
#define HHT_ONHEADER 0x2
#define HHT_ONDIVIDER 0x4
#define HHT_ONDIVOPEN 0x8
#define HHT_ONFILTER 0x10
#define HHT_ONFILTERBUTTON 0x20
#define HHT_ABOVE 0x100
#define HHT_BELOW 0x200
#define HHT_TORIGHT 0x400
#define HHT_TOLEFT 0x800
#if NTDDI_VERSION >= 0x06000000
#define HHT_ONITEMSTATEICON 0x1000
#define HHT_ONDROPDOWN 0x2000
#define HHT_ONOVERFLOW 0x4000
#endif
#define HD_HITTESTINFO HDHITTESTINFO
typedef struct _HD_HITTESTINFO {
POINT pt;
UINT flags;
int iItem;
} HDHITTESTINFO,*LPHDHITTESTINFO;
#define HDSIL_NORMAL 0
#define HDSIL_STATE 1
#define HDM_HITTEST (HDM_FIRST+6)
#define HDM_GETITEMRECT (HDM_FIRST+7)
#define Header_GetItemRect(hwnd,iItem,lprc) (WINBOOL)SNDMSG((hwnd),HDM_GETITEMRECT,(WPARAM)(iItem),(LPARAM)(lprc))
#define HDM_SETIMAGELIST (HDM_FIRST+8)
#define Header_SetImageList(hwnd,himl) (HIMAGELIST)SNDMSG((hwnd),HDM_SETIMAGELIST,0,(LPARAM)(himl))
#define HDM_GETIMAGELIST (HDM_FIRST+9)
#define Header_GetImageList(hwnd) (HIMAGELIST)SNDMSG((hwnd),HDM_GETIMAGELIST,0,0)
#define HDM_ORDERTOINDEX (HDM_FIRST+15)
#define Header_OrderToIndex(hwnd,i) (int)SNDMSG((hwnd),HDM_ORDERTOINDEX,(WPARAM)(i),0)
#define HDM_CREATEDRAGIMAGE (HDM_FIRST+16)
#define Header_CreateDragImage(hwnd,i) (HIMAGELIST)SNDMSG((hwnd),HDM_CREATEDRAGIMAGE,(WPARAM)(i),0)
#define HDM_GETORDERARRAY (HDM_FIRST+17)
#define Header_GetOrderArray(hwnd,iCount,lpi) (WINBOOL)SNDMSG((hwnd),HDM_GETORDERARRAY,(WPARAM)(iCount),(LPARAM)(lpi))
#define HDM_SETORDERARRAY (HDM_FIRST+18)
#define Header_SetOrderArray(hwnd,iCount,lpi) (WINBOOL)SNDMSG((hwnd),HDM_SETORDERARRAY,(WPARAM)(iCount),(LPARAM)(lpi))
#define HDM_SETHOTDIVIDER (HDM_FIRST+19)
#define Header_SetHotDivider(hwnd,fPos,dw) (int)SNDMSG((hwnd),HDM_SETHOTDIVIDER,(WPARAM)(fPos),(LPARAM)(dw))
#define HDM_SETBITMAPMARGIN (HDM_FIRST+20)
#define Header_SetBitmapMargin(hwnd,iWidth) (int)SNDMSG((hwnd),HDM_SETBITMAPMARGIN,(WPARAM)(iWidth),0)
#define HDM_GETBITMAPMARGIN (HDM_FIRST+21)
#define Header_GetBitmapMargin(hwnd) (int)SNDMSG((hwnd),HDM_GETBITMAPMARGIN,0,0)
#define HDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define Header_SetUnicodeFormat(hwnd,fUnicode) (WINBOOL)SNDMSG((hwnd),HDM_SETUNICODEFORMAT,(WPARAM)(fUnicode),0)
#define HDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define Header_GetUnicodeFormat(hwnd) (WINBOOL)SNDMSG((hwnd),HDM_GETUNICODEFORMAT,0,0)
#define HDM_SETFILTERCHANGETIMEOUT (HDM_FIRST+22)
#define Header_SetFilterChangeTimeout(hwnd,i) (int)SNDMSG((hwnd),HDM_SETFILTERCHANGETIMEOUT,0,(LPARAM)(i))
#define HDM_EDITFILTER (HDM_FIRST+23)
#define Header_EditFilter(hwnd,i,fDiscardChanges) (int)SNDMSG((hwnd),HDM_EDITFILTER,(WPARAM)(i),MAKELPARAM(fDiscardChanges,0))
#if _WIN32_IE >= 0x0600
#define HDM_TRANSLATEACCELERATOR CCM_TRANSLATEACCELERATOR
#endif
#define HDM_CLEARFILTER (HDM_FIRST+24)
#define Header_ClearFilter(hwnd,i) (int)SNDMSG((hwnd),HDM_CLEARFILTER,(WPARAM)(i),0)
#define Header_ClearAllFilters(hwnd) (int)SNDMSG((hwnd),HDM_CLEARFILTER,(WPARAM)-1,0)
#if NTDDI_VERSION >= 0x06000000
#define HDM_GETITEMDROPDOWNRECT (HDM_FIRST+25)
#define Header_GetItemDropDownRect(hwnd, iItem, lprc) (WINBOOL)SNDMSG ((hwnd), HDM_GETITEMDROPDOWNRECT,(WPARAM) (iItem),(LPARAM) (lprc))
#define HDM_GETOVERFLOWRECT (HDM_FIRST+26)
#define Header_GetOverflowRect(hwnd, lprc) (WINBOOL)SNDMSG ((hwnd), HDM_GETOVERFLOWRECT, 0,(LPARAM) (lprc))
#define HDM_GETFOCUSEDITEM (HDM_FIRST+27)
#define Header_GetFocusedItem(hwnd) (int)SNDMSG ((hwnd), HDM_GETFOCUSEDITEM,(WPARAM) 0,(LPARAM) 0)
#define HDM_SETFOCUSEDITEM (HDM_FIRST+28)
#define Header_SetFocusedItem(hwnd, iItem) (WINBOOL)SNDMSG ((hwnd), HDM_SETFOCUSEDITEM,(WPARAM) 0,(LPARAM) (iItem))
#endif
#define HDN_ITEMCHANGINGA (HDN_FIRST-0)
#define HDN_ITEMCHANGINGW (HDN_FIRST-20)
#define HDN_ITEMCHANGEDA (HDN_FIRST-1)
#define HDN_ITEMCHANGEDW (HDN_FIRST-21)
#define HDN_ITEMCLICKA (HDN_FIRST-2)
#define HDN_ITEMCLICKW (HDN_FIRST-22)
#define HDN_ITEMDBLCLICKA (HDN_FIRST-3)
#define HDN_ITEMDBLCLICKW (HDN_FIRST-23)
#define HDN_DIVIDERDBLCLICKA (HDN_FIRST-5)
#define HDN_DIVIDERDBLCLICKW (HDN_FIRST-25)
#define HDN_BEGINTRACKA (HDN_FIRST-6)
#define HDN_BEGINTRACKW (HDN_FIRST-26)
#define HDN_ENDTRACKA (HDN_FIRST-7)
#define HDN_ENDTRACKW (HDN_FIRST-27)
#define HDN_TRACKA (HDN_FIRST-8)
#define HDN_TRACKW (HDN_FIRST-28)
#define HDN_GETDISPINFOA (HDN_FIRST-9)
#define HDN_GETDISPINFOW (HDN_FIRST-29)
#define HDN_BEGINDRAG (HDN_FIRST-10)
#define HDN_ENDDRAG (HDN_FIRST-11)
#define HDN_FILTERCHANGE (HDN_FIRST-12)
#define HDN_FILTERBTNCLICK (HDN_FIRST-13)
#if _WIN32_IE >= 0x0600
#define HDN_BEGINFILTEREDIT (HDN_FIRST-14)
#define HDN_ENDFILTEREDIT (HDN_FIRST-15)
#endif
#if NTDDI_VERSION >= 0x06000000
#define HDN_ITEMSTATEICONCLICK (HDN_FIRST-16)
#define HDN_ITEMKEYDOWN (HDN_FIRST-17)
#define HDN_DROPDOWN (HDN_FIRST-18)
#define HDN_OVERFLOWCLICK (HDN_FIRST-19)
#endif
#define HDN_ITEMCHANGING __MINGW_NAME_AW(HDN_ITEMCHANGING)
#define HDN_ITEMCHANGED __MINGW_NAME_AW(HDN_ITEMCHANGED)
#define HDN_ITEMCLICK __MINGW_NAME_AW(HDN_ITEMCLICK)
#define HDN_ITEMDBLCLICK __MINGW_NAME_AW(HDN_ITEMDBLCLICK)
#define HDN_DIVIDERDBLCLICK __MINGW_NAME_AW(HDN_DIVIDERDBLCLICK)
#define HDN_BEGINTRACK __MINGW_NAME_AW(HDN_BEGINTRACK)
#define HDN_ENDTRACK __MINGW_NAME_AW(HDN_ENDTRACK)
#define HDN_TRACK __MINGW_NAME_AW(HDN_TRACK)
#define HDN_GETDISPINFO __MINGW_NAME_AW(HDN_GETDISPINFO)
#define HD_NOTIFYA NMHEADERA
#define HD_NOTIFYW NMHEADERW
#define HD_NOTIFY NMHEADER
typedef struct tagNMHEADERA {
NMHDR hdr;
int iItem;
int iButton;
HDITEMA *pitem;
} NMHEADERA,*LPNMHEADERA;
typedef struct tagNMHEADERW {
NMHDR hdr;
int iItem;
int iButton;
HDITEMW *pitem;
} NMHEADERW,*LPNMHEADERW;
#define NMHEADER __MINGW_NAME_AW(NMHEADER)
#define LPNMHEADER __MINGW_NAME_AW(LPNMHEADER)
typedef struct tagNMHDDISPINFOW {
NMHDR hdr;
int iItem;
UINT mask;
LPWSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
} NMHDDISPINFOW,*LPNMHDDISPINFOW;
typedef struct tagNMHDDISPINFOA {
NMHDR hdr;
int iItem;
UINT mask;
LPSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
} NMHDDISPINFOA,*LPNMHDDISPINFOA;
#define NMHDDISPINFO __MINGW_NAME_AW(NMHDDISPINFO)
#define LPNMHDDISPINFO __MINGW_NAME_AW(LPNMHDDISPINFO)
typedef struct tagNMHDFILTERBTNCLICK {
NMHDR hdr;
INT iItem;
RECT rc;
} NMHDFILTERBTNCLICK,*LPNMHDFILTERBTNCLICK;
#endif
#ifndef NOTOOLBAR
#define TOOLBARCLASSNAMEW L"ToolbarWindow32"
#define TOOLBARCLASSNAMEA "ToolbarWindow32"
#define TOOLBARCLASSNAME __MINGW_NAME_AW(TOOLBARCLASSNAME)
typedef struct _TBBUTTON {
int iBitmap;
int idCommand;
BYTE fsState;
BYTE fsStyle;
#ifdef _WIN64
BYTE bReserved[6];
#else
BYTE bReserved[2];
#endif
DWORD_PTR dwData;
INT_PTR iString;
} TBBUTTON,NEAR *PTBBUTTON,*LPTBBUTTON;
typedef const TBBUTTON *LPCTBBUTTON;
typedef struct _COLORMAP {
COLORREF from;
COLORREF to;
} COLORMAP,*LPCOLORMAP;
WINCOMMCTRLAPI HWND WINAPI CreateToolbarEx(HWND hwnd,DWORD ws,UINT wID,int nBitmaps,HINSTANCE hBMInst,UINT_PTR wBMID,LPCTBBUTTON lpButtons,int iNumButtons,int dxButton,int dyButton,int dxBitmap,int dyBitmap,UINT uStructSize);
WINCOMMCTRLAPI HBITMAP WINAPI CreateMappedBitmap(HINSTANCE hInstance,INT_PTR idBitmap,UINT wFlags,LPCOLORMAP lpColorMap,int iNumMaps);
#define CMB_MASKED 0x2
#define TBSTATE_CHECKED 0x1
#define TBSTATE_PRESSED 0x2
#define TBSTATE_ENABLED 0x4
#define TBSTATE_HIDDEN 0x8
#define TBSTATE_INDETERMINATE 0x10
#define TBSTATE_WRAP 0x20
#define TBSTATE_ELLIPSES 0x40
#define TBSTATE_MARKED 0x80
#define TBSTYLE_BUTTON 0x0
#define TBSTYLE_SEP 0x1
#define TBSTYLE_CHECK 0x2
#define TBSTYLE_GROUP 0x4
#define TBSTYLE_CHECKGROUP (TBSTYLE_GROUP | TBSTYLE_CHECK)
#define TBSTYLE_DROPDOWN 0x8
#define TBSTYLE_AUTOSIZE 0x10
#define TBSTYLE_NOPREFIX 0x20
#define TBSTYLE_TOOLTIPS 0x100
#define TBSTYLE_WRAPABLE 0x200
#define TBSTYLE_ALTDRAG 0x400
#define TBSTYLE_FLAT 0x800
#define TBSTYLE_LIST 0x1000
#define TBSTYLE_CUSTOMERASE 0x2000
#define TBSTYLE_REGISTERDROP 0x4000
#define TBSTYLE_TRANSPARENT 0x8000
#define TBSTYLE_EX_DRAWDDARROWS 0x1
#define BTNS_BUTTON TBSTYLE_BUTTON
#define BTNS_SEP TBSTYLE_SEP
#define BTNS_CHECK TBSTYLE_CHECK
#define BTNS_GROUP TBSTYLE_GROUP
#define BTNS_CHECKGROUP TBSTYLE_CHECKGROUP
#define BTNS_DROPDOWN TBSTYLE_DROPDOWN
#define BTNS_AUTOSIZE TBSTYLE_AUTOSIZE
#define BTNS_NOPREFIX TBSTYLE_NOPREFIX
#define BTNS_SHOWTEXT 0x40
#define BTNS_WHOLEDROPDOWN 0x80
#define TBSTYLE_EX_MULTICOLUMN 0x2
#define TBSTYLE_EX_VERTICAL 0x4
#define TBSTYLE_EX_MIXEDBUTTONS 0x8
#define TBSTYLE_EX_HIDECLIPPEDBUTTONS 0x10
#define TBSTYLE_EX_DOUBLEBUFFER 0x80
typedef struct _NMTBCUSTOMDRAW {
NMCUSTOMDRAW nmcd;
HBRUSH hbrMonoDither;
HBRUSH hbrLines;
HPEN hpenLines;
COLORREF clrText;
COLORREF clrMark;
COLORREF clrTextHighlight;
COLORREF clrBtnFace;
COLORREF clrBtnHighlight;
COLORREF clrHighlightHotTrack;
RECT rcText;
int nStringBkMode;
int nHLStringBkMode;
int iListGap;
} NMTBCUSTOMDRAW,*LPNMTBCUSTOMDRAW;
#define TBCDRF_NOEDGES 0x10000
#define TBCDRF_HILITEHOTTRACK 0x20000
#define TBCDRF_NOOFFSET 0x40000
#define TBCDRF_NOMARK 0x80000
#define TBCDRF_NOETCHEDEFFECT 0x100000
#define TBCDRF_BLENDICON 0x200000
#define TBCDRF_NOBACKGROUND 0x400000
#if NTDDI_VERSION >= 0x06000000
#define TBCDRF_USECDCOLORS 0x00800000
#endif
#define TB_ENABLEBUTTON (WM_USER+1)
#define TB_CHECKBUTTON (WM_USER+2)
#define TB_PRESSBUTTON (WM_USER+3)
#define TB_HIDEBUTTON (WM_USER+4)
#define TB_INDETERMINATE (WM_USER+5)
#define TB_MARKBUTTON (WM_USER+6)
#define TB_ISBUTTONENABLED (WM_USER+9)
#define TB_ISBUTTONCHECKED (WM_USER+10)
#define TB_ISBUTTONPRESSED (WM_USER+11)
#define TB_ISBUTTONHIDDEN (WM_USER+12)
#define TB_ISBUTTONINDETERMINATE (WM_USER+13)
#define TB_ISBUTTONHIGHLIGHTED (WM_USER+14)
#define TB_SETSTATE (WM_USER+17)
#define TB_GETSTATE (WM_USER+18)
#define TB_ADDBITMAP (WM_USER+19)
typedef struct tagTBADDBITMAP {
HINSTANCE hInst;
UINT_PTR nID;
} TBADDBITMAP,*LPTBADDBITMAP;
#define HINST_COMMCTRL ((HINSTANCE)-1)
#define IDB_STD_SMALL_COLOR 0
#define IDB_STD_LARGE_COLOR 1
#define IDB_VIEW_SMALL_COLOR 4
#define IDB_VIEW_LARGE_COLOR 5
#define IDB_HIST_SMALL_COLOR 8
#define IDB_HIST_LARGE_COLOR 9
#if NTDDI_VERSION >= 0x06000000
#define IDB_HIST_NORMAL 12
#define IDB_HIST_HOT 13
#define IDB_HIST_DISABLED 14
#define IDB_HIST_PRESSED 15
#endif
#define STD_CUT 0
#define STD_COPY 1
#define STD_PASTE 2
#define STD_UNDO 3
#define STD_REDOW 4
#define STD_DELETE 5
#define STD_FILENEW 6
#define STD_FILEOPEN 7
#define STD_FILESAVE 8
#define STD_PRINTPRE 9
#define STD_PROPERTIES 10
#define STD_HELP 11
#define STD_FIND 12
#define STD_REPLACE 13
#define STD_PRINT 14
#define VIEW_LARGEICONS 0
#define VIEW_SMALLICONS 1
#define VIEW_LIST 2
#define VIEW_DETAILS 3
#define VIEW_SORTNAME 4
#define VIEW_SORTSIZE 5
#define VIEW_SORTDATE 6
#define VIEW_SORTTYPE 7
#define VIEW_PARENTFOLDER 8
#define VIEW_NETCONNECT 9
#define VIEW_NETDISCONNECT 10
#define VIEW_NEWFOLDER 11
#define VIEW_VIEWMENU 12
#define HIST_BACK 0
#define HIST_FORWARD 1
#define HIST_FAVORITES 2
#define HIST_ADDTOFAVORITES 3
#define HIST_VIEWTREE 4
#define TB_ADDBUTTONSA (WM_USER+20)
#define TB_INSERTBUTTONA (WM_USER+21)
#define TB_DELETEBUTTON (WM_USER+22)
#define TB_GETBUTTON (WM_USER+23)
#define TB_BUTTONCOUNT (WM_USER+24)
#define TB_COMMANDTOINDEX (WM_USER+25)
typedef struct tagTBSAVEPARAMSA {
HKEY hkr;
LPCSTR pszSubKey;
LPCSTR pszValueName;
} TBSAVEPARAMSA,*LPTBSAVEPARAMSA;
typedef struct tagTBSAVEPARAMSW {
HKEY hkr;
LPCWSTR pszSubKey;
LPCWSTR pszValueName;
} TBSAVEPARAMSW,*LPTBSAVEPARAMW;
#define TBSAVEPARAMS __MINGW_NAME_AW(TBSAVEPARAMS)
#define LPTBSAVEPARAMS __MINGW_NAME_AW(LPTBSAVEPARAMS)
#define TB_SAVERESTOREA (WM_USER+26)
#define TB_SAVERESTOREW (WM_USER+76)
#define TB_CUSTOMIZE (WM_USER+27)
#define TB_ADDSTRINGA (WM_USER+28)
#define TB_ADDSTRINGW (WM_USER+77)
#define TB_GETITEMRECT (WM_USER+29)
#define TB_BUTTONSTRUCTSIZE (WM_USER+30)
#define TB_SETBUTTONSIZE (WM_USER+31)
#define TB_SETBITMAPSIZE (WM_USER+32)
#define TB_AUTOSIZE (WM_USER+33)
#define TB_GETTOOLTIPS (WM_USER+35)
#define TB_SETTOOLTIPS (WM_USER+36)
#define TB_SETPARENT (WM_USER+37)
#define TB_SETROWS (WM_USER+39)
#define TB_GETROWS (WM_USER+40)
#define TB_SETCMDID (WM_USER+42)
#define TB_CHANGEBITMAP (WM_USER+43)
#define TB_GETBITMAP (WM_USER+44)
#define TB_GETBUTTONTEXTA (WM_USER+45)
#define TB_GETBUTTONTEXTW (WM_USER+75)
#define TB_REPLACEBITMAP (WM_USER+46)
#define TB_SETINDENT (WM_USER+47)
#define TB_SETIMAGELIST (WM_USER+48)
#define TB_GETIMAGELIST (WM_USER+49)
#define TB_LOADIMAGES (WM_USER+50)
#define TB_GETRECT (WM_USER+51)
#define TB_SETHOTIMAGELIST (WM_USER+52)
#define TB_GETHOTIMAGELIST (WM_USER+53)
#define TB_SETDISABLEDIMAGELIST (WM_USER+54)
#define TB_GETDISABLEDIMAGELIST (WM_USER+55)
#define TB_SETSTYLE (WM_USER+56)
#define TB_GETSTYLE (WM_USER+57)
#define TB_GETBUTTONSIZE (WM_USER+58)
#define TB_SETBUTTONWIDTH (WM_USER+59)
#define TB_SETMAXTEXTROWS (WM_USER+60)
#define TB_GETTEXTROWS (WM_USER+61)
#define TB_GETBUTTONTEXT __MINGW_NAME_AW(TB_GETBUTTONTEXT)
#define TB_SAVERESTORE __MINGW_NAME_AW(TB_SAVERESTORE)
#define TB_ADDSTRING __MINGW_NAME_AW(TB_ADDSTRING)
#define TB_GETOBJECT (WM_USER+62)
#define TB_GETHOTITEM (WM_USER+71)
#define TB_SETHOTITEM (WM_USER+72)
#define TB_SETANCHORHIGHLIGHT (WM_USER+73)
#define TB_GETANCHORHIGHLIGHT (WM_USER+74)
#define TB_MAPACCELERATORA (WM_USER+78)
typedef struct {
int iButton;
DWORD dwFlags;
} TBINSERTMARK,*LPTBINSERTMARK;
#define TBIMHT_AFTER 0x1
#define TBIMHT_BACKGROUND 0x2
#define TB_GETINSERTMARK (WM_USER+79)
#define TB_SETINSERTMARK (WM_USER+80)
#define TB_INSERTMARKHITTEST (WM_USER+81)
#define TB_MOVEBUTTON (WM_USER+82)
#define TB_GETMAXSIZE (WM_USER+83)
#define TB_SETEXTENDEDSTYLE (WM_USER+84)
#define TB_GETEXTENDEDSTYLE (WM_USER+85)
#define TB_GETPADDING (WM_USER+86)
#define TB_SETPADDING (WM_USER+87)
#define TB_SETINSERTMARKCOLOR (WM_USER+88)
#define TB_GETINSERTMARKCOLOR (WM_USER+89)
#define TB_SETCOLORSCHEME CCM_SETCOLORSCHEME
#define TB_GETCOLORSCHEME CCM_GETCOLORSCHEME
#define TB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define TB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define TB_MAPACCELERATORW (WM_USER+90)
#define TB_MAPACCELERATOR __MINGW_NAME_AW(TB_MAPACCELERATOR)
typedef struct {
HINSTANCE hInstOld;
UINT_PTR nIDOld;
HINSTANCE hInstNew;
UINT_PTR nIDNew;
int nButtons;
} TBREPLACEBITMAP,*LPTBREPLACEBITMAP;
#define TBBF_LARGE 0x1
#define TB_GETBITMAPFLAGS (WM_USER+41)
#define TBIF_IMAGE 0x1
#define TBIF_TEXT 0x2
#define TBIF_STATE 0x4
#define TBIF_STYLE 0x8
#define TBIF_LPARAM 0x10
#define TBIF_COMMAND 0x20
#define TBIF_SIZE 0x40
#define TBIF_BYINDEX 0x80000000
typedef struct {
UINT cbSize;
DWORD dwMask;
int idCommand;
int iImage;
BYTE fsState;
BYTE fsStyle;
WORD cx;
DWORD_PTR lParam;
LPSTR pszText;
int cchText;
} TBBUTTONINFOA,*LPTBBUTTONINFOA;
typedef struct {
UINT cbSize;
DWORD dwMask;
int idCommand;
int iImage;
BYTE fsState;
BYTE fsStyle;
WORD cx;
DWORD_PTR lParam;
LPWSTR pszText;
int cchText;
} TBBUTTONINFOW,*LPTBBUTTONINFOW;
#define TBBUTTONINFO __MINGW_NAME_AW(TBBUTTONINFO)
#define LPTBBUTTONINFO __MINGW_NAME_AW(LPTBBUTTONINFO)
#define TB_GETBUTTONINFOW (WM_USER+63)
#define TB_SETBUTTONINFOW (WM_USER+64)
#define TB_GETBUTTONINFOA (WM_USER+65)
#define TB_SETBUTTONINFOA (WM_USER+66)
#define TB_GETBUTTONINFO __MINGW_NAME_AW(TB_GETBUTTONINFO)
#define TB_SETBUTTONINFO __MINGW_NAME_AW(TB_SETBUTTONINFO)
#define TB_INSERTBUTTONW (WM_USER+67)
#define TB_ADDBUTTONSW (WM_USER+68)
#define TB_HITTEST (WM_USER+69)
#define TB_INSERTBUTTON __MINGW_NAME_AW(TB_INSERTBUTTON)
#define TB_ADDBUTTONS __MINGW_NAME_AW(TB_ADDBUTTONS)
#define TB_SETDRAWTEXTFLAGS (WM_USER+70)
#define TB_GETSTRINGW (WM_USER+91)
#define TB_GETSTRINGA (WM_USER+92)
#define TB_GETSTRING __MINGW_NAME_AW(TB_GETSTRING)
#define TB_SETBOUNDINGSIZE (WM_USER+93)
#define TB_SETHOTITEM2 (WM_USER+94)
#define TB_HASACCELERATOR (WM_USER+95)
#define TB_SETLISTGAP (WM_USER+96)
#define TB_GETIMAGELISTCOUNT (WM_USER+98)
#define TB_GETIDEALSIZE (WM_USER+99)
#define TB_TRANSLATEACCELERATOR CCM_TRANSLATEACCELERATOR
#define TBMF_PAD 0x1
#define TBMF_BARPAD 0x2
#define TBMF_BUTTONSPACING 0x4
typedef struct {
UINT cbSize;
DWORD dwMask;
int cxPad;
int cyPad;
int cxBarPad;
int cyBarPad;
int cxButtonSpacing;
int cyButtonSpacing;
} TBMETRICS,*LPTBMETRICS;
#define TB_GETMETRICS (WM_USER+101)
#define TB_SETMETRICS (WM_USER+102)
#if NTDDI_VERSION >= 0x0600000
#define TB_GETITEMDROPDOWNRECT (WM_USER + 103)
#define TB_SETPRESSEDIMAGELIST (WM_USER + 104)
#define TB_GETPRESSEDIMAGELIST (WM_USER + 105)
#endif
#define TB_SETWINDOWTHEME CCM_SETWINDOWTHEME
#define TBN_GETBUTTONINFOA (TBN_FIRST-0)
#define TBN_BEGINDRAG (TBN_FIRST-1)
#define TBN_ENDDRAG (TBN_FIRST-2)
#define TBN_BEGINADJUST (TBN_FIRST-3)
#define TBN_ENDADJUST (TBN_FIRST-4)
#define TBN_RESET (TBN_FIRST-5)
#define TBN_QUERYINSERT (TBN_FIRST-6)
#define TBN_QUERYDELETE (TBN_FIRST-7)
#define TBN_TOOLBARCHANGE (TBN_FIRST-8)
#define TBN_CUSTHELP (TBN_FIRST-9)
#define TBN_DROPDOWN (TBN_FIRST - 10)
#define TBN_GETOBJECT (TBN_FIRST - 12)
typedef struct tagNMTBHOTITEM {
NMHDR hdr;
int idOld;
int idNew;
DWORD dwFlags;
} NMTBHOTITEM,*LPNMTBHOTITEM;
#define HICF_OTHER 0x0
#define HICF_MOUSE 0x1
#define HICF_ARROWKEYS 0x2
#define HICF_ACCELERATOR 0x4
#define HICF_DUPACCEL 0x8
#define HICF_ENTERING 0x10
#define HICF_LEAVING 0x20
#define HICF_RESELECT 0x40
#define HICF_LMOUSE 0x80
#define HICF_TOGGLEDROPDOWN 0x100
#define TBN_HOTITEMCHANGE (TBN_FIRST - 13)
#define TBN_DRAGOUT (TBN_FIRST - 14)
#define TBN_DELETINGBUTTON (TBN_FIRST - 15)
#define TBN_GETDISPINFOA (TBN_FIRST - 16)
#define TBN_GETDISPINFOW (TBN_FIRST - 17)
#define TBN_GETINFOTIPA (TBN_FIRST - 18)
#define TBN_GETINFOTIPW (TBN_FIRST - 19)
#define TBN_GETBUTTONINFOW (TBN_FIRST - 20)
#define TBN_RESTORE (TBN_FIRST - 21)
#define TBN_SAVE (TBN_FIRST - 22)
#define TBN_INITCUSTOMIZE (TBN_FIRST - 23)
#define TBNRF_HIDEHELP 0x1
#define TBNRF_ENDCUSTOMIZE 0x2
#define TBN_WRAPHOTITEM (TBN_FIRST - 24)
#define TBN_DUPACCELERATOR (TBN_FIRST - 25)
#define TBN_WRAPACCELERATOR (TBN_FIRST - 26)
#define TBN_DRAGOVER (TBN_FIRST - 27)
#define TBN_MAPACCELERATOR (TBN_FIRST - 28)
#define TBNRF_HIDEHELP 0x1
#define TBNRF_ENDCUSTOMIZE 0x2
typedef struct tagNMTBSAVE {
NMHDR hdr;
DWORD *pData;
DWORD *pCurrent;
UINT cbData;
int iItem;
int cButtons;
TBBUTTON tbButton;
} NMTBSAVE,*LPNMTBSAVE;
typedef struct tagNMTBRESTORE {
NMHDR hdr;
DWORD *pData;
DWORD *pCurrent;
UINT cbData;
int iItem;
int cButtons;
int cbBytesPerRecord;
TBBUTTON tbButton;
} NMTBRESTORE,*LPNMTBRESTORE;
typedef struct tagNMTBGETINFOTIPA {
NMHDR hdr;
LPSTR pszText;
int cchTextMax;
int iItem;
LPARAM lParam;
} NMTBGETINFOTIPA,*LPNMTBGETINFOTIPA;
typedef struct tagNMTBGETINFOTIPW {
NMHDR hdr;
LPWSTR pszText;
int cchTextMax;
int iItem;
LPARAM lParam;
} NMTBGETINFOTIPW,*LPNMTBGETINFOTIPW;
#define TBN_GETINFOTIP __MINGW_NAME_AW(TBN_GETINFOTIP)
#define NMTBGETINFOTIP __MINGW_NAME_AW(NMTBGETINFOTIP)
#define LPNMTBGETINFOTIP __MINGW_NAME_AW(LPNMTBGETINFOTIP)
#define TBNF_IMAGE 0x1
#define TBNF_TEXT 0x2
#define TBNF_DI_SETITEM 0x10000000
typedef struct {
NMHDR hdr;
DWORD dwMask;
int idCommand;
DWORD_PTR lParam;
int iImage;
LPSTR pszText;
int cchText;
} NMTBDISPINFOA,*LPNMTBDISPINFOA;
typedef struct {
NMHDR hdr;
DWORD dwMask;
int idCommand;
DWORD_PTR lParam;
int iImage;
LPWSTR pszText;
int cchText;
} NMTBDISPINFOW,*LPNMTBDISPINFOW;
#define TBN_GETDISPINFO __MINGW_NAME_AW(TBN_GETDISPINFO)
#define NMTBDISPINFO __MINGW_NAME_AW(NMTBDISPINFO)
#define LPNMTBDISPINFO __MINGW_NAME_AW(LPNMTBDISPINFO)
#define TBDDRET_DEFAULT 0
#define TBDDRET_NODEFAULT 1
#define TBDDRET_TREATPRESSED 2
#define TBN_GETBUTTONINFO __MINGW_NAME_AW(TBN_GETBUTTONINFO)
#define TBNOTIFYA NMTOOLBARA
#define TBNOTIFYW NMTOOLBARW
#define LPTBNOTIFYA LPNMTOOLBARA
#define LPTBNOTIFYW LPNMTOOLBARW
#define TBNOTIFY NMTOOLBAR
#define LPTBNOTIFY LPNMTOOLBAR
typedef struct tagNMTOOLBARA {
NMHDR hdr;
int iItem;
TBBUTTON tbButton;
int cchText;
LPSTR pszText;
RECT rcButton;
} NMTOOLBARA,*LPNMTOOLBARA;
typedef struct tagNMTOOLBARW {
NMHDR hdr;
int iItem;
TBBUTTON tbButton;
int cchText;
LPWSTR pszText;
RECT rcButton;
} NMTOOLBARW,*LPNMTOOLBARW;
#define NMTOOLBAR __MINGW_NAME_AW(NMTOOLBAR)
#define LPNMTOOLBAR __MINGW_NAME_AW(LPNMTOOLBAR)
#endif
#ifndef NOREBAR
#define REBARCLASSNAMEW L"ReBarWindow32"
#define REBARCLASSNAMEA "ReBarWindow32"
#define REBARCLASSNAME __MINGW_NAME_AW(REBARCLASSNAME)
#define RBIM_IMAGELIST 0x1
#define RBS_TOOLTIPS 0x100
#define RBS_VARHEIGHT 0x200
#define RBS_BANDBORDERS 0x400
#define RBS_FIXEDORDER 0x800
#define RBS_REGISTERDROP 0x1000
#define RBS_AUTOSIZE 0x2000
#define RBS_VERTICALGRIPPER 0x4000
#define RBS_DBLCLKTOGGLE 0x8000
typedef struct tagREBARINFO {
UINT cbSize;
UINT fMask;
#ifndef NOIMAGEAPIS
HIMAGELIST himl;
#else
HANDLE himl;
#endif
} REBARINFO,*LPREBARINFO;
#define RBBS_BREAK 0x1
#define RBBS_FIXEDSIZE 0x2
#define RBBS_CHILDEDGE 0x4
#define RBBS_HIDDEN 0x8
#define RBBS_NOVERT 0x10
#define RBBS_FIXEDBMP 0x20
#define RBBS_VARIABLEHEIGHT 0x40
#define RBBS_GRIPPERALWAYS 0x80
#define RBBS_NOGRIPPER 0x100
#define RBBS_USECHEVRON 0x200
#define RBBS_HIDETITLE 0x400
#define RBBS_TOPALIGN 0x800
#define RBBIM_STYLE 0x1
#define RBBIM_COLORS 0x2
#define RBBIM_TEXT 0x4
#define RBBIM_IMAGE 0x8
#define RBBIM_CHILD 0x10
#define RBBIM_CHILDSIZE 0x20
#define RBBIM_SIZE 0x40
#define RBBIM_BACKGROUND 0x80
#define RBBIM_ID 0x100
#define RBBIM_IDEALSIZE 0x200
#define RBBIM_LPARAM 0x400
#define RBBIM_HEADERSIZE 0x800
#if NTDDI_VERSION >= 0x06000000
#define RBBIM_CHEVRONLOCATION 0x00001000
#define RBBIM_CHEVRONSTATE 0x00002000
#endif
typedef struct tagREBARBANDINFOA {
UINT cbSize;
UINT fMask;
UINT fStyle;
COLORREF clrFore;
COLORREF clrBack;
LPSTR lpText;
UINT cch;
int iImage;
HWND hwndChild;
UINT cxMinChild;
UINT cyMinChild;
UINT cx;
HBITMAP hbmBack;
UINT wID;
UINT cyChild;
UINT cyMaxChild;
UINT cyIntegral;
UINT cxIdeal;
LPARAM lParam;
UINT cxHeader;
#if NTDDI_VERSION >= 0x06000000
RECT rcChevronLocation;
UINT uChevronState;
#endif
} REBARBANDINFOA,*LPREBARBANDINFOA;
typedef REBARBANDINFOA CONST *LPCREBARBANDINFOA;
#define REBARBANDINFOA_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOA,wID)
#define REBARBANDINFOW_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOW,wID)
#define REBARBANDINFOA_V6_SIZE CCSIZEOF_STRUCT(REBARBANDINFOA,cxHeader)
#define REBARBANDINFOW_V6_SIZE CCSIZEOF_STRUCT(REBARBANDINFOW,cxHeader)
typedef struct tagREBARBANDINFOW {
UINT cbSize;
UINT fMask;
UINT fStyle;
COLORREF clrFore;
COLORREF clrBack;
LPWSTR lpText;
UINT cch;
int iImage;
HWND hwndChild;
UINT cxMinChild;
UINT cyMinChild;
UINT cx;
HBITMAP hbmBack;
UINT wID;
UINT cyChild;
UINT cyMaxChild;
UINT cyIntegral;
UINT cxIdeal;
LPARAM lParam;
UINT cxHeader;
#if NTDDI_VERSION >= 0x06000000
RECT rcChevronLocation;
UINT uChevronState;
#endif
} REBARBANDINFOW,*LPREBARBANDINFOW;
typedef REBARBANDINFOW CONST *LPCREBARBANDINFOW;
#define REBARBANDINFO __MINGW_NAME_AW(REBARBANDINFO)
#define LPREBARBANDINFO __MINGW_NAME_AW(LPREBARBANDINFO)
#define LPCREBARBANDINFO __MINGW_NAME_AW(LPCREBARBANDINFO)
#define REBARBANDINFO_V3_SIZE __MINGW_NAME_AW_EXT(REBARBANDINFO,_V3_SIZE)
#define REBARBANDINFO_V6_SIZE __MINGW_NAME_AW_EXT(REBARBANDINFO,_V6_SIZE)
#define RB_INSERTBANDA (WM_USER+1)
#define RB_DELETEBAND (WM_USER+2)
#define RB_GETBARINFO (WM_USER+3)
#define RB_SETBARINFO (WM_USER+4)
#define RB_SETBANDINFOA (WM_USER+6)
#define RB_SETPARENT (WM_USER+7)
#define RB_HITTEST (WM_USER+8)
#define RB_GETRECT (WM_USER+9)
#define RB_INSERTBANDW (WM_USER+10)
#define RB_SETBANDINFOW (WM_USER+11)
#define RB_GETBANDCOUNT (WM_USER+12)
#define RB_GETROWCOUNT (WM_USER+13)
#define RB_GETROWHEIGHT (WM_USER+14)
#define RB_IDTOINDEX (WM_USER+16)
#define RB_GETTOOLTIPS (WM_USER+17)
#define RB_SETTOOLTIPS (WM_USER+18)
#define RB_SETBKCOLOR (WM_USER+19)
#define RB_GETBKCOLOR (WM_USER+20)
#define RB_SETTEXTCOLOR (WM_USER+21)
#define RB_GETTEXTCOLOR (WM_USER+22)
#define RBSTR_CHANGERECT 0x1
#define RB_SIZETORECT (WM_USER+23)
#define RB_SETCOLORSCHEME CCM_SETCOLORSCHEME
#define RB_GETCOLORSCHEME CCM_GETCOLORSCHEME
#define RB_INSERTBAND __MINGW_NAME_AW(RB_INSERTBAND)
#define RB_SETBANDINFO __MINGW_NAME_AW(RB_SETBANDINFO)
#define RB_BEGINDRAG (WM_USER+24)
#define RB_ENDDRAG (WM_USER+25)
#define RB_DRAGMOVE (WM_USER+26)
#define RB_GETBARHEIGHT (WM_USER+27)
#define RB_GETBANDINFOW (WM_USER+28)
#define RB_GETBANDINFOA (WM_USER+29)
#define RB_GETBANDINFO __MINGW_NAME_AW(RB_GETBANDINFO)
#define RB_MINIMIZEBAND (WM_USER+30)
#define RB_MAXIMIZEBAND (WM_USER+31)
#define RB_GETDROPTARGET (CCM_GETDROPTARGET)
#define RB_GETBANDBORDERS (WM_USER+34)
#define RB_SHOWBAND (WM_USER+35)
#define RB_SETPALETTE (WM_USER+37)
#define RB_GETPALETTE (WM_USER+38)
#define RB_MOVEBAND (WM_USER+39)
#define RB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define RB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define RB_GETBANDMARGINS (WM_USER+40)
#define RB_SETWINDOWTHEME CCM_SETWINDOWTHEME
#if _WIN32_IE >= 0x0600
#define RB_SETEXTENDEDSTYLE (WM_USER+41)
#define RB_GETEXTENDEDSTYLE (WM_USER+42)
#endif
#define RB_PUSHCHEVRON (WM_USER+43)
#if NTDDI_VERSION >= 0x06000000
#define RB_SETBANDWIDTH (WM_USER + 44)
#endif
#define RBN_HEIGHTCHANGE (RBN_FIRST - 0)
#define RBN_GETOBJECT (RBN_FIRST - 1)
#define RBN_LAYOUTCHANGED (RBN_FIRST - 2)
#define RBN_AUTOSIZE (RBN_FIRST - 3)
#define RBN_BEGINDRAG (RBN_FIRST - 4)
#define RBN_ENDDRAG (RBN_FIRST - 5)
#define RBN_DELETINGBAND (RBN_FIRST - 6)
#define RBN_DELETEDBAND (RBN_FIRST - 7)
#define RBN_CHILDSIZE (RBN_FIRST - 8)
#define RBN_CHEVRONPUSHED (RBN_FIRST - 10)
#if _WIN32_IE >= 0x0600
#define RBN_SPLITTERDRAG (RBN_FIRST - 11)
#endif
#define RBN_MINMAX (RBN_FIRST - 21)
#define RBN_AUTOBREAK (RBN_FIRST - 22)
typedef struct tagNMREBARCHILDSIZE {
NMHDR hdr;
UINT uBand;
UINT wID;
RECT rcChild;
RECT rcBand;
} NMREBARCHILDSIZE,*LPNMREBARCHILDSIZE;
typedef struct tagNMREBAR {
NMHDR hdr;
DWORD dwMask;
UINT uBand;
UINT fStyle;
UINT wID;
LPARAM lParam;
} NMREBAR,*LPNMREBAR;
#define RBNM_ID 0x1
#define RBNM_STYLE 0x2
#define RBNM_LPARAM 0x4
typedef struct tagNMRBAUTOSIZE {
NMHDR hdr;
WINBOOL fChanged;
RECT rcTarget;
RECT rcActual;
} NMRBAUTOSIZE,*LPNMRBAUTOSIZE;
typedef struct tagNMREBARCHEVRON {
NMHDR hdr;
UINT uBand;
UINT wID;
LPARAM lParam;
RECT rc;
LPARAM lParamNM;
} NMREBARCHEVRON,*LPNMREBARCHEVRON;
#if _WIN32_IE >= 0x0600
typedef struct tagNMREBARSPLITTER {
NMHDR hdr;
RECT rcSizing;
} NMREBARSPLITTER,*LPNMREBARSPLITTER;
#endif
#define RBAB_AUTOSIZE 0x1
#define RBAB_ADDBAND 0x2
typedef struct tagNMREBARAUTOBREAK {
NMHDR hdr;
UINT uBand;
UINT wID;
LPARAM lParam;
UINT uMsg;
UINT fStyleCurrent;
WINBOOL fAutoBreak;
} NMREBARAUTOBREAK,*LPNMREBARAUTOBREAK;
#define RBHT_NOWHERE 0x1
#define RBHT_CAPTION 0x2
#define RBHT_CLIENT 0x3
#define RBHT_GRABBER 0x4
#define RBHT_CHEVRON 0x8
#if _WIN32_IE >= 0x0600
#define RBHT_SPLITTER 0x10
#endif
typedef struct _RB_HITTESTINFO {
POINT pt;
UINT flags;
int iBand;
} RBHITTESTINFO,*LPRBHITTESTINFO;
#endif
#ifndef NOTOOLTIPS
#define TOOLTIPS_CLASSW L"tooltips_class32"
#define TOOLTIPS_CLASSA "tooltips_class32"
#define TOOLTIPS_CLASS __MINGW_NAME_AW(TOOLTIPS_CLASS)
#define LPTOOLINFOA LPTTTOOLINFOA
#define LPTOOLINFOW LPTTTOOLINFOW
#define TOOLINFOA TTTOOLINFOA
#define TOOLINFOW TTTOOLINFOW
#define LPTOOLINFO LPTTTOOLINFO
#define TOOLINFO TTTOOLINFO
#define TTTOOLINFOA_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA,lpszText)
#define TTTOOLINFOW_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW,lpszText)
#define TTTOOLINFOA_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA,lParam)
#define TTTOOLINFOW_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW,lParam)
#define TTTOOLINFOA_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA,lpReserved)
#define TTTOOLINFOW_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW,lpReserved)
typedef struct tagTOOLINFOA {
UINT cbSize;
UINT uFlags;
HWND hwnd;
UINT_PTR uId;
RECT rect;
HINSTANCE hinst;
LPSTR lpszText;
LPARAM lParam;
void *lpReserved;
} TTTOOLINFOA,NEAR *PTOOLINFOA,*LPTTTOOLINFOA;
typedef struct tagTOOLINFOW {
UINT cbSize;
UINT uFlags;
HWND hwnd;
UINT_PTR uId;
RECT rect;
HINSTANCE hinst;
LPWSTR lpszText;
LPARAM lParam;
void *lpReserved;
} TTTOOLINFOW,NEAR *PTOOLINFOW,*LPTTTOOLINFOW;
#define TTTOOLINFO __MINGW_NAME_AW(TTTOOLINFO)
#define PTOOLINFO __MINGW_NAME_AW(PTOOLINFO)
#define LPTTTOOLINFO __MINGW_NAME_AW(LPTTTOOLINFO)
#define TTTOOLINFO_V1_SIZE __MINGW_NAME_AW_EXT(TTTOOLINFO,_V1_SIZE)
#define TTS_ALWAYSTIP 0x1
#define TTS_NOPREFIX 0x2
#define TTS_NOANIMATE 0x10
#define TTS_NOFADE 0x20
#define TTS_BALLOON 0x40
#define TTS_CLOSE 0x80
#if NTDDI_VERSION >= 0x06000000
#define TTS_USEVISUALSTYLE 0x100
#endif
#define TTF_IDISHWND 0x1
#define TTF_CENTERTIP 0x2
#define TTF_RTLREADING 0x4
#define TTF_SUBCLASS 0x10
#define TTF_TRACK 0x20
#define TTF_ABSOLUTE 0x80
#define TTF_TRANSPARENT 0x100
#define TTF_PARSELINKS 0x1000
#define TTF_DI_SETITEM 0x8000
#define TTDT_AUTOMATIC 0
#define TTDT_RESHOW 1
#define TTDT_AUTOPOP 2
#define TTDT_INITIAL 3
#define TTI_NONE 0
#define TTI_INFO 1
#define TTI_WARNING 2
#define TTI_ERROR 3
#if NTDDI_VERSION >= 0x06000000
#define TTI_INFO_LARGE 4
#define TTI_WARNING_LARGE 5
#define TTI_ERROR_LARGE 6
#endif
#define TTM_ACTIVATE (WM_USER+1)
#define TTM_SETDELAYTIME (WM_USER+3)
#define TTM_ADDTOOLA (WM_USER+4)
#define TTM_ADDTOOLW (WM_USER+50)
#define TTM_DELTOOLA (WM_USER+5)
#define TTM_DELTOOLW (WM_USER+51)
#define TTM_NEWTOOLRECTA (WM_USER+6)
#define TTM_NEWTOOLRECTW (WM_USER+52)
#define TTM_RELAYEVENT (WM_USER+7)
#define TTM_GETTOOLINFOA (WM_USER+8)
#define TTM_GETTOOLINFOW (WM_USER+53)
#define TTM_SETTOOLINFOA (WM_USER+9)
#define TTM_SETTOOLINFOW (WM_USER+54)
#define TTM_HITTESTA (WM_USER +10)
#define TTM_HITTESTW (WM_USER +55)
#define TTM_GETTEXTA (WM_USER +11)
#define TTM_GETTEXTW (WM_USER +56)
#define TTM_UPDATETIPTEXTA (WM_USER +12)
#define TTM_UPDATETIPTEXTW (WM_USER +57)
#define TTM_GETTOOLCOUNT (WM_USER +13)
#define TTM_ENUMTOOLSA (WM_USER +14)
#define TTM_ENUMTOOLSW (WM_USER +58)
#define TTM_GETCURRENTTOOLA (WM_USER+15)
#define TTM_GETCURRENTTOOLW (WM_USER+59)
#define TTM_WINDOWFROMPOINT (WM_USER+16)
#define TTM_TRACKACTIVATE (WM_USER+17)
#define TTM_TRACKPOSITION (WM_USER+18)
#define TTM_SETTIPBKCOLOR (WM_USER+19)
#define TTM_SETTIPTEXTCOLOR (WM_USER+20)
#define TTM_GETDELAYTIME (WM_USER+21)
#define TTM_GETTIPBKCOLOR (WM_USER+22)
#define TTM_GETTIPTEXTCOLOR (WM_USER+23)
#define TTM_SETMAXTIPWIDTH (WM_USER+24)
#define TTM_GETMAXTIPWIDTH (WM_USER+25)
#define TTM_SETMARGIN (WM_USER+26)
#define TTM_GETMARGIN (WM_USER+27)
#define TTM_POP (WM_USER+28)
#define TTM_UPDATE (WM_USER+29)
#define TTM_GETBUBBLESIZE (WM_USER+30)
#define TTM_ADJUSTRECT (WM_USER+31)
#define TTM_SETTITLEA (WM_USER+32)
#define TTM_SETTITLEW (WM_USER+33)
#define TTM_POPUP (WM_USER+34)
#define TTM_GETTITLE (WM_USER+35)
typedef struct _TTGETTITLE {
DWORD dwSize;
UINT uTitleBitmap;
UINT cch;
WCHAR *pszTitle;
} TTGETTITLE,*PTTGETTITLE;
#define TTM_ADDTOOL __MINGW_NAME_AW(TTM_ADDTOOL)
#define TTM_DELTOOL __MINGW_NAME_AW(TTM_DELTOOL)
#define TTM_NEWTOOLRECT __MINGW_NAME_AW(TTM_NEWTOOLRECT)
#define TTM_GETTOOLINFO __MINGW_NAME_AW(TTM_GETTOOLINFO)
#define TTM_SETTOOLINFO __MINGW_NAME_AW(TTM_SETTOOLINFO)
#define TTM_HITTEST __MINGW_NAME_AW(TTM_HITTEST)
#define TTM_GETTEXT __MINGW_NAME_AW(TTM_GETTEXT)
#define TTM_UPDATETIPTEXT __MINGW_NAME_AW(TTM_UPDATETIPTEXT)
#define TTM_ENUMTOOLS __MINGW_NAME_AW(TTM_ENUMTOOLS)
#define TTM_GETCURRENTTOOL __MINGW_NAME_AW(TTM_GETCURRENTTOOL)
#define TTM_SETTITLE __MINGW_NAME_AW(TTM_SETTITLE)
#define TTM_SETWINDOWTHEME CCM_SETWINDOWTHEME
#define LPHITTESTINFOW LPTTHITTESTINFOW
#define LPHITTESTINFOA LPTTHITTESTINFOA
#define LPHITTESTINFO LPTTHITTESTINFO
typedef struct _TT_HITTESTINFOA {
HWND hwnd;
POINT pt;
TTTOOLINFOA ti;
} TTHITTESTINFOA,*LPTTHITTESTINFOA;
typedef struct _TT_HITTESTINFOW {
HWND hwnd;
POINT pt;
TTTOOLINFOW ti;
} TTHITTESTINFOW,*LPTTHITTESTINFOW;
#define TTHITTESTINFO __MINGW_NAME_AW(TTHITTESTINFO)
#define LPTTHITTESTINFO __MINGW_NAME_AW(LPTTHITTESTINFO)
#define TTN_GETDISPINFOA (TTN_FIRST - 0)
#define TTN_GETDISPINFOW (TTN_FIRST - 10)
#define TTN_SHOW (TTN_FIRST - 1)
#define TTN_POP (TTN_FIRST - 2)
#define TTN_LINKCLICK (TTN_FIRST - 3)
#define TTN_GETDISPINFO __MINGW_NAME_AW(TTN_GETDISPINFO)
#define TTN_NEEDTEXT TTN_GETDISPINFO
#define TTN_NEEDTEXTA TTN_GETDISPINFOA
#define TTN_NEEDTEXTW TTN_GETDISPINFOW
#define TOOLTIPTEXTW NMTTDISPINFOW
#define TOOLTIPTEXTA NMTTDISPINFOA
#define LPTOOLTIPTEXTA LPNMTTDISPINFOA
#define LPTOOLTIPTEXTW LPNMTTDISPINFOW
#define TOOLTIPTEXT NMTTDISPINFO
#define LPTOOLTIPTEXT LPNMTTDISPINFO
#define NMTTDISPINFOA_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOA,uFlags)
#define NMTTDISPINFOW_V1_SIZE CCSIZEOF_STRUCT(NMTTDISPINFOW,uFlags)
typedef struct tagNMTTDISPINFOA {
NMHDR hdr;
LPSTR lpszText;
char szText[80];
HINSTANCE hinst;
UINT uFlags;
LPARAM lParam;
} NMTTDISPINFOA,*LPNMTTDISPINFOA;
typedef struct tagNMTTDISPINFOW {
NMHDR hdr;
LPWSTR lpszText;
WCHAR szText[80];
HINSTANCE hinst;
UINT uFlags;
LPARAM lParam;
} NMTTDISPINFOW,*LPNMTTDISPINFOW;
#define NMTTDISPINFO __MINGW_NAME_AW(NMTTDISPINFO)
#define LPNMTTDISPINFO __MINGW_NAME_AW(LPNMTTDISPINFO)
#define NMTTDISPINFO_V1_SIZE __MINGW_NAME_AW_EXT(NMTTDISPINFO,_V1_SIZE)
#endif
#ifndef NOSTATUSBAR
#define SBARS_SIZEGRIP 0x100
#define SBARS_TOOLTIPS 0x800
#define SBT_TOOLTIPS 0x800
WINCOMMCTRLAPI void WINAPI DrawStatusTextA(HDC hDC,LPCRECT lprc,LPCSTR pszText,UINT uFlags);
WINCOMMCTRLAPI void WINAPI DrawStatusTextW(HDC hDC,LPCRECT lprc,LPCWSTR pszText,UINT uFlags);
WINCOMMCTRLAPI HWND WINAPI CreateStatusWindowA(LONG style,LPCSTR lpszText,HWND hwndParent,UINT wID);
WINCOMMCTRLAPI HWND WINAPI CreateStatusWindowW(LONG style,LPCWSTR lpszText,HWND hwndParent,UINT wID);
#define CreateStatusWindow __MINGW_NAME_AW(CreateStatusWindow)
#define DrawStatusText __MINGW_NAME_AW(DrawStatusText)
#define STATUSCLASSNAMEW L"msctls_statusbar32"
#define STATUSCLASSNAMEA "msctls_statusbar32"
#define STATUSCLASSNAME __MINGW_NAME_AW(STATUSCLASSNAME)
#define SB_SETTEXTA (WM_USER+1)
#define SB_SETTEXTW (WM_USER+11)
#define SB_GETTEXTA (WM_USER+2)
#define SB_GETTEXTW (WM_USER+13)
#define SB_GETTEXTLENGTHA (WM_USER+3)
#define SB_GETTEXTLENGTHW (WM_USER+12)
#define SB_GETTEXT __MINGW_NAME_AW(SB_GETTEXT)
#define SB_SETTEXT __MINGW_NAME_AW(SB_SETTEXT)
#define SB_GETTEXTLENGTH __MINGW_NAME_AW(SB_GETTEXTLENGTH)
#define SB_SETTIPTEXT __MINGW_NAME_AW(SB_SETTIPTEXT)
#define SB_GETTIPTEXT __MINGW_NAME_AW(SB_GETTIPTEXT)
#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_SETTIPTEXTA (WM_USER+16)
#define SB_SETTIPTEXTW (WM_USER+17)
#define SB_GETTIPTEXTA (WM_USER+18)
#define SB_GETTIPTEXTW (WM_USER+19)
#define SB_GETICON (WM_USER+20)
#define SB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define SB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define SBT_OWNERDRAW 0x1000
#define SBT_NOBORDERS 0x100
#define SBT_POPOUT 0x200
#define SBT_RTLREADING 0x400
#define SBT_NOTABPARSING 0x800
#define SB_SETBKCOLOR CCM_SETBKCOLOR
#define SBN_SIMPLEMODECHANGE (SBN_FIRST - 0)
#define SB_SIMPLEID 0xff
#endif
#ifndef NOMENUHELP
WINCOMMCTRLAPI void WINAPI MenuHelp(UINT uMsg,WPARAM wParam,LPARAM lParam,HMENU hMainMenu,HINSTANCE hInst,HWND hwndStatus,UINT *lpwIDs);
WINCOMMCTRLAPI WINBOOL WINAPI ShowHideMenuCtl(HWND hWnd,UINT_PTR uFlags,LPINT lpInfo);
WINCOMMCTRLAPI void WINAPI GetEffectiveClientRect(HWND hWnd,LPRECT lprc,const INT *lpInfo);
#define MINSYSCOMMAND SC_SIZE
#endif
#ifndef NOTRACKBAR
#define TRACKBAR_CLASSA "msctls_trackbar32"
#define TRACKBAR_CLASSW L"msctls_trackbar32"
#define TRACKBAR_CLASS __MINGW_NAME_AW(TRACKBAR_CLASS)
#define TBS_AUTOTICKS 0x1
#define TBS_VERT 0x2
#define TBS_HORZ 0x0
#define TBS_TOP 0x4
#define TBS_BOTTOM 0x0
#define TBS_LEFT 0x4
#define TBS_RIGHT 0x0
#define TBS_BOTH 0x8
#define TBS_NOTICKS 0x10
#define TBS_ENABLESELRANGE 0x20
#define TBS_FIXEDLENGTH 0x40
#define TBS_NOTHUMB 0x80
#define TBS_TOOLTIPS 0x100
#define TBS_REVERSED 0x200
#define TBS_DOWNISLEFT 0x400
#if _WIN32_IE >= 0x0600
#define TBS_NOTIFYBEFOREMOVE 0x800
#endif
#if NTDDI_VERSION >= 0x06000000
#define TBS_TRANSPARENTBKGND 0x1000
#endif
#define TBM_GETPOS (WM_USER)
#define TBM_GETRANGEMIN (WM_USER+1)
#define TBM_GETRANGEMAX (WM_USER+2)
#define TBM_GETTIC (WM_USER+3)
#define TBM_SETTIC (WM_USER+4)
#define TBM_SETPOS (WM_USER+5)
#define TBM_SETRANGE (WM_USER+6)
#define TBM_SETRANGEMIN (WM_USER+7)
#define TBM_SETRANGEMAX (WM_USER+8)
#define TBM_CLEARTICS (WM_USER+9)
#define TBM_SETSEL (WM_USER+10)
#define TBM_SETSELSTART (WM_USER+11)
#define TBM_SETSELEND (WM_USER+12)
#define TBM_GETPTICS (WM_USER+14)
#define TBM_GETTICPOS (WM_USER+15)
#define TBM_GETNUMTICS (WM_USER+16)
#define TBM_GETSELSTART (WM_USER+17)
#define TBM_GETSELEND (WM_USER+18)
#define TBM_CLEARSEL (WM_USER+19)
#define TBM_SETTICFREQ (WM_USER+20)
#define TBM_SETPAGESIZE (WM_USER+21)
#define TBM_GETPAGESIZE (WM_USER+22)
#define TBM_SETLINESIZE (WM_USER+23)
#define TBM_GETLINESIZE (WM_USER+24)
#define TBM_GETTHUMBRECT (WM_USER+25)
#define TBM_GETCHANNELRECT (WM_USER+26)
#define TBM_SETTHUMBLENGTH (WM_USER+27)
#define TBM_GETTHUMBLENGTH (WM_USER+28)
#define TBM_SETTOOLTIPS (WM_USER+29)
#define TBM_GETTOOLTIPS (WM_USER+30)
#define TBM_SETTIPSIDE (WM_USER+31)
#define TBTS_TOP 0
#define TBTS_LEFT 1
#define TBTS_BOTTOM 2
#define TBTS_RIGHT 3
#define TBM_SETBUDDY (WM_USER+32)
#define TBM_GETBUDDY (WM_USER+33)
#define TBM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define TBM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define TB_LINEUP 0
#define TB_LINEDOWN 1
#define TB_PAGEUP 2
#define TB_PAGEDOWN 3
#define TB_THUMBPOSITION 4
#define TB_THUMBTRACK 5
#define TB_TOP 6
#define TB_BOTTOM 7
#define TB_ENDTRACK 8
#define TBCD_TICS 0x1
#define TBCD_THUMB 0x2
#define TBCD_CHANNEL 0x3
#if NTDDI_VERSION >= 0x06000000
#define TRBN_THUMBPOSCHANGING (TRBN_FIRST-1)
typedef struct tagTRBTHUMBPOSCHANGING {
NMHDR hdr;
DWORD dwPos;
int nReason;
} NMTRBTHUMBPOSCHANGING;
#endif
#endif
#ifndef NODRAGLIST
typedef struct tagDRAGLISTINFO {
UINT uNotification;
HWND hWnd;
POINT ptCursor;
} DRAGLISTINFO,*LPDRAGLISTINFO;
#define DL_BEGINDRAG (WM_USER+133)
#define DL_DRAGGING (WM_USER+134)
#define DL_DROPPED (WM_USER+135)
#define DL_CANCELDRAG (WM_USER+136)
#define DL_CURSORSET 0
#define DL_STOPCURSOR 1
#define DL_COPYCURSOR 2
#define DL_MOVECURSOR 3
#define DRAGLISTMSGSTRING TEXT("commctrl_DragListMsg")
WINCOMMCTRLAPI WINBOOL WINAPI MakeDragList(HWND hLB);
WINCOMMCTRLAPI void WINAPI DrawInsert(HWND handParent,HWND hLB,int nItem);
WINCOMMCTRLAPI int WINAPI LBItemFromPt(HWND hLB,POINT pt,WINBOOL bAutoScroll);
#endif
#ifndef NOUPDOWN
#define UPDOWN_CLASSA "msctls_updown32"
#define UPDOWN_CLASSW L"msctls_updown32"
#define UPDOWN_CLASS __MINGW_NAME_AW(UPDOWN_CLASS)
typedef struct _UDACCEL {
UINT nSec;
UINT nInc;
} UDACCEL,*LPUDACCEL;
#define UD_MAXVAL 0x7fff
#define UD_MINVAL (-UD_MAXVAL)
#define UDS_WRAP 0x1
#define UDS_SETBUDDYINT 0x2
#define UDS_ALIGNRIGHT 0x4
#define UDS_ALIGNLEFT 0x8
#define UDS_AUTOBUDDY 0x10
#define UDS_ARROWKEYS 0x20
#define UDS_HORZ 0x40
#define UDS_NOTHOUSANDS 0x80
#define UDS_HOTTRACK 0x100
#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)
#define UDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define UDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define UDM_SETPOS32 (WM_USER+113)
#define UDM_GETPOS32 (WM_USER+114)
WINCOMMCTRLAPI HWND WINAPI CreateUpDownControl(DWORD dwStyle,int x,int y,int cx,int cy,HWND hParent,int nID,HINSTANCE hInst,HWND hBuddy,int nUpper,int nLower,int nPos);
#define NM_UPDOWN NMUPDOWN
#define LPNM_UPDOWN LPNMUPDOWN
typedef struct _NM_UPDOWN {
NMHDR hdr;
int iPos;
int iDelta;
} NMUPDOWN,*LPNMUPDOWN;
#define UDN_DELTAPOS (UDN_FIRST - 1)
#endif
#ifndef NOPROGRESS
#define PROGRESS_CLASSA "msctls_progress32"
#define PROGRESS_CLASSW L"msctls_progress32"
#define PROGRESS_CLASS __MINGW_NAME_AW(PROGRESS_CLASS)
#define PBS_SMOOTH 0x1
#define PBS_VERTICAL 0x4
#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)
typedef struct {
int iLow;
int iHigh;
} PBRANGE,*PPBRANGE;
#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_MARQUEE 0x8
#define PBM_SETMARQUEE (WM_USER+10)
#if NTDDI_VERSION >= 0x06000000
#define PBM_GETSTEP (WM_USER+13)
#define PBM_GETBKCOLOR (WM_USER+14)
#define PBM_GETBARCOLOR (WM_USER+15)
#define PBM_SETSTATE (WM_USER+16)
#define PBM_GETSTATE (WM_USER+17)
#define PBS_SMOOTHREVERSE 0x10
#define PBST_NORMAL 1
#define PBST_ERROR 2
#define PBST_PAUSED 3
#endif /* (_WIN32_WINNT >= 0x0600) */
#endif /* !NOPROGRESS */
#ifndef NOHOTKEY
#define HOTKEYF_SHIFT 0x1
#define HOTKEYF_CONTROL 0x2
#define HOTKEYF_ALT 0x4
#define HOTKEYF_EXT 0x8
#define HKCOMB_NONE 0x1
#define HKCOMB_S 0x2
#define HKCOMB_C 0x4
#define HKCOMB_A 0x8
#define HKCOMB_SC 0x10
#define HKCOMB_SA 0x20
#define HKCOMB_CA 0x40
#define HKCOMB_SCA 0x80
#define HKM_SETHOTKEY (WM_USER+1)
#define HKM_GETHOTKEY (WM_USER+2)
#define HKM_SETRULES (WM_USER+3)
#define HOTKEY_CLASSA "msctls_hotkey32"
#define HOTKEY_CLASSW L"msctls_hotkey32"
#define HOTKEY_CLASS __MINGW_NAME_AW(HOTKEY_CLASS)
#endif
#define CCS_TOP __MSABI_LONG(0x1)
#define CCS_NOMOVEY __MSABI_LONG(0x2)
#define CCS_BOTTOM __MSABI_LONG(0x3)
#define CCS_NORESIZE __MSABI_LONG(0x4)
#define CCS_NOPARENTALIGN __MSABI_LONG(0x8)
#define CCS_ADJUSTABLE __MSABI_LONG(0x20)
#define CCS_NODIVIDER __MSABI_LONG(0x40)
#define CCS_VERT __MSABI_LONG(0x80)
#define CCS_LEFT (CCS_VERT | CCS_TOP)
#define CCS_RIGHT (CCS_VERT | CCS_BOTTOM)
#define CCS_NOMOVEX (CCS_VERT | CCS_NOMOVEY)
#define INVALID_LINK_INDEX (-1)
#define MAX_LINKID_TEXT 48
#define L_MAX_URL_LENGTH (2048+32+sizeof("://"))
#define WC_LINK L"SysLink"
typedef struct tagLITEM {
UINT mask;
int iLink;
UINT state;
UINT stateMask;
WCHAR szID[MAX_LINKID_TEXT];
WCHAR szUrl[L_MAX_URL_LENGTH];
} LITEM,*PLITEM;
typedef struct tagLHITTESTINFO {
POINT pt;
LITEM item;
} LHITTESTINFO,*PLHITTESTINFO;
typedef struct tagNMLINK {
NMHDR hdr;
LITEM item;
} NMLINK,*PNMLINK;
#ifndef NOLISTVIEW
#define WC_LISTVIEWA "SysListView32"
#define WC_LISTVIEWW L"SysListView32"
#define WC_LISTVIEW __MINGW_NAME_AW(WC_LISTVIEW)
#define LVS_ICON 0x0
#define LVS_REPORT 0x1
#define LVS_SMALLICON 0x2
#define LVS_LIST 0x3
#define LVS_TYPEMASK 0x3
#define LVS_SINGLESEL 0x4
#define LVS_SHOWSELALWAYS 0x8
#define LVS_SORTASCENDING 0x10
#define LVS_SORTDESCENDING 0x20
#define LVS_SHAREIMAGELISTS 0x40
#define LVS_NOLABELWRAP 0x80
#define LVS_AUTOARRANGE 0x100
#define LVS_EDITLABELS 0x200
#define LVS_OWNERDATA 0x1000
#define LVS_NOSCROLL 0x2000
#define LVS_TYPESTYLEMASK 0xfc00
#define LVS_ALIGNTOP 0x0
#define LVS_ALIGNLEFT 0x800
#define LVS_ALIGNMASK 0xc00
#define LVS_OWNERDRAWFIXED 0x400
#define LVS_NOCOLUMNHEADER 0x4000
#define LVS_NOSORTHEADER 0x8000
#define LVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define ListView_SetUnicodeFormat(hwnd,fUnicode) (WINBOOL)SNDMSG((hwnd),LVM_SETUNICODEFORMAT,(WPARAM)(fUnicode),0)
#define LVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define ListView_GetUnicodeFormat(hwnd) (WINBOOL)SNDMSG((hwnd),LVM_GETUNICODEFORMAT,0,0)
#define LVM_GETBKCOLOR (LVM_FIRST+0)
#define ListView_GetBkColor(hwnd) (COLORREF)SNDMSG((hwnd),LVM_GETBKCOLOR,(WPARAM)0,(LPARAM)0)
#define LVM_SETBKCOLOR (LVM_FIRST+1)
#define ListView_SetBkColor(hwnd,clrBk) (WINBOOL)SNDMSG((hwnd),LVM_SETBKCOLOR,0,(LPARAM)(COLORREF)(clrBk))
#define LVM_GETIMAGELIST (LVM_FIRST+2)
#define ListView_GetImageList(hwnd,iImageList) (HIMAGELIST)SNDMSG((hwnd),LVM_GETIMAGELIST,(WPARAM)(INT)(iImageList),(LPARAM)0)
#define LVSIL_NORMAL 0
#define LVSIL_SMALL 1
#define LVSIL_STATE 2
#define LVSIL_GROUPHEADER 3
#define LVM_SETIMAGELIST (LVM_FIRST+3)
#define ListView_SetImageList(hwnd,himl,iImageList) (HIMAGELIST)SNDMSG((hwnd),LVM_SETIMAGELIST,(WPARAM)(iImageList),(LPARAM)(HIMAGELIST)(himl))
#define LVM_GETITEMCOUNT (LVM_FIRST+4)
#define ListView_GetItemCount(hwnd) (int)SNDMSG((hwnd),LVM_GETITEMCOUNT,(WPARAM)0,(LPARAM)0)
#define LVIF_TEXT 0x1
#define LVIF_IMAGE 0x2
#define LVIF_PARAM 0x4
#define LVIF_STATE 0x8
#define LVIF_INDENT 0x10
#define LVIF_NORECOMPUTE 0x800
#define LVIF_GROUPID 0x100
#define LVIF_COLUMNS 0x200
#if NTDDI_VERSION >= 0x06000000
#define LVIF_COLFMT 0x10000
#endif
#define LVIS_FOCUSED 0x1
#define LVIS_SELECTED 0x2
#define LVIS_CUT 0x4
#define LVIS_DROPHILITED 0x8
#define LVIS_GLOW 0x10
#define LVIS_ACTIVATING 0x20
#define LVIS_OVERLAYMASK 0xf00
#define LVIS_STATEIMAGEMASK 0xF000
#define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
#define I_INDENTCALLBACK (-1)
#define LV_ITEMA LVITEMA
#define LV_ITEMW LVITEMW
#define I_GROUPIDCALLBACK (-1)
#define I_GROUPIDNONE (-2)
#define LV_ITEM LVITEM
#define LVITEMA_V1_SIZE CCSIZEOF_STRUCT(LVITEMA,lParam)
#define LVITEMW_V1_SIZE CCSIZEOF_STRUCT(LVITEMW,lParam)
#if NTDDI_VERSION >= 0x06000000
#define LVITEMA_V5_SIZE CCSIZEOF_STRUCT (LVITEMA, puColumns)
#define LVITEMW_V5_SIZE CCSIZEOF_STRUCT (LVITEMW, puColumns)
#define LVITEM_V5_SIZE __MINGW_NAME_AW_EXT(LVITEM,_V5_SIZE)
#endif
typedef struct tagLVITEMA {
UINT mask;
int iItem;
int iSubItem;
UINT state;
UINT stateMask;
LPSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
int iIndent;
int iGroupId;
UINT cColumns;
PUINT puColumns;
#if NTDDI_VERSION >= 0x06000000
int *piColFmt;
int iGroup;
#endif
} LVITEMA,*LPLVITEMA;
typedef struct tagLVITEMW
{
UINT mask;
int iItem;
int iSubItem;
UINT state;
UINT stateMask;
LPWSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
int iIndent;
int iGroupId;
UINT cColumns;
PUINT puColumns;
#if NTDDI_VERSION >= 0x06000000
int *piColFmt;
int iGroup;
#endif
} LVITEMW,*LPLVITEMW;
#define LVITEM __MINGW_NAME_AW(LVITEM)
#define LPLVITEM __MINGW_NAME_AW(LPLVITEM)
#define LVITEM_V1_SIZE __MINGW_NAME_AW_EXT(LVITEM,_V1_SIZE)
#define LPSTR_TEXTCALLBACKW ((LPWSTR)(INT_PTR)-1)
#define LPSTR_TEXTCALLBACKA ((LPSTR)(INT_PTR)-1)
#define LPSTR_TEXTCALLBACK __MINGW_NAME_AW(LPSTR_TEXTCALLBACK)
#define I_IMAGECALLBACK (-1)
#define I_IMAGENONE (-2)
#define I_COLUMNSCALLBACK ((UINT)-1)
#define LVM_GETITEMA (LVM_FIRST+5)
#define LVM_GETITEMW (LVM_FIRST+75)
#define LVM_GETITEM __MINGW_NAME_AW(LVM_GETITEM)
#define ListView_GetItem(hwnd,pitem) (WINBOOL)SNDMSG((hwnd),LVM_GETITEM,0,(LPARAM)(LV_ITEM *)(pitem))
#define LVM_SETITEMA (LVM_FIRST+6)
#define LVM_SETITEMW (LVM_FIRST+76)
#define LVM_SETITEM __MINGW_NAME_AW(LVM_SETITEM)
#define ListView_SetItem(hwnd,pitem) (WINBOOL)SNDMSG((hwnd),LVM_SETITEM,0,(LPARAM)(const LV_ITEM *)(pitem))
#define LVM_INSERTITEMA (LVM_FIRST+7)
#define LVM_INSERTITEMW (LVM_FIRST+77)
#define LVM_INSERTITEM __MINGW_NAME_AW(LVM_INSERTITEM)
#define ListView_InsertItem(hwnd,pitem) (int)SNDMSG((hwnd),LVM_INSERTITEM,0,(LPARAM)(const LV_ITEM *)(pitem))
#define LVM_DELETEITEM (LVM_FIRST+8)
#define ListView_DeleteItem(hwnd,i) (WINBOOL)SNDMSG((hwnd),LVM_DELETEITEM,(WPARAM)(int)(i),(LPARAM)0)
#define LVM_DELETEALLITEMS (LVM_FIRST+9)
#define ListView_DeleteAllItems(hwnd) (WINBOOL)SNDMSG((hwnd),LVM_DELETEALLITEMS,(WPARAM)0,(LPARAM)0)
#define LVM_GETCALLBACKMASK (LVM_FIRST+10)
#define ListView_GetCallbackMask(hwnd) (WINBOOL)SNDMSG((hwnd),LVM_GETCALLBACKMASK,0,0)
#define LVM_SETCALLBACKMASK (LVM_FIRST+11)
#define ListView_SetCallbackMask(hwnd,mask) (WINBOOL)SNDMSG((hwnd),LVM_SETCALLBACKMASK,(WPARAM)(UINT)(mask),0)
#define LVNI_ALL 0x0
#define LVNI_FOCUSED 0x1
#define LVNI_SELECTED 0x2
#define LVNI_CUT 0x4
#define LVNI_DROPHILITED 0x8
#define LVNI_STATEMASK (LVNI_FOCUSED | LVNI_SELECTED | LVNI_CUT | LVNI_DROPHILITED)
#define LVNI_VISIBLEORDER 0x10
#define LVNI_PREVIOUS 0x20
#define LVNI_VISIBLEONLY 0x40
#define LVNI_SAMEGROUPONLY 0x80
#define LVNI_ABOVE 0x100
#define LVNI_BELOW 0x200
#define LVNI_TOLEFT 0x400
#define LVNI_TORIGHT 0x800
#define LVNI_DIRECTIONMASK (LVNI_ABOVE | LVNI_BELOW | LVNI_TOLEFT | LVNI_TORIGHT)
#define LVM_GETNEXTITEM (LVM_FIRST+12)
#define ListView_GetNextItem(hwnd,i,flags) (int)SNDMSG((hwnd),LVM_GETNEXTITEM,(WPARAM)(int)(i),MAKELPARAM((flags),0))
#define LVFI_PARAM 0x1
#define LVFI_STRING 0x2
#define LVFI_PARTIAL 0x8
#define LVFI_WRAP 0x20
#define LVFI_NEARESTXY 0x40
#define LV_FINDINFOA LVFINDINFOA
#define LV_FINDINFOW LVFINDINFOW
#define LV_FINDINFO LVFINDINFO
typedef struct tagLVFINDINFOA {
UINT flags;
LPCSTR psz;
LPARAM lParam;
POINT pt;
UINT vkDirection;
} LVFINDINFOA,*LPFINDINFOA;
typedef struct tagLVFINDINFOW {
UINT flags;
LPCWSTR psz;
LPARAM lParam;
POINT pt;
UINT vkDirection;
} LVFINDINFOW,*LPFINDINFOW;
#define LVFINDINFO __MINGW_NAME_AW(LVFINDINFO)
#define LVM_FINDITEMA (LVM_FIRST+13)
#define LVM_FINDITEMW (LVM_FIRST+83)
#define LVM_FINDITEM __MINGW_NAME_AW(LVM_FINDITEM)
#define ListView_FindItem(hwnd,iStart,plvfi) (int)SNDMSG((hwnd),LVM_FINDITEM,(WPARAM)(int)(iStart),(LPARAM)(const LV_FINDINFO *)(plvfi))
#define LVIR_BOUNDS 0
#define LVIR_ICON 1
#define LVIR_LABEL 2
#define LVIR_SELECTBOUNDS 3
#define LVM_GETITEMRECT (LVM_FIRST+14)
#define ListView_GetItemRect(hwnd,i,prc,code) (WINBOOL)SNDMSG((hwnd),LVM_GETITEMRECT,(WPARAM)(int)(i),((prc) ? (((RECT *)(prc))->left = (code),(LPARAM)(RECT *)(prc)) : (LPARAM)(RECT *)NULL))
#define LVM_SETITEMPOSITION (LVM_FIRST+15)
#define ListView_SetItemPosition(hwndLV,i,x,y) (WINBOOL)SNDMSG((hwndLV),LVM_SETITEMPOSITION,(WPARAM)(int)(i),MAKELPARAM((x),(y)))
#define LVM_GETITEMPOSITION (LVM_FIRST+16)
#define ListView_GetItemPosition(hwndLV,i,ppt) (WINBOOL)SNDMSG((hwndLV),LVM_GETITEMPOSITION,(WPARAM)(int)(i),(LPARAM)(POINT *)(ppt))
#define LVM_GETSTRINGWIDTHA (LVM_FIRST+17)
#define LVM_GETSTRINGWIDTHW (LVM_FIRST+87)
#define LVM_GETSTRINGWIDTH __MINGW_NAME_AW(LVM_GETSTRINGWIDTH)
#define ListView_GetStringWidth(hwndLV,psz) (int)SNDMSG((hwndLV),LVM_GETSTRINGWIDTH,0,(LPARAM)(LPCTSTR)(psz))
#define LVHT_NOWHERE 0x1
#define LVHT_ONITEMICON 0x2
#define LVHT_ONITEMLABEL 0x4
#define LVHT_ONITEMSTATEICON 0x8
#define LVHT_ONITEM (LVHT_ONITEMICON | LVHT_ONITEMLABEL | LVHT_ONITEMSTATEICON)
#define LVHT_ABOVE 0x8
#define LVHT_BELOW 0x10
#define LVHT_TORIGHT 0x20
#define LVHT_TOLEFT 0x40
#define LVHT_EX_GROUP_HEADER 0x10000000
#define LVHT_EX_GROUP_FOOTER 0x20000000
#define LVHT_EX_GROUP_COLLAPSE 0x40000000
#define LVHT_EX_GROUP_BACKGROUND 0x80000000
#define LVHT_EX_GROUP_STATEICON 0x01000000
#define LVHT_EX_GROUP_SUBSETLINK 0x02000000
#define LVHT_EX_GROUP (LVHT_EX_GROUP_BACKGROUND | LVHT_EX_GROUP_COLLAPSE | LVHT_EX_GROUP_FOOTER | LVHT_EX_GROUP_HEADER | LVHT_EX_GROUP_STATEICON | LVHT_EX_GROUP_SUBSETLINK)
#define LVHT_EX_ONCONTENTS 0x04000000
#define LV_HITTESTINFO LVHITTESTINFO
#define LVHITTESTINFO_V1_SIZE CCSIZEOF_STRUCT(LVHITTESTINFO,iItem)
typedef struct tagLVHITTESTINFO {
POINT pt;
UINT flags;
int iItem;
int iSubItem;
#if NTDDI_VERSION >= 0x06000000
int iGroup;
#endif
} LVHITTESTINFO,*LPLVHITTESTINFO;
#define LVM_HITTEST (LVM_FIRST+18)
#define ListView_HitTest(hwndLV,pinfo) (int)SNDMSG((hwndLV),LVM_HITTEST,0,(LPARAM)(LV_HITTESTINFO *)(pinfo))
#define LVM_ENSUREVISIBLE (LVM_FIRST+19)
#define ListView_EnsureVisible(hwndLV,i,fPartialOK) (WINBOOL)SNDMSG((hwndLV),LVM_ENSUREVISIBLE,(WPARAM)(int)(i),MAKELPARAM((fPartialOK),0))
#define LVM_SCROLL (LVM_FIRST+20)
#define ListView_Scroll(hwndLV,dx,dy) (WINBOOL)SNDMSG((hwndLV),LVM_SCROLL,(WPARAM)(int)(dx),(LPARAM)(int)(dy))
#define LVM_REDRAWITEMS (LVM_FIRST+21)
#define ListView_RedrawItems(hwndLV,iFirst,iLast) (WINBOOL)SNDMSG((hwndLV),LVM_REDRAWITEMS,(WPARAM)(int)(iFirst),(LPARAM)(int)(iLast))
#define LVA_DEFAULT 0x0
#define LVA_ALIGNLEFT 0x1
#define LVA_ALIGNTOP 0x2
#define LVA_SNAPTOGRID 0x5
#define LVM_ARRANGE (LVM_FIRST+22)
#define ListView_Arrange(hwndLV,code) (WINBOOL)SNDMSG((hwndLV),LVM_ARRANGE,(WPARAM)(UINT)(code),(LPARAM)0)
#define LVM_EDITLABELA (LVM_FIRST+23)
#define LVM_EDITLABELW (LVM_FIRST+118)
#define LVM_EDITLABEL __MINGW_NAME_AW(LVM_EDITLABEL)
#define ListView_EditLabel(hwndLV,i) (HWND)SNDMSG((hwndLV),LVM_EDITLABEL,(WPARAM)(int)(i),(LPARAM)0)
#define LVM_GETEDITCONTROL (LVM_FIRST+24)
#define ListView_GetEditControl(hwndLV) (HWND)SNDMSG((hwndLV),LVM_GETEDITCONTROL,(WPARAM)0,(LPARAM)0)
#define LV_COLUMNA LVCOLUMNA
#define LV_COLUMNW LVCOLUMNW
#define LV_COLUMN LVCOLUMN
#define LVCOLUMNA_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNA,iSubItem)
#define LVCOLUMNW_V1_SIZE CCSIZEOF_STRUCT(LVCOLUMNW,iSubItem)
typedef struct tagLVCOLUMNA {
UINT mask;
int fmt;
int cx;
LPSTR pszText;
int cchTextMax;
int iSubItem;
int iImage;
int iOrder;
#if NTDDI_VERSION >= 0x06000000
int cxMin;
int cxDefault;
int cxIdeal;
#endif
} LVCOLUMNA,*LPLVCOLUMNA;
typedef struct tagLVCOLUMNW {
UINT mask;
int fmt;
int cx;
LPWSTR pszText;
int cchTextMax;
int iSubItem;
int iImage;
int iOrder;
#if NTDDI_VERSION >= 0x06000000
int cxMin;
int cxDefault;
int cxIdeal;
#endif
} LVCOLUMNW,*LPLVCOLUMNW;
#define LVCOLUMN __MINGW_NAME_AW(LVCOLUMN)
#define LPLVCOLUMN __MINGW_NAME_AW(LPLVCOLUMN)
#define LVCOLUMN_V1_SIZE __MINGW_NAME_AW_EXT(LVCOLUMN,_V1_SIZE)
#define LVCF_FMT 0x1
#define LVCF_WIDTH 0x2
#define LVCF_TEXT 0x4
#define LVCF_SUBITEM 0x8
#define LVCF_IMAGE 0x10
#define LVCF_ORDER 0x20
#if NTDDI_VERSION >= 0x06000000
#define LVCF_MINWIDTH 0x40
#define LVCF_DEFAULTWIDTH 0x80
#define LVCF_IDEALWIDTH 0x100
#endif
#define LVCFMT_LEFT 0x0
#define LVCFMT_RIGHT 0x1
#define LVCFMT_CENTER 0x2
#define LVCFMT_JUSTIFYMASK 0x3
#define LVCFMT_IMAGE 0x800
#define LVCFMT_BITMAP_ON_RIGHT 0x1000
#define LVCFMT_COL_HAS_IMAGES 0x8000
#if NTDDI_VERSION >= 0x06000000
#define LVCFMT_FIXED_WIDTH 0x100
#define LVCFMT_NO_DPI_SCALE 0x40000
#define LVCFMT_FIXED_RATIO 0x80000
#define LVCFMT_LINE_BREAK 0x100000
#define LVCFMT_FILL 0x200000
#define LVCFMT_WRAP 0x400000
#define LVCFMT_NO_TITLE 0x800000
#define LVCFMT_SPLITBUTTON 0x1000000
#define LVCFMT_TILE_PLACEMENTMASK (LVCFMT_LINE_BREAK|LVCFMT_FILL)
#endif
#define LVM_GETCOLUMNA (LVM_FIRST+25)
#define LVM_GETCOLUMNW (LVM_FIRST+95)
#define LVM_GETCOLUMN __MINGW_NAME_AW(LVM_GETCOLUMN)
#define ListView_GetColumn(hwnd,iCol,pcol) (WINBOOL)SNDMSG((hwnd),LVM_GETCOLUMN,(WPARAM)(int)(iCol),(LPARAM)(LV_COLUMN *)(pcol))
#define LVM_SETCOLUMNA (LVM_FIRST+26)
#define LVM_SETCOLUMNW (LVM_FIRST+96)
#define LVM_SETCOLUMN __MINGW_NAME_AW(LVM_SETCOLUMN)
#define ListView_SetColumn(hwnd,iCol,pcol) (WINBOOL)SNDMSG((hwnd),LVM_SETCOLUMN,(WPARAM)(int)(iCol),(LPARAM)(const LV_COLUMN *)(pcol))
#define LVM_INSERTCOLUMNA (LVM_FIRST+27)
#define LVM_INSERTCOLUMNW (LVM_FIRST+97)
#define LVM_INSERTCOLUMN __MINGW_NAME_AW(LVM_INSERTCOLUMN)
#define ListView_InsertColumn(hwnd,iCol,pcol) (int)SNDMSG((hwnd),LVM_INSERTCOLUMN,(WPARAM)(int)(iCol),(LPARAM)(const LV_COLUMN *)(pcol))
#define LVM_DELETECOLUMN (LVM_FIRST+28)
#define ListView_DeleteColumn(hwnd,iCol) (WINBOOL)SNDMSG((hwnd),LVM_DELETECOLUMN,(WPARAM)(int)(iCol),0)
#define LVM_GETCOLUMNWIDTH (LVM_FIRST+29)
#define ListView_GetColumnWidth(hwnd,iCol) (int)SNDMSG((hwnd),LVM_GETCOLUMNWIDTH,(WPARAM)(int)(iCol),0)
#define LVSCW_AUTOSIZE -1
#define LVSCW_AUTOSIZE_USEHEADER -2
#define LVM_SETCOLUMNWIDTH (LVM_FIRST+30)
#define ListView_SetColumnWidth(hwnd,iCol,cx) (WINBOOL)SNDMSG((hwnd),LVM_SETCOLUMNWIDTH,(WPARAM)(int)(iCol),MAKELPARAM((cx),0))
#define LVM_GETHEADER (LVM_FIRST+31)
#define ListView_GetHeader(hwnd) (HWND)SNDMSG((hwnd),LVM_GETHEADER,(WPARAM)0,(LPARAM)0)
#define LVM_CREATEDRAGIMAGE (LVM_FIRST+33)
#define ListView_CreateDragImage(hwnd,i,lpptUpLeft) (HIMAGELIST)SNDMSG((hwnd),LVM_CREATEDRAGIMAGE,(WPARAM)(int)(i),(LPARAM)(LPPOINT)(lpptUpLeft))
#define LVM_GETVIEWRECT (LVM_FIRST+34)
#define ListView_GetViewRect(hwnd,prc) (WINBOOL)SNDMSG((hwnd),LVM_GETVIEWRECT,0,(LPARAM)(RECT *)(prc))
#define LVM_GETTEXTCOLOR (LVM_FIRST+35)
#define ListView_GetTextColor(hwnd) (COLORREF)SNDMSG((hwnd),LVM_GETTEXTCOLOR,(WPARAM)0,(LPARAM)0)
#define LVM_SETTEXTCOLOR (LVM_FIRST+36)
#define ListView_SetTextColor(hwnd,clrText) (WINBOOL)SNDMSG((hwnd),LVM_SETTEXTCOLOR,0,(LPARAM)(COLORREF)(clrText))
#define LVM_GETTEXTBKCOLOR (LVM_FIRST+37)
#define ListView_GetTextBkColor(hwnd) (COLORREF)SNDMSG((hwnd),LVM_GETTEXTBKCOLOR,(WPARAM)0,(LPARAM)0)
#define LVM_SETTEXTBKCOLOR (LVM_FIRST+38)
#define ListView_SetTextBkColor(hwnd,clrTextBk) (WINBOOL)SNDMSG((hwnd),LVM_SETTEXTBKCOLOR,0,(LPARAM)(COLORREF)(clrTextBk))
#define LVM_GETTOPINDEX (LVM_FIRST+39)
#define ListView_GetTopIndex(hwndLV) (int)SNDMSG((hwndLV),LVM_GETTOPINDEX,0,0)
#define LVM_GETCOUNTPERPAGE (LVM_FIRST+40)
#define ListView_GetCountPerPage(hwndLV) (int)SNDMSG((hwndLV),LVM_GETCOUNTPERPAGE,0,0)
#define LVM_GETORIGIN (LVM_FIRST+41)
#define ListView_GetOrigin(hwndLV,ppt) (WINBOOL)SNDMSG((hwndLV),LVM_GETORIGIN,(WPARAM)0,(LPARAM)(POINT *)(ppt))
#define LVM_UPDATE (LVM_FIRST+42)
#define ListView_Update(hwndLV,i) (WINBOOL)SNDMSG((hwndLV),LVM_UPDATE,(WPARAM)(i),(LPARAM)0)
#define LVM_SETITEMSTATE (LVM_FIRST+43)
#define ListView_SetItemState(hwndLV,i,data,mask) { LV_ITEM _ms_lvi; _ms_lvi.stateMask = mask; _ms_lvi.state = data; SNDMSG((hwndLV),LVM_SETITEMSTATE,(WPARAM)(i),(LPARAM)(LV_ITEM *)&_ms_lvi);}
#define ListView_SetCheckState(hwndLV,i,fCheck) ListView_SetItemState(hwndLV,i,INDEXTOSTATEIMAGEMASK((fCheck)?2:1),LVIS_STATEIMAGEMASK)
#define LVM_GETITEMSTATE (LVM_FIRST+44)
#define ListView_GetItemState(hwndLV,i,mask) (UINT)SNDMSG((hwndLV),LVM_GETITEMSTATE,(WPARAM)(i),(LPARAM)(mask))
#define ListView_GetCheckState(hwndLV,i) ((((UINT)(SNDMSG((hwndLV),LVM_GETITEMSTATE,(WPARAM)(i),LVIS_STATEIMAGEMASK))) >> 12) -1)
#define LVM_GETITEMTEXTA (LVM_FIRST+45)
#define LVM_GETITEMTEXTW (LVM_FIRST+115)
#define LVM_GETITEMTEXT __MINGW_NAME_AW(LVM_GETITEMTEXT)
#define ListView_GetItemText(hwndLV,i,iSubItem_,pszText_,cchTextMax_) { LV_ITEM _ms_lvi; _ms_lvi.iSubItem = iSubItem_; _ms_lvi.cchTextMax = cchTextMax_; _ms_lvi.pszText = pszText_; SNDMSG((hwndLV),LVM_GETITEMTEXT,(WPARAM)(i),(LPARAM)(LV_ITEM *)&_ms_lvi);}
#define LVM_SETITEMTEXTA (LVM_FIRST+46)
#define LVM_SETITEMTEXTW (LVM_FIRST+116)
#define LVM_SETITEMTEXT __MINGW_NAME_AW(LVM_SETITEMTEXT)
#define ListView_SetItemText(hwndLV,i,iSubItem_,pszText_) { LV_ITEM _ms_lvi; _ms_lvi.iSubItem = iSubItem_; _ms_lvi.pszText = pszText_; SNDMSG((hwndLV),LVM_SETITEMTEXT,(WPARAM)(i),(LPARAM)(LV_ITEM *)&_ms_lvi);}
#define LVSICF_NOINVALIDATEALL 0x1
#define LVSICF_NOSCROLL 0x2
#define LVM_SETITEMCOUNT (LVM_FIRST+47)
#define ListView_SetItemCount(hwndLV,cItems) SNDMSG((hwndLV),LVM_SETITEMCOUNT,(WPARAM)(cItems),0)
#define ListView_SetItemCountEx(hwndLV,cItems,dwFlags) SNDMSG((hwndLV),LVM_SETITEMCOUNT,(WPARAM)(cItems),(LPARAM)(dwFlags))
typedef int (CALLBACK *PFNLVCOMPARE)(LPARAM,LPARAM,LPARAM);
#define LVM_SORTITEMS (LVM_FIRST+48)
#define ListView_SortItems(hwndLV,_pfnCompare,_lPrm) (WINBOOL)SNDMSG((hwndLV),LVM_SORTITEMS,(WPARAM)(LPARAM)(_lPrm),(LPARAM)(PFNLVCOMPARE)(_pfnCompare))
#define LVM_SETITEMPOSITION32 (LVM_FIRST+49)
#define ListView_SetItemPosition32(hwndLV,i,x0,y0) { POINT ptNewPos; ptNewPos.x = x0; ptNewPos.y = y0; SNDMSG((hwndLV),LVM_SETITEMPOSITION32,(WPARAM)(int)(i),(LPARAM)&ptNewPos); }
#define LVM_GETSELECTEDCOUNT (LVM_FIRST+50)
#define ListView_GetSelectedCount(hwndLV) (UINT)SNDMSG((hwndLV),LVM_GETSELECTEDCOUNT,(WPARAM)0,(LPARAM)0)
#define LVM_GETITEMSPACING (LVM_FIRST+51)
#define ListView_GetItemSpacing(hwndLV,fSmall) (DWORD)SNDMSG((hwndLV),LVM_GETITEMSPACING,fSmall,(LPARAM)0)
#define LVM_GETISEARCHSTRINGA (LVM_FIRST+52)
#define LVM_GETISEARCHSTRINGW (LVM_FIRST+117)
#define LVM_GETISEARCHSTRING __MINGW_NAME_AW(LVM_GETISEARCHSTRING)
#define ListView_GetISearchString(hwndLV,lpsz) (WINBOOL)SNDMSG((hwndLV),LVM_GETISEARCHSTRING,0,(LPARAM)(LPTSTR)(lpsz))
#define LVM_SETICONSPACING (LVM_FIRST+53)
#define ListView_SetIconSpacing(hwndLV,cx,cy) (DWORD)SNDMSG((hwndLV),LVM_SETICONSPACING,0,MAKELONG(cx,cy))
#define LVM_SETEXTENDEDLISTVIEWSTYLE (LVM_FIRST+54)
#define ListView_SetExtendedListViewStyle(hwndLV,dw) (DWORD)SNDMSG((hwndLV),LVM_SETEXTENDEDLISTVIEWSTYLE,0,dw)
#define ListView_SetExtendedListViewStyleEx(hwndLV,dwMask,dw) (DWORD)SNDMSG((hwndLV),LVM_SETEXTENDEDLISTVIEWSTYLE,dwMask,dw)
#define LVM_GETEXTENDEDLISTVIEWSTYLE (LVM_FIRST+55)
#define ListView_GetExtendedListViewStyle(hwndLV) (DWORD)SNDMSG((hwndLV),LVM_GETEXTENDEDLISTVIEWSTYLE,0,0)
#define LVS_EX_GRIDLINES 0x1
#define LVS_EX_SUBITEMIMAGES 0x2
#define LVS_EX_CHECKBOXES 0x4
#define LVS_EX_TRACKSELECT 0x8
#define LVS_EX_HEADERDRAGDROP 0x10
#define LVS_EX_FULLROWSELECT 0x20
#define LVS_EX_ONECLICKACTIVATE 0x40
#define LVS_EX_TWOCLICKACTIVATE 0x80
#define LVS_EX_FLATSB 0x100
#define LVS_EX_REGIONAL 0x200
#define LVS_EX_INFOTIP 0x400
#define LVS_EX_UNDERLINEHOT 0x800
#define LVS_EX_UNDERLINECOLD 0x1000
#define LVS_EX_MULTIWORKAREAS 0x2000
#define LVS_EX_LABELTIP 0x4000
#define LVS_EX_BORDERSELECT 0x8000
#define LVS_EX_DOUBLEBUFFER 0x10000
#define LVS_EX_HIDELABELS 0x20000
#define LVS_EX_SINGLEROW 0x40000
#define LVS_EX_SNAPTOGRID 0x80000
#define LVS_EX_SIMPLESELECT 0x100000
#if NTDDI_VERSION >= 0x06000000
#define LVS_EX_JUSTIFYCOLUMNS 0x200000
#define LVS_EX_TRANSPARENTBKGND 0x400000
#define LVS_EX_TRANSPARENTSHADOWTEXT 0x800000
#define LVS_EX_AUTOAUTOARRANGE 0x1000000
#define LVS_EX_HEADERINALLVIEWS 0x2000000
#define LVS_EX_AUTOCHECKSELECT 0x8000000
#define LVS_EX_AUTOSIZECOLUMNS 0x10000000
#define LVS_EX_COLUMNSNAPPOINTS 0x40000000
#define LVS_EX_COLUMNOVERFLOW 0x80000000
#endif
#define LVM_GETSUBITEMRECT (LVM_FIRST+56)
#define ListView_GetSubItemRect(hwnd,iItem,iSubItem,code,prc) (WINBOOL)SNDMSG((hwnd),LVM_GETSUBITEMRECT,(WPARAM)(int)(iItem),((prc) ? ((((LPRECT)(prc))->top = iSubItem),(((LPRECT)(prc))->left = code),(LPARAM)(prc)) : (LPARAM)(LPRECT)NULL))
#define LVM_SUBITEMHITTEST (LVM_FIRST+57)
#define ListView_SubItemHitTest(hwnd,plvhti) (int)SNDMSG((hwnd),LVM_SUBITEMHITTEST,0,(LPARAM)(LPLVHITTESTINFO)(plvhti))
#define ListView_SubItemHitTestEx(hwnd, plvhti) (int)SNDMSG ((hwnd), LVM_SUBITEMHITTEST,(WPARAM)-1,(LPARAM) (LPLVHITTESTINFO) (plvhti))
#define LVM_SETCOLUMNORDERARRAY (LVM_FIRST+58)
#define ListView_SetColumnOrderArray(hwnd,iCount,pi) (WINBOOL)SNDMSG((hwnd),LVM_SETCOLUMNORDERARRAY,(WPARAM)(iCount),(LPARAM)(LPINT)(pi))
#define LVM_GETCOLUMNORDERARRAY (LVM_FIRST+59)
#define ListView_GetColumnOrderArray(hwnd,iCount,pi) (WINBOOL)SNDMSG((hwnd),LVM_GETCOLUMNORDERARRAY,(WPARAM)(iCount),(LPARAM)(LPINT)(pi))
#define LVM_SETHOTITEM (LVM_FIRST+60)
#define ListView_SetHotItem(hwnd,i) (int)SNDMSG((hwnd),LVM_SETHOTITEM,(WPARAM)(i),0)
#define LVM_GETHOTITEM (LVM_FIRST+61)
#define ListView_GetHotItem(hwnd) (int)SNDMSG((hwnd),LVM_GETHOTITEM,0,0)
#define LVM_SETHOTCURSOR (LVM_FIRST+62)
#define ListView_SetHotCursor(hwnd,hcur) (HCURSOR)SNDMSG((hwnd),LVM_SETHOTCURSOR,0,(LPARAM)(hcur))
#define LVM_GETHOTCURSOR (LVM_FIRST+63)
#define ListView_GetHotCursor(hwnd) (HCURSOR)SNDMSG((hwnd),LVM_GETHOTCURSOR,0,0)
#define LVM_APPROXIMATEVIEWRECT (LVM_FIRST+64)
#define ListView_ApproximateViewRect(hwnd,iWidth,iHeight,iCount) (DWORD)SNDMSG((hwnd),LVM_APPROXIMATEVIEWRECT,iCount,MAKELPARAM(iWidth,iHeight))
#define LV_MAX_WORKAREAS 16
#define LVM_SETWORKAREAS (LVM_FIRST+65)
#define ListView_SetWorkAreas(hwnd,nWorkAreas,prc) (WINBOOL)SNDMSG((hwnd),LVM_SETWORKAREAS,(WPARAM)(int)(nWorkAreas),(LPARAM)(RECT *)(prc))
#define LVM_GETWORKAREAS (LVM_FIRST+70)
#define ListView_GetWorkAreas(hwnd,nWorkAreas,prc) (WINBOOL)SNDMSG((hwnd),LVM_GETWORKAREAS,(WPARAM)(int)(nWorkAreas),(LPARAM)(RECT *)(prc))
#define LVM_GETNUMBEROFWORKAREAS (LVM_FIRST+73)
#define ListView_GetNumberOfWorkAreas(hwnd,pnWorkAreas) (WINBOOL)SNDMSG((hwnd),LVM_GETNUMBEROFWORKAREAS,0,(LPARAM)(UINT *)(pnWorkAreas))
#define LVM_GETSELECTIONMARK (LVM_FIRST+66)
#define ListView_GetSelectionMark(hwnd) (int)SNDMSG((hwnd),LVM_GETSELECTIONMARK,0,0)
#define LVM_SETSELECTIONMARK (LVM_FIRST+67)
#define ListView_SetSelectionMark(hwnd,i) (int)SNDMSG((hwnd),LVM_SETSELECTIONMARK,0,(LPARAM)(i))
#define LVM_SETHOVERTIME (LVM_FIRST+71)
#define ListView_SetHoverTime(hwndLV,dwHoverTimeMs) (DWORD)SNDMSG((hwndLV),LVM_SETHOVERTIME,0,(LPARAM)(dwHoverTimeMs))
#define LVM_GETHOVERTIME (LVM_FIRST+72)
#define ListView_GetHoverTime(hwndLV) (DWORD)SNDMSG((hwndLV),LVM_GETHOVERTIME,0,0)
#define LVM_SETTOOLTIPS (LVM_FIRST+74)
#define ListView_SetToolTips(hwndLV,hwndNewHwnd) (HWND)SNDMSG((hwndLV),LVM_SETTOOLTIPS,(WPARAM)(hwndNewHwnd),0)
#define LVM_GETTOOLTIPS (LVM_FIRST+78)
#define ListView_GetToolTips(hwndLV) (HWND)SNDMSG((hwndLV),LVM_GETTOOLTIPS,0,0)
#define LVM_SORTITEMSEX (LVM_FIRST+81)
#define ListView_SortItemsEx(hwndLV,_pfnCompare,_lPrm) (WINBOOL)SNDMSG((hwndLV),LVM_SORTITEMSEX,(WPARAM)(LPARAM)(_lPrm),(LPARAM)(PFNLVCOMPARE)(_pfnCompare))
typedef struct tagLVBKIMAGEA {
ULONG ulFlags;
HBITMAP hbm;
LPSTR pszImage;
UINT cchImageMax;
int xOffsetPercent;
int yOffsetPercent;
} LVBKIMAGEA,*LPLVBKIMAGEA;