commctrl.h revision 4b9d6701570cb98fd36e209314239d104ec584d3
/*
* Common controls definitions
*
* Copyright (C) the Wine project
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
#ifndef __WINE_COMMCTRL_H
#define __WINE_COMMCTRL_H
#include <prsht.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct tagINITCOMMONCONTROLSEX {
#ifndef _WIN32_IE
#define _WIN32_IE 0x0400
#endif
#define ICC_WIN95_CLASSES 0x000000FF
#define ICC_STANDARD_CLASSES 0x00004000
#define ICC_LINK_CLASS 0x00008000
/* 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
/* common control shared messages */
#define CCM_FIRST 0x2000
/* common notification codes (WM_NOTIFY)*/
#define NM_FIRST (0U- 0U)
#define NM_LAST (0U- 99U)
/* callback constants */
#define I_IMAGECALLBACK (-1)
#define I_IMAGENONE (-2)
#define I_INDENTCALLBACK (-1)
#define I_CHILDRENCALLBACK (-1)
#define I_GROUPIDCALLBACK (-1)
#define I_GROUPIDNONE (-2)
/* owner drawn types */
#define ODT_HEADER 100
#define ODT_TAB 101
#define ODT_LISTVIEW 102
/* common notification structures */
typedef struct tagNMTOOLTIPSCREATED
{
typedef struct tagNMMOUSE
{
typedef struct tagNMOBJECTNOTIFY
{
int iItem;
#ifdef __IID_DEFINED__
#else
const void *piid;
#endif
void *pObject;
typedef struct tagNMKEY
{
typedef struct tagNMCHAR
{
#ifndef CCSIZEOF_STRUCT
#endif
/* This is only for Winelib applications. DON't use it wine itself!!! */
#ifndef SNDMSG
#ifdef __cplusplus
#define SNDMSG ::SendMessage
#else /* __cplusplus */
#define SNDMSG SendMessage
#endif /* __cplusplus */
#endif /* SNDMSG */
#ifdef __cplusplus
#define SNDMSGA ::SendMessageA
#define SNDMSGW ::SendMessageW
#else
#define SNDMSGA SendMessageA
#define SNDMSGW SendMessageW
#endif
/* Custom Draw messages */
#define CDRF_DODEFAULT 0x0
#define CDRF_NEWFONT 0x00000002
#define CDRF_SKIPDEFAULT 0x00000004
#define CDRF_NOTIFYPOSTPAINT 0x00000010
#define CDRF_NOTIFYITEMDRAW 0x00000020
#define CDRF_NOTIFYSUBITEMDRAW 0x00000020
#define CDRF_NOTIFYPOSTERASE 0x00000040
/* drawstage flags */
#define CDDS_PREPAINT 1
#define CDDS_POSTPAINT 2
#define CDDS_PREERASE 3
#define CDDS_POSTERASE 4
#define CDDS_ITEM 0x00010000
#define CDDS_SUBITEM 0x00020000
/* itemState flags */
#define CDIS_SELECTED 0x0001
#define CDIS_GRAYED 0x0002
#define CDIS_DISABLED 0x0004
#define CDIS_CHECKED 0x0008
#define CDIS_FOCUS 0x0010
#define CDIS_DEFAULT 0x0020
#define CDIS_HOT 0x0040
#define CDIS_MARKED 0x0080
#define CDIS_INDETERMINATE 0x0100
#define CDIS_SHOWKEYBOARDCUES 0x0200
#define CDIS_NEARHOT 0x0400
#define CDIS_OTHERSIDEHOT 0x0800
#define CDIS_DROPHILITED 0x1000
typedef struct tagNMCUSTOMDRAWINFO
{
typedef struct tagNMTTCUSTOMDRAW
{
/* StatusWindow */
#define STATUSCLASSNAMEA "msctls_statusbar32"
#if defined(__GNUC__)
's','t','a','t','u','s','b','a','r','3','2',0 }
# define STATUSCLASSNAMEW L"msctls_statusbar32"
#else
's','t','a','t','u','s','b','a','r','3','2',0 };
#endif
#define SBT_NOBORDERS 0x0100
#define SBT_POPOUT 0x0200
#define SBT_TOOLTIPS 0x0800
#define SBT_OWNERDRAW 0x1000
#define SBARS_SIZEGRIP 0x0100
#define SB_SIMPLEID 0x00ff
#define SBN_FIRST (0U-880U)
#define SBN_LAST (0U-899U)
#define SBN_SIMPLEMODECHANGE (SBN_FIRST-0)
typedef struct tagCOLORSCHEME
{
} COLORSCHEME, *LPCOLORSCHEME;
/**************************************************************************
* Drag List control
*/
typedef struct tagDRAGLISTINFO
{
#define DL_CURSORSET 0
#define DL_STOPCURSOR 1
#define DL_COPYCURSOR 2
#define DL_MOVECURSOR 3
#define DRAGLISTMSGSTRINGA "commctrl_DragListMsg"
#if defined(__GNUC__)
'_','D','r','a','g','L','i','s','t','M','s','g',0 }
# define DRAGLISTMSGSTRINGW L"commctrl_DragListMsg"
#else
'_','D','r','a','g','L','i','s','t','M','s','g',0 };
#endif
/* UpDown */
#define UPDOWN_CLASSA "msctls_updown32"
#if defined(__GNUC__)
'u','p','d','o','w','n','3','2',0 }
# define UPDOWN_CLASSW L"msctls_updown32"
#else
'u','p','d','o','w','n','3','2',0 };
#endif
typedef struct _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 UDS_HOTTRACK 0x0100
#define UDN_FIRST (0U-721)
#define UDN_LAST (0U-740)
#define LPNMUPDOWN LPNM_UPDOWN
typedef struct tagNM_UPDOWN
{
int iPos;
int iDelta;
} NM_UPDOWN, *LPNM_UPDOWN;
/* Progress Bar */
#define PROGRESS_CLASSA "msctls_progress32"
#if defined(__GNUC__)
'p','r','o','g','r','e','s','s','3','2',0 }
# define PROGRESS_CLASSW L"msctls_progress32"
#else
'p','r','o','g','r','e','s','s','3','2',0 };
#endif
#define PBM_SETBKCOLOR CCM_SETBKCOLOR
#define PBS_SMOOTH 0x01
#define PBS_VERTICAL 0x04
#define PBS_MARQUEE 0x08
typedef struct
{
/* ImageList */
struct _IMAGELIST;
typedef struct _IMAGELIST *HIMAGELIST;
#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_MIRROR 0x2000
#define ILC_PERITEMMIRROR 0x8000
#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_PRESERVEALPHA 0x1000
#define ILD_SCALE 0x2000
#define ILD_DPISCALE 0x4000
#define ILD_ASYNC 0x8000
#define ILD_SELECTED ILD_BLEND50
#define ILD_FOCUS ILD_BLEND25
#define ILD_BLEND ILD_BLEND50
#define INDEXTOOVERLAYMASK(i) ((i)<<8)
#define INDEXTOSTATEIMAGEMASK(i) ((i)<<12)
#define ILCF_MOVE (0x00000000)
#define ILCF_SWAP (0x00000001)
#define ILGT_NORMAL 0x0000
#define ILGT_ASYNC 0x0001
#define ILS_NORMAL 0x0000
#define ILS_GLOW 0x0001
#define ILS_SHADOW 0x0002
#define ILS_SATURATE 0x0004
#define ILS_ALPHA 0x0008
typedef struct _IMAGEINFO
{
} IMAGEINFO, *LPIMAGEINFO;
typedef struct _IMAGELISTDRAWPARAMS
{
INT i;
INT x;
INT y;
#endif
#ifndef WM_MOUSEHOVER
#define WM_MOUSEHOVER 0x02A1
#define WM_MOUSELEAVE 0x02A3
#endif
#ifndef TME_HOVER
#define TME_HOVER 0x00000001
#define TME_LEAVE 0x00000002
#define TME_NONCLIENT 0x00000010
#define TME_QUERY 0x40000000
#define TME_CANCEL 0x80000000
#define HOVER_DEFAULT 0xFFFFFFFF
typedef struct tagTRACKMOUSEEVENT {
#endif
/* Flat Scrollbar control */
#define FLATSB_CLASSA "flatsb_class32"
#if defined(__GNUC__)
'c','l','a','s','s','3','2',0 }
# define FLATSB_CLASSW L"flatsb_class32"
#else
'c','l','a','s','s','3','2',0 };
#endif
#define WSB_PROP_CYVSCROLL 0x00000001L
#define WSB_PROP_CXHSCROLL 0x00000002L
#define WSB_PROP_CYHSCROLL 0x00000004L
#define WSB_PROP_CXVSCROLL 0x00000008L
#define WSB_PROP_CXHTHUMB 0x00000010L
#define WSB_PROP_CYVTHUMB 0x00000020L
#define WSB_PROP_VBKGCOLOR 0x00000040L
#define WSB_PROP_HBKGCOLOR 0x00000080L
#define WSB_PROP_VSTYLE 0x00000100L
#define WSB_PROP_HSTYLE 0x00000200L
#define WSB_PROP_WINSTYLE 0x00000400L
#define WSB_PROP_PALETTE 0x00000800L
#define WSB_PROP_MASK 0x00000FFFL
#define FSB_REGULAR_MODE 0
#define FSB_ENCARTA_MODE 1
#define FSB_FLAT_MODE 2
/* Subclassing stuff */
/* Header control */
#define WC_HEADERA "SysHeader32"
#if defined(__GNUC__)
# define WC_HEADERW L"SysHeader32"
#else
#endif
#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 HDS_FILTERBAR 0x0100
#define HDS_FLAT 0x0200
#define HDS_CHECKBOXES 0x0400
#define HDS_NOSIZING 0x0800
#define HDS_OVERFLOW 0x1000
#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 HDI_FILTER 0x0100
#define HDI_STATE 0x0200
#define HDIS_FOCUSED 0x00000001
#define HDF_LEFT 0x0000
#define HDF_RIGHT 0x0001
#define HDF_CENTER 0x0002
#define HDF_JUSTIFYMASK 0x0003
#define HDF_RTLREADING 0x0004
#define HDF_CHECKBOX 0x0040
#define HDF_CHECKED 0x0080
#define HDF_FIXEDWIDTH 0x0100
#define HDF_SORTDOWN 0x0200
#define HDF_SORTUP 0x0400
#define HDF_IMAGE 0x0800
#define HDF_BITMAP_ON_RIGHT 0x1000
#define HDF_BITMAP 0x2000
#define HDF_STRING 0x4000
#define HDF_OWNERDRAW 0x8000
#define HDF_SPLITBUTTON 0x1000000
#define HHT_NOWHERE 0x0001
#define HHT_ONHEADER 0x0002
#define HHT_ONDIVIDER 0x0004
#define HHT_ONDIVOPEN 0x0008
#define HHT_ONFILTER 0x0010
#define HHT_ONFILTERBUTTON 0x0020
#define HHT_ABOVE 0x0100
#define HHT_BELOW 0x0200
#define HHT_TORIGHT 0x0400
#define HHT_TOLEFT 0x0800
#define HHT_ONITEMSTATEICON 0x1000
#define HHT_ONDROPDOWN 0x2000
#define HHT_ONOVERFLOW 0x4000
#define HDM_FIRST 0x1200
#define HDM_GETITEMCOUNT (HDM_FIRST+0)
#define HDN_FIRST (0U-300U)
#define HDN_LAST (0U-399U)
#define HDN_ITEMCHANGINGA (HDN_FIRST-0)
typedef struct _HD_LAYOUT
{
} HDLAYOUT, *LPHDLAYOUT;
typedef struct _HD_ITEMA
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_IE >= 0x0500) */
/* (_WIN32_WINNT >= 0x0600) */
typedef struct _HD_ITEMW
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_IE >= 0x0500) */
/* (_WIN32_WINNT >= 0x0600) */
#define HDFT_ISSTRING 0x0000
#define HDFT_ISNUMBER 0x0001
#define HDFT_HASNOVALUE 0x8000
typedef struct _HD_TEXTFILTERA
{
typedef struct _HD_TEXTFILTERW
{
typedef struct _HD_HITTESTINFO
{
#define HD_HITTESTINFO HDHITTESTINFO
typedef struct tagNMHEADERA
{
} NMHEADERA, *LPNMHEADERA;
typedef struct tagNMHEADERW
{
} NMHEADERW, *LPNMHEADERW;
typedef struct tagNMHDDISPINFOA
{
typedef struct tagNMHDDISPINFOW
{
typedef struct tagNMHDFILTERBTNCLICK
{
#define Header_GetItemCount(hwndHD) \
#define Header_DeleteItem(hwndHD,i) \
#define Header_GetImageList(hwnd) \
#define Header_OrderToIndex(hwnd,i) \
#define Header_CreateDragImage(hwnd,i) \
#define Header_GetUnicodeFormat(hwnd) \
/* Win32 5.1 Button Theme */
#define WC_BUTTONA "Button"
#if defined(__GNUC__)
# define WC_BUTTONW L"Button"
#else
#endif
#define BCN_FIRST (0U-1250U)
#define BCN_LAST (0U-1350U)
typedef struct tagNMBCHOTITEM
{
} NMBCHOTITEM, *LPNMBCHOTITEM;
#define BST_HOT 0x0200
/* Toolbar */
#define TOOLBARCLASSNAMEA "ToolbarWindow32"
#if defined(__GNUC__)
'W','i','n','d','o','w','3','2',0 }
# define TOOLBARCLASSNAMEW L"ToolbarWindow32"
#else
'W','i','n','d','o','w','3','2',0 };
#endif
#define CMB_MASKED 0x02
#define TBSTATE_CHECKED 0x01
#define TBSTATE_PRESSED 0x02
#define TBSTATE_ENABLED 0x04
#define TBSTATE_HIDDEN 0x08
#define TBSTATE_INDETERMINATE 0x10
#define TBSTATE_WRAP 0x20
#define TBSTATE_ELLIPSES 0x40
#define TBSTATE_MARKED 0x80
/* as of _WIN32_IE >= 0x0500 the following symbols are obsolete,
* "everyone" should use the BTNS_... stuff below
*/
#define TBSTYLE_BUTTON 0x00
#define TBSTYLE_SEP 0x01
#define TBSTYLE_CHECK 0x02
#define TBSTYLE_GROUP 0x04
#define TBSTYLE_DROPDOWN 0x08
#define TBSTYLE_AUTOSIZE 0x10
#define TBSTYLE_NOPREFIX 0x20
#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 TBSTYLE_TOOLTIPS 0x0100
#define TBSTYLE_WRAPABLE 0x0200
#define TBSTYLE_ALTDRAG 0x0400
#define TBSTYLE_FLAT 0x0800
#define TBSTYLE_LIST 0x1000
#define TBSTYLE_CUSTOMERASE 0x2000
#define TBSTYLE_REGISTERDROP 0x4000
#define TBSTYLE_TRANSPARENT 0x8000
#define TBSTYLE_EX_DRAWDDARROWS 0x00000001
#define TBSTYLE_EX_MIXEDBUTTONS 0x00000008
#define TBIF_IMAGE 0x00000001
#define TBIF_TEXT 0x00000002
#define TBIF_STATE 0x00000004
#define TBIF_STYLE 0x00000008
#define TBIF_LPARAM 0x00000010
#define TBIF_COMMAND 0x00000020
#define TBIF_SIZE 0x00000040
#define TBIF_BYINDEX 0x80000000
#define TBBF_LARGE 0x0001
#define TB_SETCOLORSCHEME CCM_SETCOLORSCHEME
#define TB_GETCOLORSCHEME CCM_GETCOLORSCHEME
/* undocumented messages in Toolbar */
#ifdef __WINESRC__
#endif
#define TB_SETWINDOWTHEME CCM_SETWINDOWTHEME
#define TBN_FIRST (0U-700U)
#define TBN_LAST (0U-720U)
#define TBN_GETBUTTONINFOA (TBN_FIRST-0)
#define TBNRF_HIDEHELP 0x00000001
/* Return values from TBN_DROPDOWN */
#define TBDDRET_DEFAULT 0
#define TBDDRET_NODEFAULT 1
#define TBDDRET_TREATPRESSED 2
typedef struct _NMTBCUSTOMDRAW
{
int nStringBkMode;
int nHLStringBkMode;
int iListGap;
/* return flags for Toolbar NM_CUSTOMDRAW notifications */
/* when hottracked */
/* for TBSTATE_MARKED */
/* disabled items */
#define TBCDRF_USECDCOLORS 0x00800000
/* This is just for old CreateToolbar. */
/* Don't use it in new programs. */
typedef struct _OLDTBBUTTON {
typedef const OLDTBBUTTON *LPCOLDTBBUTTON;
typedef struct _TBBUTTON {
#ifdef _WIN64
#else
#endif
typedef const TBBUTTON *LPCTBBUTTON;
typedef struct _COLORMAP {
} COLORMAP, *LPCOLORMAP;
typedef struct tagTBADDBITMAP {
} TBADDBITMAP, *LPTBADDBITMAP;
#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
#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
typedef struct tagTBSAVEPARAMSA {
typedef struct tagTBSAVEPARAMSW {
typedef struct
{
typedef struct
{
typedef struct tagNMTBHOTITEM
{
int idOld;
int idNew;
} NMTBHOTITEM, *LPNMTBHOTITEM;
typedef struct tagNMTBGETINFOTIPA
{
typedef struct tagNMTBGETINFOTIPW
{
typedef struct
{
int idCommand;
int iImage;
int cchText;
typedef struct
{
int idCommand;
int iImage;
int cchText;
/* contents of dwMask in the NMTBDISPINFO structure */
#define TBNF_IMAGE 0x00000001
#define TBNF_TEXT 0x00000002
#define TBNF_DI_SETITEM 0x10000000
typedef struct tagNMTOOLBARA
{
typedef struct tagNMTOOLBARW
{
typedef struct
{
#define HICF_OTHER 0x00000000
typedef struct
{
int iButton;
typedef struct tagNMTBSAVE
{
int iItem;
int cButtons;
} NMTBSAVE, *LPNMTBSAVE;
typedef struct tagNMTBRESTORE
{
int iItem;
int cButtons;
int cbBytesPerRecord;
} NMTBRESTORE, *LPNMTBRESTORE;
#define TBMF_PAD 0x00000001
#define TBMF_BARPAD 0x00000002
#define TBMF_BUTTONSPACING 0x00000004
typedef struct
{
} TBMETRICS, *LPTBMETRICS;
/* these are undocumented and the names are guesses */
typedef struct
{
typedef struct
{
/* Tool tips */
#define TOOLTIPS_CLASSA "tooltips_class32"
#if defined(__GNUC__)
'c','l','a','s','s','3','2',0 }
# define TOOLTIPS_CLASSW L"tooltips_class32"
#else
'c','l','a','s','s','3','2',0 };
#endif
#define INFOTIPSIZE 1024
#define TTS_ALWAYSTIP 0x01
#define TTS_NOPREFIX 0x02
#define TTS_NOANIMATE 0x10
#define TTS_NOFADE 0x20
#define TTS_BALLOON 0x40
#define TTS_CLOSE 0x80
#define TTS_USEVISUALSTYLE 0x100
#define TTF_IDISHWND 0x0001
#define TTF_CENTERTIP 0x0002
#define TTF_RTLREADING 0x0004
#define TTF_SUBCLASS 0x0010
#define TTF_TRACK 0x0020
#define TTF_ABSOLUTE 0x0080
#define TTF_TRANSPARENT 0x0100
#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
#define TTM_SETWINDOWTHEME CCM_SETWINDOWTHEME
#define TTN_FIRST (0U-520U)
#define TTN_LAST (0U-549U)
#define TTN_GETDISPINFOA (TTN_FIRST-0)
#define TTN_NEEDTEXT TTN_GETDISPINFO
#define TTN_NEEDTEXTA TTN_GETDISPINFOA
#define TTN_NEEDTEXTW TTN_GETDISPINFOW
typedef struct tagTOOLINFOA {
void *lpReserved;
typedef struct tagTOOLINFOW {
void *lpReserved;
typedef struct _TT_HITTESTINFOA
{
#define LPHITTESTINFOA LPTTHITTESTINFOA
typedef struct _TT_HITTESTINFOW
{
#define LPHITTESTINFOW LPTTHITTESTINFOW
typedef struct tagNMTTDISPINFOA
{
typedef struct tagNMTTDISPINFOW
{
typedef struct _TTGETTITLE
{
} TTGETTITLE, *PTTGETTITLE;
#define TOOLTIPTEXTW NMTTDISPINFOW
#define TOOLTIPTEXTA NMTTDISPINFOA
#define TOOLTIPTEXT NMTTDISPINFO
#define LPTOOLTIPTEXTW LPNMTTDISPINFOW
#define LPTOOLTIPTEXTA LPNMTTDISPINFOA
#define LPTOOLTIPTEXT LPNMTTDISPINFO
/* Rebar control */
#define REBARCLASSNAMEA "ReBarWindow32"
#if defined(__GNUC__)
'W','i','n','d','o','w','3','2',0 }
# define REBARCLASSNAMEW L"ReBarWindow32"
#else
'W','i','n','d','o','w','3','2',0 };
#endif
#define RBS_TOOLTIPS 0x0100
#define RBS_VARHEIGHT 0x0200
#define RBS_BANDBORDERS 0x0400
#define RBS_FIXEDORDER 0x0800
#define RBS_REGISTERDROP 0x1000
#define RBS_AUTOSIZE 0x2000
#define RBS_VERTICALGRIPPER 0x4000
#define RBS_DBLCLKTOGGLE 0x8000
#define RBIM_IMAGELIST 0x00000001
#define RBBIM_STYLE 0x00000001
#define RBBIM_COLORS 0x00000002
#define RBBIM_TEXT 0x00000004
#define RBBIM_IMAGE 0x00000008
#define RBBIM_CHILD 0x00000010
#define RBBIM_CHILDSIZE 0x00000020
#define RBBIM_SIZE 0x00000040
#define RBBIM_BACKGROUND 0x00000080
#define RBBIM_ID 0x00000100
#define RBBIM_IDEALSIZE 0x00000200
#define RBBIM_LPARAM 0x00000400
#define RBBIM_HEADERSIZE 0x00000800
#define RBBS_BREAK 0x00000001
#define RBBS_FIXEDSIZE 0x00000002
#define RBBS_CHILDEDGE 0x00000004
#define RBBS_HIDDEN 0x00000008
#define RBBS_NOVERT 0x00000010
#define RBBS_FIXEDBMP 0x00000020
#define RBBS_VARIABLEHEIGHT 0x00000040
#define RBBS_GRIPPERALWAYS 0x00000080
#define RBBS_NOGRIPPER 0x00000100
#define RBBS_USECHEVRON 0x00000200
#define RBBS_HIDETITLE 0x00000400
#define RBBS_TOPALIGN 0x00000800
#define RBNM_ID 0x00000001
#define RBNM_STYLE 0x00000002
#define RBNM_LPARAM 0x00000004
#define RBHT_NOWHERE 0x0001
#define RBHT_CAPTION 0x0002
#define RBHT_CLIENT 0x0003
#define RBHT_GRABBER 0x0004
#define RBHT_CHEVRON 0x0008
#define RB_GETDROPTARGET CCM_GETDROPTARGET
#define RB_SETCOLORSCHEME CCM_SETCOLORSCHEME
#define RB_GETCOLORSCHEME CCM_GETCOLORSCHEME
#define RB_SETWINDOWTHEME CCM_SETWINDOWTHEME
#define RBN_FIRST (0U-831U)
#define RBN_LAST (0U-859U)
#define RBN_HEIGHTCHANGE (RBN_FIRST-0)
typedef struct tagREBARINFO
{
} REBARINFO, *LPREBARINFO;
typedef struct tagREBARBANDINFOA
{
/* _WIN32_WINNT >= 0x0600 */
typedef REBARBANDINFOA const *LPCREBARBANDINFOA;
typedef struct tagREBARBANDINFOW
{
/* _WIN32_WINNT >= 0x0600 */
typedef REBARBANDINFOW const *LPCREBARBANDINFOW;
typedef struct tagNMREBARCHILDSIZE
{
typedef struct tagNMREBAR
{
typedef struct tagNMRBAUTOSIZE
{
typedef struct tagNMREBARCHEVRON
{
typedef struct _RB_HITTESTINFO
{
#define RBAB_AUTOSIZE 0x0001
#define RBAB_ADDBAND 0x0002
typedef struct tagNMREBARAUTOBREAK
{
/* Trackbar control */
#define TRACKBAR_CLASSA "msctls_trackbar32"
#if defined(__GNUC__)
't','r','a','c','k','b','a','r','3','2',0 }
# define TRACKBAR_CLASSW L"msctls_trackbar32"
#else
't','r','a','c','k','b','a','r','3','2',0 };
#endif
#define TBS_AUTOTICKS 0x0001
#define TBS_VERT 0x0002
#define TBS_HORZ 0x0000
#define TBS_TOP 0x0004
#define TBS_BOTTOM 0x0000
#define TBS_LEFT 0x0004
#define TBS_RIGHT 0x0000
#define TBS_BOTH 0x0008
#define TBS_NOTICKS 0x0010
#define TBS_ENABLESELRANGE 0x0020
#define TBS_FIXEDLENGTH 0x0040
#define TBS_NOTHUMB 0x0080
#define TBS_TOOLTIPS 0x0100
#define TBS_REVERSED 0x0200
#define TBS_DOWNISLEFT 0x0400
#define TBTS_TOP 0
#define TBTS_LEFT 1
#define TBTS_BOTTOM 2
#define TBTS_RIGHT 3
#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 0x0001
#define TBCD_THUMB 0x0002
#define TBCD_CHANNEL 0x0003
#define TBM_GETPOS (WM_USER)
/* Pager control */
#define WC_PAGESCROLLERA "SysPager"
#if defined(__GNUC__)
# define WC_PAGESCROLLERW L"SysPager"
#else
#endif
#define PGS_VERT 0x00000000
#define PGS_HORZ 0x00000001
#define PGS_AUTOSCROLL 0x00000002
#define PGS_DRAGNDROP 0x00000004
#define PGF_INVISIBLE 0
#define PGF_NORMAL 1
#define PGF_GRAYED 2
#define PGF_DEPRESSED 4
#define PGF_HOT 8
#define PGB_TOPORLEFT 0
#define PGB_BOTTOMORRIGHT 1
/* only used with PGN_SCROLL */
#define PGF_SCROLLUP 1
#define PGF_SCROLLDOWN 2
#define PGF_SCROLLLEFT 4
#define PGF_SCROLLRIGHT 8
#define PGK_SHIFT 1
#define PGK_CONTROL 2
#define PGK_MENU 4
/* only used with PGN_CALCSIZE */
#define PGF_CALCWIDTH 1
#define PGF_CALCHEIGHT 2
#define PGM_FIRST 0x1400
#define PGM_GETDROPTARGET CCM_GETDROPTARGET
#define PGN_FIRST (0U-900U)
#define PGN_LAST (0U-950U)
#include <pshpack1.h>
typedef struct
{
} NMPGSCROLL, *LPNMPGSCROLL;
#include <poppack.h>
typedef struct
{
/* Treeview control */
#define WC_TREEVIEWA "SysTreeView32"
#if defined(__GNUC__)
'T','r','e','e','V','i','e','w','3','2',0 }
# define WC_TREEVIEWW L"SysTreeView32"
#else
'T','r','e','e','V','i','e','w','3','2',0 };
#endif
#define TVSIL_NORMAL 0
#define TVSIL_STATE 2
#define TV_FIRST 0x1100
#define TVM_INSERTITEMA (TV_FIRST+0)
#define TVN_FIRST (0U-400U)
#define TVN_LAST (0U-499U)
#define TVIF_TEXT 0x0001
#define TVIF_IMAGE 0x0002
#define TVIF_PARAM 0x0004
#define TVIF_STATE 0x0008
#define TVIF_HANDLE 0x0010
#define TVIF_SELECTEDIMAGE 0x0020
#define TVIF_CHILDREN 0x0040
#define TVIF_INTEGRAL 0x0080
#define TVIF_DI_SETITEM 0x1000
#define TVIS_FOCUSED 0x0001
#define TVIS_SELECTED 0x0002
#define TVIS_CUT 0x0004
#define TVIS_DROPHILITED 0x0008
#define TVIS_BOLD 0x0010
#define TVIS_EXPANDED 0x0020
#define TVIS_EXPANDEDONCE 0x0040
#define TVIS_EXPANDPARTIAL 0x0080
#define TVIS_OVERLAYMASK 0x0f00
#define TVIS_STATEIMAGEMASK 0xf000
#define TVIS_USERMASK 0xf000
#define TVHT_NOWHERE 0x0001
#define TVHT_ONITEMICON 0x0002
#define TVHT_ONITEMLABEL 0x0004
#define TVHT_ONITEMINDENT 0x0008
#define TVHT_ONITEMBUTTON 0x0010
#define TVHT_ONITEMRIGHT 0x0020
#define TVHT_ONITEMSTATEICON 0x0040
#define TVHT_ONITEM 0x0046
#define TVHT_ABOVE 0x0100
#define TVHT_BELOW 0x0200
#define TVHT_TORIGHT 0x0400
#define TVHT_TOLEFT 0x0800
#define TVS_HASBUTTONS 0x0001
#define TVS_HASLINES 0x0002
#define TVS_LINESATROOT 0x0004
#define TVS_EDITLABELS 0x0008
#define TVS_DISABLEDRAGDROP 0x0010
#define TVS_SHOWSELALWAYS 0x0020
#define TVS_RTLREADING 0x0040
#define TVS_NOTOOLTIPS 0x0080
#define TVS_CHECKBOXES 0x0100
#define TVS_TRACKSELECT 0x0200
#define TVS_SINGLEEXPAND 0x0400
#define TVS_INFOTIP 0x0800
#define TVS_FULLROWSELECT 0x1000
#define TVS_NOSCROLL 0x2000
#define TVS_NONEVENHEIGHT 0x4000
#define TVS_NOHSCROLL 0x8000
#define TVS_SHAREDIMAGELISTS 0x0000
#define TVS_PRIVATEIMAGELISTS 0x0400
#define TVE_COLLAPSE 0x0001
#define TVE_EXPAND 0x0002
#define TVE_TOGGLE 0x0003
#define TVE_EXPANDPARTIAL 0x4000
#define TVE_COLLAPSERESET 0x8000
#define TVGN_ROOT 0
#define TVGN_NEXT 1
#define TVGN_PREVIOUS 2
#define TVGN_PARENT 3
#define TVGN_CHILD 4
#define TVGN_FIRSTVISIBLE 5
#define TVGN_NEXTVISIBLE 6
#define TVGN_PREVIOUSVISIBLE 7
#define TVGN_DROPHILITE 8
#define TVGN_CARET 9
#define TVGN_LASTVISIBLE 10
#define TVSI_NOSINGLEEXPAND 0x8000
#define TVC_UNKNOWN 0x00
#define TVC_BYMOUSE 0x01
#define TVC_BYKEYBOARD 0x02
typedef struct {
typedef struct {
#define LPTV_ITEMA LPTVITEMA
#define LPTV_ITEMW LPTVITEMW
typedef struct {
} TVITEMEXA, *LPTVITEMEXA;
typedef struct {
} TVITEMEXW, *LPTVITEMEXW;
typedef struct tagTVINSERTSTRUCTA {
union {
typedef struct tagTVINSERTSTRUCTW {
union {
#define TV_INSERTSTRUCT TVINSERTSTRUCT
#define TV_INSERTSTRUCTA TVINSERTSTRUCTA
#define TV_INSERTSTRUCTW TVINSERTSTRUCTW
#define LPTV_INSERTSTRUCT LPTVINSERTSTRUCT
#define LPTV_INSERTSTRUCTA LPTVINSERTSTRUCTA
#define LPTV_INSERTSTRUCTW LPTVINSERTSTRUCTW
typedef struct tagNMTREEVIEWA {
} NMTREEVIEWA, *LPNMTREEVIEWA;
typedef struct tagNMTREEVIEWW {
} NMTREEVIEWW, *LPNMTREEVIEWW;
#define NM_TREEVIEWA NMTREEVIEWA
#define NM_TREEVIEWW NMTREEVIEWW
#define LPNM_TREEVIEW LPNMTREEVIEW
#define LPNM_TREEVIEWA LPNMTREEVIEWA
#define LPNM_TREEVIEWW LPNMTREEVIEWW
typedef struct tagTVDISPINFOA {
typedef struct tagTVDISPINFOW {
typedef struct tagTVDISPINFOEXA {
typedef struct tagTVDISPINFOEXW {
#define TV_DISPINFOA NMTVDISPINFOA
#define TV_DISPINFOW NMTVDISPINFOW
#define TV_DISPINFO NMTVDISPINFO
typedef struct tagTVSORTCB
{
} TVSORTCB, *LPTVSORTCB;
#define LPTV_SORTCB LPTVSORTCB
typedef struct tagTVHITTESTINFO {
#define TV_HITTESTINFO TVHITTESTINFO
/* Custom Draw Treeview */
#define TVCDRF_NOIMAGES 0x00010000
typedef struct tagNMTVCUSTOMDRAW
{
/* Treeview tooltips */
typedef struct tagNMTVGETINFOTIPA
{
typedef struct tagNMTVGETINFOTIPW
{
#include <pshpack1.h>
typedef struct tagTVKEYDOWN
{
} NMTVKEYDOWN, *LPNMTVKEYDOWN;
#include <poppack.h>
#define TV_KEYDOWN NMTVKEYDOWN
#define TreeView_DeleteAllItems(hwnd) \
#define TreeView_GetCount(hwnd) \
#define TreeView_GetIndent(hwnd) \
#define TreeView_GetFirstVisible(hwnd) \
#define TreeView_GetLastVisible(hwnd) \
#define TreeView_GetSelection(hwnd) \
#define TreeView_GetDropHilight(hwnd) \
#define TreeView_GetRoot(hwnd) \
#define TreeView_GetLastVisible(hwnd) \
#define TreeView_GetEditControl(hwnd) \
#define TreeView_GetVisibleCount(hwnd) \
#define TreeView_GetToolTips(hwnd) \
#define TreeView_GetItemHeight(hwnd) \
#define TreeView_GetBkColor(hwnd) \
#define TreeView_GetTextColor(hwnd) \
#define TreeView_GetScrollTime(hwnd) \
#define TreeView_GetInsertMarkColor(hwnd) \
}
#define TreeView_GetLineColor(hwnd) \
#define TreeView_GetUnicodeFormat(hwnd) \
/* Listview control */
#define WC_LISTVIEWA "SysListView32"
#if defined(__GNUC__)
'L','i','s','t','V','i','e','w','3','2',0 }
# define WC_LISTVIEWW L"SysListView32"
#else
'L','i','s','t','V','i','e','w','3','2',0 };
#endif
#define LVSCW_AUTOSIZE -1
#define LVSCW_AUTOSIZE_USEHEADER -2
#define LVS_ICON 0x0000
#define LVS_REPORT 0x0001
#define LVS_SMALLICON 0x0002
#define LVS_LIST 0x0003
#define LVS_TYPEMASK 0x0003
#define LVS_SINGLESEL 0x0004
#define LVS_SHOWSELALWAYS 0x0008
#define LVS_SORTASCENDING 0x0010
#define LVS_SORTDESCENDING 0x0020
#define LVS_SHAREIMAGELISTS 0x0040
#define LVS_NOLABELWRAP 0x0080
#define LVS_AUTOARRANGE 0x0100
#define LVS_EDITLABELS 0x0200
#define LVS_OWNERDATA 0x1000
#define LVS_NOSCROLL 0x2000
#define LVS_TYPESTYLEMASK 0xfc00
#define LVS_ALIGNTOP 0x0000
#define LVS_ALIGNLEFT 0x0800
#define LVS_ALIGNMASK 0x0c00
#define LVS_OWNERDRAWFIXED 0x0400
#define LVS_NOCOLUMNHEADER 0x4000
#define LVS_NOSORTHEADER 0x8000
#define LVS_EX_GRIDLINES 0x0001
#define LVS_EX_SUBITEMIMAGES 0x0002
#define LVS_EX_CHECKBOXES 0x0004
#define LVS_EX_TRACKSELECT 0x0008
#define LVS_EX_HEADERDRAGDROP 0x0010
#define LVS_EX_FULLROWSELECT 0x0020
#define LVS_EX_ONECLICKACTIVATE 0x0040
#define LVS_EX_TWOCLICKACTIVATE 0x0080
#define LVS_EX_FLATSB 0x0100
#define LVS_EX_REGIONAL 0x0200
#define LVS_EX_INFOTIP 0x0400
#define LVS_EX_UNDERLINEHOT 0x0800
#define LVS_EX_UNDERLINECOLD 0x1000
#define LVS_EX_MULTIWORKAREAS 0x2000
#define LVS_EX_LABELTIP 0x4000
#define LVS_EX_BORDERSELECT 0x8000
#define LVS_EX_DOUBLEBUFFER 0x00010000
#define LVS_EX_HIDELABELS 0x00020000
#define LVS_EX_SINGLEROW 0x00040000
#define LVS_EX_SNAPTOGRID 0x00080000
#define LVS_EX_SIMPLESELECT 0x00100000
#define LVS_EX_JUSTIFYCOLUMNS 0x00200000
#define LVS_EX_TRANSPARENTBKGND 0x00400000
#define LVS_EX_TRANSPARENTSHADOWTEXT 0x00800000
#define LVS_EX_AUTOAUTOARRANGE 0x01000000
#define LVS_EX_HEADERINALLVIEWS 0x02000000
#define LVS_EX_AUTOCHECKSELECT 0x08000000
#define LVS_EX_AUTOSIZECOLUMNS 0x10000000
#define LVS_EX_COLUMNSNAPPOINTS 0x40000000
#define LVS_EX_COLUMNOVERFLOW 0x80000000
#define LVCF_FMT 0x0001
#define LVCF_WIDTH 0x0002
#define LVCF_TEXT 0x0004
#define LVCF_SUBITEM 0x0008
#define LVCF_IMAGE 0x0010
#define LVCF_ORDER 0x0020
#define LVCFMT_LEFT 0x0000
#define LVCFMT_RIGHT 0x0001
#define LVCFMT_CENTER 0x0002
#define LVCFMT_JUSTIFYMASK 0x0003
#define LVCFMT_FIXED_WIDTH 0x0100
#define LVCFMT_IMAGE 0x0800
#define LVCFMT_BITMAP_ON_RIGHT 0x1000
#define LVCFMT_COL_HAS_IMAGES 0x8000
#define LVCFMT_NO_DPI_SCALE 0x00040000
#define LVCFMT_FIXED_RATIO 0x00080000
#define LVCFMT_LINE_BREAK 0x00100000
#define LVCFMT_FILL 0x00200000
#define LVCFMT_WRAP 0x00400000
#define LVCFMT_NO_TITLE 0x00800000
#define LVCFMT_SPLIT_BUTTON 0x01000000
#define LVSIL_NORMAL 0
#define LVSIL_SMALL 1
#define LVSIL_STATE 2
#define LVSIL_GROUPHEADER 3
/* following 2 flags only for LVS_OWNERDATA listviews */
/* and only in report or list mode */
#define LVSICF_NOINVALIDATEALL 0x0001
#define LVSICF_NOSCROLL 0x0002
#define LVFI_PARAM 0x0001
#define LVFI_STRING 0x0002
#define LVFI_SUBSTRING 0x0004
#define LVFI_PARTIAL 0x0008
#define LVFI_WRAP 0x0020
#define LVFI_NEARESTXY 0x0040
#define LVIF_TEXT 0x0001
#define LVIF_IMAGE 0x0002
#define LVIF_PARAM 0x0004
#define LVIF_STATE 0x0008
#define LVIF_INDENT 0x0010
#define LVIF_GROUPID 0x0100
#define LVIF_COLUMNS 0x0200
#define LVIF_NORECOMPUTE 0x0800
#define LVIF_DI_SETITEM 0x1000
#define LVIF_COLFMT 0x00010000
#define LVIR_BOUNDS 0x0000
#define LVIR_ICON 0x0001
#define LVIR_LABEL 0x0002
#define LVIR_SELECTBOUNDS 0x0003
#define LVIS_FOCUSED 0x0001
#define LVIS_SELECTED 0x0002
#define LVIS_CUT 0x0004
#define LVIS_DROPHILITED 0x0008
#define LVIS_ACTIVATING 0x0020
#define LVIS_OVERLAYMASK 0x0F00
#define LVIS_STATEIMAGEMASK 0xF000
#define LVNI_ALL 0x0000
#define LVNI_FOCUSED 0x0001
#define LVNI_SELECTED 0x0002
#define LVNI_CUT 0x0004
#define LVNI_DROPHILITED 0x0008
#define LVNI_ABOVE 0x0100
#define LVNI_BELOW 0x0200
#define LVNI_TOLEFT 0x0400
#define LVNI_TORIGHT 0x0800
#define LVHT_NOWHERE 0x0001
#define LVHT_ONITEMICON 0x0002
#define LVHT_ONITEMLABEL 0x0004
#define LVHT_ONITEMSTATEICON 0x0008
#define LVHT_ABOVE 0x0008
#define LVHT_BELOW 0x0010
#define LVHT_TORIGHT 0x0020
#define LVHT_TOLEFT 0x0040
#define LV_VIEW_ICON 0x0000
#define LV_VIEW_DETAILS 0x0001
#define LV_VIEW_SMALLICON 0x0002
#define LV_VIEW_LIST 0x0003
#define LV_VIEW_TILE 0x0004
#define LV_VIEW_MAX 0x0004
#define LVGF_NONE 0x00000000
#define LVGF_HEADER 0x00000001
#define LVGF_FOOTER 0x00000002
#define LVGF_STATE 0x00000004
#define LVGF_ALIGN 0x00000008
#define LVGF_GROUPID 0x00000010
#define LVGF_SUBTITLE 0x00000100
#define LVGF_TASK 0x00000200
#define LVGF_DESCRIPTIONTOP 0x00000400
#define LVGF_DESCRIPTIONBOTTOM 0x00000800
#define LVGF_TITLEIMAGE 0x00001000
#define LVGF_EXTENDEDIMAGE 0x00002000
#define LVGF_ITEMS 0x00004000
#define LVGF_SUBSET 0x00008000
#define LVGF_SUBSETITEMS 0x00010000
#define LVGS_NORMAL 0x00000000
#define LVGS_COLLAPSED 0x00000001
#define LVGS_HIDDEN 0x00000002
#define LVGA_HEADER_LEFT 0x00000001
#define LVGA_HEADER_CENTER 0x00000002
#define LVGA_HEADER_RIGHT 0x00000004
#define LVGA_FOOTER_LEFT 0x00000008
#define LVGA_FOOTER_CENTER 0x00000010
#define LVGA_FOOTER_RIGHT 0x00000020
#define LVGMF_NONE 0x00000000
#define LVGMF_BORDERSIZE 0x00000001
#define LVGMF_BORDERCOLOR 0x00000002
#define LVGMF_TEXTCOLOR 0x00000004
#define LVTVIF_AUTOSIZE 0x00000000
#define LVTVIF_FIXEDWIDTH 0x00000001
#define LVTVIF_FIXEDHEIGHT 0x00000002
#define LVTVIF_FIXEDSIZE 0x00000003
#define LVTVIF_EXTENDED 0x00000004
#define LVTVIM_TILESIZE 0x00000001
#define LVTVIM_COLUMNS 0x00000002
#define LVTVIM_LABELMARGIN 0x00000004
#define LVIM_AFTER 0x00000001
#define LVM_FIRST 0x1000
#define LVM_GETBKCOLOR (LVM_FIRST+0)
#define LVM_GETUNICODEFORMAT (CCM_GETUNICODEFORMAT)
#define LVM_SETUNICODEFORMAT (CCM_SETUNICODEFORMAT)
#define LVN_FIRST (0U-100U)
#define LVN_LAST (0U-199U)
#define LVN_ITEMCHANGING (LVN_FIRST-0)
/* LVN_INCREMENTALSEARCH return codes */
#define LVNSCH_DEFAULT -1
#define LVNSCH_ERROR -2
#define LVNSCH_IGNORE -3
#define LVA_DEFAULT 0x0000
#define LVA_ALIGNLEFT 0x0001
#define LVA_ALIGNTOP 0x0002
#define LVA_SNAPTOGRID 0x0005
typedef struct tagLVITEMA
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_IE >= 0x0560) */
/* (_WIN32_WINNT >= 0x0600) */
typedef struct tagLVITEMW
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_IE >= 0x0560) */
/* (_WIN32_WINNT >= 0x0600) */
typedef struct LVSETINFOTIP
{
int iItem;
int iSubItem;
/* ListView background image structs and constants
For _WIN32_IE version 0x400 and later. */
typedef struct tagLVBKIMAGEA
{
int xOffsetPercent;
int yOffsetPercent;
} LVBKIMAGEA, *LPLVBKIMAGEA;
typedef struct tagLVBKIMAGEW
{
int xOffsetPercent;
int yOffsetPercent;
} LVBKIMAGEW, *LPLVBKIMAGEW;
#define LVBKIF_SOURCE_NONE 0x00000000
#define LVBKIF_SOURCE_HBITMAP 0x00000001
#define LVBKIF_SOURCE_URL 0x00000002
#define LVBKIF_SOURCE_MASK 0x00000003
#define LVBKIF_STYLE_NORMAL 0x00000000
#define LVBKIF_STYLE_TILE 0x00000010
#define LVBKIF_STYLE_MASK 0x00000010
#define LVBKIF_FLAG_TILEOFFSET 0x00000100
#define LVBKIF_TYPE_WATERMARK 0x10000000
typedef struct tagLVCOLUMNA
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_WINNT >= 0x0600) */
} LVCOLUMNA, *LPLVCOLUMNA;
typedef struct tagLVCOLUMNW
{
/* (_WIN32_IE >= 0x0300) */
/* (_WIN32_WINNT >= 0x0600) */
} LVCOLUMNW, *LPLVCOLUMNW;
typedef struct tagNMLISTVIEW
{
} NMLISTVIEW, *LPNMLISTVIEW;
#define NM_LISTVIEW NMLISTVIEW
#define LPNM_LISTVIEW LPNMLISTVIEW
typedef struct tagNMITEMACTIVATE
{
int iItem;
int iSubItem;
#define LVKF_ALT 0x0001
#define LVKF_CONTROL 0x0002
#define LVKF_SHIFT 0x0004
typedef struct tagLVDISPINFO
{
typedef struct tagLVDISPINFOW
{
#define LV_DISPINFO NMLVDISPINFO
#define LV_DISPINFOA NMLVDISPINFOA
#define LV_DISPINFOW NMLVDISPINFOW
#include <pshpack1.h>
typedef struct tagLVKEYDOWN
{
} NMLVKEYDOWN, *LPNMLVKEYDOWN;
#include <poppack.h>
#define LV_KEYDOWN NMLVKEYDOWN
typedef struct tagNMLVGETINFOTIPA
{
int cchTextMax;
int iItem;
int iSubItem;
typedef struct tagNMLVGETINFOTIPW
{
int cchTextMax;
int iItem;
int iSubItem;
typedef struct tagLVHITTESTINFO
{
/* (_WIN32_WINNT >= 0x0600) */
#define LV_HITTESTINFO LVHITTESTINFO
#define _LV_HITTESTINFO tagLVHITTESTINFO
typedef struct tagLVFINDINFOA
{
} LVFINDINFOA, *LPLVFINDINFOA;
typedef struct tagLVFINDINFOW
{
} LVFINDINFOW, *LPLVFINDINFOW;
#define LV_FINDINFO LVFINDINFO
#define LV_FINDINFOA LVFINDINFOA
#define LV_FINDINFOW LVFINDINFOW
/* Groups relates structures */
typedef struct LVGROUP
{
/* (_WIN32_WINNT >= 0x0600) */
typedef struct LVGROUPMETRICS
{
typedef struct LVINSERTGROUPSORTED
{
/* Tile related structures */
typedef struct LVTILEINFO
{
int iItem;
/* (_WIN32_WINNT >= 0x0600) */
int* piColFmt;
} LVTILEINFO, *PLVTILEINFO;
typedef struct LVTILEVIEWINFO
{
int cLines;
typedef struct LVINSERTMARK
{
int iItem;
typedef struct tagTCHITTESTINFO
{
#define TC_HITTESTINFO TCHITTESTINFO
typedef struct tagNMLVCUSTOMDRAW
{
int iSubItem; /* (_WIN32_IE >= 0x0400) */
int iIconEffect; /* (_WIN32_IE >= 0x560) */
int iIconPhase; /* (_WIN32_IE >= 0x560) */
int iPartId; /* (_WIN32_IE >= 0x560) */
int iStateId; /* (_WIN32_IE >= 0x560) */
typedef struct tagNMLVCACHEHINT
{
#define LPNM_CACHEHINT LPNMLVCACHEHINT
#define PNM_CACHEHINT LPNMLVCACHEHINT
#define NM_CACHEHINT NMLVCACHEHINT
typedef struct tagNMLVFINDITEMA
{
int iStart;
typedef struct tagNMLVFINDITEMW
{
int iStart;
#define NM_FINDITEM NMLVFINDITEM
#define LPNM_FINDITEM LPNMLVFINDITEM
#define PNM_FINDITEM LPNMLVFINDITEM
typedef struct tagNMLVODSTATECHANGE
{
int iFrom;
int iTo;
#define PNM_ODSTATECHANGE LPNMLVODSTATECHANGE
#define NM_ODSTATECHANGE NMLVODSTATECHANGE
typedef struct NMLVSCROLL
{
int dx;
int dy;
} NMLVSCROLL, *LPNMLVSCROLL;
#define ListView_GetColumnWidth(hwnd,x)\
{ LVITEM _LVi; _LVi.state = INDEXTOSTATEIMAGEMASK((bCheck)?2:1); _LVi.stateMask = LVIS_STATEIMAGEMASK; \
#define ListView_GetCheckState(hwndLV, i) \
#define ListView_GetCountPerPage(hwnd) \
#define ListView_GetTopIndex(hwnd) \
#define ListView_GetItemCount(hwnd) \
#define ListView_GetEditControl(hwnd) \
#define ListView_GetTextColor(hwnd) \
#define ListView_GetTextBkColor(hwnd) \
#define ListView_GetBkColor(hwnd) \
#define ListView_DeleteAllItems(hwnd) \
(BOOL)SNDMSG((hwndLV), LVM_SORTITEMSEX, (WPARAM)(LPARAM)(_lPrm), (LPARAM)(PFNLVCOMPARE)(_pfnCompare))
#define ListView_SetItemPosition(hwndLV, i, x, y) \
#define ListView_GetSelectedCount(hwndLV) \
#define ListView_EditLabelA(hwndLV, i) \
#define ListView_EditLabelW(hwndLV, i) \
{ \
}
{ \
}
{ POINT ptNewPos; ptNewPos.x = (x1); ptNewPos.y = (y1); SNDMSG((hwnd), LVM_SETITEMPOSITION32, (WPARAM)(int)(n), (LPARAM)&ptNewPos); }
#define ListView_DeleteItem(hwndLV, i) \
#define ListView_Update(hwndLV, i) \
#define ListView_GetExtendedListViewStyle(hwndLV) \
#define ListView_GetHotCursor(hwndLV) \
#define ListView_GetHotItem(hwndLV) \
#define ListView_GetToolTips(hwndLV) \
#define ListView_SetHotItem(hwndLV, i) \
#define ListView_GetSelectionMark(hwndLV) \
#define ListView_GetHeader(hwndLV) \
#define ListView_GetView(hwnd) \
#define ListView_GetGroupHeaderImageList(hwnd) \
#define ListView_RemoveAllGroups(hwnd) \
(int)SNDMSG((hwnd), LVM_INSERTMARKHITTEST, (WPARAM)(LPPOINT)(point), (LPARAM)(LPLVINSERTMARK)(lvim))
#define ListView_GetInsertMarkColor(hwnd) \
#define ListView_GetSelectedColumn(hwnd) \
#define ListView_IsGroupViewEnabled(hwnd) \
#define ListView_GetOutlineColor(hwnd) \
#define ListView_CancelEditLabel(hwnd) \
#define ListView_GetUnicodeFormat(hwnd) \
/* Tab Control */
#define WC_TABCONTROLA "SysTabControl32"
#if defined(__GNUC__)
'T','a','b','C','o','n','t','r','o','l','3','2',0 }
# define WC_TABCONTROLW L"SysTabControl32"
#else
'T','a','b','C','o','n','t','r','o','l','3','2',0 };
#endif
/* tab control styles */
#define TCS_BOTTOM 0x0002
#define TCS_RIGHT 0x0002
#define TCS_FLATBUTTONS 0x0008
#define TCS_FORCEICONLEFT 0x0010
#define TCS_FORCELABELLEFT 0x0020
#define TCS_HOTTRACK 0x0040
#define TCS_VERTICAL 0x0080
#define TCS_TABS 0x0000
#define TCS_BUTTONS 0x0100
#define TCS_SINGLELINE 0x0000
#define TCS_MULTILINE 0x0200
#define TCS_RIGHTJUSTIFY 0x0000
#define TCS_FIXEDWIDTH 0x0400
#define TCS_RAGGEDRIGHT 0x0800
#define TCS_FOCUSONBUTTONDOWN 0x1000
#define TCS_OWNERDRAWFIXED 0x2000
#define TCS_TOOLTIPS 0x4000
#define TCS_FOCUSNEVER 0x8000
#define TCM_FIRST 0x1300
#define TCIF_TEXT 0x0001
#define TCIF_IMAGE 0x0002
#define TCIF_RTLREADING 0x0004
#define TCIF_PARAM 0x0008
#define TCIF_STATE 0x0010
#define TCIS_BUTTONPRESSED 0x0001
#define TCIS_HIGHLIGHTED 0x0002
/* TabCtrl Macros */
#define TabCtrl_GetImageList(hwnd) \
#define TabCtrl_GetItemCount(hwnd) \
#define TabCtrl_DeleteItem(hwnd, i) \
#define TabCtrl_DeleteAllItems(hwnd) \
#define TabCtrl_GetCurSel(hwnd) \
#define TabCtrl_SetCurSel(hwnd, i) \
#define TabCtrl_SetItemSize(hwnd, x, y) \
#define TabCtrl_RemoveImage(hwnd, i) \
#define TabCtrl_GetRowCount(hwnd) \
#define TabCtrl_GetToolTips(hwnd) \
#define TabCtrl_GetCurFocus(hwnd) \
#define TabCtrl_SetCurFocus(hwnd, i) \
#define TabCtrl_SetMinTabWidth(hwnd, x) \
#define TabCtrl_GetUnicodeFormat(hwnd) \
#define TabCtrl_GetExtendedStyle(hwnd) \
/* constants for TCHITTESTINFO */
#define TCHT_NOWHERE 0x01
#define TCHT_ONITEMICON 0x02
#define TCHT_ONITEMLABEL 0x04
typedef struct tagTCITEMHEADERA
{
int cchTextMax;
int iImage;
typedef struct tagTCITEMHEADERW
{
int cchTextMax;
int iImage;
typedef struct tagTCITEMA
{
typedef struct tagTCITEMW
{
#define TCN_FIRST (0U-550U)
#define TCN_LAST (0U-580U)
#define TCN_KEYDOWN (TCN_FIRST - 0)
#include <pshpack1.h>
typedef struct tagTCKEYDOWN
{
} NMTCKEYDOWN;
#include <poppack.h>
#define TC_KEYDOWN NMTCKEYDOWN
/* ComboBoxEx control */
#define WC_COMBOBOXEXA "ComboBoxEx32"
#if defined(__GNUC__)
'B','o','x','E','x','3','2',0 }
# define WC_COMBOBOXEXW L"ComboBoxEx32"
#else
'B','o','x','E','x','3','2',0 };
#endif
#define CBEIF_TEXT 0x00000001
#define CBEIF_IMAGE 0x00000002
#define CBEIF_SELECTEDIMAGE 0x00000004
#define CBEIF_OVERLAY 0x00000008
#define CBEIF_INDENT 0x00000010
#define CBEIF_LPARAM 0x00000020
#define CBEIF_DI_SETITEM 0x10000000
#define CBEM_DELETEITEM CB_DELETESTRING
#define CBEIF_TEXT 0x00000001
#define CBEIF_IMAGE 0x00000002
#define CBEIF_SELECTEDIMAGE 0x00000004
#define CBEIF_OVERLAY 0x00000008
#define CBEIF_INDENT 0x00000010
#define CBEIF_LPARAM 0x00000020
#define CBEIF_DI_SETITEM 0x10000000
#define CBEN_FIRST (0U-800U)
#define CBEN_LAST (0U-830U)
#define CBEN_GETDISPINFOA (CBEN_FIRST - 0)
#define CBES_EX_NOEDITIMAGE 0x00000001
#define CBES_EX_NOEDITIMAGEINDENT 0x00000002
#define CBES_EX_PATHWORDBREAKPROC 0x00000004
#define CBES_EX_NOSIZELIMIT 0x00000008
#define CBES_EX_CASESENSITIVE 0x00000010
typedef struct tagCOMBOBOXEXITEMA
{
int cchTextMax;
int iImage;
int iSelectedImage;
int iOverlay;
int iIndent;
typedef struct tagCOMBOBOXEXITEMW
{
int cchTextMax;
int iImage;
int iSelectedImage;
int iOverlay;
int iIndent;
#define CBENF_KILLFOCUS 1
#define CBENF_RETURN 2
#define CBENF_ESCAPE 3
#define CBENF_DROPDOWN 4
#define CBEMAXSTRLEN 260
typedef struct tagNMCBEENDEDITW
{
int iNewSelection;
int iWhy;
typedef struct tagNMCBEENDEDITA
{
int iNewSelection;
char szText[CBEMAXSTRLEN];
int iWhy;
typedef struct
{
typedef struct
{
typedef struct
{
int iItemid;
char szText[CBEMAXSTRLEN];
typedef struct
{
int iItemid;
/* Hotkey control */
#define HOTKEY_CLASSA "msctls_hotkey32"
#if defined(__GNUC__)
'h','o','t','k','e','y','3','2',0 }
# define HOTKEY_CLASSW L"msctls_hotkey32"
#else
'h','o','t','k','e','y','3','2',0 };
#endif
#define HOTKEYF_SHIFT 0x01
#define HOTKEYF_CONTROL 0x02
#define HOTKEYF_ALT 0x04
#define HOTKEYF_EXT 0x08
#define HKCOMB_NONE 0x0001
#define HKCOMB_S 0x0002
#define HKCOMB_C 0x0004
#define HKCOMB_A 0x0008
#define HKCOMB_SC 0x0010
#define HKCOMB_SA 0x0020
#define HKCOMB_CA 0x0040
#define HKCOMB_SCA 0x0080
/* animate control */
#define ANIMATE_CLASSA "SysAnimate32"
#if defined(__GNUC__)
'A','n','i','m','a','t','e','3','2',0 }
# define ANIMATE_CLASSW L"SysAnimate32"
#else
'A','n','i','m','a','t','e','3','2',0 };
#endif
#define ACS_CENTER 0x0001
#define ACS_TRANSPARENT 0x0002
#define ACS_AUTOPLAY 0x0004
#define ACN_START 1
#define ACN_STOP 2
#define Animate_Stop(hwnd) \
#define Animate_Close(hwnd) \
/**************************************************************************
* IP Address control
*/
#define WC_IPADDRESSA "SysIPAddress32"
#if defined(__GNUC__)
'I','P','A','d','d','r','e','s','s','3','2',0 }
# define WC_IPADDRESSW L"SysIPAddress32"
#else
'I','P','A','d','d','r','e','s','s','3','2',0 };
#endif
#define IPN_FIRST (0U-860U)
#define IPN_LAST (0U-879U)
#define IPN_FIELDCHANGED (IPN_FIRST-0)
typedef struct tagNMIPADDRESS
{
} NMIPADDRESS, *LPNMIPADDRESS;
#define FOURTH_IPADDRESS(x) ((x)&0xff)
/**************************************************************************
* Native Font control
*/
#define WC_NATIVEFONTCTLA "NativeFontCtl"
#if defined(__GNUC__)
'F','o','n','t','C','t','l',0 }
# define WC_NATIVEFONTCTLW L"NativeFontCtl"
#else
'F','o','n','t','C','t','l',0 };
#endif
#define NFS_EDIT 0x0001
#define NFS_STATIC 0x0002
#define NFS_LISTCOMBO 0x0004
#define NFS_BUTTON 0x0008
#define NFS_ALL 0x0010
/**************************************************************************
* Month calendar control
*
*/
#define MONTHCAL_CLASSA "SysMonthCal32"
#if defined(__GNUC__)
'M','o','n','t','h','C','a','l','3','2',0 }
# define MONTHCAL_CLASSW L"SysMonthCal32"
#else
'M','o','n','t','h','C','a','l','3','2',0 };
#endif
#define MCM_FIRST 0x1000
#define MCN_FIRST (0U-750U)
#define MCN_LAST (0U-759U)
/* Notifications */
#define MCSC_BACKGROUND 0
#define MCSC_TEXT 1
#define MCSC_TITLEBK 2
#define MCSC_TITLETEXT 3
#define MCSC_MONTHBK 4
#define MCSC_TRAILINGTEXT 5
#define MCS_DAYSTATE 0x0001
#define MCS_MULTISELECT 0x0002
#define MCS_WEEKNUMBERS 0x0004
#define MCS_NOTODAY 0x0010
#define MCS_NOTODAYCIRCLE 0x0008
#define MCS_NOTRAILINGDATES 0x0040
#define MCHT_TITLE 0x00010000
#define MCHT_CALENDAR 0x00020000
#define MCHT_TODAYLINK 0x00030000
#define MCHT_NEXT 0x01000000
#define MCHT_PREV 0x02000000
#define MCHT_NOWHERE 0x00000000
#define MCHT_TITLEBK (MCHT_TITLE)
#define MCHT_CALENDARBK (MCHT_CALENDAR)
#define GMR_VISIBLE 0
#define GMR_DAYSTATE 1
/* Month calendar's structures */
typedef struct {
/* Vista */
typedef struct tagNMSELCHANGE
{
} NMSELCHANGE, *LPNMSELCHANGE;
typedef struct tagNMDAYSTATE
{
int cDayState;
} NMDAYSTATE, *LPNMDAYSTATE;
/* macros */
#define MonthCal_GetMaxSelCount(hmc) \
#define MonthCal_SetMaxSelCount(hmc, n) \
#define MonthCal_GetFirstDayOfWeek(hmc) \
#define MonthCal_GetMonthDelta(hmc) \
#define MonthCal_SetMonthDelta(hmc, n) \
#define MonthCal_GetMaxTodayWidth(hmc) \
#define MonthCal_GetUnicodeFormat(hwnd) \
/**************************************************************************
* Date and time picker control
*/
#define DATETIMEPICK_CLASSA "SysDateTimePick32"
#if defined(__GNUC__)
'D','a','t','e','T','i','m','e','P','i','c','k','3','2',0 }
# define DATETIMEPICK_CLASSW L"SysDateTimePick32"
#else
'D','a','t','e','T','i','m','e','P','i','c','k','3','2',0 };
#endif
#define DTM_FIRST 0x1000
#define DTN_FIRST (0U-760U)
#define DTN_LAST (0U-799U)
/* Datetime Notifications */
#define DTS_SHORTDATEFORMAT 0x0000
#define DTS_UPDOWN 0x0001
#define DTS_SHOWNONE 0x0002
#define DTS_LONGDATEFORMAT 0x0004
#define DTS_TIMEFORMAT 0x0009
#define DTS_APPCANPARSE 0x0010
#define DTS_RIGHTALIGN 0x0020
typedef struct tagNMDATETIMECHANGE
{
typedef struct tagNMDATETIMESTRINGA
{
typedef struct tagNMDATETIMESTRINGW
{
typedef struct tagNMDATETIMEWMKEYDOWNA
{
int nVirtKey;
typedef struct tagNMDATETIMEWMKEYDOWNW
{
int nVirtKey;
typedef struct tagNMDATETIMEFORMATA
{
typedef struct tagNMDATETIMEFORMATW
{
typedef struct tagNMDATETIMEFORMATQUERYA
{
typedef struct tagNMDATETIMEFORMATQUERYW
{
#define GDT_ERROR -1
#define GDT_VALID 0
#define GDT_NONE 1
#define GDTR_MIN 0x0001
#define GDTR_MAX 0x0002
#define DateTime_GetMonthCal(hdp) \
#define DateTime_GetMonthCalFont(hdp) \
#define DA_LAST (0x7fffffff)
#define DPA_APPEND (0x7fffffff)
#define DPA_ERR (-1)
#define DSA_APPEND (0x7fffffff)
#define DSA_ERR (-1)
struct _DSA;
#define DPAS_SORTED 0x0001
#define DPAS_INSERTBEFORE 0x0002
#define DPAS_INSERTAFTER 0x0004
struct _DPA;
/**************************************************************************
* SysLink control
*/
#if defined(__GNUC__)
# define WC_LINK L"SysLink"
#else
#endif
/* SysLink styles */
#define LWS_TRANSPARENT 0x0001
#define LWS_IGNORERETURN 0x0002
/* SysLink messages */
#define LM_GETIDEALSIZE (LM_GETIDEALHEIGHT)
/* SysLink links flags */
#define LIF_ITEMINDEX 1
#define LIF_STATE 2
#define LIF_ITEMID 4
#define LIF_URL 8
/* SysLink links states */
#define LIS_FOCUSED 1
#define LIS_ENABLED 2
#define LIS_VISITED 4
/* SysLink misc. */
#define INVALID_LINK_INDEX (-1)
#define MAX_LINKID_TEXT 48
#define L_MAX_URL_LENGTH 2084
/* SysLink structures */
typedef struct tagLITEM
{
int iLink;
typedef struct tagLHITTESTINFO
{
typedef struct tagNMLINK
{
typedef struct tagNMLVLINK
{
int iItem;
int iSubItem;
/**************************************************************************
* Static control
*/
#define WC_STATICA "Static"
#if defined(__GNUC__)
# define WC_STATICW L"Static"
#else
#endif
/**************************************************************************
* Combobox control
*/
#define WC_COMBOBOXA "ComboBox"
#if defined(__GNUC__)
# define WC_COMBOBOXW L"ComboBox"
#else
#endif
/**************************************************************************
* Edit control
*/
#define WC_EDITA "Edit"
#if defined(__GNUC__)
# define WC_EDITW L"Edit"
#else
#endif
/**************************************************************************
* Listbox control
*/
#define WC_LISTBOXA "ListBox"
#if defined(__GNUC__)
# define WC_LISTBOXW L"ListBox"
#else
#endif
/**************************************************************************
* Scrollbar control
*/
#define WC_SCROLLBARA "ScrollBar"
#if defined(__GNUC__)
# define WC_SCROLLBARW L"ScrollBar"
#else
#endif
#ifdef __cplusplus
}
#endif
#endif /* __WINE_COMMCTRL_H */