3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 2008 Vijay Kiran Kamuju
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Macro to deal with LP64 <=> LLP64 differences in numeric constants with 'l' modifier */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __MSABI_LONG
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __MSABI_LONG(x) x ## l
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __MSABI_LONG(x) x
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Header Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HDS_HORZ 0x0000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HDS_BUTTONS 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HDS_HOTTRACK 0x0004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HDS_HIDDEN 0x0008
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HDS_DRAGDROP 0x0040
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HDS_FULLDRAG 0x0080
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HDS_FILTERBAR 0x0100
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HDS_FLAT 0x0200
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HDS_CHECKBOXES 0x0400
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HDS_NOSIZING 0x0800
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HDS_OVERFLOW 0x1000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Rebar Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RBS_TOOLTIPS 0x0100
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RBS_VARHEIGHT 0x0200
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RBS_BANDBORDERS 0x0400
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RBS_FIXEDORDER 0x0800
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RBS_REGISTERDROP 0x1000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RBS_AUTOSIZE 0x2000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RBS_VERTICALGRIPPER 0x4000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RBS_DBLCLKTOGGLE 0x8000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Tool tips */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TTS_ALWAYSTIP 0x01
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TTS_NOPREFIX 0x02
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TTS_NOANIMATE 0x10
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TTS_NOFADE 0x20
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TTS_BALLOON 0x40
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TTS_CLOSE 0x80
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TTS_USEVISUALSTYLE 0x100
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Statusbar Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define SBARS_SIZEGRIP 0x0100
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define SBARS_TOOLTIPS 0x0800
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define SBT_TOOLTIPS 0x0800
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Toolbar Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_AUTOTICKS 0x0001
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_VERT 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_HORZ 0x0000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_TOP 0x0004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_BOTTOM 0x0000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_LEFT 0x0004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_RIGHT 0x0000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_BOTH 0x0008
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_NOTICKS 0x0010
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_ENABLESELRANGE 0x0020
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_FIXEDLENGTH 0x0040
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_NOTHUMB 0x0080
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_TOOLTIPS 0x0100
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_REVERSED 0x0200
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TBS_DOWNISLEFT 0x0400
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* UpDown Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define UDS_WRAP 0x0001
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define UDS_SETBUDDYINT 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define UDS_ALIGNRIGHT 0x0004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define UDS_ALIGNLEFT 0x0008
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define UDS_AUTOBUDDY 0x0010
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define UDS_ARROWKEYS 0x0020
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define UDS_HORZ 0x0040
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define UDS_NOTHOUSANDS 0x0080
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define UDS_HOTTRACK 0x0100
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Progressbar Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define PBS_SMOOTH 0x01
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define PBS_VERTICAL 0x04
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define PBS_MARQUEE 0x08
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define PBS_SMOOTHREVERSE 0x10
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Common Control Styles */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CCS_TOP __MSABI_LONG(0x00000001)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CCS_NOMOVEY __MSABI_LONG(0x00000002)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CCS_BOTTOM __MSABI_LONG(0x00000003)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CCS_NORESIZE __MSABI_LONG(0x00000004)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CCS_NOPARENTALIGN __MSABI_LONG(0x00000008)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CCS_ADJUSTABLE __MSABI_LONG(0x00000020)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CCS_NODIVIDER __MSABI_LONG(0x00000040)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CCS_VERT __MSABI_LONG(0x00000080)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CCS_LEFT (CCS_VERT | CCS_TOP)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CCS_RIGHT (CCS_VERT | CCS_BOTTOM)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CCS_NOMOVEX (CCS_VERT | CCS_NOMOVEY)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Listview Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_ICON 0x0000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_REPORT 0x0001
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_SMALLICON 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_LIST 0x0003
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_TYPEMASK 0x0003
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_SINGLESEL 0x0004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_SHOWSELALWAYS 0x0008
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_SORTASCENDING 0x0010
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_SORTDESCENDING 0x0020
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_SHAREIMAGELISTS 0x0040
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_NOLABELWRAP 0x0080
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_AUTOARRANGE 0x0100
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_EDITLABELS 0x0200
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_OWNERDATA 0x1000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_NOSCROLL 0x2000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_TYPESTYLEMASK 0xfc00
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_ALIGNTOP 0x0000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_ALIGNLEFT 0x0800
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_ALIGNMASK 0x0c00
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_OWNERDRAWFIXED 0x0400
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_NOCOLUMNHEADER 0x4000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LVS_NOSORTHEADER 0x8000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Treeview Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_HASBUTTONS 0x0001
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_HASLINES 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_LINESATROOT 0x0004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_EDITLABELS 0x0008
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_DISABLEDRAGDROP 0x0010
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_SHOWSELALWAYS 0x0020
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_RTLREADING 0x0040
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_NOTOOLTIPS 0x0080
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_CHECKBOXES 0x0100
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_TRACKSELECT 0x0200
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_SINGLEEXPAND 0x0400
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_INFOTIP 0x0800
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_FULLROWSELECT 0x1000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_NOSCROLL 0x2000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_NONEVENHEIGHT 0x4000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TVS_NOHSCROLL 0x8000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Tab Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_SCROLLOPPOSITE 0x0001 /* assumes multiline tab */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_BOTTOM 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_RIGHT 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_MULTISELECT 0x0004 /* allow multi-select in button mode */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_FLATBUTTONS 0x0008
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_FORCEICONLEFT 0x0010
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_FORCELABELLEFT 0x0020
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_HOTTRACK 0x0040
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_VERTICAL 0x0080
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_TABS 0x0000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_BUTTONS 0x0100
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_SINGLELINE 0x0000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_MULTILINE 0x0200
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_RIGHTJUSTIFY 0x0000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_FIXEDWIDTH 0x0400
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_RAGGEDRIGHT 0x0800
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_FOCUSONBUTTONDOWN 0x1000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_OWNERDRAWFIXED 0x2000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_TOOLTIPS 0x4000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TCS_FOCUSNEVER 0x8000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Animate Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACS_CENTER 0x0001
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACS_TRANSPARENT 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACS_AUTOPLAY 0x0004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define ACS_TIMER 0x0008 /* no threads, just timers */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Month Calendar Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MCS_DAYSTATE 0x0001
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MCS_MULTISELECT 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MCS_WEEKNUMBERS 0x0004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MCS_NOTODAY 0x0010
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MCS_NOTODAYCIRCLE 0x0008
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MCS_NOTRAILINGDATES 0x0040
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Datetime Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define DTS_SHORTDATEFORMAT 0x0000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define DTS_UPDOWN 0x0001
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define DTS_SHOWNONE 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define DTS_LONGDATEFORMAT 0x0004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define DTS_TIMEFORMAT 0x0009
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define DTS_APPCANPARSE 0x0010
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define DTS_RIGHTALIGN 0x0020
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Pager Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define PGS_VERT 0x00000000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define PGS_HORZ 0x00000001
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define PGS_AUTOSCROLL 0x00000002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define PGS_DRAGNDROP 0x00000004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Native Font Control */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NFS_EDIT 0x0001
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NFS_STATIC 0x0002
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NFS_LISTCOMBO 0x0004
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NFS_BUTTON 0x0008
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NFS_ALL 0x0010
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NFS_USEFONTASSOC 0x0020