Unit CommCtrlEx

////////////////////////////////////////////////////////////////////////////// COMMCTRLEX // ////////////////////////////////////////////////////////////////////////////// Enhanced COMMCTRL for D2 // * some constants and functions forgoten by Borland,... // ////////////////////////////////////////////////////////////////////////////// Version 1.2 // Date de création : 10/03/1997 // Date dernière modification : 20/10/1997 // ////////////////////////////////////////////////////////////////////////////// Jean-Luc Mattei // jlucm@club-internet.fr // ////////////////////////////////////////////////////////////////////////////// REVISIONS : // // 1.1 : // * Added (some) IE4 TabControl constants // 1.2 : // * Some IE4 TAB CONTROL declarations where missing // (thanks to Gerhard Volk) // 1.3 : * PageScroller const, type & func // * NativeFontControl const, type & func // //////////////////////////////////////////////////////////////////////////////

Classes

Functions

DateTime_GetMonthCal - SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0) HWND DateTime_GetMonthCal(HWND hdp) returns the HWND of the MonthCal popup window.
DateTime_GetMonthCalColor - SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr
DateTime_GetMonthCalFont - SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)hfont, (LPARAM)fRedraw
DateTime_GetRange - (BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (LPARAM)(gd), (LPARAM)(pst)) 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
DateTime_GetSystemtime - 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
DateTime_SetFormat -
DateTime_SetFormatA - (BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) 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.
DateTime_SetFormatW -
DateTime_SetMonthCalColor - (BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz
DateTime_SetMonthCalFont - (HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0
DateTime_SetRange - (DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst)) 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
DateTime_SetSystemtime - (DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst)) 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
First_IPAdress - #define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4)))) Get individual number
Fourth_IPAdress - #define THIRD_IPADDRESS(x) ((x>>8) & 0xff
InitComboExCommonControlEx -
InitCommonControlsEx - native font control

#define FOURTH_IPADDRESS(x) (x & 0xff
InitCoolBarCommonControlEx -
InitIPAdressCommonControlEx -
InitPickerCommonControlEx -
InitTabCommonControlEx -
InitToolBarCommonControlEx -
MakeIPAdress - #define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low))) And this is a useful macro for making the IP Address to be passed as a LPARAM.
MakeIPRange - The following is a useful macro for passing the range values in the IPM_SETRANGE message.
MonthCal_GetColor -
MonthCal_GetCurSel - BOOL MonthCal_GetCurSel(HWND hmc, LPSYSTEMTIME pst) returns FALSE if MCS_MULTISELECT returns TRUE and sets *pst to the currently selected date otherwise
MonthCal_GetFirstDayOfWeek - SNDMSG(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay) DWORD result.
MonthCal_GetMaxSelCount - (BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst)) DWORD MonthCal_GetMaxSelCount(HWND hmc) returns the maximum number of selectable days allowed
MonthCal_GetMinReqRect - SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds)) BOOL MonthCal_GetMinReqRect(HWND hmc, LPRECT prc) sets *prc the minimal size needed to display one month
MonthCal_GetMonthDelta - (BOOL)SNDMSG(hmc, MCM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) int MonthCal_GetMonthDelta(HWND hmc) returns the number of months one click on a next/prev button moves by
MonthCal_GetMonthRange - SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst)) 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.
MonthCal_GetRange - (DWORD)SNDMSG(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0) 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
MonthCal_GetSelRange - (BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), 0L) 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
MonthCal_GetToday - SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)pst) get what day is "today" returns BOOL for success/failure
MonthCal_HitTest - (BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)pst) determine what pinfo->pt is over
MonthCal_SetColor -
MonthCal_SetCurSel - (BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst)) BOOL MonthCal_SetCurSel(HWND hmc, LPSYSTEMTIME pst) returns FALSE if MCS_MULTISELECT returns TURE and sets the currently selected date to *pst otherwise
MonthCal_SetDayState - (DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst)) 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.
MonthCal_SetFirstDayOfWeek -
MonthCal_SetMaxSelCount - (DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, 0L) BOOL MonthCal_SetMaxSelCount(HWND hmc, UINT n) sets the max number days that can be selected iff MCS_MULTISELECT
MonthCal_SetMonthDelta - (int)SNDMSG(hmc, MCM_GETMONTHDELTA, 0, 0) int MonthCal_SetMonthDelta(HWND hmc, int n) sets the month delta to n.
MonthCal_SetRange - (DWORD)SNDMSG(hmc, MCM_GETRANGE, 0, (LPARAM)(rgst)) 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
MonthCal_SetSelRange - SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst)) BOOL MonthCal_SetSelRange(HWND hmc, LPSYSTEMTIME rgst) selects the range of days from rgst[0] to rgst[1]
MonthCal_SetToday - SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc)) set what day is "today" send NULL to revert back to real date
Second_IPAdress - #define FIRST_IPADDRESS(x) ((x>>24) & 0xff
TabCtrl_GetExtendedStyle - (DWORD)SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw
TabCtrl_HighlightItem -
TabCtrl_SetExtendedStyle - (BOOL)SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)i, (LPARAM)MAKELONG (fHighlight, 0
Third_IPAdress - #define SECOND_IPADDRESS(x) ((x>>16) & 0xff
_TrackMouseEvent - Declare _TrackMouseEvent.

Types

PComboBoxExItem
PComboBoxExItemA
PComboBoxExItemW
PMCHitTestInfo
PMonthDayState
PNMCBEEndEdit
PNMCBEEndEditA
PNMCBEEndEditW
PNMComboBoxEx
PNMComboBoxExA
PNMComboBoxExW
PNMCustomDrawInfo
PNMDateTimeChange
PNMDateTimeFormat
PNMDateTimeFormatA
PNMDateTimeFormatQuery
PNMDateTimeFormatQueryA
PNMDateTimeFormatQueryW
PNMDateTimeFormatW
PNMDateTimeString
PNMDateTimeStringA
PNMDateTimeStringW
PNMDateTimeWMKeyDown
PNMDateTimeWMKeyDownA
PNMDateTimeWMKeyDownW
PNMDayState
PNMIPAdress
PNMLVCustomDraw
PNMSelChange
PNMSelect
PRebarBandInfo
PRebarBandInfoA
PRebarBandInfoW
PRebarInfo
PTBNotify
PTBNotifyA
PTBNotifyW
PTBReplaceBitmap
PTrackMouseEvent
SystemTime
TComboBoxExItem
TComboBoxExItemA
TComboBoxExItemW
TInitCommonControlsEx
TMCHitTestInfo
TMonthDayState
TNMCBEEndEdit
TNMCBEEndEditA
TNMCBEEndEditW
TNMComboBoxEx
TNMComboBoxExA
TNMComboBoxExW
TNMCustomDrawInfo
TNMDateTimeChange
TNMDateTimeFormat
TNMDateTimeFormatA
TNMDateTimeFormatQuery
TNMDateTimeFormatQueryA
TNMDateTimeFormatQueryW
TNMDateTimeFormatW
TNMDateTimeString
TNMDateTimeStringA
TNMDateTimeStringW
TNMDateTimeWMKeyDown
TNMDateTimeWMKeyDownA
TNMDateTimeWMKeyDownW
TNMDayState
TNMIPAdress
TNMLVCustomDraw
TNMSelChange
TNMSelect
TRebarBandInfo
TRebarBandInfoA
TRebarBandInfoW
TRebarInfo
TTBNotify
TTBNotifyA
TTBNotifyW
TTBReplaceBitmap
TTrackMouseEvent

Constants

CBEIF_DI_SETITEM
CBEIF_IMAGE
CBEIF_INDENT
CBEIF_LPARAM
CBEIF_OVERLAY
CBEIF_SELECTEDIMAGE
CBEIF_TEXT
CBEMAXSTRLEN
CBEM_DELETEITEM
CBEM_GETCOMBOCONTROL
CBEM_GETEDITCONTROL
CBEM_GETEXSTYLE
CBEM_GETIMAGELIST
CBEM_GETITEM
CBEM_GETITEMA
CBEM_GETITEMW
CBEM_HASEDITCHANGED
CBEM_INSERTITEM
CBEM_INSERTITEMA
CBEM_INSERTITEMW
CBEM_SETEXSTYLE
CBEM_SETIMAGELIST
CBEM_SETITEM
CBEM_SETITEMA
CBEM_SETITEMW
CBENF_DROPDOWN
CBENF_ESCAPE
CBENF_KILLFOCUS
CBENF_RETURN
CBEN_BEGINEDIT
CBEN_DELETEITEM
CBEN_ENDEDIT
CBEN_ENDEDITA
CBEN_ENDEDITW
CBEN_FIRST
CBEN_GETDISPINFO
CBEN_INSERTITEM
CBEN_LAST
CBES_EX_NOEDITIMAGE
CBES_EX_NOEDITIMAGEINDENT
CBES_EX_PATHWORDBREAKPROC
CCM_FIRST
CCM_GETCOLORSCHEME
CCM_GETDROPTARGET
CCM_GETUNICODEFORMAT
CCM_SETBKCOLOR
CCM_SETCOLORSCHEME
CCM_SETUNICODEFORMAT
CCS_LEFT
CCS_NOMOVEX
CCS_RIGHT
CCS_VERT
CDDS_ITEM
CDDS_ITEMPOSTERASE
CDDS_ITEMPOSTPAINT
CDDS_ITEMPREERASE
CDDS_ITEMPREPAINT
CDDS_POSTERASE
CDDS_POSTPAINT
CDDS_PREERASE
CDDS_PREPAINT
CDIS_CHECKED
CDIS_DEFAULT
CDIS_DISABLED
CDIS_FOCUS
CDIS_GRAYED
CDIS_HOT
CDIS_SELECTED
CDRF_DODEFAULT
CDRF_NEWFONT
CDRF_NOTIFYITEMDRAW
CDRF_NOTIFYITEMERASE
CDRF_NOTIFYPOSTERASE
CDRF_NOTIFYPOSTPAINT
CDRF_SKIPDEFAULT
DATETIMEPICK_CLASS
DTM_FIRST
DTM_GETMCCOLOR
DTM_GETMCFONT
DTM_GETMONTHCAL
DTM_GETRANGE
DTM_GETSYSTEMTIME
DTM_SETFORMAT
DTM_SETFORMATA
DTM_SETFORMATW
DTM_SETMCCOLOR
DTM_SETMCFONT
DTM_SETRANGE
DTM_SETSYSTEMTIME
DTN_CLOSEUP
DTN_DATETIMECHANGE
DTN_DROPDOWN
DTN_FIRST
DTN_FORMAT
DTN_FORMATA
DTN_FORMATQUERY
DTN_FORMATQUERYA
DTN_FORMATQUERYW
DTN_FORMATW
DTN_LAST
DTN_USERSTRING
DTN_USERSTRINGA
DTN_USERSTRINGW
DTN_WMKEYDOWN
DTN_WMKEYDOWNA
DTN_WMKEYDOWNW
DTS_APPCANPARSE
DTS_LONGDATEFORMAT
DTS_RIGHTALIGN
DTS_SHORTDATEFORMAT
DTS_SHOWNONE
DTS_TIMEFORMAT
DTS_UPDOWN
GDTR_MAX
GDTR_MIN
GDT_ERROR
GDT_NONE
GDT_VALID
GMR_DAYSTATE
GMR_VISIBLE
HOVER_DEFAULT
ICC_ANIMATE_CLASS
ICC_BAR_CLASSES
ICC_COOL_CLASSES
ICC_DATE_CLASSES
ICC_HOTKEY_CLASS
ICC_INTERNET_CLASSES
ICC_LISTVIEW_CLASSES
ICC_NATIVEFNTCTL_CLASS
ICC_PAGESCROLLER_CLASS
ICC_PROGRESS_CLASS
ICC_TAB_CLASSES
ICC_TREEVIEW_CLASSES
ICC_UPDOWN_CLASS
ICC_USEREX_CLASSES
ICC_WIN95_CLASSES
IDB_HIST_LARGE_COLOR
IDB_HIST_SMALL_COLOR
IPM_CLEARADDRESS
IPM_GETADDRESS
IPM_ISBLANK
IPM_SETADDRESS
IPM_SETFOCUS
IPM_SETRANGE
IPN_FIELDCHANGED
IPN_FIRST
IPN_LAST
MCHT_CALENDAR
MCHT_CALENDARBK
MCHT_CALENDARDATE
MCHT_CALENDARDATENEXT
MCHT_CALENDARDATEPREV
MCHT_CALENDARDAY
MCHT_CALENDARWEEKNUM
MCHT_NEXT
MCHT_NOWHERE
MCHT_PREV
MCHT_TITLE
MCHT_TITLEBK
MCHT_TITLEBTNNEXT
MCHT_TITLEBTNPREV
MCHT_TITLEMONTH
MCHT_TITLEYEAR
MCHT_TODAYLINK
MCM_FIRST
MCM_GETCOLOR
MCM_GETCURSEL
MCM_GETFIRSTDAYOFWEEK
MCM_GETMAXSELCOUNT
MCM_GETMINREQRECT
MCM_GETMONTHDELTA
MCM_GETMONTHRANGE
MCM_GETRANGE
MCM_GETSELRANGE
MCM_GETTODAY
MCM_HITTEST
MCM_SETCOLOR
MCM_SETCURSEL
MCM_SETDAYSTATE
MCM_SETFIRSTDAYOFWEEK
MCM_SETMAXSELCOUNT
MCM_SETMONTHDELTA
MCM_SETRANGE
MCM_SETSELRANGE
MCM_SETTODAY
MCN_FIRST
MCN_GETDAYSTATE
MCN_LAST
MCN_SELCHANGE
MCN_SELECT
MCSC_BACKGROUND
MCSC_MONTHBK
MCSC_TEXT
MCSC_TITLEBK
MCSC_TITLETEXT
MCSC_TRAILINGTEXT
MCS_DAYSTATE
MCS_MULTISELECT
MCS_NOTODAY
MCS_WEEKNUMBERS
MONTHCAL_CLASS
NM_CUSTOMDRAW
NM_HOVER
PGM_FIRST
PGN_FIRST
PGN_LAST
RBBIM_BACKGROUND
RBBIM_CHILD
RBBIM_CHILDSIZE
RBBIM_COLORS
RBBIM_ID
RBBIM_IMAGE
RBBIM_SIZE
RBBIM_STYLE
RBBIM_TEXT
RBBS_BREAK
RBBS_CHILDEDGE
RBBS_FIXEDBMP
RBBS_FIXEDSIZE
RBBS_HIDDEN
RBBS_NOVERT
RBIM_IMAGELIST
RBN_FIRST
RBN_HEIGHTCHANGE
RBN_LAST
RBS_BANDBORDERS
RBS_FIXEDORDER
RBS_TOOLTIPS
RBS_VARHEIGHT
RB_DELETEBAND
RB_GETBANDCOUNT
RB_GETBANDINFO
RB_GETBARINFO
RB_GETROWCOUNT
RB_GETROWHEIGHT
RB_INSERTBAND
RB_INSERTBANDA
RB_INSERTBANDW
RB_SETBANDINFO
RB_SETBANDINFOA
RB_SETBANDINFOW
RB_SETBARINFO
RB_SETPARENT
REBARCLASSNAME
TBN_CLOSEUP
TBN_DROPDOWN
TBSTATE_ELLIPSES
TBSTYLE_CUSTOMERASE
TBSTYLE_DROPDOWN
TBSTYLE_FLAT
TBSTYLE_LIST
TB_GETBUTTONSIZE
TB_GETDISABLEDIMAGELIST
TB_GETHOTIMAGELIST
TB_GETIMAGELIST
TB_GETRECT
TB_GETSTYLE
TB_GETTEXTROWS
TB_LOADIMAGES
TB_REPLACEBITMAP
TB_SETBUTTONWIDTH
TB_SETDISABLEDIMAGELIST
TB_SETHOTIMAGELIST
TB_SETIMAGELIST
TB_SETINDENT
TB_SETMAXTEXTROWS
TB_SETSTYLE
TCIF_RTLREADING
TCIF_STATE
TCIS_BUTTONPRESSED
TCIS_HIGHLIGHTED
TCM_GETEXTENDEDSTYLE
TCM_HIGHLIGHTITEM
TCM_SETEXTENDEDSTYLE
TCN_GETOBJECT
TCS_BOTTOM
TCS_EX_FLATSEPARATORS
TCS_EX_REGISTERDROP
TCS_FLATBUTTONS
TCS_HOTTRACK
TCS_MULTISELECT
TCS_RIGHT
TCS_SCROLLOPPOSITE
TCS_VERTICAL
TME_CANCEL
TME_HOVER
TME_LEAVE
TME_QUERY
WC_COMBOBOXEX
WC_IPADDRESS
WM_MOUSEHOVER
WM_MOUSELEAVE

Variables


Functions


function DateTime_GetMonthCal(hdp: HWND): HWND;

SNDMSG(hdp, DTM_GETMCCOLOR, iColor, 0) HWND DateTime_GetMonthCal(HWND hdp) returns the HWND of the MonthCal popup window. Only valid between DTN_DROPDOWN and DTN_CLOSEUP notifications.

function DateTime_GetMonthCalColor(hdp: HWND; iColor: Integer): Longint;

SNDMSG(hdp, DTM_SETMCCOLOR, iColor, clr

function DateTime_GetMonthCalFont(hdp: HWND): Longint;

SNDMSG(hdp, DTM_SETMCFONT, (WPARAM)hfont, (LPARAM)fRedraw

function DateTime_GetRange(hdp: HWND; Var rgst: SYSTEMTIME): Integer;

(BOOL)SNDMSG(hdp, DTM_SETSYSTEMTIME, (LPARAM)(gd), (LPARAM)(pst)) 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

function DateTime_GetSystemtime(hdp: HWND; Var pst: SYSTEMTIME): Integer;

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

function DateTime_SetFormat(hdp: HWND; Var sz : PAnsiChar): Boolean;


function DateTime_SetFormatA(hdp: HWND; Var sz : PAnsiChar): Boolean;

(BOOL)SNDMSG(hdp, DTM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) 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.

function DateTime_SetFormatW(hdp: HWND; Var sz : PWideChar): Boolean;


function DateTime_SetMonthCalColor(hdp: HWND; iColor: Integer; clr: TColorRef): Longint;

(BOOL)SNDMSG(hdp, DTM_SETFORMAT, 0, (LPARAM)(sz

function DateTime_SetMonthCalFont(hdp: HWND; hfont: HFONT; fRedraw: Boolean): Longint;

(HWND)SNDMSG(hdp, DTM_GETMONTHCAL, 0, 0

function DateTime_SetRange(hdp: HWND; gd: Integer; Var rgst: SYSTEMTIME): Boolean;

(DWORD)SNDMSG(hdp, DTM_GETRANGE, 0, (LPARAM)(rgst)) 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

function DateTime_SetSystemtime(hdp: HWND; gd: Integer;Var pst: SYSTEMTIME): Boolean;

(DWORD)SNDMSG(hdp, DTM_GETSYSTEMTIME, 0, (LPARAM)(pst)) 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

function First_IPAdress(x : Longint): Byte;

#define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4)))) Get individual number

function Fourth_IPAdress(x : Longint): Byte;

#define THIRD_IPADDRESS(x) ((x>>8) & 0xff

procedure InitComboExCommonControlEx;


function InitCommonControlsEx(Var CC : TInitCommonControlsEx): boolean;

native font control

#define FOURTH_IPADDRESS(x) (x & 0xff


procedure InitCoolBarCommonControlEx;


procedure InitIPAdressCommonControlEx;


procedure InitPickerCommonControlEx;


procedure InitTabCommonControlEx;


procedure InitToolBarCommonControlEx;


function MakeIPAdress(b1, b2, b3, b4 : Byte): Longint;

#define MAKEIPRANGE(low, high) ((LPARAM)(WORD)(((BYTE)(high) << 8) + (BYTE)(low))) And this is a useful macro for making the IP Address to be passed as a LPARAM.

function MakeIPRange(Low, High : Byte): Longint;

The following is a useful macro for passing the range values in the IPM_SETRANGE message.

function MonthCal_GetColor(hmc: HWND; iColor: Integer): Longint;


function MonthCal_GetCurSel(hmc: HWND; Var pst: SystemTime): Boolean;

BOOL MonthCal_GetCurSel(HWND hmc, LPSYSTEMTIME pst) returns FALSE if MCS_MULTISELECT returns TRUE and sets *pst to the currently selected date otherwise

function MonthCal_GetFirstDayOfWeek(hmc: HWND): Integer;

SNDMSG(hmc, MCM_SETFIRSTDAYOFWEEK, 0, iDay) DWORD result... low word has the day. high word is bool if this is app set or not (FALSE == using locale info

function MonthCal_GetMaxSelCount(hmc: HWND): Longint;

(BOOL)SNDMSG(hmc, MCM_SETCURSEL, 0, (LPARAM)(pst)) DWORD MonthCal_GetMaxSelCount(HWND hmc) returns the maximum number of selectable days allowed

function MonthCal_GetMinReqRect(hmc: HWND; Var prc: TRect): Longint;

SNDMSG(hmc, MCM_SETDAYSTATE, (WPARAM)(cbds), (LPARAM)(rgds)) BOOL MonthCal_GetMinReqRect(HWND hmc, LPRECT prc) sets *prc the minimal size needed to display one month

function MonthCal_GetMonthDelta(hmc: HWND): Integer;

(BOOL)SNDMSG(hmc, MCM_SETRANGE, (WPARAM)(gd), (LPARAM)(rgst)) int MonthCal_GetMonthDelta(HWND hmc) returns the number of months one click on a next/prev button moves by

function MonthCal_GetMonthRange(hmc: HWND; gmr: Integer; Var rgst: SystemTime): Longint;

SNDMSG(hmc, MCM_SETSELRANGE, 0, (LPARAM)(rgst)) 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.

function MonthCal_GetRange(hmc: HWND; Var rgst : SYSTEMTIME): Integer;

(DWORD)SNDMSG(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0) 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

function MonthCal_GetSelRange(hmc: HWND; Var rgst: SystemTime): Longint;

(BOOL)SNDMSG(hmc, MCM_SETMAXSELCOUNT, (WPARAM)(n), 0L) 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

function MonthCal_GetToday(hmc: HWND; Var pst: SystemTime): Boolean;

SNDMSG(hmc, MCM_SETTODAY, 0, (LPARAM)pst) get what day is "today" returns BOOL for success/failure

function MonthCal_HitTest(hmc: HWND; Var pinfo : PMCHitTestInfo): Longint;

(BOOL)SNDMSG(hmc, MCM_GETTODAY, 0, (LPARAM)pst) determine what pinfo->pt is over

function MonthCal_SetColor(hmc: HWND; iColor: Integer; clr: TColorRef): Longint;


function MonthCal_SetCurSel(hmc: HWND; Var pst: SystemTime): Boolean;

(BOOL)SNDMSG(hmc, MCM_GETCURSEL, 0, (LPARAM)(pst)) BOOL MonthCal_SetCurSel(HWND hmc, LPSYSTEMTIME pst) returns FALSE if MCS_MULTISELECT returns TURE and sets the currently selected date to *pst otherwise

function MonthCal_SetDayState(hmc: HWND; cbds: Integer; Var rgds: PMonthDayState): Longint;

(DWORD)SNDMSG(hmc, MCM_GETMONTHRANGE, (WPARAM)(gmr), (LPARAM)(rgst)) 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.

function MonthCal_SetFirstDayOfWeek(hmc: HWND; iDay: Longint): Longint;


function MonthCal_SetMaxSelCount(hmc: HWND; n: Cardinal): Boolean;

(DWORD)SNDMSG(hmc, MCM_GETMAXSELCOUNT, 0, 0L) BOOL MonthCal_SetMaxSelCount(HWND hmc, UINT n) sets the max number days that can be selected iff MCS_MULTISELECT

function MonthCal_SetMonthDelta(hmc: HWND; n: Integer): Integer;

(int)SNDMSG(hmc, MCM_GETMONTHDELTA, 0, 0) 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.

function MonthCal_SetRange(hmc: HWND; gd: Integer; Var rgst: SYSTEMTIME): Boolean;

(DWORD)SNDMSG(hmc, MCM_GETRANGE, 0, (LPARAM)(rgst)) 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

function MonthCal_SetSelRange(hmc: HWND; Var rgst: SystemTime): Longint;

SNDMSG(hmc, MCM_GETSELRANGE, 0, (LPARAM)(rgst)) BOOL MonthCal_SetSelRange(HWND hmc, LPSYSTEMTIME rgst) selects the range of days from rgst[0] to rgst[1]

function MonthCal_SetToday(hmc: HWND; Var pst: SystemTime): Longint;

SNDMSG(hmc, MCM_GETMINREQRECT, 0, (LPARAM)(prc)) set what day is "today" send NULL to revert back to real date

function Second_IPAdress(x : Longint): Byte;

#define FIRST_IPADDRESS(x) ((x>>24) & 0xff

function TabCtrl_GetExtendedStyle(hwnd: HWND): Longint;

(DWORD)SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw

function TabCtrl_HighlightItem(hwnd: HWND; i : Cardinal; fHighlight : Bool): Bool;


function TabCtrl_SetExtendedStyle(hwnd: HWND; dw: Longint): Longint;

(BOOL)SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)i, (LPARAM)MAKELONG (fHighlight, 0

function Third_IPAdress(x : Longint): Byte;

#define SECOND_IPADDRESS(x) ((x>>16) & 0xff

function _TrackMouseEvent(Var lpEventTrack: PTrackMouseEvent): Boolean;

Declare _TrackMouseEvent. This API tries to use the window manager's implementation of TrackMouseEvent if it is present, otherwise it emulates. //

Types


PComboBoxExItem  = PComboBoxExItemA

PComboBoxExItemA = ^TComboBoxExItemA

PComboBoxExItemW = ^TComboBoxExItemW

PMCHitTestInfo = ^TMCHitTestInfo

PMonthDayState = ^TMonthDayState

PNMCBEEndEdit  = PNMCBEEndEditA

PNMCBEEndEditA = ^TNMCBEEndEditA

PNMCBEEndEditW = ^TNMCBEEndEditW
CBEN_ENDEDIT sends this information... fChanged if the user actually did anything iNewSelection gives what would be the new selection unless the notify is failed iNewSelection may be CB_ERR if there's no match
PNMComboBoxEx  = PNMComboBoxExA

PNMComboBoxExA = ^TNMComboBoxExA

PNMComboBoxExW = ^TNMComboBoxExW

PNMCustomDrawInfo = ^TNMCustomDrawInfo

PNMDateTimeChange = ^TNMDateTimeChange

PNMDateTimeFormat  = PNMDateTimeFormatA

PNMDateTimeFormatA = ^TNMDateTimeFormatA

PNMDateTimeFormatQuery  = PNMDateTimeFormatQueryA

PNMDateTimeFormatQueryA = ^TNMDateTimeFormatQueryA

PNMDateTimeFormatQueryW = ^TNMDateTimeFormatQueryW

PNMDateTimeFormatW = ^TNMDateTimeFormatW

PNMDateTimeString  = PNMDateTimeStringA

PNMDateTimeStringA = ^TNMDateTimeStringA
valid iff dwFlags==GDT_VALID
PNMDateTimeStringW = ^TNMDateTimeStringW

PNMDateTimeWMKeyDown  = PNMDateTimeWMKeyDownA

PNMDateTimeWMKeyDownA = ^TNMDateTimeWMKeyDownA

PNMDateTimeWMKeyDownW = ^TNMDateTimeWMKeyDownW

PNMDayState = ^TNMDayState

PNMIPAdress = ^TNMIPAdress

PNMLVCustomDraw = ^TNMLVCustomDraw

PNMSelChange = ^TNMSelChange
MCN_SELCHANGE is sent whenever the currently displayed date changes via month change, year change, keyboard navigation, prev/next button //
PNMSelect = ^TNMSelect
MCN_SELECT is sent whenever a selection has occured (via mouse or keyboard) //
PRebarBandInfo  = PRebarBandInfoA

PRebarBandInfoA = ^TRebarBandInfoA

PRebarBandInfoW = ^TRebarBandInfoW

PRebarInfo = ^TRebarInfo

PTBNotify = PTBNotifyA

PTBNotifyA = ^TTBNotifyA

PTBNotifyW = ^TTBNotifyW

PTBReplaceBitmap = ^TTBReplaceBitmap

PTrackMouseEvent = ^TTrackMouseEvent

SystemTime = record
wYear : Word;
wMonth : Word;
wDayOfWeek : Word;
wDay : Word;
wHour : Word;
wMinute : Word;
wSecond : Word;
wMilliseconds : Word;
end;
bit-packed array of "bold" info for a month if a bit is on, that day is drawn bold
TComboBoxExItem = TComboBoxExItemA

TComboBoxExItemA = record
mask : Cardinal;
iItem : Integer;
pszText : PAnsiChar;
cchTextMax : Integer;
iImage : Integer;
iSelectedImage : Integer;
iOverlay : Integer;
iIndent : Integer;
lParam : LPARAM;
end;

TComboBoxExItemW = record
mask : Cardinal;
iItem : Integer;
pszText : PWideChar;
cchTextMax : Integer;
iImage : Integer;
iSelectedImage : Integer;
iOverlay : Integer;
iIndent : Integer;
lParam : LPARAM;
end;

TInitCommonControlsEx = record
dwSize : LONGINT;
dwICC : LONGINT;
end;
Interface for the Windows Tab Control } //==================== CUSTOM CONTROL EX ====================================
TMCHitTestInfo = record
cbSize : Cardinal;
pt : TPoint;
uHit : Cardinal;
st : SystemTime;
end;

TMonthDayState = Longint

TNMCBEEndEdit= TNMCBEEndEditA

TNMCBEEndEditA = record
hdr : TNMHDR;
fChanged : Boolean;
iNewSelection : Integer;
szText : Array[0..CBEMAXSTRLEN] of Char;
iWhy : Integer;
end;

TNMCBEEndEditW = record
hdr : TNMHDR;
fChanged : Boolean;
iNewSelection : Integer;
szText : Array[0..CBEMAXSTRLEN] of Char;
iWhy : Integer;
end;

TNMComboBoxEx = TNMComboBoxExA

TNMComboBoxExA = record
hdr : TNMHDR;
ceItem : TComboBoxExItemA;
end;

TNMComboBoxExW = record
hdr : TNMHDR;
ceItem : TComboBoxExItemW;
end;

TNMCustomDrawInfo = record
hdr : TNMHDR;
dwDrawStage : LONGINT;
hdc : HDC;
rc : TRect;
dwItemSpec : LONGINT;
uItemState : Cardinal;
end;

TNMDateTimeChange = record
nmhdr : TNMHdr;
dwFlags : Longint;
st : SYSTEMTIME;
end;

TNMDateTimeFormat  = TNMDateTimeFormatA
buffer pszDisplay originally points at
TNMDateTimeFormatA = record
nmhdr : TNMHdr;
pszFormat : PAnsiChar;
st : SYSTEMTIME;
pszDisplay : PAnsiChar;
szDisplay : Array[0..64] of char;
end;

TNMDateTimeFormatQuery  = TNMDateTimeFormatQueryA
max bounding rectangle app will use for this format string
TNMDateTimeFormatQueryA = record
nmhdr : TNMHdr;
pszFormat : PAnsiChar;
szMax : TSize;
end;

TNMDateTimeFormatQueryW = record
nmhdr : TNMHdr;
pszFormat : PWideChar;
szMax : TSize;
end;
max bounding rectangle app will use for this format string
TNMDateTimeFormatW = record
nmhdr : TNMHdr;
pszFormat : PWideChar;
st : SYSTEMTIME;
pszDisplay : PWideChar;
szDisplay : Array[0..64] of char;
end;
buffer pszDisplay originally points at
TNMDateTimeString  = TNMDateTimeStringA
GDT_VALID or GDT_NONE
TNMDateTimeStringA = record
nmhdr : TNMHdr;
pszUserString : PAnsiChar;
st : SYSTEMTIME;
dwFlags : Longint;
end;

TNMDateTimeStringW = record
nmhdr : TNMHdr;
pszUserString : PWideChar;
st : SYSTEMTIME;
dwFlags : Longint;
end;
GDT_VALID or GDT_NONE
TNMDateTimeWMKeyDown  = TNMDateTimeWMKeyDownA
current systemtime, app should modify based on key
TNMDateTimeWMKeyDownA = record
nmhdr : TNMHdr;
nVirtKey : Integer;
pszFormat : PAnsiChar;
st : SYSTEMTIME;
end;

TNMDateTimeWMKeyDownW = record
nmhdr : TNMHdr;
nVirtKey : Integer;
pszFormat : PWideChar;
st : SYSTEMTIME;
end;
current systemtime, app should modify based on key
TNMDayState = record
nmhdr : TNMHdr;
stSelStart : SYSTEMTIME;
cDayState : Integer;
prgDayState : PMonthDaystate;
end;
MCN_GETDAYSTATE is sent for MCS_DAYSTATE controls whenever new daystate information is needed (month or year scroll) to draw bolding information. The app must fill in cDayState months worth of information starting from stStart date. The app may fill in the array at prgDayState or change prgDayState to point to a different array out of which the information will be copied. (similar to tooltips) //
TNMIPAdress = record
hdr : TNMHDR;
iField : Integer;
iValue : Integer;
end;

TNMLVCustomDraw = record
nmcd : TNMCUSTOMDRAWInfo;
clrText : COLORREF;
clrTextBk : COLORREF;
end;

TNMSelChange = record
nmhdr : TNMHdr;
stSelStart : SYSTEMTIME;
stSelEnd : SYSTEMTIME;
end;

TNMSelect = TNMSelChange

TRebarBandInfo = TRebarBandInfoA

TRebarBandInfoA = record
cbSize : Cardinal;
fMask : Cardinal;
fStyle : Cardinal;
clrFore : TColorRef;
clrBack : TColorRef;
lpText : PAnsiChar;
cch : Cardinal;
iImage : Integer;
hwndChild : HWND;
cxMinChild : Cardinal;
cyMinChild : Cardinal;
cx : Cardinal;
hbmBack : HBITMAP;
wID : Cardinal;
end;

TRebarBandInfoW = record
cbSize : Cardinal;
fMask : Cardinal;
fStyle : Cardinal;
clrFore : TColorRef;
clrBack : TColorRef;
lpText : PWideChar;
cch : Cardinal;
iImage : Integer;
hwndChild : HWND;
cxMinChild : Cardinal;
cyMinChild : Cardinal;
cx : Cardinal;
hbmBack : HBITMAP;
wID : Cardinal;
end;

TRebarInfo = record
cbSize : Cardinal;
fMask : Cardinal;
himl : HIMAGELIST;
end;

TTBNotify = TTBNotifyA

TTBNotifyA = record
hdr : TNMHdr;
iItem : Integer;
tbButton : TTBButton;
cchText : Integer;
pszText : PAnsiChar;
end;

TTBNotifyW = record
hdr : TNMHdr;
iItem : Integer;
tbButton : TTBButton;
cchText : Integer;
pszText : PWideChar;
end;

TTBReplaceBitmap = record
hInstOld : THandle;
nIDOld : Cardinal;
hInstNew : THandle;
nIDNew : Cardinal;
nButtons : Integer;
end;

TTrackMouseEvent = record
cbSize : Longint;
dwFlags : Longint;
hwndTrack : HWND;
dwHoverTime : Longint;
end;

Constants

CBEIF_DI_SETITEM = $10000000

CBEIF_IMAGE = $00000002

CBEIF_INDENT = $00000010

CBEIF_LPARAM = $00000020

CBEIF_OVERLAY = $00000008

CBEIF_SELECTEDIMAGE = $00000004

CBEIF_TEXT = $00000001

CBEMAXSTRLEN = 260

CBEM_DELETEITEM = CB_DELETESTRING

CBEM_GETCOMBOCONTROL = (WM_USER + 6)

CBEM_GETEDITCONTROL = (WM_USER + 7)

CBEM_GETEXSTYLE = (WM_USER + 9)

CBEM_GETIMAGELIST = (WM_USER + 3)

CBEM_GETITEM = CBEM_GETITEMA

CBEM_GETITEMA = (WM_USER + 4)

CBEM_GETITEMW = (WM_USER + 13)

CBEM_HASEDITCHANGED = (WM_USER + 10)

CBEM_INSERTITEM = CBEM_INSERTITEMA

CBEM_INSERTITEMA = (WM_USER + 1)

CBEM_INSERTITEMW = (WM_USER + 11)

CBEM_SETEXSTYLE = (WM_USER + 8)

CBEM_SETIMAGELIST = (WM_USER + 2)

CBEM_SETITEM = CBEM_SETITEMA

CBEM_SETITEMA = (WM_USER + 5)

CBEM_SETITEMW = (WM_USER + 12)

CBENF_DROPDOWN = 4

CBENF_ESCAPE = 3

CBENF_KILLFOCUS = 1

CBENF_RETURN = 2

CBEN_BEGINEDIT = (CBEN_FIRST - 4)

CBEN_DELETEITEM = (CBEN_FIRST - 2)

CBEN_ENDEDIT = CBEN_ENDEDITA

lParam specifies why the endedit is happening

CBEN_ENDEDITA = (CBEN_FIRST - 5)

CBEN_ENDEDITW = (CBEN_FIRST - 6)

CBEN_FIRST = 0-800

CBEN_GETDISPINFO = (CBEN_FIRST - 0)

CBEN_INSERTITEM = (CBEN_FIRST - 1)

CBEN_LAST = 0-830

combo box ex

CBES_EX_NOEDITIMAGE = $00000001

CBES_EX_NOEDITIMAGEINDENT = $00000002

CBES_EX_PATHWORDBREAKPROC = $00000004

CCM_FIRST = $2000

CCM_GETCOLORSCHEME = (CCM_FIRST + 3)

lParam is color scheme

CCM_GETDROPTARGET = (CCM_FIRST + 4)

fills in COLORSCHEME pointed to by lParam

CCM_GETUNICODEFORMAT = (CCM_FIRST + 6)

CCM_SETBKCOLOR = (CCM_FIRST + 1)

Common control shared messages

CCM_SETCOLORSCHEME = (CCM_FIRST + 2)

lParam is bkColor (* typedef struct tagCOLORSCHEME { DWORD dwSize; COLORREF clrBtnHighlight; // highlight color COLORREF clrBtnShadow; // shadow color } COLORSCHEME, *LPCOLORSCHEME;

CCM_SETUNICODEFORMAT = (CCM_FIRST + 5)

CCS_LEFT = (CCS_VERT OR CCS_TOP)

CCS_NOMOVEX = (CCS_VERT OR CCS_NOMOVEY)

CCS_RIGHT = (CCS_VERT OR CCS_BOTTOM)

CCS_VERT = $00000080

CDDS_ITEM = $000010000

the 0x000010000 bit means it's individual item specific

CDDS_ITEMPOSTERASE = (CDDS_ITEM OR CDDS_POSTERASE)

CDDS_ITEMPOSTPAINT = (CDDS_ITEM OR CDDS_POSTPAINT)

CDDS_ITEMPREERASE = (CDDS_ITEM OR CDDS_PREERASE)

CDDS_ITEMPREPAINT = (CDDS_ITEM OR CDDS_PREPAINT)

CDDS_POSTERASE = $000000004

CDDS_POSTPAINT = $000000002

CDDS_PREERASE = $000000003

CDDS_PREPAINT = $000000001

drawstage flags values under 0x00010000 are reserved for global custom draw values. above that are for specific controls

CDIS_CHECKED = $0008

CDIS_DEFAULT = $0020

CDIS_DISABLED = $0004

CDIS_FOCUS = $0010

CDIS_GRAYED = $0002

CDIS_HOT = $0040

CDIS_SELECTED = $0001

itemState flags

CDRF_DODEFAULT = $00000000

==================== CUSTOM DRAW ========================================== custom draw return flags values under 0x00010000 are reserved for global custom draw values. above that are for specific controls

CDRF_NEWFONT = $00000002

CDRF_NOTIFYITEMDRAW = $00000020

CDRF_NOTIFYITEMERASE = $00000080

CDRF_NOTIFYPOSTERASE = $00000040

CDRF_NOTIFYPOSTPAINT = $00000010

CDRF_SKIPDEFAULT = $00000004

DATETIMEPICK_CLASS = 'SysDateTimePick32'

above plus the grayed out parts of partially displayed months ====== DATETIMEPICK CONTROL ==================================================

DTM_FIRST = $1000

DTM_GETMCCOLOR = (DTM_FIRST + 7)

DTM_GETMCFONT = (DTM_FIRST + 10)

DTM_GETMONTHCAL = (DTM_FIRST + 8)

DTM_GETRANGE = (DTM_FIRST + 3)

DTM_GETSYSTEMTIME = (DTM_FIRST + 1)

DTM_SETFORMAT = DTM_SETFORMATA

DTM_SETFORMATA = (DTM_FIRST + 5)

DTM_SETFORMATW = (DTM_FIRST + 50)

DTM_SETMCCOLOR = (DTM_FIRST + 6)

DTM_SETMCFONT = (DTM_FIRST + 9)

DTM_SETRANGE = (DTM_FIRST + 4)

DTM_SETSYSTEMTIME = (DTM_FIRST + 2)

DTN_CLOSEUP = (DTN_FIRST + 7)

MonthCal has dropped down

DTN_DATETIMECHANGE = (DTN_FIRST + 1)

right-align popup instead of left-align it

DTN_DROPDOWN = (DTN_FIRST + 6)

DTN_FIRST = 0-760

DTN_FORMAT = DTN_FORMATA

DTN_FORMATA = (DTN_FIRST + 4)

DTN_FORMATQUERY = DTN_FORMATQUERYA

DTN_FORMATQUERYA = (DTN_FIRST + 5)

DTN_FORMATQUERYW = (DTN_FIRST + 18)

query formatting info for app format field (X

DTN_FORMATW = (DTN_FIRST + 17)

query display for app format field (X

DTN_LAST = 0-799

datetimepick

DTN_USERSTRING = DTN_USERSTRINGA

DTN_USERSTRINGA = (DTN_FIRST + 2)

the systemtime has changed

DTN_USERSTRINGW = (DTN_FIRST + 15)

the user has entered a string

DTN_WMKEYDOWN = DTN_WMKEYDOWNA

DTN_WMKEYDOWNA = (DTN_FIRST + 3)

DTN_WMKEYDOWNW = (DTN_FIRST + 16)

modify keydown on app format field (X

DTS_APPCANPARSE = $0010

use the time format (app must forward WM_WININICHANGE messages

DTS_LONGDATEFORMAT = $0004

use the short date format (app must forward WM_WININICHANGE messages

DTS_RIGHTALIGN = $0020

allow user entered strings (app MUST respond to DTN_USERSTRING

DTS_SHORTDATEFORMAT = $0000

allow a NONE selection

DTS_SHOWNONE = $0002

use UPDOWN instead of MONTHCAL

DTS_TIMEFORMAT = $0009

use the long date format (app must forward WM_WININICHANGE messages

DTS_UPDOWN = $0001

SNDMSG(hdp, DTM_GETMCFONT, 0, 0);

GDTR_MAX = $0002

GDTR_MIN = $0001

MonthCal is popping up

GDT_ERROR = -1

GDT_NONE = 1

GDT_VALID = 0

GMR_DAYSTATE = 1

visible portion of display

GMR_VISIBLE = 0

HOVER_DEFAULT = $FFFFFFFF

ICC_ANIMATE_CLASS = $00000080

hotkey

ICC_BAR_CLASSES = $00000004

treeview, tooltips

ICC_COOL_CLASSES = $00000400

comboex

ICC_DATE_CLASSES = $00000100

ICC_HOTKEY_CLASS = $00000040

progress

ICC_INTERNET_CLASSES = $00000800

rebar (coolbar) control IE4 ONLY

ICC_LISTVIEW_CLASSES = $00000001

ICC_NATIVEFNTCTL_CLASS = $00002000

page scroller

ICC_PAGESCROLLER_CLASS = $00001000

ICC_PROGRESS_CLASS = $00000020

updown

ICC_TAB_CLASSES = $00000008

toolbar, statusbar, trackbar, tooltips

ICC_TREEVIEW_CLASSES = $00000002

listview, header

ICC_UPDOWN_CLASS = $00000010

tab, tooltips

ICC_USEREX_CLASSES = $00000200

month picker, date picker, time picker, updown

ICC_WIN95_CLASSES = $000000FF

animate

IDB_HIST_LARGE_COLOR = 9

IDB_HIST_SMALL_COLOR = 8

====== TOOLBAR CONTROL ========================================================

IPM_CLEARADDRESS = (WM_USER+100)

==================== IP ADRESS EDIT CONTROL============================================ IE 4 EXTENSIONS Messages sent to IPAddress controls

IPM_GETADDRESS = (WM_USER+102)

lparam = TCP/IP address

IPM_ISBLANK = (WM_USER+105)

wparam = field

IPM_SETADDRESS = (WM_USER+101)

no parameters

IPM_SETFOCUS = (WM_USER+104)

wparam = field, lparam = range

IPM_SETRANGE = (WM_USER+103)

lresult = # of non black fields. lparam = LPDWORD for TCP/IP address

IPN_FIELDCHANGED = (IPN_FIRST - 0)

IPN_FIRST = (0-860)

IE4 ONLY

IPN_LAST = (0-879)

internet address

MCHT_CALENDAR = $00020000

MCHT_CALENDARBK = (MCHT_CALENDAR)

MCHT_CALENDARDATE = (MCHT_CALENDAR OR $0001)

MCHT_CALENDARDATENEXT = (MCHT_CALENDARDATE OR MCHT_NEXT)

MCHT_CALENDARDATEPREV = (MCHT_CALENDARDATE OR MCHT_PREV)

MCHT_CALENDARDAY = (MCHT_CALENDAR OR $0002)

MCHT_CALENDARWEEKNUM = (MCHT_CALENDAR OR $0003)

MCHT_NEXT = $01000000

MCHT_NOWHERE = $00000000

here will go to the next/prev month

MCHT_PREV = $02000000

these indicate that hitting

MCHT_TITLE = $00010000

SNDMSG(hmc, MCM_HITTEST, 0, (LPARAM)(PMCHITTESTINFO)pinfo

MCHT_TITLEBK = (MCHT_TITLE)

MCHT_TITLEBTNNEXT = (MCHT_TITLE OR MCHT_NEXT OR $0003)

MCHT_TITLEBTNPREV = (MCHT_TITLE OR MCHT_PREV OR $0003)

MCHT_TITLEMONTH = (MCHT_TITLE OR $0001)

MCHT_TITLEYEAR = (MCHT_TITLE OR $0002)

MCHT_TODAYLINK = $00030000

MCM_FIRST = $1000

MCM_GETCOLOR = (MCM_FIRST + 11)

MCM_GETCURSEL = (MCM_FIRST + 1)

MCM_GETFIRSTDAYOFWEEK = (MCM_FIRST + 16)

MCM_GETMAXSELCOUNT = (MCM_FIRST + 3)

MCM_GETMINREQRECT = (MCM_FIRST + 9)

MCM_GETMONTHDELTA = (MCM_FIRST + 19)

MCM_GETMONTHRANGE = (MCM_FIRST + 7)

MCM_GETRANGE = (MCM_FIRST + 17)

MCM_GETSELRANGE = (MCM_FIRST + 5)

MCM_GETTODAY = (MCM_FIRST + 13)

MCM_HITTEST = (MCM_FIRST + 14)

MCM_SETCOLOR = (MCM_FIRST + 10)

set colors to draw control with -- see MCSC_ bits below

MCM_SETCURSEL = (MCM_FIRST + 2)

MCM_SETDAYSTATE = (MCM_FIRST + 8)

MCM_SETFIRSTDAYOFWEEK = (MCM_FIRST + 15)

the text color of header & trailing days set first day of week to iDay: 0 for Monday, 1 for Tuesday, ..., 6 for Sunday -1 for means use locale info

MCM_SETMAXSELCOUNT = (MCM_FIRST + 4)

MCM_SETMONTHDELTA = (MCM_FIRST + 20)

MCM_SETRANGE = (MCM_FIRST + 18)

MCM_SETSELRANGE = (MCM_FIRST + 6)

MCM_SETTODAY = (MCM_FIRST + 12)

MCN_FIRST = 0-750

MCN_GETDAYSTATE = (MCN_FIRST + 3)

MCN_LAST = 0-759

monthcal

MCN_SELCHANGE = (MCN_FIRST + 1)

MCN_SELECT = (MCN_FIRST + 4)

MCSC_BACKGROUND = 0

MCSC_MONTHBK = 4

MCSC_TEXT = 1

the background color (between months

MCSC_TITLEBK = 2

the dates

MCSC_TITLETEXT = 3

background of the title

MCSC_TRAILINGTEXT = 5

background within the month cal

MCS_DAYSTATE = $0001

MCS_MULTISELECT = $0002

MCS_NOTODAY = $0008

MCS_WEEKNUMBERS = $0004

MONTHCAL_CLASS = 'SysMonthCal32'

====== MONTHCAL CONTROL ======================================================

NM_CUSTOMDRAW = (NM_FIRST-12)

NM_HOVER = (NM_FIRST-13)

PGM_FIRST = $1400

internet address

PGN_FIRST = (0-900)

Pager control messages

PGN_LAST = (0-950)

Pager Control

RBBIM_BACKGROUND = $00000080

RBBIM_CHILD = $00000010

RBBIM_CHILDSIZE = $00000020

RBBIM_COLORS = $00000002

RBBIM_ID = $00000100

RBBIM_IMAGE = $00000008

RBBIM_SIZE = $00000040

RBBIM_STYLE = $00000001

bitmap doesn't move during band resize

RBBIM_TEXT = $00000004

RBBS_BREAK = $00000001

RBBS_CHILDEDGE = $00000004

band can't be sized

RBBS_FIXEDBMP = $00000020

don't show when vertical

RBBS_FIXEDSIZE = $00000002

break to new line

RBBS_HIDDEN = $00000008

edge around top & bottom of child window

RBBS_NOVERT = $00000010

don't show

RBIM_IMAGELIST = $00000001

RBN_FIRST = 0-831

RBN_HEIGHTCHANGE = (RBN_FIRST - 0)

RBN_LAST = 0-859

rebar

RBS_BANDBORDERS = $00000400

RBS_FIXEDORDER = $00000800

RBS_TOOLTIPS = $00000100

RBS_VARHEIGHT = $00000200

RB_DELETEBAND = (WM_USER + 2)

RB_GETBANDCOUNT = (WM_USER + 12)

RB_GETBANDINFO = (WM_USER + 5)

RB_GETBARINFO = (WM_USER + 3)

RB_GETROWCOUNT = (WM_USER + 13)

RB_GETROWHEIGHT = (WM_USER + 14)

RB_INSERTBAND = RB_INSERTBANDA

RB_INSERTBANDA = (WM_USER + 1)

RB_INSERTBANDW = (WM_USER + 10)

RB_SETBANDINFO = RB_SETBANDINFOA

RB_SETBANDINFOA = (WM_USER + 6)

RB_SETBANDINFOW = (WM_USER + 11)

RB_SETBARINFO = (WM_USER + 4)

RB_SETPARENT = (WM_USER + 7)

REBARCLASSNAME = 'ReBarWindow32'

====== REBAR CONTROL ========================================================

TBN_CLOSEUP = (TBN_FIRST - 11)

TBN_DROPDOWN = (TBN_FIRST - 10)

TBSTATE_ELLIPSES = $40

TBSTYLE_CUSTOMERASE = $2000

TBSTYLE_DROPDOWN = $08

TBSTYLE_FLAT = $0800

TBSTYLE_LIST = $1000

TB_GETBUTTONSIZE = (WM_USER + 58)

TB_GETDISABLEDIMAGELIST = (WM_USER + 55)

TB_GETHOTIMAGELIST = (WM_USER + 53)

TB_GETIMAGELIST = (WM_USER + 49)

TB_GETRECT = (WM_USER + 51)

TB_GETSTYLE = (WM_USER + 57)

TB_GETTEXTROWS = (WM_USER + 61)

TB_LOADIMAGES = (WM_USER + 50)

TB_REPLACEBITMAP = (WM_USER + 46)

TB_SETBUTTONWIDTH = (WM_USER + 59)

TB_SETDISABLEDIMAGELIST = (WM_USER + 54)

TB_SETHOTIMAGELIST = (WM_USER + 52)

wParam is the Cmd instead of index

TB_SETIMAGELIST = (WM_USER + 48)

TB_SETINDENT = (WM_USER + 47)

TB_SETMAXTEXTROWS = (WM_USER + 60)

TB_SETSTYLE = (WM_USER + 56)

TCIF_RTLREADING = $0004

TCIF_STATE = $0010

TCIS_BUTTONPRESSED = $0001

TCIS_HIGHLIGHTED = $0002

IE4 ONLY

TCM_GETEXTENDEDSTYLE = (TCM_FIRST + 53)

optional wParam == mask

TCM_HIGHLIGHTITEM = (TCM_FIRST + 51)

IE4 ONLY

TCM_SETEXTENDEDSTYLE = (TCM_FIRST + 52)

TCN_GETOBJECT = (TCN_FIRST - 3)

IE4 ONLY

TCS_BOTTOM = $0002

assumes multiline tab

TCS_EX_FLATSEPARATORS = $00000001

IE4 ONLY

TCS_EX_REGISTERDROP = $00000002

IE4 ONLY

TCS_FLATBUTTONS = $0008

IE4 ONLY

TCS_HOTTRACK = $0040

only valid with multiline mode

TCS_MULTISELECT = $0004

TCS_RIGHT = $0002

TCS_SCROLLOPPOSITE = $0001

////////////////// TAB CONTROL ////////////////////////////////

TCS_VERTICAL = $0080

allow multi-select in button mode

TME_CANCEL = $80000000

TME_HOVER = $00000001

If the TRACKMOUSEEVENT structure and associated flags havent been declared then declare them now. //

TME_LEAVE = $00000002

TME_QUERY = $40000000

WC_COMBOBOXEX = 'ComboBoxEx32'

----------------------------------------------------------------------**) //////////////////// ComboBoxEx ////////////////////////////////

WC_IPADDRESS = 'SysIPAddress32'

no parameters

WM_MOUSEHOVER = $02A1

====== TrackMouseEvent =====================================================

WM_MOUSELEAVE = $02A3


Variables