winapi

package
v0.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2023 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	WM_USER = win.WM_USER

	// typedef struct tagINITCOMMONCONTROLSEX {
	//     DWORD dwSize;             // size of this structure
	//     DWORD dwICC;              // flags indicating which classes to be initialized
	// } INITCOMMONCONTROLSEX, *LPINITCOMMONCONTROLSEX;
	ICC_LISTVIEW_CLASSES   = 0 // listview, header
	ICC_TREEVIEW_CLASSES   = 0 // treeview, tooltips
	ICC_BAR_CLASSES        = 0 // toolbar, statusbar, trackbar, tooltips
	ICC_TAB_CLASSES        = 0 // tab, tooltips
	ICC_UPDOWN_CLASS       = 0 // updown
	ICC_PROGRESS_CLASS     = 0 // progress
	ICC_HOTKEY_CLASS       = 0 // hotkey
	ICC_ANIMATE_CLASS      = 0 // animate
	ICC_WIN95_CLASSES      = 0
	ICC_DATE_CLASSES       = 0 // month picker, date picker, time picker, updown
	ICC_USEREX_CLASSES     = 0 // comboex
	ICC_COOL_CLASSES       = 0 // rebar (coolbar) control
	ICC_INTERNET_CLASSES   = 0
	ICC_PAGESCROLLER_CLASS = 0 // page scroller
	ICC_NATIVEFNTCTL_CLASS = 0 // native font control
	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	ICC_STANDARD_CLASSES = 0
	ICC_LINK_CLASS       = 0

	ODT_HEADER   = 100
	ODT_TAB      = 101
	ODT_LISTVIEW = 102

	//====== Ranges for control message IDs =======================================
	// TODO: need fix value
	LVM_FIRST = 0      // ListView messages
	TV_FIRST  = 0      // TreeView messages
	HDM_FIRST = 0      // Header messages
	TCM_FIRST = 0x1300 // Tab control messages

	PGM_FIRST = 0 // Pager control messages

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	ECM_FIRST = 0 // Edit control messages
	BCM_FIRST = 0 // Button control messages
	CBM_FIRST = 0 // Combobox control messages

	CCM_FIRST = 0 // Common control shared messages
	CCM_LAST  = (CCM_FIRST + 0x200)

	CCM_SETBKCOLOR = (CCM_FIRST + 1) // lParam is bkColor

	CCM_SETCOLORSCHEME   = (CCM_FIRST + 2) // lParam is color scheme
	CCM_GETCOLORSCHEME   = (CCM_FIRST + 3) // fills in COLORSCHEME pointed to by lParam
	CCM_GETDROPTARGET    = (CCM_FIRST + 4)
	CCM_SETUNICODEFORMAT = (CCM_FIRST + 5)
	CCM_GETUNICODEFORMAT = (CCM_FIRST + 6)

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	COMCTL32_VERSION = 6

	CCM_SETVERSION      = (CCM_FIRST + 0x7)
	CCM_GETVERSION      = (CCM_FIRST + 0x8)
	CCM_SETNOTIFYWINDOW = (CCM_FIRST + 0x9) // wParam == hwndParent.
	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	CCM_SETWINDOWTHEME = (CCM_FIRST + 0xb)
	CCM_DPISCALE       = (CCM_FIRST + 0xc) // wParam == Awareness

	// // for tooltips
	INFOTIPSIZE = 1024

	NM_OUTOFMEMORY     = (NM_FIRST - 1)
	NM_CLICK           = (NM_FIRST - 2) // uses NMCLICK struct
	NM_DBLCLK          = (NM_FIRST - 3)
	NM_RETURN          = (NM_FIRST - 4)
	NM_RCLICK          = (NM_FIRST - 5) // uses NMCLICK struct
	NM_RDBLCLK         = (NM_FIRST - 6)
	NM_SETFOCUS        = (NM_FIRST - 7)
	NM_KILLFOCUS       = (NM_FIRST - 8)
	NM_CUSTOMDRAW      = (NM_FIRST - 12)
	NM_HOVER           = (NM_FIRST - 13)
	NM_NCHITTEST       = (NM_FIRST - 14) // uses NMMOUSE struct
	NM_KEYDOWN         = (NM_FIRST - 15) // uses NMKEY struct
	NM_RELEASEDCAPTURE = (NM_FIRST - 16)
	NM_SETCURSOR       = (NM_FIRST - 17) // uses NMMOUSE struct
	NM_CHAR            = (NM_FIRST - 18) // uses NMCHAR struct
	NM_TOOLTIPSCREATED = (NM_FIRST - 19) // notify of when the tooltips window is create
	NM_LDOWN           = (NM_FIRST - 20)
	NM_RDOWN           = (NM_FIRST - 21)
	NM_THEMECHANGED    = (NM_FIRST - 22)

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	NM_FONTCHANGED          = (NM_FIRST - 23)
	NM_CUSTOMTEXT           = (NM_FIRST - 24) // uses NMCUSTOMTEXT struct
	NM_TVSTATEIMAGECHANGING = (NM_FIRST - 24) // uses NMTVSTATEIMAGECHANGING struct, defined after HTREEITEM

	NM_FIRST = (0 - 0) // generic to all controls
	NM_LAST  = (0 - 99)

	LVN_FIRST = (0 - 100) // listview
	LVN_LAST  = (0 - 199)

	HDN_FIRST = (0 - 300) // header
	HDN_LAST  = (0 - 399)

	TVN_FIRST = (0 - 400) // treeview
	TVN_LAST  = (0 - 499)

	TTN_FIRST = (0 - 520) // tooltips
	TTN_LAST  = (0 - 549)

	TCN_FIRST = (0 - 550) // tab control
	TCN_LAST  = (0 - 580)

	CDN_FIRST = (0 - 601) // common dialog (new)
	CDN_LAST  = (0 - 699)

	TBN_FIRST = (0 - 700) // toolbar
	TBN_LAST  = (0 - 720)

	UDN_FIRST = (0 - 721) // updown
	UDN_LAST  = (0 - 729)
	DTN_FIRST = (0 - 740) // datetimepick
	DTN_LAST  = (0 - 745) // DTN_FIRST - 5

	MCN_FIRST = (0 - 746) // monthcal
	MCN_LAST  = (0 - 752) // MCN_FIRST - 6

	DTN_FIRST2 = (0 - 753) // datetimepick2
	DTN_LAST2  = (0 - 799)

	CBEN_FIRST = (0 - 800) // combo box ex
	CBEN_LAST  = (0 - 830)

	RBN_FIRST = (0 - 831) // rebar
	RBN_LAST  = (0 - 859)

	IPN_FIRST = (0 - 860) // internet address
	IPN_LAST  = (0 - 879) // internet address

	SBN_FIRST = (0 - 880) // status bar
	SBN_LAST  = (0 - 899)

	PGN_FIRST = (0 - 900) // Pager Control
	PGN_LAST  = (0 - 950)

	// #ifndef WMN_FIRST
	WMN_FIRST = (0 - 1000)
	WMN_LAST  = (0 - 1200)

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	BCN_FIRST = (0 - 1250)
	BCN_LAST  = (0 - 1350)

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	TRBN_FIRST = (0 - 1501) // trackbar
	TRBN_LAST  = (0 - 1519)

	MSGF_COMMCTRL_BEGINDRAG   = 0
	MSGF_COMMCTRL_SIZEHEADER  = 0
	MSGF_COMMCTRL_DRAGSELECT  = 0
	MSGF_COMMCTRL_TOOLBARCUST = 0

	// // custom draw return flags
	// // values under 0x00010000 are reserved for global custom draw values.
	// // above that are for specific controls
	CDRF_DODEFAULT     = 0
	CDRF_NEWFONT       = 0
	CDRF_SKIPDEFAULT   = 0
	CDRF_DOERASE       = 0 // draw the background
	CDRF_SKIPPOSTPAINT = 0 // don't draw the focus rect

	CDRF_NOTIFYPOSTPAINT   = 0
	CDRF_NOTIFYITEMDRAW    = 0
	CDRF_NOTIFYSUBITEMDRAW = 0 // flags are the same, we can distinguish by context
	CDRF_NOTIFYPOSTERASE   = 0

	// // drawstage flags
	// // values under 0x00010000 are reserved for global custom draw values.
	// // above that are for specific controls
	CDDS_PREPAINT  = 0
	CDDS_POSTPAINT = 0
	CDDS_PREERASE  = 0
	CDDS_POSTERASE = 0
	// // the 0x000010000 bit means it's individual item specific
	CDDS_ITEM          = 0
	CDDS_ITEMPREPAINT  = (CDDS_ITEM | CDDS_PREPAINT)
	CDDS_ITEMPOSTPAINT = (CDDS_ITEM | CDDS_POSTPAINT)
	CDDS_ITEMPREERASE  = (CDDS_ITEM | CDDS_PREERASE)
	CDDS_ITEMPOSTERASE = (CDDS_ITEM | CDDS_POSTERASE)
	CDDS_SUBITEM       = 0

	// // itemState flags
	CDIS_SELECTED      = 0
	CDIS_GRAYED        = 0
	CDIS_DISABLED      = 0
	CDIS_CHECKED       = 0
	CDIS_FOCUS         = 0
	CDIS_DEFAULT       = 0
	CDIS_HOT           = 0
	CDIS_MARKED        = 0
	CDIS_INDETERMINATE = 0
	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	CDIS_SHOWKEYBOARDCUES = 0
	// #endif
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	CDIS_NEARHOT      = 0
	CDIS_OTHERSIDEHOT = 0
	CDIS_DROPHILITED  = 0

	NM_GETCUSTOMSPLITRECT = (BCN_FIRST + 0x0003)

	CLR_NONE    = 0
	CLR_DEFAULT = 0

	ILC_MASK     = 0
	ILC_COLOR    = 0
	ILC_COLORDDB = 0
	ILC_COLOR4   = 0
	ILC_COLOR8   = 0
	ILC_COLOR16  = 0
	ILC_COLOR24  = 0
	ILC_COLOR32  = 0
	ILC_PALETTE  = 0 // (not implemented)
	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	ILC_MIRROR        = 0 // Mirror the icons contained, if the process is mirrored
	ILC_PERITEMMIRROR = 0 // Causes the mirroring code to mirror each item when inserting a set of images, verses the whole strip
	// #endif
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	ILC_ORIGINALSIZE     = 0 // Imagelist should accept smaller than set images and apply OriginalSize based on image added
	ILC_HIGHQUALITYSCALE = 0 // Imagelist should enable use of the high quality scaler.

	ILD_NORMAL      = 0
	ILD_TRANSPARENT = 0
	ILD_MASK        = 0
	ILD_IMAGE       = 0
	ILD_ROP         = 0
	ILD_BLEND25     = 0
	ILD_BLEND50     = 0
	ILD_OVERLAYMASK = 0
	// #define INDEXTOOVERLAYMASK(i)   ((i) << 8)
	ILD_PRESERVEALPHA = 0 // This preserves the alpha channel in dest
	ILD_SCALE         = 0 // Causes the image to be scaled to cx, cy instead of clipped
	ILD_DPISCALE      = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	ILD_ASYNC = 0

	ILD_SELECTED = ILD_BLEND50
	ILD_FOCUS    = ILD_BLEND25
	ILD_BLEND    = ILD_BLEND50
	CLR_HILIGHT  = CLR_DEFAULT

	ILS_NORMAL   = 0
	ILS_GLOW     = 0
	ILS_SHADOW   = 0
	ILS_SATURATE = 0
	ILS_ALPHA    = 0

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	ILGT_NORMAL = 0
	ILGT_ASYNC  = 0

	ILCF_MOVE = (0x00000000)
	ILCF_SWAP = (0x00000001)

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	ILP_NORMAL    = 0 // Writes or reads the stream using new sematics for this version of comctl32
	ILP_DOWNLEVEL = 1 // Write or reads the stream using downlevel sematics.

	// #ifdef _WIN32
	// #define WC_HEADERA              "SysHeader32"
	WC_HEADERW = "SysHeader32"

	// #ifdef UNICODE
	WC_HEADER = WC_HEADERW

	HDS_HORZ     = 0
	HDS_BUTTONS  = 0
	HDS_HOTTRACK = 0
	HDS_HIDDEN   = 0

	HDS_DRAGDROP  = 0
	HDS_FULLDRAG  = 0
	HDS_FILTERBAR = 0

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	HDS_FLAT = 0

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	HDS_CHECKBOXES = 0
	HDS_NOSIZING   = 0
	HDS_OVERFLOW   = 0

	HDFT_ISSTRING = 0 // HD_ITEM.pvFilter points to a HD_TEXTFILTER
	HDFT_ISNUMBER = 0 // HD_ITEM.pvFilter points to a INT
	HDFT_ISDATE   = 0 // HD_ITEM.pvFilter points to a DWORD (dos date)

	HDFT_HASNOVALUE = 0 // clear the filter, by setting this bit

	HDI_WIDTH      = 0
	HDI_HEIGHT     = HDI_WIDTH
	HDI_TEXT       = 0
	HDI_FORMAT     = 0
	HDI_LPARAM     = 0
	HDI_BITMAP     = 0
	HDI_IMAGE      = 0
	HDI_DI_SETITEM = 0
	HDI_ORDER      = 0
	HDI_FILTER     = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	HDI_STATE = 0

	HDF_LEFT        = 0 // Same as LVCFMT_LEFT
	HDF_RIGHT       = 0 // Same as LVCFMT_RIGHT
	HDF_CENTER      = 0 // Same as LVCFMT_CENTER
	HDF_JUSTIFYMASK = 0 // Same as LVCFMT_JUSTIFYMASK
	HDF_RTLREADING  = 0 // Same as LVCFMT_LEFT

	HDF_BITMAP          = 0
	HDF_STRING          = 0
	HDF_OWNERDRAW       = 0 // Same as LVCFMT_COL_HAS_IMAGES
	HDF_IMAGE           = 0 // Same as LVCFMT_IMAGE
	HDF_BITMAP_ON_RIGHT = 0 // Same as LVCFMT_BITMAP_ON_RIGHT

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	HDF_SORTUP   = 0
	HDF_SORTDOWN = 0

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	HDF_CHECKBOX    = 0
	HDF_CHECKED     = 0
	HDF_FIXEDWIDTH  = 0 // Can't resize the column; same as LVCFMT_FIXED_WIDTH
	HDF_SPLITBUTTON = 0 // Column is a split button; same as LVCFMT_SPLITBUTTON

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	HDIS_FOCUSED = 0

	HDM_GETITEMCOUNT = (HDM_FIRST + 0)

	HDM_INSERTITEMA = (HDM_FIRST + 1)
	HDM_INSERTITEMW = (HDM_FIRST + 10)

	HDM_DELETEITEM = (HDM_FIRST + 2)

	HDM_GETITEMA = (HDM_FIRST + 3)
	HDM_GETITEMW = (HDM_FIRST + 11)

	HDM_SETITEMA = (HDM_FIRST + 4)
	HDM_SETITEMW = (HDM_FIRST + 12)

	HDM_LAYOUT = (HDM_FIRST + 5)

	HHT_NOWHERE        = 0
	HHT_ONHEADER       = 0
	HHT_ONDIVIDER      = 0
	HHT_ONDIVOPEN      = 0
	HHT_ONFILTER       = 0
	HHT_ONFILTERBUTTON = 0
	HHT_ABOVE          = 0
	HHT_BELOW          = 0
	HHT_TORIGHT        = 0
	HHT_TOLEFT         = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	HHT_ONITEMSTATEICON = 0
	HHT_ONDROPDOWN      = 0
	HHT_ONOVERFLOW      = 0

	HDSIL_NORMAL = 0
	HDSIL_STATE  = 1

	HDM_HITTEST = (HDM_FIRST + 6)

	HDM_GETITEMRECT = (HDM_FIRST + 7)

	HDM_SETIMAGELIST = (HDM_FIRST + 8)

	HDM_GETIMAGELIST = (HDM_FIRST + 9)

	HDM_ORDERTOINDEX = (HDM_FIRST + 15)

	HDM_CREATEDRAGIMAGE = (HDM_FIRST + 16) // wparam = which item (by index)

	HDM_GETORDERARRAY = (HDM_FIRST + 17)

	HDM_SETORDERARRAY = (HDM_FIRST + 18)

	HDM_SETHOTDIVIDER = (HDM_FIRST + 19)

	HDM_SETBITMAPMARGIN = (HDM_FIRST + 20)

	HDM_GETBITMAPMARGIN = (HDM_FIRST + 21)

	HDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT

	HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT

	HDM_SETFILTERCHANGETIMEOUT = (HDM_FIRST + 22)

	HDM_EDITFILTER = (HDM_FIRST + 23)

	HDM_CLEARFILTER = (HDM_FIRST + 24)

	HDM_GETITEMDROPDOWNRECT = (HDM_FIRST + 25) // rect of item's drop down button

	HDM_GETOVERFLOWRECT = (HDM_FIRST + 26) // rect of overflow button

	HDM_GETFOCUSEDITEM = (HDM_FIRST + 27)

	HDM_SETFOCUSEDITEM = (HDM_FIRST + 28)

	HDN_ITEMCHANGINGA    = (HDN_FIRST - 0)
	HDN_ITEMCHANGINGW    = (HDN_FIRST - 20)
	HDN_ITEMCHANGEDA     = (HDN_FIRST - 1)
	HDN_ITEMCHANGEDW     = (HDN_FIRST - 21)
	HDN_ITEMCLICKA       = (HDN_FIRST - 2)
	HDN_ITEMCLICKW       = (HDN_FIRST - 22)
	HDN_ITEMDBLCLICKA    = (HDN_FIRST - 3)
	HDN_ITEMDBLCLICKW    = (HDN_FIRST - 23)
	HDN_DIVIDERDBLCLICKA = (HDN_FIRST - 5)
	HDN_DIVIDERDBLCLICKW = (HDN_FIRST - 25)
	HDN_BEGINTRACKA      = (HDN_FIRST - 6)
	HDN_BEGINTRACKW      = (HDN_FIRST - 26)
	HDN_ENDTRACKA        = (HDN_FIRST - 7)
	HDN_ENDTRACKW        = (HDN_FIRST - 27)
	HDN_TRACKA           = (HDN_FIRST - 8)
	HDN_TRACKW           = (HDN_FIRST - 28)
	HDN_GETDISPINFOA     = (HDN_FIRST - 9)
	HDN_GETDISPINFOW     = (HDN_FIRST - 29)
	HDN_BEGINDRAG        = (HDN_FIRST - 10)
	HDN_ENDDRAG          = (HDN_FIRST - 11)
	HDN_FILTERCHANGE     = (HDN_FIRST - 12)
	HDN_FILTERBTNCLICK   = (HDN_FIRST - 13)

	// #if (_WIN32_IE >= 0x0600)
	HDN_BEGINFILTEREDIT = (HDN_FIRST - 14)
	HDN_ENDFILTEREDIT   = (HDN_FIRST - 15)

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	HDN_ITEMSTATEICONCLICK = (HDN_FIRST - 16)
	HDN_ITEMKEYDOWN        = (HDN_FIRST - 17)
	HDN_DROPDOWN           = (HDN_FIRST - 18)
	HDN_OVERFLOWCLICK      = (HDN_FIRST - 19)

	// #ifdef _WIN32
	TOOLBARCLASSNAMEW = "ToolbarWindow32"

	// #ifdef  UNICODE
	TOOLBARCLASSNAME = TOOLBARCLASSNAMEW

	CMB_MASKED            = 0
	TBSTATE_CHECKED       = 0
	TBSTATE_PRESSED       = 0
	TBSTATE_ENABLED       = 0
	TBSTATE_HIDDEN        = 0
	TBSTATE_INDETERMINATE = 0
	TBSTATE_WRAP          = 0
	TBSTATE_ELLIPSES      = 0
	TBSTATE_MARKED        = 0

	TBSTYLE_BUTTON     = 0                               // obsolete; use BTNS_BUTTON instead
	TBSTYLE_SEP        = 0                               // obsolete; use BTNS_SEP instead
	TBSTYLE_CHECK      = 0                               // obsolete; use BTNS_CHECK instead
	TBSTYLE_GROUP      = 0                               // obsolete; use BTNS_GROUP instead
	TBSTYLE_CHECKGROUP = (TBSTYLE_GROUP | TBSTYLE_CHECK) // obsolete; use BTNS_CHECKGROUP instead
	TBSTYLE_DROPDOWN   = 0                               // obsolete; use BTNS_DROPDOWN instead
	TBSTYLE_AUTOSIZE   = 0                               // obsolete; use BTNS_AUTOSIZE instead
	TBSTYLE_NOPREFIX   = 0                               // obsolete; use BTNS_NOPREFIX instead

	TBSTYLE_TOOLTIPS     = 0
	TBSTYLE_WRAPABLE     = 0
	TBSTYLE_ALTDRAG      = 0
	TBSTYLE_FLAT         = 0
	TBSTYLE_LIST         = 0
	TBSTYLE_CUSTOMERASE  = 0
	TBSTYLE_REGISTERDROP = 0
	TBSTYLE_TRANSPARENT  = 0

	TBSTYLE_EX_DRAWDDARROWS = 0

	BTNS_BUTTON        = TBSTYLE_BUTTON     // 0x0000
	BTNS_SEP           = TBSTYLE_SEP        // 0x0001
	BTNS_CHECK         = TBSTYLE_CHECK      // 0x0002
	BTNS_GROUP         = TBSTYLE_GROUP      // 0x0004
	BTNS_CHECKGROUP    = TBSTYLE_CHECKGROUP // (TBSTYLE_GROUP | TBSTYLE_CHECK)
	BTNS_DROPDOWN      = TBSTYLE_DROPDOWN   // 0x0008
	BTNS_AUTOSIZE      = TBSTYLE_AUTOSIZE   // 0x0010; automatically calculate the cx of the button
	BTNS_NOPREFIX      = TBSTYLE_NOPREFIX   // 0x0020; this button should not have accel prefix
	BTNS_SHOWTEXT      = 0                  // ignored unless TBSTYLE_EX_MIXEDBUTTONS is set
	BTNS_WHOLEDROPDOWN = 0                  // draw drop-down arrow, but without split arrow section

	TBSTYLE_EX_MIXEDBUTTONS       = 0
	TBSTYLE_EX_HIDECLIPPEDBUTTONS = 0 // don't show partially obscured buttons

	TBSTYLE_EX_MULTICOLUMN = 0 // conflicts w/ TBSTYLE_WRAPABLE
	TBSTYLE_EX_VERTICAL    = 0

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	TBSTYLE_EX_DOUBLEBUFFER = 0 // Double Buffer the toolbar

	// // Toolbar custom draw return flags
	TBCDRF_NOEDGES        = 0 // Don't draw button edges
	TBCDRF_HILITEHOTTRACK = 0 // Use color of the button bk when hottracked
	TBCDRF_NOOFFSET       = 0 // Don't offset button if pressed
	TBCDRF_NOMARK         = 0 // Don't draw default highlight of image/text for TBSTATE_MARKED
	TBCDRF_NOETCHEDEFFECT = 0 // Don't draw etched effect for disabled items

	TBCDRF_BLENDICON    = 0 // Use ILD_BLEND50 on the icon image
	TBCDRF_NOBACKGROUND = 0 // Use ILD_BLEND50 on the icon image
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	TBCDRF_USECDCOLORS = 0 // Use CustomDrawColors to RenderText regardless of VisualStyle

	TB_ENABLEBUTTON          = (WM_USER + 1)
	TB_CHECKBUTTON           = (WM_USER + 2)
	TB_PRESSBUTTON           = (WM_USER + 3)
	TB_HIDEBUTTON            = (WM_USER + 4)
	TB_INDETERMINATE         = (WM_USER + 5)
	TB_MARKBUTTON            = (WM_USER + 6)
	TB_ISBUTTONENABLED       = (WM_USER + 9)
	TB_ISBUTTONCHECKED       = (WM_USER + 10)
	TB_ISBUTTONPRESSED       = (WM_USER + 11)
	TB_ISBUTTONHIDDEN        = (WM_USER + 12)
	TB_ISBUTTONINDETERMINATE = (WM_USER + 13)
	TB_ISBUTTONHIGHLIGHTED   = (WM_USER + 14)
	TB_SETSTATE              = (WM_USER + 17)
	TB_GETSTATE              = (WM_USER + 18)
	TB_ADDBITMAP             = (WM_USER + 19)

	//HINST_COMMCTRL = ((HINSTANCE)-1)
	IDB_STD_SMALL_COLOR  = 0
	IDB_STD_LARGE_COLOR  = 1
	IDB_VIEW_SMALL_COLOR = 4
	IDB_VIEW_LARGE_COLOR = 5
	IDB_HIST_SMALL_COLOR = 8
	IDB_HIST_LARGE_COLOR = 9
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	IDB_HIST_NORMAL   = 12
	IDB_HIST_HOT      = 13
	IDB_HIST_DISABLED = 14
	IDB_HIST_PRESSED  = 15

	STD_CUT        = 0
	STD_COPY       = 1
	STD_PASTE      = 2
	STD_UNDO       = 3
	STD_REDOW      = 4
	STD_DELETE     = 5
	STD_FILENEW    = 6
	STD_FILEOPEN   = 7
	STD_FILESAVE   = 8
	STD_PRINTPRE   = 9
	STD_PROPERTIES = 10
	STD_HELP       = 11
	STD_FIND       = 12
	STD_REPLACE    = 13
	STD_PRINT      = 14

	VIEW_LARGEICONS    = 0
	VIEW_SMALLICONS    = 1
	VIEW_LIST          = 2
	VIEW_DETAILS       = 3
	VIEW_SORTNAME      = 4
	VIEW_SORTSIZE      = 5
	VIEW_SORTDATE      = 6
	VIEW_SORTTYPE      = 7
	VIEW_PARENTFOLDER  = 8
	VIEW_NETCONNECT    = 9
	VIEW_NETDISCONNECT = 10
	VIEW_NEWFOLDER     = 11
	VIEW_VIEWMENU      = 12

	HIST_BACK           = 0
	HIST_FORWARD        = 1
	HIST_FAVORITES      = 2
	HIST_ADDTOFAVORITES = 3
	HIST_VIEWTREE       = 4

	TB_ADDBUTTONSA   = (WM_USER + 20)
	TB_INSERTBUTTONA = (WM_USER + 21)

	TB_DELETEBUTTON   = (WM_USER + 22)
	TB_GETBUTTON      = (WM_USER + 23)
	TB_BUTTONCOUNT    = (WM_USER + 24)
	TB_COMMANDTOINDEX = (WM_USER + 25)

	TB_SAVERESTOREA         = (WM_USER + 26)
	TB_SAVERESTOREW         = (WM_USER + 76)
	TB_CUSTOMIZE            = (WM_USER + 27)
	TB_ADDSTRINGA           = (WM_USER + 28)
	TB_ADDSTRINGW           = (WM_USER + 77)
	TB_GETITEMRECT          = (WM_USER + 29)
	TB_BUTTONSTRUCTSIZE     = (WM_USER + 30)
	TB_SETBUTTONSIZE        = (WM_USER + 31)
	TB_SETBITMAPSIZE        = (WM_USER + 32)
	TB_AUTOSIZE             = (WM_USER + 33)
	TB_GETTOOLTIPS          = (WM_USER + 35)
	TB_SETTOOLTIPS          = (WM_USER + 36)
	TB_SETPARENT            = (WM_USER + 37)
	TB_SETROWS              = (WM_USER + 39)
	TB_GETROWS              = (WM_USER + 40)
	TB_SETCMDID             = (WM_USER + 42)
	TB_CHANGEBITMAP         = (WM_USER + 43)
	TB_GETBITMAP            = (WM_USER + 44)
	TB_GETBUTTONTEXTA       = (WM_USER + 45)
	TB_GETBUTTONTEXTW       = (WM_USER + 75)
	TB_REPLACEBITMAP        = (WM_USER + 46)
	TB_SETINDENT            = (WM_USER + 47)
	TB_SETIMAGELIST         = (WM_USER + 48)
	TB_GETIMAGELIST         = (WM_USER + 49)
	TB_LOADIMAGES           = (WM_USER + 50)
	TB_GETRECT              = (WM_USER + 51) // wParam is the Cmd instead of index
	TB_SETHOTIMAGELIST      = (WM_USER + 52)
	TB_GETHOTIMAGELIST      = (WM_USER + 53)
	TB_SETDISABLEDIMAGELIST = (WM_USER + 54)
	TB_GETDISABLEDIMAGELIST = (WM_USER + 55)
	TB_SETSTYLE             = (WM_USER + 56)
	TB_GETSTYLE             = (WM_USER + 57)
	TB_GETBUTTONSIZE        = (WM_USER + 58)
	TB_SETBUTTONWIDTH       = (WM_USER + 59)
	TB_SETMAXTEXTROWS       = (WM_USER + 60)
	TB_GETTEXTROWS          = (WM_USER + 61)

	// #ifdef UNICODE
	//TB_GETBUTTONTEXT = TB_GETBUTTONTEXTW
	//TB_SAVERESTORE = TB_SAVERESTOREW
	//TB_ADDSTRING = TB_ADDSTRINGW
	// #else
	//TB_GETBUTTONTEXT = TB_GETBUTTONTEXTA
	//TB_SAVERESTORE = TB_SAVERESTOREA
	//TB_ADDSTRING = TB_ADDSTRINGA
	// #endif
	TB_GETOBJECT          = (WM_USER + 62) // wParam == IID, lParam void **ppv
	TB_GETHOTITEM         = (WM_USER + 71)
	TB_SETHOTITEM         = (WM_USER + 72) // wParam == iHotItem
	TB_SETANCHORHIGHLIGHT = (WM_USER + 73) // wParam == TRUE/FALSE
	TB_GETANCHORHIGHLIGHT = (WM_USER + 74)
	TB_MAPACCELERATORA    = (WM_USER + 78) // wParam == ch, lParam int * pidBtn

	// typedef struct {
	//     int   iButton;
	//     DWORD dwFlags;
	// } TBINSERTMARK, * LPTBINSERTMARK;
	TBIMHT_AFTER      = 0 // TRUE = insert After iButton, otherwise before
	TBIMHT_BACKGROUND = 0 // TRUE iff missed buttons completely

	TB_GETINSERTMARK      = (WM_USER + 79) // lParam == LPTBINSERTMARK
	TB_SETINSERTMARK      = (WM_USER + 80) // lParam == LPTBINSERTMARK
	TB_INSERTMARKHITTEST  = (WM_USER + 81) // wParam == LPPOINT lParam == LPTBINSERTMARK
	TB_MOVEBUTTON         = (WM_USER + 82)
	TB_GETMAXSIZE         = (WM_USER + 83) // lParam == LPSIZE
	TB_SETEXTENDEDSTYLE   = (WM_USER + 84) // For TBSTYLE_EX_*
	TB_GETEXTENDEDSTYLE   = (WM_USER + 85) // For TBSTYLE_EX_*
	TB_GETPADDING         = (WM_USER + 86)
	TB_SETPADDING         = (WM_USER + 87)
	TB_SETINSERTMARKCOLOR = (WM_USER + 88)
	TB_GETINSERTMARKCOLOR = (WM_USER + 89)

	TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME // lParam is color scheme
	TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME // fills in COLORSCHEME pointed to by lParam

	TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
	TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT

	TB_MAPACCELERATORW = (WM_USER + 90) // wParam == ch, lParam int * pidBtn

	TBBF_LARGE = 0

	TB_GETBITMAPFLAGS = (WM_USER + 41)

	TBIF_IMAGE   = 0
	TBIF_TEXT    = 0
	TBIF_STATE   = 0
	TBIF_STYLE   = 0
	TBIF_LPARAM  = 0
	TBIF_COMMAND = 0
	TBIF_SIZE    = 0

	TBIF_BYINDEX = 0 // this specifies that the wparam in Get/SetButtonInfo is an index, not id

	// // BUTTONINFO APIs do NOT support the string pool.
	TB_GETBUTTONINFOW = (WM_USER + 63)
	TB_SETBUTTONINFOW = (WM_USER + 64)
	TB_GETBUTTONINFOA = (WM_USER + 65)
	TB_SETBUTTONINFOA = (WM_USER + 66)

	TB_INSERTBUTTONW = (WM_USER + 67)
	TB_ADDBUTTONSW   = (WM_USER + 68)

	TB_HITTEST = (WM_USER + 69)

	TB_SETDRAWTEXTFLAGS = (WM_USER + 70) // wParam == mask lParam == bit values

	TB_GETSTRINGW = (WM_USER + 91)
	TB_GETSTRINGA = (WM_USER + 92)

	TB_SETBOUNDINGSIZE   = (WM_USER + 93)
	TB_SETHOTITEM2       = (WM_USER + 94) // wParam == iHotItem,  lParam = dwFlags
	TB_HASACCELERATOR    = (WM_USER + 95) // wParam == char, lParam = &iCount
	TB_SETLISTGAP        = (WM_USER + 96)
	TB_GETIMAGELISTCOUNT = (WM_USER + 98)
	TB_GETIDEALSIZE      = (WM_USER + 99) // wParam == fHeight, lParam = psize

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	TBMF_PAD           = 0
	TBMF_BARPAD        = 0
	TBMF_BUTTONSPACING = 0

	TB_GETMETRICS = (WM_USER + 101)
	TB_SETMETRICS = (WM_USER + 102)

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	TB_GETITEMDROPDOWNRECT = (WM_USER + 103) // Rect of item's drop down button
	TB_SETPRESSEDIMAGELIST = (WM_USER + 104)
	TB_GETPRESSEDIMAGELIST = (WM_USER + 105)

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	TB_SETWINDOWTHEME = CCM_SETWINDOWTHEME

	TBN_GETBUTTONINFOA = (TBN_FIRST - 0)
	TBN_BEGINDRAG      = (TBN_FIRST - 1)
	TBN_ENDDRAG        = (TBN_FIRST - 2)
	TBN_BEGINADJUST    = (TBN_FIRST - 3)
	TBN_ENDADJUST      = (TBN_FIRST - 4)
	TBN_RESET          = (TBN_FIRST - 5)
	TBN_QUERYINSERT    = (TBN_FIRST - 6)
	TBN_QUERYDELETE    = (TBN_FIRST - 7)
	TBN_TOOLBARCHANGE  = (TBN_FIRST - 8)
	TBN_CUSTHELP       = (TBN_FIRST - 9)
	TBN_DROPDOWN       = (TBN_FIRST - 10)
	TBN_GETOBJECT      = (TBN_FIRST - 12)

	// // Hot item change flags
	HICF_OTHER          = 0
	HICF_MOUSE          = 0 // Triggered by mouse
	HICF_ARROWKEYS      = 0 // Triggered by arrow keys
	HICF_ACCELERATOR    = 0 // Triggered by accelerator
	HICF_DUPACCEL       = 0 // This accelerator is not unique
	HICF_ENTERING       = 0 // idOld is invalid
	HICF_LEAVING        = 0 // idNew is invalid
	HICF_RESELECT       = 0 // hot item reselected
	HICF_LMOUSE         = 0 // left mouse button selected
	HICF_TOGGLEDROPDOWN = 0 // Toggle button's dropdown state

	TBN_HOTITEMCHANGE   = (TBN_FIRST - 13)
	TBN_DRAGOUT         = (TBN_FIRST - 14) // this is sent when the user clicks down on a button then drags off the button
	TBN_DELETINGBUTTON  = (TBN_FIRST - 15) // uses TBNOTIFY
	TBN_GETDISPINFOA    = (TBN_FIRST - 16) // This is sent when the  toolbar needs  some display information
	TBN_GETDISPINFOW    = (TBN_FIRST - 17) // This is sent when the  toolbar needs  some display information
	TBN_GETINFOTIPA     = (TBN_FIRST - 18)
	TBN_GETINFOTIPW     = (TBN_FIRST - 19)
	TBN_GETBUTTONINFOW  = (TBN_FIRST - 20)
	TBN_RESTORE         = (TBN_FIRST - 21)
	TBN_SAVE            = (TBN_FIRST - 22)
	TBN_INITCUSTOMIZE   = (TBN_FIRST - 23)
	TBNRF_HIDEHELP      = 0
	TBNRF_ENDCUSTOMIZE  = 0
	TBN_WRAPHOTITEM     = (TBN_FIRST - 24)
	TBN_DUPACCELERATOR  = (TBN_FIRST - 25)
	TBN_WRAPACCELERATOR = (TBN_FIRST - 26)
	TBN_DRAGOVER        = (TBN_FIRST - 27)
	TBN_MAPACCELERATOR  = (TBN_FIRST - 28)

	TBNF_IMAGE      = 0
	TBNF_TEXT       = 0
	TBNF_DI_SETITEM = 0

	// // Return codes for TBN_DROPDOWN
	TBDDRET_DEFAULT      = 0
	TBDDRET_NODEFAULT    = 1
	TBDDRET_TREATPRESSED = 2 // Treat as a standard press button

	// #ifdef _WIN32
	REBARCLASSNAMEW = "ReBarWindow32"

	RBIM_IMAGELIST = 0

	RBS_TOOLTIPS        = 0
	RBS_VARHEIGHT       = 0
	RBS_BANDBORDERS     = 0
	RBS_FIXEDORDER      = 0
	RBS_REGISTERDROP    = 0
	RBS_AUTOSIZE        = 0
	RBS_VERTICALGRIPPER = 0 // this always has the vertical gripper (default for horizontal mode)
	RBS_DBLCLKTOGGLE    = 0

	RBBS_BREAK          = 0 // break to new line
	RBBS_FIXEDSIZE      = 0 // band can't be sized
	RBBS_CHILDEDGE      = 0 // edge around top & bottom of child window
	RBBS_HIDDEN         = 0 // don't show
	RBBS_NOVERT         = 0 // don't show when vertical
	RBBS_FIXEDBMP       = 0 // bitmap doesn't move during band resize
	RBBS_VARIABLEHEIGHT = 0 // allow autosizing of this child vertically
	RBBS_GRIPPERALWAYS  = 0 // always show the gripper
	RBBS_NOGRIPPER      = 0 // never show the gripper
	RBBS_USECHEVRON     = 0 // display drop-down button for this band if it's sized smaller than ideal width
	RBBS_HIDETITLE      = 0 // keep band title hidden
	RBBS_TOPALIGN       = 0 // keep band in top row

	RBBIM_STYLE      = 0
	RBBIM_COLORS     = 0
	RBBIM_TEXT       = 0
	RBBIM_IMAGE      = 0
	RBBIM_CHILD      = 0
	RBBIM_CHILDSIZE  = 0
	RBBIM_SIZE       = 0
	RBBIM_BACKGROUND = 0
	RBBIM_ID         = 0
	RBBIM_IDEALSIZE  = 0
	RBBIM_LPARAM     = 0
	RBBIM_HEADERSIZE = 0 // control the size of the header
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	RBBIM_CHEVRONLOCATION = 0
	RBBIM_CHEVRONSTATE    = 0

	RB_INSERTBANDA  = (WM_USER + 1)
	RB_DELETEBAND   = (WM_USER + 2)
	RB_GETBARINFO   = (WM_USER + 3)
	RB_SETBARINFO   = (WM_USER + 4)
	RB_SETBANDINFOA = (WM_USER + 6)
	RB_SETPARENT    = (WM_USER + 7)
	RB_HITTEST      = (WM_USER + 8)
	RB_GETRECT      = (WM_USER + 9)
	RB_INSERTBANDW  = (WM_USER + 10)
	RB_SETBANDINFOW = (WM_USER + 11)
	RB_GETBANDCOUNT = (WM_USER + 12)
	RB_GETROWCOUNT  = (WM_USER + 13)
	RB_GETROWHEIGHT = (WM_USER + 14)
	RB_IDTOINDEX    = (WM_USER + 16) // wParam == id
	RB_GETTOOLTIPS  = (WM_USER + 17)
	RB_SETTOOLTIPS  = (WM_USER + 18)
	RB_SETBKCOLOR   = (WM_USER + 19) // sets the default BK color
	RB_GETBKCOLOR   = (WM_USER + 20) // defaults to CLR_NONE
	RB_SETTEXTCOLOR = (WM_USER + 21)
	RB_GETTEXTCOLOR = (WM_USER + 22) // defaults to 0x00000000

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	RBSTR_CHANGERECT = 0 // flags for RB_SIZETORECT

	RB_SIZETORECT = (WM_USER + 23) // resize the rebar/break bands and such to this rect (lparam)

	RB_SETCOLORSCHEME = CCM_SETCOLORSCHEME // lParam is color scheme
	RB_GETCOLORSCHEME = CCM_GETCOLORSCHEME // fills in COLORSCHEME pointed to by lParam

	// // for manual drag control
	// lparam == cursor pos
	//         // -1 means do it yourself.
	//         // -2 means use what you had saved before
	RB_BEGINDRAG    = (WM_USER + 24)
	RB_ENDDRAG      = (WM_USER + 25)
	RB_DRAGMOVE     = (WM_USER + 26)
	RB_GETBARHEIGHT = (WM_USER + 27)
	RB_GETBANDINFOW = (WM_USER + 28)
	RB_GETBANDINFOA = (WM_USER + 29)

	RB_MINIMIZEBAND = (WM_USER + 30)
	RB_MAXIMIZEBAND = (WM_USER + 31)

	RB_GETDROPTARGET = (CCM_GETDROPTARGET)

	RB_GETBANDBORDERS = (WM_USER + 34) // returns in lparam = lprc the amount of edges added to band wparam

	RB_SHOWBAND   = (WM_USER + 35) // show/hide band
	RB_SETPALETTE = (WM_USER + 37)
	RB_GETPALETTE = (WM_USER + 38)
	RB_MOVEBAND   = (WM_USER + 39)

	RB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
	RB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	RB_GETBANDMARGINS = (WM_USER + 40)
	RB_SETWINDOWTHEME = CCM_SETWINDOWTHEME

	// #if (_WIN32_IE >= 0x0600)
	RB_SETEXTENDEDSTYLE = (WM_USER + 41)
	RB_GETEXTENDEDSTYLE = (WM_USER + 42)

	RB_PUSHCHEVRON = (WM_USER + 43)

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	RB_SETBANDWIDTH = (WM_USER + 44) // set width for docked band

	RBN_HEIGHTCHANGE = (RBN_FIRST - 0)

	RBN_GETOBJECT     = (RBN_FIRST - 1)
	RBN_LAYOUTCHANGED = (RBN_FIRST - 2)
	RBN_AUTOSIZE      = (RBN_FIRST - 3)
	RBN_BEGINDRAG     = (RBN_FIRST - 4)
	RBN_ENDDRAG       = (RBN_FIRST - 5)
	RBN_DELETINGBAND  = (RBN_FIRST - 6) // Uses NMREBAR
	RBN_DELETEDBAND   = (RBN_FIRST - 7) // Uses NMREBAR
	RBN_CHILDSIZE     = (RBN_FIRST - 8)

	RBN_CHEVRONPUSHED = (RBN_FIRST - 10)

	// #if (_WIN32_IE >= 0x0600)
	RBN_SPLITTERDRAG = (RBN_FIRST - 11)

	RBN_MINMAX = (RBN_FIRST - 21)

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	RBN_AUTOBREAK = (RBN_FIRST - 22)

	// // Mask flags for NMREBAR
	RBNM_ID     = 0
	RBNM_STYLE  = 0
	RBNM_LPARAM = 0

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	RBAB_AUTOSIZE = 0 // These are not flags and are all mutually exclusive
	RBAB_ADDBAND  = 0

	RBHT_NOWHERE = 0
	RBHT_CAPTION = 0
	RBHT_CLIENT  = 0
	RBHT_GRABBER = 0
	RBHT_CHEVRON = 0
	// #if (_WIN32_IE >= 0x0600)
	RBHT_SPLITTER = 0

	TOOLTIPS_CLASSW = "tooltips_class32"

	// #ifdef UNICODE
	TOOLTIPS_CLASS = TOOLTIPS_CLASSW

	TTS_ALWAYSTIP = 0
	TTS_NOPREFIX  = 0
	TTS_NOANIMATE = 0
	TTS_NOFADE    = 0
	TTS_BALLOON   = 0
	TTS_CLOSE     = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	TTS_USEVISUALSTYLE = 0 // Use themed hyperlinks

	TTF_IDISHWND = 0

	TTF_CENTERTIP   = 0
	TTF_RTLREADING  = 0
	TTF_SUBCLASS    = 0
	TTF_TRACK       = 0
	TTF_ABSOLUTE    = 0
	TTF_TRANSPARENT = 0
	TTF_PARSELINKS  = 0
	TTF_DI_SETITEM  = 0 // valid only on the TTN_NEEDTEXT callback

	TTDT_AUTOMATIC = 0
	TTDT_RESHOW    = 1
	TTDT_AUTOPOP   = 2
	TTDT_INITIAL   = 3

	// // ToolTip Icons (Set with TTM_SETTITLE)
	TTI_NONE    = 0
	TTI_INFO    = 1
	TTI_WARNING = 2
	TTI_ERROR   = 3
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	TTI_INFO_LARGE    = 4
	TTI_WARNING_LARGE = 5
	TTI_ERROR_LARGE   = 6

	// // Tool Tip Messages
	TTM_ACTIVATE     = (WM_USER + 1)
	TTM_SETDELAYTIME = (WM_USER + 3)
	TTM_ADDTOOLA     = (WM_USER + 4)
	TTM_ADDTOOLW     = (WM_USER + 50)
	TTM_DELTOOLA     = (WM_USER + 5)
	TTM_DELTOOLW     = (WM_USER + 51)
	TTM_NEWTOOLRECTA = (WM_USER + 6)
	TTM_NEWTOOLRECTW = (WM_USER + 52)
	TTM_RELAYEVENT   = (WM_USER + 7) // Win7: wParam = GetMessageExtraInfo() when relaying WM_MOUSEMOVE

	TTM_GETTOOLINFOA = (WM_USER + 8)
	TTM_GETTOOLINFOW = (WM_USER + 53)

	TTM_SETTOOLINFOA = (WM_USER + 9)
	TTM_SETTOOLINFOW = (WM_USER + 54)

	TTM_HITTESTA        = (WM_USER + 10)
	TTM_HITTESTW        = (WM_USER + 55)
	TTM_GETTEXTA        = (WM_USER + 11)
	TTM_GETTEXTW        = (WM_USER + 56)
	TTM_UPDATETIPTEXTA  = (WM_USER + 12)
	TTM_UPDATETIPTEXTW  = (WM_USER + 57)
	TTM_GETTOOLCOUNT    = (WM_USER + 13)
	TTM_ENUMTOOLSA      = (WM_USER + 14)
	TTM_ENUMTOOLSW      = (WM_USER + 58)
	TTM_GETCURRENTTOOLA = (WM_USER + 15)
	TTM_GETCURRENTTOOLW = (WM_USER + 59)
	TTM_WINDOWFROMPOINT = (WM_USER + 16)
	TTM_TRACKACTIVATE   = (WM_USER + 17) // wParam = TRUE/FALSE start end  lparam = LPTOOLINFO
	TTM_TRACKPOSITION   = (WM_USER + 18) // lParam = dwPos
	TTM_SETTIPBKCOLOR   = (WM_USER + 19)
	TTM_SETTIPTEXTCOLOR = (WM_USER + 20)
	TTM_GETDELAYTIME    = (WM_USER + 21)
	TTM_GETTIPBKCOLOR   = (WM_USER + 22)
	TTM_GETTIPTEXTCOLOR = (WM_USER + 23)
	TTM_SETMAXTIPWIDTH  = (WM_USER + 24)
	TTM_GETMAXTIPWIDTH  = (WM_USER + 25)
	TTM_SETMARGIN       = (WM_USER + 26) // lParam = lprc
	TTM_GETMARGIN       = (WM_USER + 27) // lParam = lprc
	TTM_POP             = (WM_USER + 28)
	TTM_UPDATE          = (WM_USER + 29)
	TTM_GETBUBBLESIZE   = (WM_USER + 30)
	TTM_ADJUSTRECT      = (WM_USER + 31)
	TTM_SETTITLEA       = (WM_USER + 32) // wParam = TTI_*, lParam = char* szTitle
	TTM_SETTITLEW       = (WM_USER + 33) // wParam = TTI_*, lParam = wchar* szTitle

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	TTM_POPUP    = (WM_USER + 34)
	TTM_GETTITLE = (WM_USER + 35) // wParam = 0, lParam = TTGETTITLE*

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	TTM_SETWINDOWTHEME = CCM_SETWINDOWTHEME

	TTN_GETDISPINFOA = (TTN_FIRST - 0)
	TTN_GETDISPINFOW = (TTN_FIRST - 10)
	TTN_SHOW         = (TTN_FIRST - 1)
	TTN_POP          = (TTN_FIRST - 2)
	TTN_LINKCLICK    = (TTN_FIRST - 3)

	SBARS_SIZEGRIP = 0
	SBARS_TOOLTIPS = 0

	// // this is a status bar flag, preference to SBARS_TOOLTIPS
	SBT_TOOLTIPS = 0

	// #ifdef _WIN32
	STATUSCLASSNAMEW = "msctls_statusbar32"

	SB_SETTEXTA       = (WM_USER + 1)
	SB_SETTEXTW       = (WM_USER + 11)
	SB_GETTEXTA       = (WM_USER + 2)
	SB_GETTEXTW       = (WM_USER + 13)
	SB_GETTEXTLENGTHA = (WM_USER + 3)
	SB_GETTEXTLENGTHW = (WM_USER + 12)

	SB_SETPARTS         = (WM_USER + 4)
	SB_GETPARTS         = (WM_USER + 6)
	SB_GETBORDERS       = (WM_USER + 7)
	SB_SETMINHEIGHT     = (WM_USER + 8)
	SB_SIMPLE           = (WM_USER + 9)
	SB_GETRECT          = (WM_USER + 10)
	SB_ISSIMPLE         = (WM_USER + 14)
	SB_SETICON          = (WM_USER + 15)
	SB_SETTIPTEXTA      = (WM_USER + 16)
	SB_SETTIPTEXTW      = (WM_USER + 17)
	SB_GETTIPTEXTA      = (WM_USER + 18)
	SB_GETTIPTEXTW      = (WM_USER + 19)
	SB_GETICON          = (WM_USER + 20)
	SB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
	SB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT

	SBT_OWNERDRAW    = 0
	SBT_NOBORDERS    = 0
	SBT_POPOUT       = 0
	SBT_RTLREADING   = 0
	SBT_NOTABPARSING = 0

	SB_SETBKCOLOR = CCM_SETBKCOLOR // lParam = bkColor

	// // status bar notifications
	SBN_SIMPLEMODECHANGE = (SBN_FIRST - 0)

	// // refers to the data saved for simple mode
	SB_SIMPLEID = 0

	// #define TRACKBAR_CLASSA         "msctls_trackbar32"
	TRACKBAR_CLASSW = "msctls_trackbar32"

	// #ifdef UNICODE
	TRACKBAR_CLASS = TRACKBAR_CLASSW

	TBS_AUTOTICKS      = 0
	TBS_VERT           = 0
	TBS_HORZ           = 0
	TBS_TOP            = 0
	TBS_BOTTOM         = 0
	TBS_LEFT           = 0
	TBS_RIGHT          = 0
	TBS_BOTH           = 0
	TBS_NOTICKS        = 0
	TBS_ENABLESELRANGE = 0
	TBS_FIXEDLENGTH    = 0
	TBS_NOTHUMB        = 0
	TBS_TOOLTIPS       = 0
	TBS_REVERSED       = 0 // Accessibility hint: the smaller number (usually the min value) means "high" and the larger number (usually the max value) means "low"

	TBS_DOWNISLEFT = 0 // Down=Left and Up=Right (default is Down=Right and Up=Left)

	// #if (_WIN32_IE >= 0x0600)
	TBS_NOTIFYBEFOREMOVE = 0 // Trackbar should notify parent before repositioning the slider due to user action (enables snapping)

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	TBS_TRANSPARENTBKGND = 0 // Background is painted by the parent via WM_PRINTCLIENT

	TBM_GETPOS         = (WM_USER)
	TBM_GETRANGEMIN    = (WM_USER + 1)
	TBM_GETRANGEMAX    = (WM_USER + 2)
	TBM_GETTIC         = (WM_USER + 3)
	TBM_SETTIC         = (WM_USER + 4)
	TBM_SETPOS         = (WM_USER + 5)
	TBM_SETRANGE       = (WM_USER + 6)
	TBM_SETRANGEMIN    = (WM_USER + 7)
	TBM_SETRANGEMAX    = (WM_USER + 8)
	TBM_CLEARTICS      = (WM_USER + 9)
	TBM_SETSEL         = (WM_USER + 10)
	TBM_SETSELSTART    = (WM_USER + 11)
	TBM_SETSELEND      = (WM_USER + 12)
	TBM_GETPTICS       = (WM_USER + 14)
	TBM_GETTICPOS      = (WM_USER + 15)
	TBM_GETNUMTICS     = (WM_USER + 16)
	TBM_GETSELSTART    = (WM_USER + 17)
	TBM_GETSELEND      = (WM_USER + 18)
	TBM_CLEARSEL       = (WM_USER + 19)
	TBM_SETTICFREQ     = (WM_USER + 20)
	TBM_SETPAGESIZE    = (WM_USER + 21)
	TBM_GETPAGESIZE    = (WM_USER + 22)
	TBM_SETLINESIZE    = (WM_USER + 23)
	TBM_GETLINESIZE    = (WM_USER + 24)
	TBM_GETTHUMBRECT   = (WM_USER + 25)
	TBM_GETCHANNELRECT = (WM_USER + 26)
	TBM_SETTHUMBLENGTH = (WM_USER + 27)
	TBM_GETTHUMBLENGTH = (WM_USER + 28)
	TBM_SETTOOLTIPS    = (WM_USER + 29)
	TBM_GETTOOLTIPS    = (WM_USER + 30)
	TBM_SETTIPSIDE     = (WM_USER + 31)
	// // TrackBar Tip Side flags
	TBTS_TOP    = 0
	TBTS_LEFT   = 1
	TBTS_BOTTOM = 2
	TBTS_RIGHT  = 3

	TBM_SETBUDDY         = (WM_USER + 32) // wparam = BOOL fLeft; (or right)
	TBM_GETBUDDY         = (WM_USER + 33) // wparam = BOOL fLeft; (or right)
	TBM_SETPOSNOTIFY     = (WM_USER + 34)
	TBM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
	TBM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT

	TB_LINEUP        = 0
	TB_LINEDOWN      = 1
	TB_PAGEUP        = 2
	TB_PAGEDOWN      = 3
	TB_THUMBPOSITION = 4
	TB_THUMBTRACK    = 5
	TB_TOP           = 6
	TB_BOTTOM        = 7
	TB_ENDTRACK      = 8

	// // custom draw item specs
	TBCD_TICS    = 0
	TBCD_THUMB   = 0
	TBCD_CHANNEL = 0

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	TRBN_THUMBPOSCHANGING = (TRBN_FIRST - 1)

	DL_BEGINDRAG  = (WM_USER + 133)
	DL_DRAGGING   = (WM_USER + 134)
	DL_DROPPED    = (WM_USER + 135)
	DL_CANCELDRAG = (WM_USER + 136)

	DL_CURSORSET  = 0
	DL_STOPCURSOR = 1
	DL_COPYCURSOR = 2
	DL_MOVECURSOR = 3

	DRAGLISTMSGSTRING = "commctrl_DragListMsg"

	// #define UPDOWN_CLASSA           "msctls_updown32"
	UPDOWN_CLASSW = "msctls_updown32"

	// #ifdef UNICODE
	UPDOWN_CLASS = UPDOWN_CLASSW

	UD_MAXVAL = 0
	UD_MINVAL = (-UD_MAXVAL)

	UDS_WRAP        = 0
	UDS_SETBUDDYINT = 0
	UDS_ALIGNRIGHT  = 0
	UDS_ALIGNLEFT   = 0
	UDS_AUTOBUDDY   = 0
	UDS_ARROWKEYS   = 0
	UDS_HORZ        = 0
	UDS_NOTHOUSANDS = 0
	UDS_HOTTRACK    = 0

	UDM_SETRANGE         = (WM_USER + 101)
	UDM_GETRANGE         = (WM_USER + 102)
	UDM_SETPOS           = (WM_USER + 103)
	UDM_GETPOS           = (WM_USER + 104)
	UDM_SETBUDDY         = (WM_USER + 105)
	UDM_GETBUDDY         = (WM_USER + 106)
	UDM_SETACCEL         = (WM_USER + 107)
	UDM_GETACCEL         = (WM_USER + 108)
	UDM_SETBASE          = (WM_USER + 109)
	UDM_GETBASE          = (WM_USER + 110)
	UDM_SETRANGE32       = (WM_USER + 111)
	UDM_GETRANGE32       = (WM_USER + 112) // wParam & lParam are LPINT
	UDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
	UDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
	UDM_SETPOS32         = (WM_USER + 113)
	UDM_GETPOS32         = (WM_USER + 114)

	UDN_DELTAPOS = (UDN_FIRST - 1)

	// #define PROGRESS_CLASSA         "msctls_progress32"
	PROGRESS_CLASSW = "msctls_progress32"

	// #ifdef UNICODE
	PROGRESS_CLASS = PROGRESS_CLASSW

	PBS_SMOOTH   = 0
	PBS_VERTICAL = 0

	PBM_SETRANGE   = (WM_USER + 1)
	PBM_SETPOS     = (WM_USER + 2)
	PBM_DELTAPOS   = (WM_USER + 3)
	PBM_SETSTEP    = (WM_USER + 4)
	PBM_STEPIT     = (WM_USER + 5)
	PBM_SETRANGE32 = (WM_USER + 6) // lParam = high, wParam = low
	// typedef struct
	// {
	//    int iLow;
	//    int iHigh;
	// } PBRANGE, *PPBRANGE;
	PBM_GETRANGE    = (WM_USER + 7) // wParam = return (TRUE ? low : high). lParam = PPBRANGE or NULL
	PBM_GETPOS      = (WM_USER + 8)
	PBM_SETBARCOLOR = (WM_USER + 9)  // lParam = bar color
	PBM_SETBKCOLOR  = CCM_SETBKCOLOR // lParam = bkColor

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	PBS_MARQUEE = 0

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	PBM_SETMARQUEE = (WM_USER + 10)

	// // begin_r_commctrl
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	PBS_SMOOTHREVERSE = 0

	PBM_GETSTEP     = (WM_USER + 13)
	PBM_GETBKCOLOR  = (WM_USER + 14)
	PBM_GETBARCOLOR = (WM_USER + 15)
	PBM_SETSTATE    = (WM_USER + 16) // wParam = PBST_[State] (NORMAL, ERROR, PAUSED)
	PBM_GETSTATE    = (WM_USER + 17)

	PBST_NORMAL = 0
	PBST_ERROR  = 0
	PBST_PAUSED = 0

	HOTKEYF_SHIFT   = 0
	HOTKEYF_CONTROL = 0
	HOTKEYF_ALT     = 0
	// #ifdef _MAC
	//HOTKEYF_EXT = 0
	// #else
	HOTKEYF_EXT = 0

	HKCOMB_NONE = 0
	HKCOMB_S    = 0
	HKCOMB_C    = 0
	HKCOMB_A    = 0
	HKCOMB_SC   = 0
	HKCOMB_SA   = 0
	HKCOMB_CA   = 0
	HKCOMB_SCA  = 0

	HKM_SETHOTKEY = (WM_USER + 1)
	HKM_GETHOTKEY = (WM_USER + 2)
	HKM_SETRULES  = (WM_USER + 3)

	// #define HOTKEY_CLASSA           "msctls_hotkey32"
	HOTKEY_CLASSW = "msctls_hotkey32"

	CCS_TOP           = 0
	CCS_NOMOVEY       = 0
	CCS_BOTTOM        = 0
	CCS_NORESIZE      = 0
	CCS_NOPARENTALIGN = 0
	CCS_ADJUSTABLE    = 0
	CCS_NODIVIDER     = 0
	CCS_VERT          = 0
	CCS_LEFT          = (CCS_VERT | CCS_TOP)
	CCS_RIGHT         = (CCS_VERT | CCS_BOTTOM)
	CCS_NOMOVEX       = (CCS_VERT | CCS_NOMOVEY)

	INVALID_LINK_INDEX = (-1)
	MAX_LINKID_TEXT    = 48
	L_MAX_URL_LENGTH   = (2048 + 32 + len("://")) // sizeof("://"))

	WC_LINK = "SysLink"

	LWS_TRANSPARENT  = 0
	LWS_IGNORERETURN = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	LWS_NOPREFIX       = 0
	LWS_USEVISUALSTYLE = 0
	LWS_USECUSTOMTEXT  = 0
	LWS_RIGHT          = 0

	LIF_ITEMINDEX = 0
	LIF_STATE     = 0
	LIF_ITEMID    = 0
	LIF_URL       = 0

	LIS_FOCUSED = 0
	LIS_ENABLED = 0
	LIS_VISITED = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	LIS_HOTTRACK      = 0
	LIS_DEFAULTCOLORS = 0 // Don't use any custom text colors

	// //  LinkWindow messages
	LM_HITTEST        = (WM_USER + 0x300)   // wParam: n/a, lparam: PLHITTESTINFO, ret: BOOL
	LM_GETIDEALHEIGHT = (WM_USER + 0x301)   // wParam: cxMaxWidth, lparam: n/a, ret: cy
	LM_SETITEM        = (WM_USER + 0x302)   // wParam: n/a, lparam: LITEM*, ret: BOOL
	LM_GETITEM        = (WM_USER + 0x303)   // wParam: n/a, lparam: LITEM*, ret: BOOL
	LM_GETIDEALSIZE   = (LM_GETIDEALHEIGHT) // wParam: cxMaxWidth, lparam: SIZE*, ret: cy

	// #define WC_LISTVIEWA            "SysListView32"
	WC_LISTVIEWW = "SysListView32"

	// #ifdef UNICODE
	WC_LISTVIEW = WC_LISTVIEWW

	LVS_ICON            = 0
	LVS_REPORT          = 0
	LVS_SMALLICON       = 0
	LVS_LIST            = 0
	LVS_TYPEMASK        = 0
	LVS_SINGLESEL       = 0
	LVS_SHOWSELALWAYS   = 0
	LVS_SORTASCENDING   = 0
	LVS_SORTDESCENDING  = 0
	LVS_SHAREIMAGELISTS = 0
	LVS_NOLABELWRAP     = 0
	LVS_AUTOARRANGE     = 0
	LVS_EDITLABELS      = 0
	LVS_OWNERDATA       = 0
	LVS_NOSCROLL        = 0

	LVS_TYPESTYLEMASK = 0

	LVS_ALIGNTOP  = 0
	LVS_ALIGNLEFT = 0
	LVS_ALIGNMASK = 0

	LVS_OWNERDRAWFIXED = 0
	LVS_NOCOLUMNHEADER = 0
	LVS_NOSORTHEADER   = 0

	LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT

	LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT

	LVM_GETBKCOLOR = (LVM_FIRST + 0)

	LVM_SETBKCOLOR = (LVM_FIRST + 1)

	LVM_GETIMAGELIST = (LVM_FIRST + 2)

	LVSIL_NORMAL      = 0
	LVSIL_SMALL       = 1
	LVSIL_STATE       = 2
	LVSIL_GROUPHEADER = 3

	LVM_SETIMAGELIST = (LVM_FIRST + 3)

	LVM_GETITEMCOUNT = (LVM_FIRST + 4)

	LVIF_TEXT        = 0
	LVIF_IMAGE       = 0
	LVIF_PARAM       = 0
	LVIF_STATE       = 0
	LVIF_INDENT      = 0
	LVIF_NORECOMPUTE = 0
	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	LVIF_GROUPID = 0
	LVIF_COLUMNS = 0

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	LVIF_COLFMT = 0 // The piColFmt member is valid in addition to puColumns

	LVIS_FOCUSED     = 0
	LVIS_SELECTED    = 0
	LVIS_CUT         = 0
	LVIS_DROPHILITED = 0
	LVIS_GLOW        = 0
	LVIS_ACTIVATING  = 0

	LVIS_OVERLAYMASK    = 0
	LVIS_STATEIMAGEMASK = 0

	I_INDENTCALLBACK = (-1)

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	I_GROUPIDCALLBACK = (-1)
	I_GROUPIDNONE     = (-2)

	I_IMAGECALLBACK = (-1)
	I_IMAGENONE     = (-2)

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	// // For tileview
	I_COLUMNSCALLBACK = -1

	LVM_SETITEMA = (LVM_FIRST + 6)
	LVM_SETITEMW = (LVM_FIRST + 76)

	LVM_INSERTITEMA = (LVM_FIRST + 7)
	LVM_INSERTITEMW = (LVM_FIRST + 77)

	LVM_DELETEITEM = (LVM_FIRST + 8)

	LVM_DELETEALLITEMS = (LVM_FIRST + 9)

	LVM_GETCALLBACKMASK = (LVM_FIRST + 10)

	LVM_SETCALLBACKMASK = (LVM_FIRST + 11)

	LVNI_ALL = 0

	LVNI_FOCUSED     = 0
	LVNI_SELECTED    = 0
	LVNI_CUT         = 0
	LVNI_DROPHILITED = 0
	LVNI_STATEMASK   = (LVNI_FOCUSED | LVNI_SELECTED | LVNI_CUT | LVNI_DROPHILITED)

	LVNI_VISIBLEORDER  = 0
	LVNI_PREVIOUS      = 0
	LVNI_VISIBLEONLY   = 0
	LVNI_SAMEGROUPONLY = 0

	LVNI_ABOVE         = 0
	LVNI_BELOW         = 0
	LVNI_TOLEFT        = 0
	LVNI_TORIGHT       = 0
	LVNI_DIRECTIONMASK = (LVNI_ABOVE | LVNI_BELOW | LVNI_TOLEFT | LVNI_TORIGHT)

	LVM_GETNEXTITEM = (LVM_FIRST + 12)

	LVFI_PARAM     = 0
	LVFI_STRING    = 0
	LVFI_SUBSTRING = 0 // Same as LVFI_PARTIAL
	LVFI_PARTIAL   = 0
	LVFI_WRAP      = 0
	LVFI_NEARESTXY = 0

	LVM_FINDITEMA = (LVM_FIRST + 13)
	LVM_FINDITEMW = (LVM_FIRST + 83)

	LVIR_BOUNDS       = 0
	LVIR_ICON         = 1
	LVIR_LABEL        = 2
	LVIR_SELECTBOUNDS = 3

	LVM_GETITEMRECT = (LVM_FIRST + 14)

	LVM_SETITEMPOSITION = (LVM_FIRST + 15)

	LVM_GETITEMPOSITION = (LVM_FIRST + 16)

	LVM_GETSTRINGWIDTHA = (LVM_FIRST + 17)
	LVM_GETSTRINGWIDTHW = (LVM_FIRST + 87)

	LVHT_NOWHERE         = 0
	LVHT_ONITEMICON      = 0
	LVHT_ONITEMLABEL     = 0
	LVHT_ONITEMSTATEICON = 0
	LVHT_ONITEM          = (LVHT_ONITEMICON | LVHT_ONITEMLABEL | LVHT_ONITEMSTATEICON)

	LVHT_ABOVE   = 0
	LVHT_BELOW   = 0
	LVHT_TORIGHT = 0
	LVHT_TOLEFT  = 0

	LVHT_EX_GROUP_HEADER     = 0
	LVHT_EX_GROUP_FOOTER     = 0
	LVHT_EX_GROUP_COLLAPSE   = 0
	LVHT_EX_GROUP_BACKGROUND = 0
	LVHT_EX_GROUP_STATEICON  = 0
	LVHT_EX_GROUP_SUBSETLINK = 0
	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)
	LVHT_EX_ONCONTENTS       = 0 // On item AND not on the background
	LVHT_EX_FOOTER           = 0

	LVM_HITTEST = (LVM_FIRST + 18)

	LVM_ENSUREVISIBLE = (LVM_FIRST + 19)

	LVM_SCROLL = (LVM_FIRST + 20)

	LVM_REDRAWITEMS = (LVM_FIRST + 21)

	LVA_DEFAULT    = 0
	LVA_ALIGNLEFT  = 0
	LVA_ALIGNTOP   = 0
	LVA_SNAPTOGRID = 0

	LVM_ARRANGE = (LVM_FIRST + 22)

	LVM_EDITLABELA = (LVM_FIRST + 23)
	LVM_EDITLABELW = (LVM_FIRST + 118)

	LVM_GETEDITCONTROL = (LVM_FIRST + 24)

	LVCF_FMT     = 0
	LVCF_WIDTH   = 0
	LVCF_TEXT    = 0
	LVCF_SUBITEM = 0
	LVCF_IMAGE   = 0
	LVCF_ORDER   = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	LVCF_MINWIDTH     = 0
	LVCF_DEFAULTWIDTH = 0
	LVCF_IDEALWIDTH   = 0

	LVCFMT_LEFT        = 0 // Same as HDF_LEFT
	LVCFMT_RIGHT       = 0 // Same as HDF_RIGHT
	LVCFMT_CENTER      = 0 // Same as HDF_CENTER
	LVCFMT_JUSTIFYMASK = 0 // Same as HDF_JUSTIFYMASK

	LVCFMT_IMAGE           = 0 // Same as HDF_IMAGE
	LVCFMT_BITMAP_ON_RIGHT = 0 // Same as HDF_BITMAP_ON_RIGHT
	LVCFMT_COL_HAS_IMAGES  = 0 // Same as HDF_OWNERDRAW

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	LVCFMT_FIXED_WIDTH  = 0 // Can't resize the column; same as HDF_FIXEDWIDTH
	LVCFMT_NO_DPI_SCALE = 0 // If not set, CCM_DPISCALE will govern scaling up fixed width
	LVCFMT_FIXED_RATIO  = 0 // Width will augment with the row height

	// // The following flags
	LVCFMT_LINE_BREAK         = 0 // Move to the top of the next list of columns
	LVCFMT_FILL               = 0 // Fill the remainder of the tile area. Might have a title.
	LVCFMT_WRAP               = 0 // This sub-item can be wrapped.
	LVCFMT_NO_TITLE           = 0 // This sub-item doesn't have an title.
	LVCFMT_TILE_PLACEMENTMASK = (LVCFMT_LINE_BREAK | LVCFMT_FILL)

	LVCFMT_SPLITBUTTON = 0 // Column is a split button; same as HDF_SPLITBUTTON

	LVM_GETCOLUMNA = (LVM_FIRST + 25)
	LVM_GETCOLUMNW = (LVM_FIRST + 95)

	LVM_SETCOLUMNA = (LVM_FIRST + 26)
	LVM_SETCOLUMNW = (LVM_FIRST + 96)

	LVM_INSERTCOLUMNA = (LVM_FIRST + 27)
	LVM_INSERTCOLUMNW = (LVM_FIRST + 97)

	LVM_DELETECOLUMN = (LVM_FIRST + 28)

	LVM_GETCOLUMNWIDTH = (LVM_FIRST + 29)

	// #define LVSCW_AUTOSIZE              -1
	// #define LVSCW_AUTOSIZE_USEHEADER    -2
	LVM_SETCOLUMNWIDTH = (LVM_FIRST + 30)

	LVM_GETHEADER = (LVM_FIRST + 31)

	LVM_CREATEDRAGIMAGE = (LVM_FIRST + 33)

	LVM_GETVIEWRECT = (LVM_FIRST + 34)

	LVM_GETTEXTCOLOR = (LVM_FIRST + 35)

	LVM_SETTEXTCOLOR = (LVM_FIRST + 36)

	LVM_GETTEXTBKCOLOR = (LVM_FIRST + 37)

	LVM_SETTEXTBKCOLOR = (LVM_FIRST + 38)

	LVM_GETTOPINDEX = (LVM_FIRST + 39)

	LVM_GETCOUNTPERPAGE = (LVM_FIRST + 40)

	LVM_GETORIGIN = (LVM_FIRST + 41)

	LVM_UPDATE = (LVM_FIRST + 42)

	LVM_SETITEMSTATE = (LVM_FIRST + 43)

	LVM_GETITEMSTATE = (LVM_FIRST + 44)

	LVM_GETITEMTEXTA = (LVM_FIRST + 45)
	LVM_GETITEMTEXTW = (LVM_FIRST + 115)

	LVM_SETITEMTEXTA = (LVM_FIRST + 46)
	LVM_SETITEMTEXTW = (LVM_FIRST + 116)

	// // these flags only apply to LVS_OWNERDATA listviews in report or list mode
	LVSICF_NOINVALIDATEALL = 0
	LVSICF_NOSCROLL        = 0

	LVM_SETITEMCOUNT = (LVM_FIRST + 47)

	LVM_SORTITEMS = (LVM_FIRST + 48)

	LVM_SETITEMPOSITION32 = (LVM_FIRST + 49)

	LVM_GETSELECTEDCOUNT = (LVM_FIRST + 50)

	LVM_GETITEMSPACING = (LVM_FIRST + 51)

	LVM_GETISEARCHSTRINGA = (LVM_FIRST + 52)
	LVM_GETISEARCHSTRINGW = (LVM_FIRST + 117)

	LVM_SETICONSPACING = (LVM_FIRST + 53)

	LVM_SETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 54) // optional wParam == mask

	LVM_GETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 55)

	LVS_EX_GRIDLINES        = 0
	LVS_EX_SUBITEMIMAGES    = 0
	LVS_EX_CHECKBOXES       = 0
	LVS_EX_TRACKSELECT      = 0
	LVS_EX_HEADERDRAGDROP   = 0
	LVS_EX_FULLROWSELECT    = 0 // applies to report mode only
	LVS_EX_ONECLICKACTIVATE = 0
	LVS_EX_TWOCLICKACTIVATE = 0
	LVS_EX_FLATSB           = 0
	LVS_EX_REGIONAL         = 0
	LVS_EX_INFOTIP          = 0 // listview does InfoTips for you
	LVS_EX_UNDERLINEHOT     = 0
	LVS_EX_UNDERLINECOLD    = 0
	LVS_EX_MULTIWORKAREAS   = 0
	LVS_EX_LABELTIP         = 0 // listview unfolds partly hidden labels if it does not have infotip text
	LVS_EX_BORDERSELECT     = 0 // border selection style instead of highlight
	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	LVS_EX_DOUBLEBUFFER = 0
	LVS_EX_HIDELABELS   = 0
	LVS_EX_SINGLEROW    = 0
	LVS_EX_SNAPTOGRID   = 0 // Icons automatically snap to grid.
	LVS_EX_SIMPLESELECT = 0 // Also changes overlay rendering to top right for icon mode.
	// #endif
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	LVS_EX_JUSTIFYCOLUMNS        = 0 // Icons are lined up in columns that use up the whole view area.
	LVS_EX_TRANSPARENTBKGND      = 0 // Background is painted by the parent via WM_PRINTCLIENT
	LVS_EX_TRANSPARENTSHADOWTEXT = 0 // Enable shadow text on transparent backgrounds only (useful with bitmaps)
	LVS_EX_AUTOAUTOARRANGE       = 0 // Icons automatically arrange if no icon positions have been set
	LVS_EX_HEADERINALLVIEWS      = 0 // Display column header in all view modes
	LVS_EX_AUTOCHECKSELECT       = 0
	LVS_EX_AUTOSIZECOLUMNS       = 0
	LVS_EX_COLUMNSNAPPOINTS      = 0
	LVS_EX_COLUMNOVERFLOW        = 0

	LVM_GETSUBITEMRECT = (LVM_FIRST + 56)

	LVM_SUBITEMHITTEST = (LVM_FIRST + 57)

	LVM_SETCOLUMNORDERARRAY = (LVM_FIRST + 58)

	LVM_GETCOLUMNORDERARRAY = (LVM_FIRST + 59)

	LVM_SETHOTITEM = (LVM_FIRST + 60)

	LVM_GETHOTITEM = (LVM_FIRST + 61)

	LVM_SETHOTCURSOR = (LVM_FIRST + 62)

	LVM_GETHOTCURSOR = (LVM_FIRST + 63)

	LVM_APPROXIMATEVIEWRECT = (LVM_FIRST + 64)

	LV_MAX_WORKAREAS = 16
	LVM_SETWORKAREAS = (LVM_FIRST + 65)

	LVM_GETWORKAREAS = (LVM_FIRST + 70)

	LVM_GETNUMBEROFWORKAREAS = (LVM_FIRST + 73)

	LVM_GETSELECTIONMARK = (LVM_FIRST + 66)

	LVM_SETSELECTIONMARK = (LVM_FIRST + 67)

	LVM_SETHOVERTIME = (LVM_FIRST + 71)

	LVM_GETHOVERTIME = (LVM_FIRST + 72)

	LVM_SETTOOLTIPS = (LVM_FIRST + 74)

	LVM_GETTOOLTIPS = (LVM_FIRST + 78)

	LVM_SORTITEMSEX = (LVM_FIRST + 81)

	LVBKIF_SOURCE_NONE    = 0
	LVBKIF_SOURCE_HBITMAP = 0
	LVBKIF_SOURCE_URL     = 0
	LVBKIF_SOURCE_MASK    = 0
	LVBKIF_STYLE_NORMAL   = 0
	LVBKIF_STYLE_TILE     = 0
	LVBKIF_STYLE_MASK     = 0
	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	LVBKIF_FLAG_TILEOFFSET = 0
	LVBKIF_TYPE_WATERMARK  = 0
	LVBKIF_FLAG_ALPHABLEND = 0

	LVM_SETBKIMAGEA = (LVM_FIRST + 68)
	LVM_SETBKIMAGEW = (LVM_FIRST + 138)
	LVM_GETBKIMAGEA = (LVM_FIRST + 69)
	LVM_GETBKIMAGEW = (LVM_FIRST + 139)

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	LVM_SETSELECTEDCOLUMN = (LVM_FIRST + 140)

	LV_VIEW_ICON      = 0
	LV_VIEW_DETAILS   = 0
	LV_VIEW_SMALLICON = 0
	LV_VIEW_LIST      = 0
	LV_VIEW_TILE      = 0
	LV_VIEW_MAX       = 0

	LVM_SETVIEW = (LVM_FIRST + 142)

	LVM_GETVIEW = (LVM_FIRST + 143)

	LVGF_NONE    = 0
	LVGF_HEADER  = 0
	LVGF_FOOTER  = 0
	LVGF_STATE   = 0
	LVGF_ALIGN   = 0
	LVGF_GROUPID = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	LVGF_SUBTITLE          = 0 // pszSubtitle is valid
	LVGF_TASK              = 0 // pszTask is valid
	LVGF_DESCRIPTIONTOP    = 0 // pszDescriptionTop is valid
	LVGF_DESCRIPTIONBOTTOM = 0 // pszDescriptionBottom is valid
	LVGF_TITLEIMAGE        = 0 // iTitleImage is valid
	LVGF_EXTENDEDIMAGE     = 0 // iExtendedImage is valid
	LVGF_ITEMS             = 0 // iFirstItem and cItems are valid
	LVGF_SUBSET            = 0 // pszSubsetTitle is valid
	LVGF_SUBSETITEMS       = 0 // readonly, cItems holds count of items in visible subset, iFirstItem is valid

	LVGS_NORMAL            = 0
	LVGS_COLLAPSED         = 0
	LVGS_HIDDEN            = 0
	LVGS_NOHEADER          = 0
	LVGS_COLLAPSIBLE       = 0
	LVGS_FOCUSED           = 0
	LVGS_SELECTED          = 0
	LVGS_SUBSETED          = 0
	LVGS_SUBSETLINKFOCUSED = 0

	LVGA_HEADER_LEFT   = 0
	LVGA_HEADER_CENTER = 0
	LVGA_HEADER_RIGHT  = 0 // Don't forget to validate exclusivity
	LVGA_FOOTER_LEFT   = 0
	LVGA_FOOTER_CENTER = 0
	LVGA_FOOTER_RIGHT  = 0 // Don't forget to validate exclusivity

	LVM_INSERTGROUP = (LVM_FIRST + 145)

	LVM_SETGROUPINFO = (LVM_FIRST + 147)

	LVM_GETGROUPINFO = (LVM_FIRST + 149)

	LVM_REMOVEGROUP = (LVM_FIRST + 150)

	LVM_MOVEGROUP = (LVM_FIRST + 151)

	LVM_GETGROUPCOUNT = (LVM_FIRST + 152)

	LVM_GETGROUPINFOBYINDEX = (LVM_FIRST + 153)

	LVM_MOVEITEMTOGROUP = (LVM_FIRST + 154)

	LVGGR_GROUP      = 0 // Entire expanded group
	LVGGR_HEADER     = 1 // Header only (collapsed group)
	LVGGR_LABEL      = 2 // Label only
	LVGGR_SUBSETLINK = 3 // subset link only

	LVM_GETGROUPRECT = (LVM_FIRST + 98)

	LVGMF_NONE        = 0
	LVGMF_BORDERSIZE  = 0
	LVGMF_BORDERCOLOR = 0
	LVGMF_TEXTCOLOR   = 0

	LVM_SETGROUPMETRICS = (LVM_FIRST + 155)

	LVM_GETGROUPMETRICS = (LVM_FIRST + 156)

	LVM_ENABLEGROUPVIEW = (LVM_FIRST + 157)

	LVM_SORTGROUPS = (LVM_FIRST + 158)

	LVM_INSERTGROUPSORTED = (LVM_FIRST + 159)

	LVM_REMOVEALLGROUPS = (LVM_FIRST + 160)

	LVM_HASGROUP = (LVM_FIRST + 161)

	// #define ListView_SetGroupState(hwnd, dwGroupId, dwMask, dwState) \
	// { LVGROUP _macro_lvg;\
	//_macro_lvg.cbSize = sizeof(_macro_lvg);\
	//_macro_lvg.mask = LVGF_STATE;\
	//_macro_lvg.stateMask = dwMask;\
	//_macro_lvg.state = dwState;\
	//   SNDMSG((hwnd), LVM_SETGROUPINFO, (WPARAM)(dwGroupId), (LPARAM)(LVGROUP *)&_macro_lvg);\
	// }
	LVM_GETGROUPSTATE = (LVM_FIRST + 92)

	LVM_GETFOCUSEDGROUP = (LVM_FIRST + 93)

	LVTVIF_AUTOSIZE    = 0
	LVTVIF_FIXEDWIDTH  = 0
	LVTVIF_FIXEDHEIGHT = 0
	LVTVIF_FIXEDSIZE   = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	LVTVIF_EXTENDED = 0

	LVTVIM_TILESIZE    = 0
	LVTVIM_COLUMNS     = 0
	LVTVIM_LABELMARGIN = 0

	LVM_SETTILEVIEWINFO = (LVM_FIRST + 162)

	LVM_GETTILEVIEWINFO = (LVM_FIRST + 163)

	LVM_SETTILEINFO = (LVM_FIRST + 164)

	LVM_GETTILEINFO = (LVM_FIRST + 165)

	LVIM_AFTER = 0 // TRUE = insert After iItem, otherwise before

	LVM_SETINSERTMARK = (LVM_FIRST + 166)

	LVM_GETINSERTMARK = (LVM_FIRST + 167)

	LVM_INSERTMARKHITTEST = (LVM_FIRST + 168)

	LVM_GETINSERTMARKRECT = (LVM_FIRST + 169)

	LVM_SETINSERTMARKCOLOR = (LVM_FIRST + 170)

	LVM_GETINSERTMARKCOLOR = (LVM_FIRST + 171)

	LVM_SETINFOTIP = (LVM_FIRST + 173)

	LVM_GETSELECTEDCOLUMN = (LVM_FIRST + 174)

	LVM_ISGROUPVIEWENABLED = (LVM_FIRST + 175)

	LVM_GETOUTLINECOLOR = (LVM_FIRST + 176)

	LVM_SETOUTLINECOLOR = (LVM_FIRST + 177)

	LVM_CANCELEDITLABEL = (LVM_FIRST + 179)

	// // These next to methods make it easy to identify an item that can be repositioned
	// // within listview. For example: Many developers use the lParam to store an identifier that is
	// // unique. Unfortunatly, in order to find this item, they have to iterate through all of the items
	// // in the listview. Listview will maintain a unique identifier.  The upper bound is the size of a DWORD.
	LVM_MAPINDEXTOID = (LVM_FIRST + 180)

	LVM_MAPIDTOINDEX = (LVM_FIRST + 181)

	LVM_ISITEMVISIBLE = (LVM_FIRST + 182)

	LVM_GETEMPTYTEXT = (LVM_FIRST + 204)

	LVM_GETFOOTERRECT = (LVM_FIRST + 205)

	// // footer flags
	LVFF_ITEMCOUNT = 0

	LVM_GETFOOTERINFO = (LVM_FIRST + 206)

	LVM_GETFOOTERITEMRECT = (LVM_FIRST + 207)

	// // footer item flags
	LVFIF_TEXT  = 0
	LVFIF_STATE = 0

	// // footer item state
	LVFIS_FOCUSED = 0

	LVM_GETFOOTERITEM = (LVM_FIRST + 208)

	LVM_GETITEMINDEXRECT = (LVM_FIRST + 209)

	LVM_SETITEMINDEXSTATE = (LVM_FIRST + 210)

	LVM_GETNEXTITEMINDEX = (LVM_FIRST + 211)

	// // key flags stored in uKeyFlags
	LVKF_ALT     = 0
	LVKF_CONTROL = 0
	LVKF_SHIFT   = 0

	// // dwItemType
	LVCDI_ITEM      = 0
	LVCDI_GROUP     = 0
	LVCDI_ITEMSLIST = 0

	// // ListView custom draw return values
	LVCDRF_NOSELECT     = 0
	LVCDRF_NOGROUPFRAME = 0

	LVN_ITEMCHANGING    = (LVN_FIRST - 0)
	LVN_ITEMCHANGED     = (LVN_FIRST - 1)
	LVN_INSERTITEM      = (LVN_FIRST - 2)
	LVN_DELETEITEM      = (LVN_FIRST - 3)
	LVN_DELETEALLITEMS  = (LVN_FIRST - 4)
	LVN_BEGINLABELEDITA = (LVN_FIRST - 5)
	LVN_BEGINLABELEDITW = (LVN_FIRST - 75)
	LVN_ENDLABELEDITA   = (LVN_FIRST - 6)
	LVN_ENDLABELEDITW   = (LVN_FIRST - 76)
	LVN_COLUMNCLICK     = (LVN_FIRST - 8)
	LVN_BEGINDRAG       = (LVN_FIRST - 9)
	LVN_BEGINRDRAG      = (LVN_FIRST - 11)

	LVN_ODCACHEHINT = (LVN_FIRST - 13)
	LVN_ODFINDITEMA = (LVN_FIRST - 52)
	LVN_ODFINDITEMW = (LVN_FIRST - 79)

	LVN_ITEMACTIVATE   = (LVN_FIRST - 14)
	LVN_ODSTATECHANGED = (LVN_FIRST - 15)

	LVN_HOTTRACK = (LVN_FIRST - 21)

	LVN_GETDISPINFOA = (LVN_FIRST - 50)
	LVN_GETDISPINFOW = (LVN_FIRST - 77)
	LVN_SETDISPINFOA = (LVN_FIRST - 51)
	LVN_SETDISPINFOW = (LVN_FIRST - 78)

	LVIF_DI_SETITEM = 0

	LVN_KEYDOWN = (LVN_FIRST - 55)

	LVN_MARQUEEBEGIN = (LVN_FIRST - 56)

	LVGIT_UNFOLDED = 0

	LVN_GETINFOTIPA = (LVN_FIRST - 57)
	LVN_GETINFOTIPW = (LVN_FIRST - 58)

	LVN_INCREMENTALSEARCHA = (LVN_FIRST - 62)
	LVN_INCREMENTALSEARCHW = (LVN_FIRST - 63)

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	LVN_COLUMNDROPDOWN = (LVN_FIRST - 64)

	LVN_COLUMNOVERFLOWCLICK = (LVN_FIRST - 66)

	LVN_BEGINSCROLL = (LVN_FIRST - 80)
	LVN_ENDSCROLL   = (LVN_FIRST - 81)

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	LVN_LINKCLICK = (LVN_FIRST - 84)

	EMF_CENTERED = 0 // render markup centered in the listview area

	LVN_GETEMPTYMARKUP = (LVN_FIRST - 87)

	// #ifdef _WIN32
	// #define WC_TREEVIEWA            "SysTreeView32"
	WC_TREEVIEWW = "SysTreeView32"

	// #ifdef UNICODE
	WC_TREEVIEW = WC_TREEVIEWW

	TVS_HASBUTTONS      = 0
	TVS_HASLINES        = 0
	TVS_LINESATROOT     = 0
	TVS_EDITLABELS      = 0
	TVS_DISABLEDRAGDROP = 0
	TVS_SHOWSELALWAYS   = 0
	TVS_RTLREADING      = 0

	TVS_NOTOOLTIPS    = 0
	TVS_CHECKBOXES    = 0
	TVS_TRACKSELECT   = 0
	TVS_SINGLEEXPAND  = 0
	TVS_INFOTIP       = 0
	TVS_FULLROWSELECT = 0
	TVS_NOSCROLL      = 0
	TVS_NONEVENHEIGHT = 0
	TVS_NOHSCROLL     = 0 // TVS_NOSCROLL overrides this

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	TVS_EX_NOSINGLECOLLAPSE = 0

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	TVS_EX_MULTISELECT         = 0
	TVS_EX_DOUBLEBUFFER        = 0
	TVS_EX_NOINDENTSTATE       = 0
	TVS_EX_RICHTOOLTIP         = 0
	TVS_EX_AUTOHSCROLL         = 0
	TVS_EX_FADEINOUTEXPANDOS   = 0
	TVS_EX_PARTIALCHECKBOXES   = 0
	TVS_EX_EXCLUSIONCHECKBOXES = 0
	TVS_EX_DIMMEDCHECKBOXES    = 0
	TVS_EX_DRAWIMAGEASYNC      = 0

	TVIF_TEXT          = 0
	TVIF_IMAGE         = 0
	TVIF_PARAM         = 0
	TVIF_STATE         = 0
	TVIF_HANDLE        = 0
	TVIF_SELECTEDIMAGE = 0
	TVIF_CHILDREN      = 0
	TVIF_INTEGRAL      = 0
	// #if (_WIN32_IE >= 0x0600)
	TVIF_STATEEX       = 0
	TVIF_EXPANDEDIMAGE = 0
	// #endif
	TVIS_SELECTED      = 0
	TVIS_CUT           = 0
	TVIS_DROPHILITED   = 0
	TVIS_BOLD          = 0
	TVIS_EXPANDED      = 0
	TVIS_EXPANDEDONCE  = 0
	TVIS_EXPANDPARTIAL = 0

	TVIS_OVERLAYMASK    = 0
	TVIS_STATEIMAGEMASK = 0
	TVIS_USERMASK       = 0

	// #if (_WIN32_IE >= 0x0600)
	TVIS_EX_FLAT = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	TVIS_EX_DISABLED = 0
	// #endif
	TVIS_EX_ALL = 0

	I_CHILDRENCALLBACK = (-1)
	I_CHILDRENAUTO     = (-2)

	TVM_INSERTITEMA = (TV_FIRST + 0)
	TVM_INSERTITEMW = (TV_FIRST + 50)

	TVM_DELETEITEM = (TV_FIRST + 1)

	TVM_EXPAND = (TV_FIRST + 2)

	TVE_COLLAPSE      = 0
	TVE_EXPAND        = 0
	TVE_TOGGLE        = 0
	TVE_EXPANDPARTIAL = 0
	TVE_COLLAPSERESET = 0

	TVM_GETITEMRECT = (TV_FIRST + 4)

	TVM_GETCOUNT = (TV_FIRST + 5)

	TVM_GETINDENT = (TV_FIRST + 6)

	TVM_SETINDENT = (TV_FIRST + 7)

	TVM_GETIMAGELIST = (TV_FIRST + 8)

	TVSIL_NORMAL = 0
	TVSIL_STATE  = 2

	TVM_SETIMAGELIST = (TV_FIRST + 9)

	TVM_GETNEXTITEM = (TV_FIRST + 10)

	TVGN_ROOT            = 0
	TVGN_NEXT            = 0
	TVGN_PREVIOUS        = 0
	TVGN_PARENT          = 0
	TVGN_CHILD           = 0
	TVGN_FIRSTVISIBLE    = 0
	TVGN_NEXTVISIBLE     = 0
	TVGN_PREVIOUSVISIBLE = 0
	TVGN_DROPHILITE      = 0
	TVGN_CARET           = 0
	TVGN_LASTVISIBLE     = 0
	// #if (_WIN32_IE >= 0x0600)
	TVGN_NEXTSELECTED = 0

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	TVSI_NOSINGLEEXPAND = 0 // Should not conflict with TVGN flags.

	TVM_SELECTITEM = (TV_FIRST + 11)

	TVM_GETITEMA = (TV_FIRST + 12)
	TVM_GETITEMW = (TV_FIRST + 62)

	TVM_SETITEMA = (TV_FIRST + 13)
	TVM_SETITEMW = (TV_FIRST + 63)

	TVM_EDITLABELA = (TV_FIRST + 14)
	TVM_EDITLABELW = (TV_FIRST + 65)

	TVM_GETEDITCONTROL = (TV_FIRST + 15)

	TVM_GETVISIBLECOUNT = (TV_FIRST + 16)

	TVM_HITTEST = (TV_FIRST + 17)

	TVHT_NOWHERE         = 0
	TVHT_ONITEMICON      = 0
	TVHT_ONITEMLABEL     = 0
	TVHT_ONITEM          = (TVHT_ONITEMICON | TVHT_ONITEMLABEL | TVHT_ONITEMSTATEICON)
	TVHT_ONITEMINDENT    = 0
	TVHT_ONITEMBUTTON    = 0
	TVHT_ONITEMRIGHT     = 0
	TVHT_ONITEMSTATEICON = 0

	TVHT_ABOVE   = 0
	TVHT_BELOW   = 0
	TVHT_TORIGHT = 0
	TVHT_TOLEFT  = 0

	TVM_CREATEDRAGIMAGE = (TV_FIRST + 18)

	TVM_SORTCHILDREN = (TV_FIRST + 19)

	TVM_ENSUREVISIBLE = (TV_FIRST + 20)

	TVM_SORTCHILDRENCB = (TV_FIRST + 21)

	TVM_ENDEDITLABELNOW = (TV_FIRST + 22)

	TVM_GETISEARCHSTRINGA = (TV_FIRST + 23)
	TVM_GETISEARCHSTRINGW = (TV_FIRST + 64)

	TVM_SETTOOLTIPS = (TV_FIRST + 24)
	// #define TreeView_SetToolTips(hwnd,  hwndTT) \
	//     (HWND)SNDMSG((hwnd), TVM_SETTOOLTIPS, (WPARAM)(hwndTT), 0)
	TVM_GETTOOLTIPS = (TV_FIRST + 25)

	TVM_SETINSERTMARK = (TV_FIRST + 26)

	TVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT

	TVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT

	TVM_SETITEMHEIGHT = (TV_FIRST + 27)
	// #define TreeView_SetItemHeight(hwnd,  iHeight) \
	//     (int)SNDMSG((hwnd), TVM_SETITEMHEIGHT, (WPARAM)(iHeight), 0)
	TVM_GETITEMHEIGHT = (TV_FIRST + 28)

	TVM_SETBKCOLOR = (TV_FIRST + 29)

	TVM_SETTEXTCOLOR = (TV_FIRST + 30)

	TVM_GETBKCOLOR = (TV_FIRST + 31)

	TVM_GETTEXTCOLOR = (TV_FIRST + 32)

	TVM_SETSCROLLTIME = (TV_FIRST + 33)

	TVM_GETSCROLLTIME = (TV_FIRST + 34)

	TVM_SETINSERTMARKCOLOR = (TV_FIRST + 37)
	// #define TreeView_SetInsertMarkColor(hwnd, clr) \
	//     (COLORREF)SNDMSG((hwnd), TVM_SETINSERTMARKCOLOR, 0, (LPARAM)(clr))
	TVM_GETINSERTMARKCOLOR = (TV_FIRST + 38)

	TVM_SETBORDER = (TV_FIRST + 35)

	TVSBF_XBORDER = 0
	TVSBF_YBORDER = 0

	TVM_GETITEMSTATE = (TV_FIRST + 39)

	TVM_SETLINECOLOR = (TV_FIRST + 40)

	TVM_GETLINECOLOR = (TV_FIRST + 41)

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	TVM_MAPACCIDTOHTREEITEM = (TV_FIRST + 42)

	TVM_MAPHTREEITEMTOACCID = (TV_FIRST + 43)

	TVM_SETEXTENDEDSTYLE = (TV_FIRST + 44)

	TVM_GETEXTENDEDSTYLE = (TV_FIRST + 45)

	TVM_SETAUTOSCROLLINFO = (TV_FIRST + 59)

	TVM_SETHOT = (TV_FIRST + 58)

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	TVM_GETSELECTEDCOUNT = (TV_FIRST + 70)

	TVM_SHOWINFOTIP = (TV_FIRST + 71)

	// typedef enum _TVITEMPART
	// {
	TVGIPR_BUTTON = 0x0001

	TVM_GETITEMPARTRECT = (TV_FIRST + 72)

	TVN_SELCHANGINGA = (TVN_FIRST - 1)
	TVN_SELCHANGINGW = (TVN_FIRST - 50)
	TVN_SELCHANGEDA  = (TVN_FIRST - 2)
	TVN_SELCHANGEDW  = (TVN_FIRST - 51)

	TVC_UNKNOWN    = 0
	TVC_BYMOUSE    = 0
	TVC_BYKEYBOARD = 0

	TVN_GETDISPINFOA = (TVN_FIRST - 3)
	TVN_GETDISPINFOW = (TVN_FIRST - 52)
	TVN_SETDISPINFOA = (TVN_FIRST - 4)
	TVN_SETDISPINFOW = (TVN_FIRST - 53)

	TVIF_DI_SETITEM = 0

	// #endif
	TVN_ITEMEXPANDINGA  = (TVN_FIRST - 5)
	TVN_ITEMEXPANDINGW  = (TVN_FIRST - 54)
	TVN_ITEMEXPANDEDA   = (TVN_FIRST - 6)
	TVN_ITEMEXPANDEDW   = (TVN_FIRST - 55)
	TVN_BEGINDRAGA      = (TVN_FIRST - 7)
	TVN_BEGINDRAGW      = (TVN_FIRST - 56)
	TVN_BEGINRDRAGA     = (TVN_FIRST - 8)
	TVN_BEGINRDRAGW     = (TVN_FIRST - 57)
	TVN_DELETEITEMA     = (TVN_FIRST - 9)
	TVN_DELETEITEMW     = (TVN_FIRST - 58)
	TVN_BEGINLABELEDITA = (TVN_FIRST - 10)
	TVN_BEGINLABELEDITW = (TVN_FIRST - 59)
	TVN_ENDLABELEDITA   = (TVN_FIRST - 11)
	TVN_ENDLABELEDITW   = (TVN_FIRST - 60)
	TVN_KEYDOWN         = (TVN_FIRST - 12)

	TVN_GETINFOTIPA  = (TVN_FIRST - 13)
	TVN_GETINFOTIPW  = (TVN_FIRST - 14)
	TVN_SINGLEEXPAND = (TVN_FIRST - 15)

	TVNRET_DEFAULT = 0
	TVNRET_SKIPOLD = 1
	TVNRET_SKIPNEW = 2

	// #if (_WIN32_IE >= 0x0600)
	TVN_ITEMCHANGINGA = (TVN_FIRST - 16)
	TVN_ITEMCHANGINGW = (TVN_FIRST - 17)
	TVN_ITEMCHANGEDA  = (TVN_FIRST - 18)
	TVN_ITEMCHANGEDW  = (TVN_FIRST - 19)
	TVN_ASYNCDRAW     = (TVN_FIRST - 20)

	// // treeview's customdraw return meaning don't draw images.  valid on CDRF_NOTIFYITEMPREPAINT
	TVCDRF_NOIMAGES = 0

	WC_COMBOBOXEXW = "ComboBoxEx32"

	// #ifdef UNICODE
	WC_COMBOBOXEX = WC_COMBOBOXEXW

	CBEIF_TEXT          = 0
	CBEIF_IMAGE         = 0
	CBEIF_SELECTEDIMAGE = 0
	CBEIF_OVERLAY       = 0
	CBEIF_INDENT        = 0
	CBEIF_LPARAM        = 0

	CBEIF_DI_SETITEM = 0

	CBEM_INSERTITEMA      = (WM_USER + 1)
	CBEM_SETIMAGELIST     = (WM_USER + 2)
	CBEM_GETIMAGELIST     = (WM_USER + 3)
	CBEM_GETITEMA         = (WM_USER + 4)
	CBEM_SETITEMA         = (WM_USER + 5)
	CBEM_DELETEITEM       = win.CB_DELETESTRING
	CBEM_GETCOMBOCONTROL  = (WM_USER + 6)
	CBEM_GETEDITCONTROL   = (WM_USER + 7)
	CBEM_SETEXSTYLE       = (WM_USER + 8)  // use  SETEXTENDEDSTYLE instead
	CBEM_SETEXTENDEDSTYLE = (WM_USER + 14) // lparam == new style, wParam (optional) == mask
	CBEM_GETEXSTYLE       = (WM_USER + 9)  // use GETEXTENDEDSTYLE instead
	CBEM_GETEXTENDEDSTYLE = (WM_USER + 9)
	CBEM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
	CBEM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
	CBEM_HASEDITCHANGED   = (WM_USER + 10)
	CBEM_INSERTITEMW      = (WM_USER + 11)
	CBEM_SETITEMW         = (WM_USER + 12)
	CBEM_GETITEMW         = (WM_USER + 13)

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	CBEM_SETWINDOWTHEME = CCM_SETWINDOWTHEME

	CBES_EX_NOEDITIMAGE       = 0
	CBES_EX_NOEDITIMAGEINDENT = 0
	CBES_EX_PATHWORDBREAKPROC = 0
	CBES_EX_NOSIZELIMIT       = 0
	CBES_EX_CASESENSITIVE     = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	CBES_EX_TEXTENDELLIPSIS = 0

	CBEN_GETDISPINFOA = (CBEN_FIRST - 0)
	CBEN_INSERTITEM   = (CBEN_FIRST - 1)
	CBEN_DELETEITEM   = (CBEN_FIRST - 2)
	CBEN_BEGINEDIT    = (CBEN_FIRST - 4)
	CBEN_ENDEDITA     = (CBEN_FIRST - 5)
	CBEN_ENDEDITW     = (CBEN_FIRST - 6)

	CBEN_GETDISPINFOW = (CBEN_FIRST - 7)

	CBEN_DRAGBEGINA = (CBEN_FIRST - 8)
	CBEN_DRAGBEGINW = (CBEN_FIRST - 9)

	CBENF_KILLFOCUS = 1
	CBENF_RETURN    = 2
	CBENF_ESCAPE    = 3
	CBENF_DROPDOWN  = 4

	CBEMAXSTRLEN = 260

	// #define WC_TABCONTROLA          "SysTabControl32"
	WC_TABCONTROLW = "SysTabControl32"

	// #ifdef UNICODE
	WC_TABCONTROL = WC_TABCONTROLW

	TCS_SCROLLOPPOSITE    = 0 // assumes multiline tab
	TCS_BOTTOM            = 0
	TCS_RIGHT             = 0
	TCS_MULTISELECT       = 0 // allow multi-select in button mode
	TCS_FLATBUTTONS       = 0
	TCS_FORCEICONLEFT     = 0
	TCS_FORCELABELLEFT    = 0
	TCS_HOTTRACK          = 0
	TCS_VERTICAL          = 0
	TCS_TABS              = 0
	TCS_BUTTONS           = 0
	TCS_SINGLELINE        = 0
	TCS_MULTILINE         = 0
	TCS_RIGHTJUSTIFY      = 0
	TCS_FIXEDWIDTH        = 0
	TCS_RAGGEDRIGHT       = 0
	TCS_FOCUSONBUTTONDOWN = 0
	TCS_OWNERDRAWFIXED    = 0
	TCS_TOOLTIPS          = 0
	TCS_FOCUSNEVER        = 0

	// // EX styles for use with TCM_SETEXTENDEDSTYLE
	TCS_EX_FLATSEPARATORS = 0
	TCS_EX_REGISTERDROP   = 0

	TCM_GETIMAGELIST = (TCM_FIRST + 2)

	TCM_SETIMAGELIST = (TCM_FIRST + 3)

	TCM_GETITEMCOUNT = (TCM_FIRST + 4)

	TCIF_TEXT       = 0x0001
	TCIF_IMAGE      = 0x0002
	TCIF_RTLREADING = 0x0004
	TCIF_PARAM      = 0x0008
	TCIF_STATE      = 0x0010

	TCIS_BUTTONPRESSED = 0
	TCIS_HIGHLIGHTED   = 0

	TCM_GETITEMA = (TCM_FIRST + 5)
	TCM_GETITEMW = (TCM_FIRST + 60)

	// #ifdef UNICODE
	TCM_GETITEM = TCM_GETITEMW

	TCM_SETITEMA = (TCM_FIRST + 6)
	TCM_SETITEMW = (TCM_FIRST + 61)

	// #ifdef UNICODE
	TCM_SETITEM = TCM_SETITEMW

	TCM_INSERTITEMA = (TCM_FIRST + 7)
	TCM_INSERTITEMW = (TCM_FIRST + 62)

	// #ifdef UNICODE
	TCM_INSERTITEM = TCM_INSERTITEMW

	TCM_DELETEITEM = (TCM_FIRST + 8)

	TCM_DELETEALLITEMS = (TCM_FIRST + 9)

	TCM_GETITEMRECT = (TCM_FIRST + 10)

	TCM_GETCURSEL = (TCM_FIRST + 11)

	TCM_SETCURSEL = (TCM_FIRST + 12)

	TCHT_NOWHERE     = 0
	TCHT_ONITEMICON  = 0
	TCHT_ONITEMLABEL = 0
	TCHT_ONITEM      = (TCHT_ONITEMICON | TCHT_ONITEMLABEL)

	TCM_HITTEST = (TCM_FIRST + 13)

	TCM_SETITEMEXTRA = (TCM_FIRST + 14)

	TCM_ADJUSTRECT = (TCM_FIRST + 40)

	TCM_SETITEMSIZE = (TCM_FIRST + 41)

	TCM_REMOVEIMAGE = (TCM_FIRST + 42)

	TCM_SETPADDING = (TCM_FIRST + 43)

	TCM_GETROWCOUNT = (TCM_FIRST + 44)

	TCM_GETTOOLTIPS = (TCM_FIRST + 45)

	TCM_SETTOOLTIPS = (TCM_FIRST + 46)

	TCM_GETCURFOCUS = (TCM_FIRST + 47)

	TCM_SETCURFOCUS = (TCM_FIRST + 48)

	TCM_SETMINTABWIDTH = (TCM_FIRST + 49)

	TCM_DESELECTALL = (TCM_FIRST + 50)

	TCM_HIGHLIGHTITEM = (TCM_FIRST + 51)

	TCM_SETEXTENDEDSTYLE = (TCM_FIRST + 52) // optional wParam == mask

	TCM_GETEXTENDEDSTYLE = (TCM_FIRST + 53)

	TCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT

	TCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT

	TCN_KEYDOWN = (TCN_FIRST - 0)

	TCN_SELCHANGE   = (TCN_FIRST - 1)
	TCN_SELCHANGING = (TCN_FIRST - 2)
	TCN_GETOBJECT   = (TCN_FIRST - 3)
	TCN_FOCUSCHANGE = (TCN_FIRST - 4)

	ANIMATE_CLASSW = "SysAnimate32"

	// #ifdef UNICODE
	ANIMATE_CLASS = ANIMATE_CLASSW

	ACS_CENTER      = 0
	ACS_TRANSPARENT = 0
	ACS_AUTOPLAY    = 0
	ACS_TIMER       = 0 // don't use threads... use timers

	ACM_OPENA = (WM_USER + 100)
	ACM_OPENW = (WM_USER + 103)

	// #ifdef UNICODE
	ACM_OPEN = ACM_OPENW

	ACM_PLAY      = (WM_USER + 101)
	ACM_STOP      = (WM_USER + 102)
	ACM_ISPLAYING = (WM_USER + 104)

	ACN_START = 1
	ACN_STOP  = 2

	MONTHCAL_CLASSW = "SysMonthCal32"

	// #ifdef UNICODE
	MONTHCAL_CLASS = MONTHCAL_CLASSW

	MCM_FIRST = 0

	// // BOOL MonthCal_GetCurSel(HWND hmc, LPSYSTEMTIME pst)
	// //   returns FALSE if MCS_MULTISELECT
	// //   returns TRUE and sets *pst to the currently selected date otherwise
	MCM_GETCURSEL = (MCM_FIRST + 1)

	// // BOOL MonthCal_SetCurSel(HWND hmc, LPSYSTEMTIME pst)
	// //   returns FALSE if MCS_MULTISELECT
	// //   returns TURE and sets the currently selected date to *pst otherwise
	MCM_SETCURSEL = (MCM_FIRST + 2)

	// // DWORD MonthCal_GetMaxSelCount(HWND hmc)
	// //   returns the maximum number of selectable days allowed
	MCM_GETMAXSELCOUNT = (MCM_FIRST + 3)

	// // BOOL MonthCal_SetMaxSelCount(HWND hmc, UINT n)
	// //   sets the max number days that can be selected iff MCS_MULTISELECT
	MCM_SETMAXSELCOUNT = (MCM_FIRST + 4)

	// // BOOL MonthCal_GetSelRange(HWND hmc, LPSYSTEMTIME rgst)
	// //   sets rgst[0] to the first day of the selection range
	// //   sets rgst[1] to the last day of the selection range
	MCM_GETSELRANGE = (MCM_FIRST + 5)

	// // BOOL MonthCal_SetSelRange(HWND hmc, LPSYSTEMTIME rgst)
	// //   selects the range of days from rgst[0] to rgst[1]
	MCM_SETSELRANGE = (MCM_FIRST + 6)

	// // DWORD MonthCal_GetMonthRange(HWND hmc, DWORD gmr, LPSYSTEMTIME rgst)
	// //   if rgst specified, sets rgst[0] to the starting date and
	// //      and rgst[1] to the ending date of the the selectable (non-grayed)
	// //      days if GMR_VISIBLE or all the displayed days (including grayed)
	// //      if GMR_DAYSTATE.
	// //   returns the number of months spanned by the above range.
	MCM_GETMONTHRANGE = (MCM_FIRST + 7)

	// // BOOL MonthCal_SetDayState(HWND hmc, int cbds, DAYSTATE *rgds)
	// //   cbds is the count of DAYSTATE items in rgds and it must be equal
	// //   to the value returned from MonthCal_GetMonthRange(hmc, GMR_DAYSTATE, NULL)
	// //   This sets the DAYSTATE bits for each month (grayed and non-grayed
	// //   days) displayed in the calendar. The first bit in a month's DAYSTATE
	// //   corresponts to bolding day 1, the second bit affects day 2, etc.
	MCM_SETDAYSTATE = (MCM_FIRST + 8)

	// // BOOL MonthCal_GetMinReqRect(HWND hmc, LPRECT prc)
	// //   sets *prc the minimal size needed to display one month
	// //   To display two months, undo the AdjustWindowRect calculation already done to
	// //   this rect, double the width, and redo the AdjustWindowRect calculation --
	// //   the monthcal control will display two calendars in this window (if you also
	// //   double the vertical size, you will get 4 calendars)
	// //   NOTE: if you want to gurantee that the "Today" string is not clipped,
	// //   get the MCM_GETMAXTODAYWIDTH and use the max of that width and this width
	MCM_GETMINREQRECT = (MCM_FIRST + 9)

	// // set colors to draw control with -- see MCSC_ bits below
	MCM_SETCOLOR = (MCM_FIRST + 10)

	MCM_GETCOLOR = (MCM_FIRST + 11)

	MCSC_BACKGROUND   = 0 // the background color (between months)
	MCSC_TEXT         = 1 // the dates
	MCSC_TITLEBK      = 2 // background of the title
	MCSC_TITLETEXT    = 3
	MCSC_MONTHBK      = 4 // background within the month cal
	MCSC_TRAILINGTEXT = 5 // the text color of header & trailing days

	// // set what day is "today"   send NULL to revert back to real date
	MCM_SETTODAY = (MCM_FIRST + 12)

	// // get what day is "today"
	// // returns BOOL for success/failure
	MCM_GETTODAY = (MCM_FIRST + 13)

	// // determine what pinfo->pt is over
	MCM_HITTEST = (MCM_FIRST + 14)

	MCHT_TITLE     = 0
	MCHT_CALENDAR  = 0
	MCHT_TODAYLINK = 0

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	MCHT_CALENDARCONTROL = 0

	MCHT_NEXT = 0 // these indicate that hitting
	MCHT_PREV = 0 // here will go to the next/prev month

	MCHT_NOWHERE = 0

	MCHT_TITLEBK      = (MCHT_TITLE)
	MCHT_TITLEMONTH   = (MCHT_TITLE | 0x0001)
	MCHT_TITLEYEAR    = (MCHT_TITLE | 0x0002)
	MCHT_TITLEBTNNEXT = (MCHT_TITLE | MCHT_NEXT | 0x0003)
	MCHT_TITLEBTNPREV = (MCHT_TITLE | MCHT_PREV | 0x0003)

	MCHT_CALENDARBK       = (MCHT_CALENDAR)
	MCHT_CALENDARDATE     = (MCHT_CALENDAR | 0x0001)
	MCHT_CALENDARDATENEXT = (MCHT_CALENDARDATE | MCHT_NEXT)
	MCHT_CALENDARDATEPREV = (MCHT_CALENDARDATE | MCHT_PREV)
	MCHT_CALENDARDAY      = (MCHT_CALENDAR | 0x0002)
	MCHT_CALENDARWEEKNUM  = (MCHT_CALENDAR | 0x0003)
	MCHT_CALENDARDATEMIN  = (MCHT_CALENDAR | 0x0004)
	MCHT_CALENDARDATEMAX  = (MCHT_CALENDAR | 0x0005)

	// // set first day of week to iDay:
	// // 0 for Monday, 1 for Tuesday, ..., 6 for Sunday
	// // -1 for means use locale info
	MCM_SETFIRSTDAYOFWEEK = (MCM_FIRST + 15)

	// // DWORD result...  low word has the day.  high word is bool if this is app set
	// or not (FALSE == using locale info)
	MCM_GETFIRSTDAYOFWEEK = (MCM_FIRST + 16)

	// // DWORD MonthCal_GetRange(HWND hmc, LPSYSTEMTIME rgst)
	// //   modifies rgst[0] to be the minimum ALLOWABLE systemtime (or 0 if no minimum)
	// //   modifies rgst[1] to be the maximum ALLOWABLE systemtime (or 0 if no maximum)
	// //   returns GDTR_MIN|GDTR_MAX if there is a minimum|maximum limit
	MCM_GETRANGE = (MCM_FIRST + 17)

	// // BOOL MonthCal_SetRange(HWND hmc, DWORD gdtr, LPSYSTEMTIME rgst)
	// //   if GDTR_MIN, sets the minimum ALLOWABLE systemtime to rgst[0], otherwise removes minimum
	// //   if GDTR_MAX, sets the maximum ALLOWABLE systemtime to rgst[1], otherwise removes maximum
	// //   returns TRUE on success, FALSE on error (such as invalid parameters)
	MCM_SETRANGE = (MCM_FIRST + 18)

	// // int MonthCal_GetMonthDelta(HWND hmc)
	// //   returns the number of months one click on a next/prev button moves by
	MCM_GETMONTHDELTA = (MCM_FIRST + 19)

	// // int MonthCal_SetMonthDelta(HWND hmc, int n)
	//   sets the month delta to n. n==0 reverts to moving by a page of months
	// //   returns the previous value of n.
	MCM_SETMONTHDELTA = (MCM_FIRST + 20)

	// // DWORD MonthCal_GetMaxTodayWidth(HWND hmc, LPSIZE psz)
	// //   sets *psz to the maximum width/height of the "Today" string displayed
	// //   at the bottom of the calendar (as long as MCS_NOTODAY is not specified)
	MCM_GETMAXTODAYWIDTH = (MCM_FIRST + 21)

	MCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT

	MCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	// // View
	MCMV_MONTH   = 0
	MCMV_YEAR    = 1
	MCMV_DECADE  = 2
	MCMV_CENTURY = 3
	MCMV_MAX     = MCMV_CENTURY

	MCM_GETCURRENTVIEW = (MCM_FIRST + 22)

	MCM_GETCALENDARCOUNT = (MCM_FIRST + 23)

	// // Part
	MCGIP_CALENDARCONTROL = 0
	MCGIP_NEXT            = 1
	MCGIP_PREV            = 2
	MCGIP_FOOTER          = 3
	MCGIP_CALENDAR        = 4
	MCGIP_CALENDARHEADER  = 5
	MCGIP_CALENDARBODY    = 6
	MCGIP_CALENDARROW     = 7
	MCGIP_CALENDARCELL    = 8

	MCGIF_DATE = 0
	MCGIF_RECT = 0
	MCGIF_NAME = 0

	MCM_GETCALENDARGRIDINFO = (MCM_FIRST + 24)

	MCM_GETCALID = (MCM_FIRST + 27)

	MCM_SETCALID = (MCM_FIRST + 28)

	// // Returns the min rect that will fit the max number of calendars for the passed in rect.
	MCM_SIZERECTTOMIN = (MCM_FIRST + 29)

	MCM_SETCALENDARBORDER = (MCM_FIRST + 30)

	MCM_GETCALENDARBORDER = (MCM_FIRST + 31)

	MCM_SETCURRENTVIEW = (MCM_FIRST + 32)

	MCN_SELCHANGE = (MCN_FIRST - 3) // -749

	MCN_GETDAYSTATE = (MCN_FIRST - 1) // -747

	MCN_SELECT = (MCN_FIRST) // -746

	MCN_VIEWCHANGE = (MCN_FIRST - 4) // -750

	MCS_DAYSTATE      = 0
	MCS_MULTISELECT   = 0
	MCS_WEEKNUMBERS   = 0
	MCS_NOTODAYCIRCLE = 0
	MCS_NOTODAY       = 0
	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	MCS_NOTRAILINGDATES  = 0
	MCS_SHORTDAYSOFWEEK  = 0
	MCS_NOSELCHANGEONNAV = 0

	GMR_VISIBLE  = 0 // visible portion of display
	GMR_DAYSTATE = 1 // above plus the grayed out parts of

	DATETIMEPICK_CLASSW = "SysDateTimePick32"

	// #ifdef UNICODE
	DATETIMEPICK_CLASS = DATETIMEPICK_CLASSW

	DTM_FIRST = 0

	// // DWORD DateTimePick_GetSystemtime(HWND hdp, LPSYSTEMTIME pst)
	// //   returns GDT_NONE if "none" is selected (DTS_SHOWNONE only)
	// //   returns GDT_VALID and modifies *pst to be the currently selected value
	DTM_GETSYSTEMTIME = (DTM_FIRST + 1)

	// // BOOL DateTime_SetSystemtime(HWND hdp, DWORD gd, LPSYSTEMTIME pst)
	//   if gd==GDT_NONE, sets datetimepick to None (DTS_SHOWNONE only)
	//   if gd==GDT_VALID, sets datetimepick to *pst
	// //   returns TRUE on success, FALSE on error (such as bad params)
	DTM_SETSYSTEMTIME = (DTM_FIRST + 2)

	// // DWORD DateTime_GetRange(HWND hdp, LPSYSTEMTIME rgst)
	// //   modifies rgst[0] to be the minimum ALLOWABLE systemtime (or 0 if no minimum)
	// //   modifies rgst[1] to be the maximum ALLOWABLE systemtime (or 0 if no maximum)
	// //   returns GDTR_MIN|GDTR_MAX if there is a minimum|maximum limit
	DTM_GETRANGE = (DTM_FIRST + 3)

	// // BOOL DateTime_SetRange(HWND hdp, DWORD gdtr, LPSYSTEMTIME rgst)
	// //   if GDTR_MIN, sets the minimum ALLOWABLE systemtime to rgst[0], otherwise removes minimum
	// //   if GDTR_MAX, sets the maximum ALLOWABLE systemtime to rgst[1], otherwise removes maximum
	// //   returns TRUE on success, FALSE on error (such as invalid parameters)
	DTM_SETRANGE = (DTM_FIRST + 4)

	// // BOOL DateTime_SetFormat(HWND hdp, LPCTSTR sz)
	// //   sets the display formatting string to sz (see GetDateFormat and GetTimeFormat for valid formatting chars)
	// //   NOTE: 'X' is a valid formatting character which indicates that the application
	// //   will determine how to display information. Such apps must support DTN_WMKEYDOWN,
	// //   DTN_FORMAT, and DTN_FORMATQUERY.
	DTM_SETFORMATA = (DTM_FIRST + 5)
	DTM_SETFORMATW = (DTM_FIRST + 50)

	// #ifdef UNICODE
	DTM_SETFORMAT = DTM_SETFORMATW

	DTM_SETMCCOLOR = (DTM_FIRST + 6)

	DTM_GETMCCOLOR = (DTM_FIRST + 7)

	// // HWND DateTime_GetMonthCal(HWND hdp)
	// //   returns the HWND of the MonthCal popup window. Only valid
	// // between DTN_DROPDOWN and DTN_CLOSEUP notifications.
	DTM_GETMONTHCAL = (DTM_FIRST + 8)

	DTM_SETMCFONT = (DTM_FIRST + 9)

	DTM_GETMCFONT = (DTM_FIRST + 10)

	DTM_SETMCSTYLE = (DTM_FIRST + 11)

	DTM_GETMCSTYLE = (DTM_FIRST + 12)

	DTM_CLOSEMONTHCAL = (DTM_FIRST + 13)

	// // DateTime_GetDateTimePickerInfo(HWND hdp, DATETIMEPICKERINFO* pdtpi)
	// // Retrieves information about the selected date time picker.
	DTM_GETDATETIMEPICKERINFO = (DTM_FIRST + 14)

	DTM_GETIDEALSIZE = (DTM_FIRST + 15)

	DTS_UPDOWN                 = 0 // use UPDOWN instead of MONTHCAL
	DTS_SHOWNONE               = 0 // allow a NONE selection
	DTS_SHORTDATEFORMAT        = 0 // use the short date format (app must forward WM_WININICHANGE messages)
	DTS_LONGDATEFORMAT         = 0 // use the long date format (app must forward WM_WININICHANGE messages)
	DTS_SHORTDATECENTURYFORMAT = 0 // short date format with century (app must forward WM_WININICHANGE messages)
	DTS_TIMEFORMAT             = 0 // use the time format (app must forward WM_WININICHANGE messages)
	DTS_APPCANPARSE            = 0 // allow user entered strings (app MUST respond to DTN_USERSTRING)
	DTS_RIGHTALIGN             = 0 // right-align popup instead of left-align it

	DTN_DATETIMECHANGE = (DTN_FIRST2 - 6) // the systemtime has changed, -759

	DTN_USERSTRINGA = (DTN_FIRST2 - 5) // the user has entered a string, -758
	DTN_USERSTRINGW = (DTN_FIRST - 5)  // -745

	DTN_WMKEYDOWNA = (DTN_FIRST2 - 4) // modify keydown on app format field (X), , -757
	DTN_WMKEYDOWNW = (DTN_FIRST - 4)  // -744

	DTN_FORMATA = (DTN_FIRST2 - 3) // query display for app format field (X), -756
	DTN_FORMATW = (DTN_FIRST - 3)  // -743

	DTN_FORMATQUERYA = (DTN_FIRST2 - 2) // query formatting info for app format field (X), -755
	DTN_FORMATQUERYW = (DTN_FIRST - 2)  // -742

	DTN_DROPDOWN = (DTN_FIRST2 - 1) // MonthCal has dropped down, -754
	DTN_CLOSEUP  = (DTN_FIRST2)     // MonthCal is popping up, -753

	GDTR_MIN = 0
	GDTR_MAX = 0

	// #define GDT_ERROR    -1
	GDT_VALID = 0
	GDT_NONE  = 1

	IPM_CLEARADDRESS = (WM_USER + 100) // no parameters
	IPM_SETADDRESS   = (WM_USER + 101) // lparam = TCP/IP address
	IPM_GETADDRESS   = (WM_USER + 102) // lresult = # of non black fields.  lparam = LPDWORD for TCP/IP address
	IPM_SETRANGE     = (WM_USER + 103) // wparam = field, lparam = range
	IPM_SETFOCUS     = (WM_USER + 104) // wparam = field
	IPM_ISBLANK      = (WM_USER + 105) // no parameters

	WC_IPADDRESSW = "SysIPAddress32"

	// #ifdef UNICODE
	WC_IPADDRESS = WC_IPADDRESSW

	IPN_FIELDCHANGED = (IPN_FIRST - 0)

	// //Pager Class Name
	WC_PAGESCROLLERW = "SysPager"

	// #ifdef UNICODE
	WC_PAGESCROLLER = WC_PAGESCROLLERW

	PGS_VERT       = 0
	PGS_HORZ       = 0
	PGS_AUTOSCROLL = 0
	PGS_DRAGNDROP  = 0

	// //---------------------------------------------------------------------------------------
	// // Pager Button State
	// //---------------------------------------------------------------------------------------
	// //The scroll can be in one of the following control State
	PGF_INVISIBLE = 0 // Scroll button is not visible
	PGF_NORMAL    = 1 // Scroll button is in normal state
	PGF_GRAYED    = 2 // Scroll button is in grayed state
	PGF_DEPRESSED = 4 // Scroll button is in depressed state
	PGF_HOT       = 8 // Scroll button is in hot state

	// // The following identifiers specifies the button control
	PGB_TOPORLEFT     = 0
	PGB_BOTTOMORRIGHT = 1

	// //---------------------------------------------------------------------------------------
	// // Pager Control  Messages
	// //---------------------------------------------------------------------------------------
	PGM_SETCHILD = (PGM_FIRST + 1) // lParam == hwnd

	PGM_RECALCSIZE = (PGM_FIRST + 2)

	PGM_FORWARDMOUSE = (PGM_FIRST + 3)

	PGM_SETBKCOLOR = (PGM_FIRST + 4)

	PGM_GETBKCOLOR = (PGM_FIRST + 5)

	PGM_SETBORDER = (PGM_FIRST + 6)

	PGM_GETBORDER = (PGM_FIRST + 7)

	PGM_SETPOS = (PGM_FIRST + 8)

	PGM_GETPOS = (PGM_FIRST + 9)

	PGM_SETBUTTONSIZE = (PGM_FIRST + 10)

	PGM_GETBUTTONSIZE = (PGM_FIRST + 11)

	PGM_GETBUTTONSTATE = (PGM_FIRST + 12)

	PGM_GETDROPTARGET = CCM_GETDROPTARGET

	PGM_SETSCROLLINFO = (PGM_FIRST + 13)

	PGN_SCROLL = (PGN_FIRST - 1)

	PGF_SCROLLUP    = 1
	PGF_SCROLLDOWN  = 2
	PGF_SCROLLLEFT  = 4
	PGF_SCROLLRIGHT = 8

	// //Keys down
	PGK_SHIFT   = 1
	PGK_CONTROL = 2
	PGK_MENU    = 4

	PGN_CALCSIZE = (PGN_FIRST - 2)

	PGF_CALCWIDTH  = 1
	PGF_CALCHEIGHT = 2

	PGN_HOTITEMCHANGE = (PGN_FIRST - 3)

	// //
	// === Native Font Control ===
	// //
	// #ifndef NONATIVEFONTCTL
	// //NativeFont Class Name
	WC_NATIVEFONTCTLW = "NativeFontCtl"

	// #ifdef UNICODE
	WC_NATIVEFONTCTL = WC_NATIVEFONTCTLW

	// // style definition
	NFS_EDIT         = 0
	NFS_STATIC       = 0
	NFS_LISTCOMBO    = 0
	NFS_BUTTON       = 0
	NFS_ALL          = 0
	NFS_USEFONTASSOC = 0

	// // Button Class Name
	// #define WC_BUTTONA              "Button"
	WC_BUTTONW = "Button"

	// #ifdef UNICODE
	WC_BUTTON = WC_BUTTONW

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	BUTTON_IMAGELIST_ALIGN_LEFT   = 0
	BUTTON_IMAGELIST_ALIGN_RIGHT  = 1
	BUTTON_IMAGELIST_ALIGN_TOP    = 2
	BUTTON_IMAGELIST_ALIGN_BOTTOM = 3
	BUTTON_IMAGELIST_ALIGN_CENTER = 4 // Doesn't draw text

	BCM_GETIDEALSIZE = (BCM_FIRST + 0x0001)

	BCM_SETIMAGELIST = (BCM_FIRST + 0x0002)

	BCM_GETIMAGELIST = (BCM_FIRST + 0x0003)

	BCM_SETTEXTMARGIN = (BCM_FIRST + 0x0004)
	// #define Button_SetTextMargin(hwnd, pmargin)\
	//     (BOOL)SNDMSG((hwnd), BCM_SETTEXTMARGIN, 0, (LPARAM)(pmargin))
	BCM_GETTEXTMARGIN = (BCM_FIRST + 0x0005)

	BCN_HOTITEMCHANGE = (BCN_FIRST + 0x0001)

	BST_HOT = 0

	// // BUTTON STATE FLAGS
	BST_DROPDOWNPUSHED = 0

	// // BUTTON STYLES
	BS_SPLITBUTTON    = 0
	BS_DEFSPLITBUTTON = 0
	BS_COMMANDLINK    = 0
	BS_DEFCOMMANDLINK = 0

	// // SPLIT BUTTON INFO mask flags
	BCSIF_GLYPH = 0
	BCSIF_IMAGE = 0
	BCSIF_STYLE = 0
	BCSIF_SIZE  = 0

	// // SPLIT BUTTON STYLE flags
	BCSS_NOSPLIT   = 0
	BCSS_STRETCH   = 0
	BCSS_ALIGNLEFT = 0
	BCSS_IMAGE     = 0

	// // BUTTON MESSAGES
	BCM_SETDROPDOWNSTATE = (BCM_FIRST + 0x0006)

	BCM_SETSPLITINFO = (BCM_FIRST + 0x0007)

	BCM_GETSPLITINFO = (BCM_FIRST + 0x0008)

	BCM_SETNOTE = (BCM_FIRST + 0x0009)

	BCM_GETNOTE = (BCM_FIRST + 0x000A)

	BCM_GETNOTELENGTH = (BCM_FIRST + 0x000B)

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	// // Macro to use on a button or command link to display an elevated icon
	BCM_SETSHIELD = (BCM_FIRST + 0x000C)

	BCN_DROPDOWN = (BCN_FIRST + 0x0002)

	// // Static Class Name
	// #define WC_STATICA              "Static"
	WC_STATICW = "Static"

	// #ifdef UNICODE
	WC_STATIC = WC_STATICW

	// // Edit Class Name
	// #define WC_EDITA                "Edit"
	WC_EDITW = "Edit"

	// #ifdef UNICODE
	WC_EDIT = WC_EDITW

	// #if (NTDDI_VERSION >= NTDDI_WINXP)
	EM_SETCUEBANNER = (ECM_FIRST + 1) // Set the cue banner with the lParm = LPCWSTR
	// #define Edit_SetCueBannerText(hwnd, lpcwText) \
	//         (BOOL)SNDMSG((hwnd), EM_SETCUEBANNER, 0, (LPARAM)(lpcwText))
	// #define Edit_SetCueBannerTextFocused(hwnd, lpcwText, fDrawFocused) \
	//         (BOOL)SNDMSG((hwnd), EM_SETCUEBANNER, (WPARAM)fDrawFocused, (LPARAM)lpcwText)
	EM_GETCUEBANNER = (ECM_FIRST + 2) // Set the cue banner with the lParm = LPCWSTR

	// typedef struct _tagEDITBALLOONTIP
	// {
	//     DWORD   cbStruct;
	//     LPCWSTR pszTitle;
	//     LPCWSTR pszText;
	//     INT     ttiIcon; // From TTI_*
	// } EDITBALLOONTIP, *PEDITBALLOONTIP;
	EM_SHOWBALLOONTIP = (ECM_FIRST + 3) // Show a balloon tip associated to the edit control
	// #define Edit_ShowBalloonTip(hwnd, peditballoontip) \
	//         (BOOL)SNDMSG((hwnd), EM_SHOWBALLOONTIP, 0, (LPARAM)(peditballoontip))
	EM_HIDEBALLOONTIP = (ECM_FIRST + 4) // Hide any balloon tip associated with the edit control

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	EM_SETHILITE = (ECM_FIRST + 5)
	// #define Edit_SetHilite(hwndCtl, ichStart, ichEnd)  ((void)SNDMSG((hwndCtl), EM_SETHILITE, (ichStart), (ichEnd)))
	EM_GETHILITE = (ECM_FIRST + 6)

	EM_NOSETFOCUS = (ECM_FIRST + 7)

	EM_TAKEFOCUS = (ECM_FIRST + 8)

	// // Listbox Class Name
	// #define WC_LISTBOXA             "ListBox"
	WC_LISTBOXW = "ListBox"

	// #ifdef UNICODE
	WC_LISTBOX = WC_LISTBOXW

	// // Combobox Class Name
	// #define WC_COMBOBOXA            "ComboBox"
	WC_COMBOBOXW = "ComboBox"

	// #ifdef UNICODE
	WC_COMBOBOX = WC_COMBOBOXW

	// // custom combobox control messages
	CB_SETMINVISIBLE = (CBM_FIRST + 1)
	CB_GETMINVISIBLE = (CBM_FIRST + 2)
	CB_SETCUEBANNER  = (CBM_FIRST + 3)
	CB_GETCUEBANNER  = (CBM_FIRST + 4)

	// // Scrollbar Class Name
	// #define WC_SCROLLBARA            "ScrollBar"
	WC_SCROLLBARW = "ScrollBar"

	// #ifdef UNICODE
	WC_SCROLLBAR = WC_SCROLLBARW

	// enum _TASKDIALOG_FLAGS
	// {
	TDF_ENABLE_HYPERLINKS           = 0x0001
	TDF_USE_HICON_MAIN              = 0x0002
	TDF_USE_HICON_FOOTER            = 0x0004
	TDF_ALLOW_DIALOG_CANCELLATION   = 0x0008
	TDF_USE_COMMAND_LINKS           = 0x0010
	TDF_USE_COMMAND_LINKS_NO_ICON   = 0x0020
	TDF_EXPAND_FOOTER_AREA          = 0x0040
	TDF_EXPANDED_BY_DEFAULT         = 0x0080
	TDF_VERIFICATION_FLAG_CHECKED   = 0x0100
	TDF_SHOW_PROGRESS_BAR           = 0x0200
	TDF_SHOW_MARQUEE_PROGRESS_BAR   = 0x0400
	TDF_CALLBACK_TIMER              = 0x0800
	TDF_POSITION_RELATIVE_TO_WINDOW = 0x1000
	TDF_RTL_LAYOUT                  = 0x2000
	TDF_NO_DEFAULT_RADIO_BUTTON     = 0x4000
	TDF_CAN_BE_MINIMIZED            = 0x8000
	// #if (NTDDI_VERSION >= NTDDI_WIN8)
	TDF_NO_SET_FOREGROUND = 0x00010000 // Don't call SetForegroundWindow() when activating the dialog
	// #endif // (NTDDI_VERSION >= NTDDI_WIN8)
	TDF_SIZE_TO_CONTENT = 0x01000000 // used by ShellMessageBox to emulate MessageBox sizing behavior

	// typedef enum _TASKDIALOG_MESSAGES
	// {
	TDM_NAVIGATE_PAGE                       = WM_USER + 101
	TDM_CLICK_BUTTON                        = WM_USER + 102 // wParam = Button ID
	TDM_SET_MARQUEE_PROGRESS_BAR            = WM_USER + 103 // wParam = 0 (nonMarque) wParam != 0 (Marquee)
	TDM_SET_PROGRESS_BAR_STATE              = WM_USER + 104 // wParam = new progress state
	TDM_SET_PROGRESS_BAR_RANGE              = WM_USER + 105 // lParam = MAKELPARAM(nMinRange, nMaxRange)
	TDM_SET_PROGRESS_BAR_POS                = WM_USER + 106 // wParam = new position
	TDM_SET_PROGRESS_BAR_MARQUEE            = WM_USER + 107 // wParam = 0 (stop marquee), wParam != 0 (start marquee), lparam = speed (milliseconds between repaints)
	TDM_SET_ELEMENT_TEXT                    = WM_USER + 108 // wParam = element (TASKDIALOG_ELEMENTS), lParam = new element text (LPCWSTR)
	TDM_CLICK_RADIO_BUTTON                  = WM_USER + 110 // wParam = Radio Button ID
	TDM_ENABLE_BUTTON                       = WM_USER + 111 // lParam = 0 (disable), lParam != 0 (enable), wParam = Button ID
	TDM_ENABLE_RADIO_BUTTON                 = WM_USER + 112 // lParam = 0 (disable), lParam != 0 (enable), wParam = Radio Button ID
	TDM_CLICK_VERIFICATION                  = WM_USER + 113 // wParam = 0 (unchecked), 1 (checked), lParam = 1 (set key focus)
	TDM_UPDATE_ELEMENT_TEXT                 = WM_USER + 114 // wParam = element (TASKDIALOG_ELEMENTS), lParam = new element text (LPCWSTR)
	TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE = WM_USER + 115 // wParam = Button ID, lParam = 0 (elevation not required), lParam != 0 (elevation required)
	TDM_UPDATE_ICON                         = WM_USER + 116 // wParam = icon element (TASKDIALOG_ICON_ELEMENTS), lParam = new icon (hIcon if TDF_USE_HICON_* was set, PCWSTR otherwise)

	// typedef enum _TASKDIALOG_NOTIFICATIONS
	// {
	TDN_CREATED                = 0
	TDN_NAVIGATED              = 1
	TDN_BUTTON_CLICKED         = 2 // wParam = Button ID
	TDN_HYPERLINK_CLICKED      = 3 // lParam = (LPCWSTR)pszHREF
	TDN_TIMER                  = 4 // wParam = Milliseconds since dialog created or timer reset
	TDN_DESTROYED              = 5
	TDN_RADIO_BUTTON_CLICKED   = 6 // wParam = Radio Button ID
	TDN_DIALOG_CONSTRUCTED     = 7
	TDN_VERIFICATION_CLICKED   = 8 // wParam = 1 if checkbox checked, 0 if not, lParam is unused and always 0
	TDN_HELP                   = 9
	TDN_EXPANDO_BUTTON_CLICKED = 10 // wParam = 0 (dialog is now collapsed), wParam != 0 (dialog is now expanded)

	// #if (NTDDI_VERSION >= NTDDI_VISTA)
	// enum _TASKDIALOG_COMMON_BUTTON_FLAGS
	// {
	TDCBF_OK_BUTTON     = 0x0001 // selected control return value IDOK
	TDCBF_YES_BUTTON    = 0x0002 // selected control return value IDYES
	TDCBF_NO_BUTTON     = 0x0004 // selected control return value IDNO
	TDCBF_CANCEL_BUTTON = 0x0008 // selected control return value IDCANCEL
	TDCBF_RETRY_BUTTON  = 0x0010 // selected control return value IDRETRY
	TDCBF_CLOSE_BUTTON  = 0x0020 // selected control return value IDCLOSE

	// //
	// // If the messages for TrackMouseEvent have not been defined then define them
	// // now.
	// //
	// #ifndef WM_MOUSEHOVER
	WM_MOUSEHOVER = 0
	WM_MOUSELEAVE = 0

	TME_HOVER = 0
	TME_LEAVE = 0
	// #if (WINVER >= 0x0500)
	TME_NONCLIENT = 0
	// #endif /* WINVER >= 0x0500 */
	TME_QUERY  = 0
	TME_CANCEL = 0

	HOVER_DEFAULT = 0

	WSB_PROP_CYVSCROLL = 0
	WSB_PROP_CXHSCROLL = 0
	WSB_PROP_CYHSCROLL = 0
	WSB_PROP_CXVSCROLL = 0
	WSB_PROP_CXHTHUMB  = 0
	WSB_PROP_CYVTHUMB  = 0
	WSB_PROP_VBKGCOLOR = 0
	WSB_PROP_HBKGCOLOR = 0
	WSB_PROP_VSTYLE    = 0
	WSB_PROP_HSTYLE    = 0
	WSB_PROP_WINSTYLE  = 0
	WSB_PROP_PALETTE   = 0
	WSB_PROP_MASK      = 0

	FSB_FLAT_MODE    = 2
	FSB_ENCARTA_MODE = 1
	FSB_REGULAR_MODE = 0
)
  • NOTE: All Message Numbers below 0x0400 are RESERVED. *
  • Private Window Messages Start Here:

#define WM_USER 0x0400

View Source
const (
	// #if(WINVER >= 0x0600)
	//#define BM_SETDONTCLICK    0x00F8
	//#endif /* WINVER >= 0x0600 */
	BM_SETDONTCLICK = 0x00F8
)

Button message constants

Variables

View Source
var TD_ERROR_ICON = -2
View Source
var TD_INFORMATION_ICON = -3
View Source
var TD_SHIELD_ICON = -4
View Source
var TD_WARNING_ICON = -1

Functions

func CreateMutex

func CreateMutex(name string) (uintptr, error)

CreateMutex kernel32 API CreateMutex

func FindWindowEx

func FindWindowEx(hWndParent win.HWND, hWndChildAfter win.HWND, lpClassName, lpWindowName *uint16) win.HWND

FindWindowEx user32 API FindWindowEx

func FlashWindow added in v0.0.5

func FlashWindow(hWnd win.HWND, bInvert int) int

func GetNextWindow

func GetNextWindow(hWnd win.HWND, wCmd uintptr) win.HWND

GetNextWindow user32 API GetNextWindow

func GetSystemDefaultLocaleName

func GetSystemDefaultLocaleName() string

func OpenMutex

func OpenMutex(dwDesiredAccess uintptr, bInheritHandle uintptr, lpName string) (uintptr, error)

OpenMutex kernel32 API OpenMutex 2031617 SYNCRONIZE

Types

type PBRANGE added in v0.0.4

type PBRANGE struct {
	Low, High int
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL