kolmck/delphicommctrl.inc
dkolmck 8a2cf167f6 + added some missing types\const
* fixed some declarations for x64 support

git-svn-id: https://svn.code.sf.net/p/kolmck/code@132 91bb2d04-0c0c-4d2d-88a5-bbb6f4c1fa07
2014-12-03 09:23:00 +00:00

1671 lines
60 KiB
PHP

{*******************************************************************************
delpicommctrl.inc
-- included in KOL.pas --
*******************************************************************************}
{$IFNDEF FPC}
{$IFNDEF TMSG_WINDOWS}
{$DEFINE TMSG_DECODED}
{$ENDIF}
{$ENDIF}
{$IFDEF TMSG_DECODED}
{$I MsgDecode.pas}
type
TMsg = record
CASE Integer OF
0: (
hwnd: HWND;
message: UINT;
wParam: WPARAM;
lParam: LPARAM;
time: DWORD;
pt: TPoint;
);
//1: ( Bmsg: Windows.TMsg; );
2: ( Cmsg: TMsgDecoded; );
end;
tagMSG = TMsg;
{$ENDIF TMSG_DECODED}
{$IFNDEF _D2009orHigher}
{$IFNDEF WIN64}
type
INT_PTR = Integer;
UINT_PTR = Cardinal;
LONG_PTR = Integer;
ULONG_PTR = Cardinal;
DWORD_PTR = ULONG_PTR;
PINT_PTR = ^INT_PTR;
PUINT_PTR = ^UINT_PTR;
PLONG_PTR = ^LONG_PTR;
PULONG_PTR = ^ULONG_PTR;
PDWORD_PTR = ^DWORD_PTR;
const
GWLP_WNDPROC = GWL_WNDPROC;
GWLP_HINSTANCE = GWL_HINSTANCE;
GWLP_HWNDPARENT = GWL_HWNDPARENT;
GWLP_USERDATA = GWL_USERDATA;
GWLP_ID = GWL_ID;
{$ENDIF}
{$ENDIF}
////////////////////////////////////////////////////////////////////////////
// this part of unit contains definitions moved here from CommCtrl.pas
// (using of CommCtrl.pas in Delphi3 leads to increase size of executable
// onto 30K)
type
PTCItemA = ^TTCItemA;
PTCItemW = ^TTCItemW;
PTCItem = {$IFDEF UNICODE_CTRLS} PTCItemW {$ELSE} PTCItemA {$ENDIF};
tagTCITEMA = record
mask: UINT;
dwState: UINT;
dwStateMask: UINT;
pszText: PAnsiChar;
cchTextMax: Integer;
iImage: Integer;
lParam: LPARAM;
end;
tagTCITEMW = record
mask: UINT;
dwState: UINT;
dwStateMask: UINT;
pszText: PWideChar;
cchTextMax: Integer;
iImage: Integer;
lParam: LPARAM;
end;
PTCKeyDown = ^TTCKeyDown;
TTCKEYDOWN = record
hdr: TNMHDR;
wVKey: Word;
flags: UINT;
end;
tagTCITEM = {$IFDEF UNICODE_CTRLS} tagTCITEMW {$ELSE} tagTCITEMA {$ENDIF};
_TC_ITEMA = tagTCITEMA;
_TC_ITEMW = tagTCITEMW;
_TC_ITEM = {$IFDEF UNICODE_CTRLS} _TC_ITEMW {$ELSE} _TC_ITEMA {$ENDIF};
TTCItemA = tagTCITEMA;
TTCItemW = tagTCITEMW;
TTCItem = {$IFDEF UNICODE_CTRLS} TTCItemW {$ELSE} TTCItemA {$ENDIF};
TC_ITEMA = tagTCITEMA;
TC_ITEMW = tagTCITEMW;
TC_ITEM = {$IFDEF UNICODE_CTRLS} TC_ITEMW {$ELSE} TC_ITEMA {$ENDIF};
const
CCM_FIRST = $2000; { Common control shared messages }
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;
TCS_SCROLLOPPOSITE = $0001; // assumes multiline tab
TCS_BOTTOM = $0002;
TCS_RIGHT = $0002;
TCS_MULTISELECT = $0004; // allow multi-select in button mode
TCS_FLATBUTTONS = $0008;
TCS_FORCEICONLEFT = $0010;
TCS_FORCELABELLEFT = $0020;
TCS_HOTTRACK = $0040;
TCS_VERTICAL = $0080;
TCS_TABS = $0000;
TCS_BUTTONS = $0100;
TCS_SINGLELINE = $0000;
TCS_MULTILINE = $0200;
TCS_RIGHTJUSTIFY = $0000;
TCS_FIXEDWIDTH = $0400;
TCS_RAGGEDRIGHT = $0800;
TCS_FOCUSONBUTTONDOWN = $1000;
TCS_OWNERDRAWFIXED = $2000;
TCS_TOOLTIPS = $4000;
TCS_FOCUSNEVER = $8000;
TCS_EX_FLATSEPARATORS = $00000001;
TCS_EX_REGISTERDROP = $00000002;
TCM_FIRST = $1300; { Tab control messages }
TCM_GETIMAGELIST = TCM_FIRST + 2;
TCM_SETIMAGELIST = TCM_FIRST + 3;
TCM_GETITEMCOUNT = TCM_FIRST + 4;
TCM_GETITEMA = TCM_FIRST + 5;
TCM_SETITEMA = TCM_FIRST + 6;
TCM_INSERTITEMA = TCM_FIRST + 7;
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;
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_GETITEMW = TCM_FIRST + 60;
TCM_SETITEMW = TCM_FIRST + 61;
TCM_INSERTITEMW = TCM_FIRST + 62;
TCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
TCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
TCM_GETITEM = {$IFDEF UNICODE_CTRLS} TCM_GETITEMW
{$ELSE} TCM_GETITEMA {$ENDIF};
TCM_SETITEM = {$IFDEF UNICODE_CTRLS} TCM_SETITEMW
{$ELSE} TCM_SETITEMA {$ENDIF};
TCM_INSERTITEM = {$IFDEF UNICODE_CTRLS} TCM_INSERTITEMW
{$ELSE} TCM_INSERTITEMA {$ENDIF};
TCN_FIRST = 0-550; { tab control }
TCN_LAST = 0-580;
TCN_KEYDOWN = TCN_FIRST - 0;
TCN_SELCHANGE = TCN_FIRST - 1;
TCN_SELCHANGING = TCN_FIRST - 2;
TCN_GETOBJECT = TCN_FIRST - 3;
TCIF_TEXT = $0001;
TCIF_IMAGE = $0002;
TCIF_RTLREADING = $0004;
TCIF_PARAM = $0008;
TCIF_STATE = $0010;
PBS_SMOOTH = 01;
PBS_VERTICAL = 04;
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
PBM_GETRANGE = WM_USER+7; // lParam = PPBRange or Nil
// wParam = False: Result = high
// wParam = True: Result = low
PBM_GETPOS = WM_USER+8;
PBM_SETBARCOLOR = WM_USER+9; // lParam = bar color
PBM_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor
SB_SETTEXTA = WM_USER+1;
SB_GETTEXTA = WM_USER+2;
SB_GETTEXTLENGTHA = WM_USER+3;
SB_SETTIPTEXTA = WM_USER+16;
SB_GETTIPTEXTA = WM_USER+18;
SB_SETTEXTW = WM_USER+11;
SB_GETTEXTW = WM_USER+13;
SB_GETTEXTLENGTHW = WM_USER+12;
SB_SETTIPTEXTW = WM_USER+17;
SB_GETTIPTEXTW = WM_USER+19;
SB_SETTEXT = {$IFDEF UNICODE_CTRLS} SB_SETTEXTW {$ELSE} SB_SETTEXTA {$ENDIF};
SB_GETTEXT = {$IFDEF UNICODE_CTRLS} SB_GETTEXTW {$ELSE} SB_GETTEXTA {$ENDIF};
SB_GETTEXTLENGTH = {$IFDEF UNICODE_CTRLS} SB_GETTEXTLENGTHW {$ELSE} SB_GETTEXTLENGTHA {$ENDIF};
SB_SETTIPTEXT = {$IFDEF UNICODE_CTRLS} SB_SETTIPTEXTW {$ELSE} SB_SETTIPTEXTA {$ENDIF};
SB_GETTIPTEXT = {$IFDEF UNICODE_CTRLS} SB_GETTIPTEXTW {$ELSE} SB_GETTIPTEXTA {$ENDIF};
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_GETICON = WM_USER+20;
SB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
SB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
SBT_OWNERDRAW = $1000;
SBT_NOBORDERS = $0100;
SBT_POPOUT = $0200;
SBT_RTLREADING = $0400;
SBT_TOOLTIPS = $0800;
SB_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor
SBARS_SIZEGRIP = $0100;
{ List View Styles }
LVS_ICON = $0000;
LVS_REPORT = $0001;
LVS_SMALLICON = $0002;
LVS_LIST = $0003;
LVS_TYPEMASK = $0003;
LVS_SINGLESEL = $0004;
LVS_SHOWSELALWAYS = $0008;
LVS_SORTASCENDING = $0010;
LVS_SORTDESCENDING = $0020;
LVS_SHAREIMAGELISTS = $0040;
LVS_NOLABELWRAP = $0080;
LVS_AUTOARRANGE = $0100;
LVS_EDITLABELS = $0200;
LVS_OWNERDATA = $1000;
LVS_NOSCROLL = $2000;
LVS_TYPESTYLEMASK = $FC00;
LVS_ALIGNTOP = $0000;
LVS_ALIGNLEFT = $0800;
LVS_ALIGNMASK = $0c00;
LVS_OWNERDRAWFIXED = $0400;
LVS_NOCOLUMNHEADER = $4000;
LVS_NOSORTHEADER = $8000;
{ List View Extended Styles }
LVS_EX_GRIDLINES = $00000001;
LVS_EX_SUBITEMIMAGES = $00000002;
LVS_EX_CHECKBOXES = $00000004;
LVS_EX_TRACKSELECT = $00000008;
LVS_EX_HEADERDRAGDROP = $00000010;
LVS_EX_FULLROWSELECT = $00000020; // applies to report mode only
LVS_EX_ONECLICKACTIVATE = $00000040;
LVS_EX_TWOCLICKACTIVATE = $00000080;
LVS_EX_FLATSB = $00000100;
LVS_EX_REGIONAL = $00000200;
LVS_EX_INFOTIP = $00000400; // listview does InfoTips for you
LVS_EX_LABELTIP = $00004000;
LVS_EX_UNDERLINEHOT = $00000800;
LVS_EX_UNDERLINECOLD = $00001000;
LVS_EX_MULTIWORKAREAS = $00002000;
I_IMAGECALLBACK = -1;
I_SKIP = -2;
LVSIL_NORMAL = 0;
LVSIL_SMALL = 1;
LVSIL_STATE = 2;
{ List View column styles }
LVCF_FMT = $0001;
LVCF_WIDTH = $0002;
LVCF_TEXT = $0004;
LVCF_SUBITEM = $0008;
LVCF_IMAGE = $0010;
LVCF_ORDER = $0020;
LVSCW_AUTOSIZE = -1;
LVSCW_AUTOSIZE_USEHEADER = -2;
LVCFMT_LEFT = $0000;
LVCFMT_RIGHT = $0001;
LVCFMT_CENTER = $0002;
LVCFMT_JUSTIFYMASK = $0003;
LVCFMT_IMAGE = $0800;
LVCFMT_BITMAP_ON_RIGHT = $1000;
LVCFMT_COL_HAS_IMAGES = $8000;
LVIF_TEXT = $0001;
LVIF_IMAGE = $0002;
LVIF_PARAM = $0004;
LVIF_STATE = $0008;
LVIF_INDENT = $0010;
//LVIF_NORECOMPUTE = $0800;
LVIF_DI_SETITEM = $1000;
LVIS_FOCUSED = $0001;
LVIS_SELECTED = $0002;
LVIS_CUT = $0004;
LVIS_DROPHILITED = $0008;
//LVIS_ACTIVATING = $0020;
LVIS_OVERLAYMASK = $0F00;
LVIS_STATEIMAGEMASK = $F000;
{ List View messages }
LVM_FIRST = $1000; { ListView messages }
LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
LVM_GETBKCOLOR = LVM_FIRST + 0;
LVM_SETBKCOLOR = LVM_FIRST + 1;
LVM_GETIMAGELIST = LVM_FIRST + 2;
LVM_SETIMAGELIST = LVM_FIRST + 3;
LVM_GETITEMCOUNT = LVM_FIRST + 4;
LVM_GETITEMA = LVM_FIRST + 5;
LVM_SETITEMA = LVM_FIRST + 6;
LVM_INSERTITEMA = LVM_FIRST + 7;
LVM_DELETEITEM = LVM_FIRST + 8;
LVM_DELETEALLITEMS = LVM_FIRST + 9;
LVM_GETCALLBACKMASK = LVM_FIRST + 10;
LVM_SETCALLBACKMASK = LVM_FIRST + 11;
LVM_GETNEXTITEM = LVM_FIRST + 12;
LVM_FINDITEMA = LVM_FIRST + 13;
LVM_GETITEMRECT = LVM_FIRST + 14;
LVM_SETITEMPOSITION = LVM_FIRST + 15;
LVM_GETITEMPOSITION = LVM_FIRST + 16;
LVM_GETSTRINGWIDTHA = LVM_FIRST + 17;
LVM_HITTEST = LVM_FIRST + 18;
LVM_ENSUREVISIBLE = LVM_FIRST + 19;
LVM_SCROLL = LVM_FIRST + 20;
LVM_REDRAWITEMS = LVM_FIRST + 21;
LVM_ARRANGE = LVM_FIRST + 22;
LVM_EDITLABELA = LVM_FIRST + 23;
LVM_GETCOLUMNA = LVM_FIRST + 25;
LVM_SETCOLUMNA = LVM_FIRST + 26;
LVM_INSERTCOLUMNA = LVM_FIRST + 27;
LVM_DELETECOLUMN = LVM_FIRST + 28;
LVM_GETCOLUMNWIDTH = LVM_FIRST + 29;
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_SETITEMTEXTA = LVM_FIRST + 46;
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_SETICONSPACING = LVM_FIRST + 53;
LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54;
LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55;
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;
LVM_SETWORKAREA = LVM_FIRST + 65;
LVM_GETSELECTIONMARK = LVM_FIRST + 66;
LVM_SETSELECTIONMARK = LVM_FIRST + 67;
LVM_SETBKIMAGEA = LVM_FIRST + 68;
LVM_GETBKIMAGEA = LVM_FIRST + 69;
LVM_GETWORKAREAS = LVM_FIRST + 70;
LVM_SETHOVERTIME = LVM_FIRST + 71;
LVM_GETHOVERTIME = LVM_FIRST + 72;
LVM_GETNUMBEROFWORKAREAS = LVM_FIRST + 73;
LVM_SETTOOLTIPS = LVM_FIRST + 74;
LVM_GETITEMW = LVM_FIRST + 75;
LVM_SETITEMW = LVM_FIRST + 76;
LVM_INSERTITEMW = LVM_FIRST + 77;
LVM_GETTOOLTIPS = LVM_FIRST + 78;
LVM_SORTITEMSEX = LVM_FIRST + 81;
LVM_FINDITEMW = LVM_FIRST + 83;
LVM_GETSTRINGWIDTHW = LVM_FIRST + 87;
LVM_GETCOLUMNW = LVM_FIRST + 95;
LVM_SETCOLUMNW = LVM_FIRST + 96;
LVM_INSERTCOLUMNW = LVM_FIRST + 97;
LVM_GETITEMTEXTW = LVM_FIRST + 115;
LVM_SETITEMTEXTW = LVM_FIRST + 116;
LVM_GETISEARCHSTRINGW = LVM_FIRST + 117;
LVM_EDITLABELW = LVM_FIRST + 118;
LVM_SETBKIMAGEW = LVM_FIRST + 138;
LVM_GETBKIMAGEW = LVM_FIRST + 139;
LVM_GETITEM = {$IFDEF UNICODE_CTRLS} LVM_GETITEMW {$ELSE} LVM_GETITEMA {$ENDIF};
LVM_SETITEM = {$IFDEF UNICODE_CTRLS} LVM_SETITEMW {$ELSE} LVM_SETITEMA {$ENDIF};
LVM_INSERTITEM = {$IFDEF UNICODE_CTRLS} LVM_INSERTITEMW {$ELSE} LVM_INSERTITEMA {$ENDIF};
LVM_GETCOLUMN = {$IFDEF UNICODE_CTRLS} LVM_GETCOLUMNW {$ELSE} LVM_GETCOLUMNA {$ENDIF};
LVM_SETCOLUMN = {$IFDEF UNICODE_CTRLS} LVM_SETCOLUMNW {$ELSE} LVM_SETCOLUMNA {$ENDIF};
LVM_INSERTCOLUMN = {$IFDEF UNICODE_CTRLS} LVM_INSERTCOLUMNW {$ELSE} LVM_INSERTCOLUMNA {$ENDIF};
LVM_GETITEMTEXT = {$IFDEF UNICODE_CTRLS} LVM_GETITEMTEXTW {$ELSE} LVM_GETITEMTEXTA {$ENDIF};
LVM_SETITEMTEXT = {$IFDEF UNICODE_CTRLS} LVM_SETITEMTEXTW {$ELSE} LVM_SETITEMTEXTA {$ENDIF};
LVM_EDITLABEL = {$IFDEF UNICODE_CTRLS} LVM_EDITLABELW {$ELSE} LVM_EDITLABELA {$ENDIF};
LVM_FINDITEM = {$IFDEF UNICODE_CTRLS} LVM_FINDITEMW {$ELSE} LVM_FINDITEMA {$ENDIF};
LVM_GETISEARCHSTRING = {$IFDEF UNICODE_CTRLS} LVM_GETISEARCHSTRINGW {$ELSE} LVM_GETISEARCHSTRINGA {$ENDIF};
LVM_GETSTRINGWIDTH = {$IFDEF UNICODE_CTRLS} LVM_GETSTRINGWIDTHW {$ELSE} LVM_GETSTRINGWIDTHA {$ENDIF};
LVM_SETBKIMAGE = {$IFDEF UNICODE_CTRLS} LVM_SETBKIMAGEW {$ELSE} LVM_SETBKIMAGEA {$ENDIF};
LVM_GETBKIMAGE = {$IFDEF UNICODE_CTRLS} LVM_GETBKIMAGEW {$ELSE} LVM_GETBKIMAGEA {$ENDIF};
LV_MAX_WORKAREAS = 16;
LVIR_BOUNDS = 0;
LVIR_ICON = 1;
LVIR_LABEL = 2;
LVIR_SELECTBOUNDS = 3;
LVHT_NOWHERE = $0001;
LVHT_ONITEMICON = $0002;
LVHT_ONITEMLABEL = $0004;
LVHT_ONITEMSTATEICON = $0008;
LVHT_ONITEM = LVHT_ONITEMICON or LVHT_ONITEMLABEL or
LVHT_ONITEMSTATEICON;
LVHT_ABOVE = $0008;
LVHT_BELOW = $0010;
LVHT_TORIGHT = $0020;
LVHT_TOLEFT = $0040;
LVNI_ALL = $0000;
LVNI_FOCUSED = $0001;
LVNI_SELECTED = $0002;
LVNI_CUT = $0004;
LVNI_DROPHILITED = $0008;
LVNI_ABOVE = $0100;
LVNI_BELOW = $0200;
LVNI_TOLEFT = $0400;
LVNI_TORIGHT = $0800;
{ WM_NOTIFY codes }
NM_FIRST = 0- 0; { generic to all controls }
NM_LAST = 0- 99;
NM_OUTOFMEMORY = NM_FIRST-1;
NM_CLICK = NM_FIRST-2;
NM_DBLCLK = NM_FIRST-3;
NM_RETURN = NM_FIRST-4;
NM_RCLICK = NM_FIRST-5;
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
LVN_FIRST = 0-100; { listview }
LVN_LAST = 0-199;
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_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_ODFINDITEM = {$IFDEF UNICODE_CTRLS} LVN_ODFINDITEMW {$ELSE} LVN_ODFINDITEMA {$ENDIF};
LVN_BEGINLABELEDITA = LVN_FIRST-5;
LVN_ENDLABELEDITA = LVN_FIRST-6;
LVN_BEGINLABELEDITW = LVN_FIRST-75;
LVN_ENDLABELEDITW = LVN_FIRST-76;
LVN_BEGINLABELEDIT = {$IFDEF UNICODE_CTRLS} LVN_BEGINLABELEDITW {$ELSE} LVN_BEGINLABELEDITA {$ENDIF};
LVN_ENDLABELEDIT = {$IFDEF UNICODE_CTRLS} LVN_ENDLABELEDITW {$ELSE} LVN_ENDLABELEDITA {$ENDIF};
LVN_HOTTRACK = LVN_FIRST-21;
LVN_GETDISPINFOA = LVN_FIRST-50;
LVN_SETDISPINFOA = LVN_FIRST-51;
LVN_GETDISPINFOW = LVN_FIRST-77;
LVN_SETDISPINFOW = LVN_FIRST-78;
LVN_GETDISPINFO = {$IFDEF UNICODE_CTRLS} LVN_GETDISPINFOW {$ELSE} LVN_GETDISPINFOA {$ENDIF};
LVN_SETDISPINFO = {$IFDEF UNICODE_CTRLS} LVN_SETDISPINFOW {$ELSE} LVN_SETDISPINFOA {$ENDIF};
type
tagNMLVODSTATECHANGE = record
hdr: TNMHdr;
iFrom: Integer;
iTo: Integer;
uNewState: UINT;
uOldState: UINT;
end;
PNMLVODStateChange = ^TNMLVODStateChange;
TNMLVODStateChange = tagNMLVODSTATECHANGE;
type
PLVColumn = ^TLVColumn;
TLVColumn = record
mask: DWORD;
fmt: Integer;
cx: Integer;
pszText: PKOL_Char;
cchTextMax: Integer;
iSubItem: Integer;
// only IE4+ :
iImage: Integer;
iOrder: Integer;
end;
PLVItem = ^TLVItem;
TLVItem = record
mask: DWORD;
iItem: Integer;
iSubItem: Integer;
state: DWORD;
stateMask: DWORD;
pszText: PKOL_Char;
cchTextMax: Integer;
iImage: Integer;
lParam: LParam;
iIndent: Integer; // only for IE3.0 and higher
end;
PLVDispInfo = ^TLVDispInfo;
TLVDispInfo = record
hdr: TNMHDR;
item: TLVItem;
end;
PLVFindInfoA = ^TLVFindInfo;
TLVFindInfo = record
flags: UINT;
psz: PKOLChar;
lParam: LPARAM;
pt: TPoint;
vkDirection: UINT;
end;
PLVFindInfoW = ^TLVFindInfoW;
TLVFindInfoW = record
flags: UINT;
psz: PWideChar;
lParam: LPARAM;
pt: TPoint;
vkDirection: UINT;
end;
TLVHitTestInfo = record
pt: TPoint;
flags: DWORD;
iItem: Integer;
iSubItem: Integer;
end;
const
LVFI_PARAM = $0001;
LVFI_STRING = $0002;
LVFI_PARTIAL = $0008;
LVFI_WRAP = $0020;
LVFI_NEARESTXY = $0040;
type
PHDLayout = ^THDLayout;
_HD_LAYOUT = {packed} record
Rect: PRect;
WindowPos: PWindowPos;
end;
THDLayout = _HD_LAYOUT;
HD_LAYOUT = _HD_LAYOUT;
const
HDM_FIRST = $1200; { Header messages }
HDM_GETITEMW = HDM_FIRST + 11;
HDM_GETITEMA = HDM_FIRST + 3;
HDM_GETITEM = {$IFDEF UNICODE_CTRLS} HDM_GETITEMW {$ELSE} HDM_GETITEMA {$ENDIF};
HDM_INSERTITEMA = HDM_FIRST + 1;
HDM_LAYOUT = HDM_FIRST + 5;
HDS_HORZ = $0000;
HDS_BUTTONS = $0002;
HDS_HOTTRACK = $0004;
HDS_HIDDEN = $0008;
HDS_DRAGDROP = $0040;
HDS_FULLDRAG = $0080;
HDS_FILTERBAR = $0100;
HDS_FLAT = $0200;
HDS_CHECKBOXES = $0400;
HDF_CHECKBOX = $0040;
HDF_CHECKED = $0080;
HDF_SORTDOWN = $0200;
HDF_SORTUP = $0400;
HDF_IMAGE = $0800;
HDI_WIDTH = $0001;
HDI_TEXT = $0002;
HDI_FORMAT = $0004;
HDI_LPARAM = $0008;
HDI_IMAGE = $0020;
HDI_ORDER = $0080;
type
PHDItemA = ^THDItemA;
PHDItemW = ^THDItemW;
PHDItem = {$IFDEF UNICODE_CTRLS} PHDItemW {$ELSE} PHDItemA {$ENDIF};
_HD_ITEMA = record
Mask: Cardinal;
cxy: Integer;
pszText: PAnsiChar;
hbm: HBITMAP;
cchTextMax: Integer;
fmt: Integer;
lParam: LPARAM;
iImage: Integer; // index of bitmap in ImageList
iOrder: Integer; // where to draw this item
end;
_HD_ITEMW = record
Mask: Cardinal;
cxy: Integer;
pszText: PWideChar;
hbm: HBITMAP;
cchTextMax: Integer;
fmt: Integer;
lParam: LPARAM;
iImage: Integer; // index of bitmap in ImageList
iOrder: Integer; // where to draw this item
end;
THDItemA = _HD_ITEMA;
THDItemW = _HD_ITEMW;
THDItem = {$IFDEF UNICODE_CTRLS} _HD_ITEMW {$ELSE} _HD_ITEMA {$ENDIF};
const
TVS_HASBUTTONS = $0001;
TVS_HASLINES = $0002;
TVS_LINESATROOT = $0004;
TVS_EDITLABELS = $0008;
TVS_DISABLEDRAGDROP = $0010;
TVS_SHOWSELALWAYS = $0020;
TVS_RTLREADING = $0040;
TVS_NOTOOLTIPS = $0080;
TVS_CHECKBOXES = $0100;
TVS_TRACKSELECT = $0200;
TVS_SINGLEEXPAND = $0400;
TVS_INFOTIP = $0800;
TVS_FULLROWSELECT = $1000;
TVS_NOSCROLL = $2000;
TVS_NONEVENHEIGHT = $4000;
TVIF_TEXT = $0001;
TVIF_IMAGE = $0002;
TVIF_PARAM = $0004;
TVIF_STATE = $0008;
TVIF_HANDLE = $0010;
TVIF_SELECTEDIMAGE = $0020;
TVIF_CHILDREN = $0040;
TVIF_INTEGRAL = $0080;
TVIF_DI_SETITEM = $1000;
TVIS_FOCUSED = $0001;
TVIS_SELECTED = $0002;
TVIS_CUT = $0004;
TVIS_DROPHILITED = $0008;
TVIS_BOLD = $0010;
TVIS_EXPANDED = $0020;
TVIS_EXPANDEDONCE = $0040;
TVIS_EXPANDPARTIAL = $0080;
TVIS_OVERLAYMASK = $0F00;
TVIS_STATEIMAGEMASK = $F000;
TVIS_USERMASK = $F000;
TV_FIRST = $1100; { TreeView messages }
TVM_INSERTITEMA = TV_FIRST + 0;
TVM_INSERTITEMW = TV_FIRST + 50;
TVM_INSERTITEM = {$IFDEF UNICODE_CTRLS} TVM_INSERTITEMW
{$ELSE} TVM_INSERTITEMA {$ENDIF};
TVM_DELETEITEM = TV_FIRST + 1;
TVM_EXPAND = TV_FIRST + 2;
TVE_COLLAPSE = $0001;
TVE_EXPAND = $0002;
TVE_TOGGLE = $0003;
TVE_EXPANDPARTIAL = $4000;
TVE_COLLAPSERESET = $8000;
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 = $0000;
TVGN_NEXT = $0001;
TVGN_PREVIOUS = $0002;
TVGN_PARENT = $0003;
TVGN_CHILD = $0004;
TVGN_FIRSTVISIBLE = $0005;
TVGN_NEXTVISIBLE = $0006;
TVGN_PREVIOUSVISIBLE = $0007;
TVGN_DROPHILITE = $0008;
TVGN_CARET = $0009;
TVGN_LASTVISIBLE = $000A;
TVM_SELECTITEM = TV_FIRST + 11;
TVM_GETITEMA = TV_FIRST + 12;
TVM_GETITEMW = TV_FIRST + 62;
TVM_GETITEM = {$IFDEF UNICODE_CTRLS} TVM_GETITEMW {$ELSE} TVM_GETITEMA {$ENDIF};
TVM_SETITEMA = TV_FIRST + 13;
TVM_SETITEMW = TV_FIRST + 63;
TVM_SETITEM = {$IFDEF UNICODE_CTRLS} TVM_SETITEMW {$ELSE} TVM_SETITEMA {$ENDIF};
TVM_EDITLABELA = TV_FIRST + 14;
TVM_EDITLABELW = TV_FIRST + 65;
TVM_EDITLABEL = {$IFDEF UNICODE_CTRLS} TVM_EDITLABELW {$ELSE} TVM_EDITLABELA {$ENDIF};
TVM_GETEDITCONTROL = TV_FIRST + 15;
TVM_GETVISIBLECOUNT = TV_FIRST + 16;
TVM_HITTEST = TV_FIRST + 17;
TVHT_NOWHERE = $0001;
TVHT_ONITEMICON = $0002;
TVHT_ONITEMLABEL = $0004;
TVHT_ONITEMINDENT = $0008;
TVHT_ONITEMBUTTON = $0010;
TVHT_ONITEMRIGHT = $0020;
TVHT_ONITEMSTATEICON = $0040;
TVHT_ONITEM = TVHT_ONITEMICON or TVHT_ONITEMLABEL or
TVHT_ONITEMSTATEICON;
TVHT_ABOVE = $0100;
TVHT_BELOW = $0200;
TVHT_TORIGHT = $0400;
TVHT_TOLEFT = $0800;
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_GETISEARCHSTRING = {$IFDEF UNICODE_CTRLS} TVM_GETISEARCHSTRINGW {$ELSE} TVM_GETISEARCHSTRINGA {$ENDIF};
TVM_SETTOOLTIPS = TV_FIRST + 24;
TVM_GETTOOLTIPS = TV_FIRST + 25;
TVM_SETINSERTMARK = TV_FIRST + 26;
TVM_SETITEMHEIGHT = TV_FIRST + 27;
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;
TVM_GETINSERTMARKCOLOR = TV_FIRST + 38;
TVM_SETLINECOLOR = TV_FIRST + 40;
TVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
TVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
TVN_FIRST = 0-400; { treeview }
TVN_LAST = 0-499;
TVN_SELCHANGINGA = TVN_FIRST-1;
TVN_SELCHANGEDA = TVN_FIRST-2;
TVN_SELCHANGINGW = TVN_FIRST-50;
TVN_SELCHANGEDW = TVN_FIRST-51;
TVN_SELCHANGING = {$IFDEF UNICODE_CTRLS} TVN_SELCHANGINGW {$ELSE} TVN_SELCHANGINGA {$ENDIF};
TVN_SELCHANGED = {$IFDEF UNICODE_CTRLS} TVN_SELCHANGEDW {$ELSE} TVN_SELCHANGEDA {$ENDIF};
TVC_UNKNOWN = $0000;
TVC_BYMOUSE = $0001;
TVC_BYKEYBOARD = $0002;
TVN_GETDISPINFOA = TVN_FIRST-3;
TVN_SETDISPINFOA = TVN_FIRST-4;
TVN_GETDISPINFOW = TVN_FIRST-52;
TVN_SETDISPINFOW = TVN_FIRST-53;
TVN_GETDISPINFO = {$IFDEF UNICODE_CTRLS} TVN_GETDISPINFOW {$ELSE} TVN_GETDISPINFOA {$ENDIF};
TVN_SETDISPINFO = {$IFDEF UNICODE_CTRLS} TVN_SETDISPINFOW {$ELSE} TVN_SETDISPINFOA {$ENDIF};
TVN_ITEMEXPANDINGA = TVN_FIRST-5;
TVN_ITEMEXPANDEDA = TVN_FIRST-6;
TVN_BEGINDRAGA = TVN_FIRST-7;
TVN_BEGINRDRAGA = TVN_FIRST-8;
TVN_DELETEITEMA = TVN_FIRST-9;
TVN_BEGINLABELEDITA = TVN_FIRST-10;
TVN_ENDLABELEDITA = TVN_FIRST-11;
TVN_GETINFOTIPA = TVN_FIRST-13;
TVN_ITEMEXPANDINGW = TVN_FIRST-54;
TVN_ITEMEXPANDEDW = TVN_FIRST-55;
TVN_BEGINDRAGW = TVN_FIRST-56;
TVN_BEGINRDRAGW = TVN_FIRST-57;
TVN_DELETEITEMW = TVN_FIRST-58;
TVN_BEGINLABELEDITW = TVN_FIRST-59;
TVN_ENDLABELEDITW = TVN_FIRST-60;
TVN_GETINFOTIPW = TVN_FIRST-14;
TVN_ITEMEXPANDING = {$IFDEF UNICODE_CTRLS} TVN_ITEMEXPANDINGW {$ELSE} TVN_ITEMEXPANDINGA {$ENDIF};
TVN_ITEMEXPANDED = {$IFDEF UNICODE_CTRLS} TVN_ITEMEXPANDEDW {$ELSE} TVN_ITEMEXPANDEDA {$ENDIF};
TVN_BEGINDRAG = {$IFDEF UNICODE_CTRLS} TVN_BEGINDRAGW {$ELSE} TVN_BEGINDRAGA {$ENDIF};
TVN_BEGINRDRAG = {$IFDEF UNICODE_CTRLS} TVN_BEGINRDRAGW {$ELSE} TVN_BEGINRDRAGA {$ENDIF};
TVN_DELETEITEM = {$IFDEF UNICODE_CTRLS} TVN_DELETEITEMW {$ELSE} TVN_DELETEITEMA {$ENDIF};
TVN_BEGINLABELEDIT = {$IFDEF UNICODE_CTRLS} TVN_BEGINLABELEDITW {$ELSE} TVN_BEGINLABELEDITA {$ENDIF};
TVN_ENDLABELEDIT = {$IFDEF UNICODE_CTRLS} TVN_ENDLABELEDITW {$ELSE} TVN_ENDLABELEDITA {$ENDIF};
TVN_GETINFOTIP = {$IFDEF UNICODE_CTRLS} TVN_GETINFOTIPW {$ELSE} TVN_GETINFOTIPA {$ENDIF};
TVN_KEYDOWN = TVN_FIRST-12;
TVN_SINGLEEXPAND = TVN_FIRST-15;
TVI_ROOT = $FFFF0000;
TVI_FIRST = $FFFF0001;
TVI_LAST = $FFFF0002;
TVI_SORT = $FFFF0003;
type
PTVItemA = ^TTVItemA;
PTVItemW = ^TTVItemW;
PTVItem = {$IFDEF UNICODE_CTRLS} PTVItemW {$ELSE} PTVItemA {$ENDIF};
tagTVITEMA = record
mask: UINT;
hItem: THandle;
state: UINT;
stateMask: UINT;
pszText: PAnsiChar;
cchTextMax: Integer;
iImage: Integer;
iSelectedImage: Integer;
cChildren: Integer;
lParam: LPARAM;
end;
tagTVITEMW = record
mask: UINT;
hItem: THandle;
state: UINT;
stateMask: UINT;
pszText: PWideChar;
cchTextMax: Integer;
iImage: Integer;
iSelectedImage: Integer;
cChildren: Integer;
lParam: LPARAM;
end;
tagTVITEM = {$IFDEF UNICODE_CTRLS} tagTVITEMW {$ELSE} tagTVITEMA {$ENDIF};
_TV_ITEMA = tagTVITEMA;
_TV_ITEMW = tagTVITEMW;
_TV_ITEM = {$IFDEF UNICODE_CTRLS} _TV_ITEMW {$ELSE} _TV_ITEMA {$ENDIF};
TTVItemA = tagTVITEMA;
TTVItemW = tagTVITEMW;
TTVItem = {$IFDEF UNICODE_CTRLS} TTVItemW {$ELSE} TTVItemA {$ENDIF};
TV_ITEMA = tagTVITEMA;
TV_ITEMW = tagTVITEMW;
TV_ITEM = {$IFDEF UNICODE_CTRLS} TV_ITEMW {$ELSE} TV_ITEMA {$ENDIF};
// only used for Get and Set messages. no notifies
tagTVITEMEXA = record
mask: UINT;
hItem: THandle;
state: UINT;
stateMask: UINT;
pszText: PAnsiChar;
cchTextMax: Integer;
iImage: Integer;
iSelectedImage: Integer;
cChildren: Integer;
lParam: LPARAM;
iIntegral: Integer;
end;
tagTVITEMEXW = record
mask: UINT;
hItem: THandle;
state: UINT;
stateMask: UINT;
pszText: PWideChar;
cchTextMax: Integer;
iImage: Integer;
iSelectedImage: Integer;
cChildren: Integer;
lParam: LPARAM;
iIntegral: Integer;
end;
tagTVITEMEX = {$IFDEF UNICODE_CTRLS} tagTVITEMEXW {$ELSE} tagTVITEMEXA {$ENDIF};
PTVItemExA = ^TTVItemExA;
PTVItemExW = ^TTVItemExW;
PTVItemEx = {$IFDEF UNICODE_CTRLS} PTVItemExW {$ELSE} PTVItemExA {$ENDIF};
TTVItemExA = tagTVITEMEXA;
TTVItemExW = tagTVITEMEXW;
TTVItemEx = {$IFDEF UNICODE_CTRLS} TTVItemExW {$ELSE} TTVItemExA {$ENDIF};
PNMTreeViewA = ^TNMTreeViewA;
PNMTreeViewW = ^TNMTreeViewW;
PNMTreeView = {$IFDEF UNICODE_CTRLS} PNMTreeViewW {$ELSE} PNMTreeViewA {$ENDIF};
tagNMTREEVIEWA = record
hdr: TNMHDR;
action: DWORD;
itemOld: TTVItemA;
itemNew: TTVItemA;
ptDrag: TPoint;
end;
tagNMTREEVIEWW = record
hdr: TNMHDR;
action: DWORD;
itemOld: TTVItemW;
itemNew: TTVItemW;
ptDrag: TPoint;
end;
tagNMTREEVIEW = {$IFDEF UNICODE_CTRLS} tagNMTREEVIEWW {$ELSE} tagNMTREEVIEWA {$ENDIF};
_NM_TREEVIEWA = tagNMTREEVIEWA;
_NM_TREEVIEWW = tagNMTREEVIEWW;
_NM_TREEVIEW = {$IFDEF UNICODE_CTRLS} _NM_TREEVIEWW {$ELSE} _NM_TREEVIEWA {$ENDIF};
TNMTreeViewA = tagNMTREEVIEWA;
TNMTreeViewW = tagNMTREEVIEWW;
TNMTreeView = {$IFDEF UNICODE_CTRLS} TNMTreeViewW {$ELSE} TNMTreeViewA {$ENDIF};
NM_TREEVIEWA = tagNMTREEVIEWA;
NM_TREEVIEWW = tagNMTREEVIEWW;
NM_TREEVIEW = {$IFDEF UNICODE_CTRLS} NM_TREEVIEWW {$ELSE} NM_TREEVIEWA {$ENDIF};
tagNMCUSTOMDRAWINFO = record
hdr: TNMHdr;
dwDrawStage: DWORD;
hdc: HDC;
rc: TRect;
dwItemSpec: DWORD_PTR; // this is control specific, but it's how to specify an item. valid only with CDDS_ITEM bit set
uItemState: UINT;
lItemlParam: LPARAM;
end;
PNMCustomDraw = ^TNMCustomDraw;
TNMCustomDraw = tagNMCUSTOMDRAWINFO;
tagNMTVCUSTOMDRAW = {packed} record
nmcd: TNMCustomDraw;
clrText: COLORREF;
clrTextBk: COLORREF;
iLevel: Integer;
end;
PNMTVCustomDraw = ^TNMTVCustomDraw;
TNMTVCustomDraw = tagNMTVCUSTOMDRAW;
const
// custom draw return flags
// values under 0x00010000 are reserved for global custom draw values.
// above that are for specific controls
CDRF_DODEFAULT = $00000000;
CDRF_NEWFONT = $00000002;
CDRF_SKIPDEFAULT = $00000004;
CDRF_NOTIFYPOSTPAINT = $00000010;
CDRF_NOTIFYITEMDRAW = $00000020;
CDRF_NOTIFYSUBITEMDRAW = $00000020; // flags are the same, we can distinguish by context
CDRF_NOTIFYPOSTERASE = $00000040;
// drawstage flags
// values under = $00010000 are reserved for global custom draw values.
// above that are for specific controls
CDDS_PREPAINT = $00000001;
CDDS_POSTPAINT = $00000002;
CDDS_PREERASE = $00000003;
CDDS_POSTERASE = $00000004;
// the = $000010000 bit means it's individual item specific
CDDS_ITEM = $00010000;
CDDS_ITEMPREPAINT = CDDS_ITEM or CDDS_PREPAINT;
CDDS_ITEMPOSTPAINT = CDDS_ITEM or CDDS_POSTPAINT;
CDDS_ITEMPREERASE = CDDS_ITEM or CDDS_PREERASE;
CDDS_ITEMPOSTERASE = CDDS_ITEM or CDDS_POSTERASE;
CDDS_SUBITEM = $00020000;
// itemState flags
CDIS_SELECTED = $0001;
CDIS_GRAYED = $0002;
CDIS_DISABLED = $0004;
CDIS_CHECKED = $0008;
CDIS_FOCUS = $0010;
CDIS_DEFAULT = $0020;
CDIS_HOT = $0040;
CDIS_MARKED = $0080;
CDIS_INDETERMINATE = $0100;
type
tagNMLVCUSTOMDRAW = record
nmcd: TNMCustomDraw;
clrText: COLORREF;
clrTextBk: COLORREF;
iSubItem: Integer; // IE 4.0 and higher
end;
PNMLVCustomDraw = ^TNMLVCustomDraw;
TNMLVCustomDraw = tagNMLVCUSTOMDRAW;
PTVDispInfoA = ^TTVDispInfoA;
PTVDispInfoW = ^TTVDispInfoW;
PTVDispInfo = {$IFDEF UNICODE_CTRLS} PTVDispInfoW {$ELSE} PTVDispInfoA {$ENDIF};
tagTVDISPINFOA = record
hdr: TNMHDR;
item: TTVItemA;
end;
tagTVDISPINFOW = record
hdr: TNMHDR;
item: TTVItemW;
end;
tagTVDISPINFO = {$IFDEF UNICODE_CTRLS} tagTVDISPINFOW {$ELSE} tagTVDISPINFOA {$ENDIF};
_TV_DISPINFOA = tagTVDISPINFOA;
_TV_DISPINFOW = tagTVDISPINFOW;
_TV_DISPINFO = {$IFDEF UNICODE_CTRLS} _TV_DISPINFOW {$ELSE} _TV_DISPINFOA {$ENDIF};
TTVDispInfoA = tagTVDISPINFOA;
TTVDispInfoW = tagTVDISPINFOW;
TTVDispInfo = {$IFDEF UNICODE_CTRLS} TTVDispInfoW {$ELSE} TTVDispInfoA {$ENDIF};
TV_DISPINFOA = tagTVDISPINFOA;
TV_DISPINFOW = tagTVDISPINFOW;
TV_DISPINFO = {$IFDEF UNICODE_CTRLS} TV_DISPINFOW {$ELSE} TV_DISPINFOA {$ENDIF};
tagNMMOUSE = record
hdr: TNMHdr;
dwItemSpec: DWORD_PTR;
dwItemData: DWORD_PTR;
pt: TPoint;
dwHitInfo: LPARAM; // any specifics about where on the item or control the mouse is
end;
PNMMouse = ^TNMMouse;
TNMMouse = tagNMMOUSE;
type
PTVHitTestInfo = ^TTVHitTestInfo;
TTVHitTestInfo = record
pt: TPoint;
fl: DWORD;
hItem: THandle;
end;
const
cctrl = 'comctl32.dll';
HINST_COMMCTRL = THandle(-1);
CCS_TOP = $00000001;
CCS_NOMOVEY = $00000002;
CCS_BOTTOM = $00000003;
CCS_NORESIZE = $00000004;
CCS_NOPARENTALIGN = $00000008;
CCS_ADJUSTABLE = $00000020;
CCS_NODIVIDER = $00000040;
CCS_VERT = $00000080;
CCS_LEFT = (CCS_VERT or CCS_TOP);
CCS_RIGHT = (CCS_VERT or CCS_BOTTOM);
CCS_NOMOVEX = (CCS_VERT or CCS_NOMOVEY);
PROGRESS_CLASS: array[ 0..17 ] of KOLChar = ('m','s','c','t','l','s','_',
'p','r','o','g','r','e','s','s','3','2',#0);
STATUSCLASSNAME: array[ 0..18 ] of KOLChar = ('m','s','c','t','l','s','_',
's','t','a','t','u','s','b','a','r','3','2',#0);
WC_LISTVIEW: array[0..13] of KOLChar = ('S','y','s','L','i','s','t',
'V','i','e','w','3','2',#0);
TOOLBARCLASSNAME: array[0..15] of KOLChar = ('T','o','o','l','b','a','r',
'W','i','n','d','o','w','3','2',#0 );
TOOLTIPS_CLASS: array[0..16] of KOLChar = ('t','o','o','l','t','i','p','s','_',
'c','l','a','s','s','3','2',#0);
WC_TREEVIEW: array[0..13] of KOLChar = ('S','y','s','T','r','e','e',
'V','i','e','w','3','2',#0);
WC_TABCONTROL: array[0..15] of KOLChar = ('S','y','s','T','a','b','C','o','n','t',
'r','o','l','3','2',#0);
DATETIMEPICK_CLASS: array[ 0..17 ] of KOLChar = (
'S','y','s','D','a','t','e','T','i','m','e','P','i','c','k','3','2',#0 );
WC_HEADER: array[0..11] of KOLChar = ('S','y','s','H','e','a','d','e','r','3','2',#0);
TBN_FIRST = 0-700; { toolbar }
TBN_LAST = 0-720;
TBCDRF_NOEDGES = $00010000; // Don't draw button edges
TBCDRF_HILITEHOTTRACK = $00020000; // Use color of the button bk when hottracked
TBCDRF_NOOFFSET = $00040000; // Don't offset button if pressed
TBCDRF_NOMARK = $00080000; // Don't draw default highlight of image/text for TBSTATE_MARKED
TBCDRF_NOETCHEDEFFECT = $00100000; // Don't draw etched effect for disabled items
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;
TB_ADDBUTTONSA = WM_USER + 20;
TB_ADDBUTTONSW = WM_USER + 68;
TB_INSERTBUTTONA = WM_USER + 21;
TB_INSERTBUTTONW = WM_USER + 67;
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_ADDSTRINGA = WM_USER + 28;
TB_GETBUTTONTEXTA = WM_USER + 45;
TBN_GETBUTTONINFOA = TBN_FIRST-0;
TB_GETBUTTONINFOW = WM_USER + 63;
TB_SETBUTTONINFOW = WM_USER + 64;
TB_GETBUTTONINFOA = WM_USER + 65;
TB_SETBUTTONINFOA = WM_USER + 66;
TB_GETBUTTONINFO = {$IFDEF UNICODE_CTRLS} TB_GETBUTTONINFOW {$ELSE} TB_GETBUTTONINFOA {$ENDIF};
TB_SETBUTTONINFO = {$IFDEF UNICODE_CTRLS} TB_SETBUTTONINFOW {$ELSE} TB_SETBUTTONINFOA {$ENDIF};
TB_SAVERESTOREW = WM_USER + 76;
TB_ADDSTRINGW = WM_USER + 77;
TB_GETBUTTONTEXTW = WM_USER + 75;
TBN_GETBUTTONINFOW = TBN_FIRST-20;
TB_SAVERESTORE = {$IFDEF UNICODE_CTRLS} TB_SAVERESTOREW {$ELSE} TB_SAVERESTOREA {$ENDIF};
TB_ADDSTRING = {$IFDEF UNICODE_CTRLS} TB_ADDSTRINGW {$ELSE} TB_ADDSTRINGA {$ENDIF};
TB_GETBUTTONTEXT = {$IFDEF UNICODE_CTRLS} TB_GETBUTTONTEXTW {$ELSE} TB_GETBUTTONTEXTA {$ENDIF};
TBN_GETBUTTONINFO = {$IFDEF UNICODE_CTRLS} TBN_GETBUTTONINFOW {$ELSE} TBN_GETBUTTONINFOA {$ENDIF};
TBN_DROPDOWN = TBN_FIRST-10;
TBN_CLOSEUP = TBN_FIRST-11;
TB_CUSTOMIZE = WM_USER + 27;
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_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;
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
TB_SETEXTENDEDSTYLE = WM_USER + 84; // For TBSTYLE_EX_*
TB_GETEXTENDEDSTYLE = WM_USER + 85; // For TBSTYLE_EX_*
TB_INSERTBUTTON = {$IFDEF UNICODE_CTRLS} TB_INSERTBUTTONW {$ELSE} TB_INSERTBUTTONA {$ENDIF};
TB_ADDBUTTONS = {$IFDEF UNICODE_CTRLS} TB_ADDBUTTONSW {$ELSE} TB_ADDBUTTONSA {$ENDIF};
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;
STD_CUT = 0;
STD_COPY = 1;
STD_PASTE = 2;
STD_UNDO = 3;
STD_REDO = 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;
{ icon indexes for standard view bitmap }
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;
{ icon indexes for standard history bitmap }
HIST_BACK = 0;
HIST_FORWARD = 1;
HIST_FAVORITES = 2;
HIST_ADDTOFAVORITES = 3;
HIST_VIEWTREE = 4;
TBSTATE_CHECKED = $01;
TBSTATE_PRESSED = $02;
TBSTATE_ENABLED = $04;
TBSTATE_HIDDEN = $08;
TBSTATE_INDETERMINATE = $10;
TBSTATE_WRAP = $20;
TBSTATE_ELLIPSES = $40;
TBSTATE_MARKED = $80;
TBSTYLE_BUTTON = $00;
TBSTYLE_SEP = $01;
TBSTYLE_CHECK = $02;
TBSTYLE_GROUP = $04;
TBSTYLE_CHECKGROUP = TBSTYLE_GROUP or TBSTYLE_CHECK;
TBSTYLE_DROPDOWN = $08;
TBSTYLE_AUTOSIZE = $0010; // automatically calculate the cx of the button
TBSTYLE_NOPREFIX = $0020; // if this button should not have accel prefix
TBSTYLE_TOOLTIPS = $0100;
TBSTYLE_WRAPABLE = $0200;
TBSTYLE_ALTDRAG = $0400;
TBSTYLE_FLAT = $0800;
TBSTYLE_LIST = $1000;
TBSTYLE_CUSTOMERASE = $2000;
TBSTYLE_REGISTERDROP = $4000;
TBSTYLE_TRANSPARENT = $8000;
TBSTYLE_EX_DRAWDDARROWS = $00000001;
TBIF_IMAGE = $00000001;
TBIF_TEXT = $00000002;
TBIF_STATE = $00000004;
TBIF_STYLE = $00000008;
TBIF_LPARAM = $00000010;
TBIF_COMMAND = $00000020;
TBIF_SIZE = $00000040;
TBIF_BYINDEX = $80000000;
TTN_FIRST = 0-520; { tooltips }
TTN_LAST = 0-549;
TTN_GETDISPINFOA = TTN_FIRST - 0;
TTN_GETDISPINFOW = TTN_FIRST - 10;
TTN_GETDISPINFO = TTN_GETDISPINFOW;
TTN_NEEDTEXTA = TTN_FIRST - 0;
TTN_NEEDTEXT = TTN_FIRST - 0;
TTN_NEEDTEXTW = TTN_FIRST - 10;
TTN_SHOW = TTN_FIRST - 1;
TTN_POP = TTN_FIRST - 2;
TTN_LINKCLICK = TTN_FIRST - 3;
TTS_ALWAYSTIP = $01;
TTS_NOPREFIX = $02;
TTM_ACTIVATE = WM_USER + 1;
TTM_SETDELAYTIME = WM_USER + 3;
TTM_ADDTOOLA = WM_USER + 4;
TTM_DELTOOLA = WM_USER + 5;
TTM_NEWTOOLRECTA = WM_USER + 6;
TTM_GETTOOLINFOA = WM_USER + 8;
TTM_SETTOOLINFOA = WM_USER + 9;
TTM_HITTESTA = WM_USER + 10;
TTM_GETTEXTA = WM_USER + 11;
TTM_UPDATETIPTEXTA = WM_USER + 12;
TTM_ENUMTOOLSA = WM_USER + 14;
TTM_GETCURRENTTOOLA = WM_USER + 15;
TTM_ADDTOOLW = WM_USER + 50;
TTM_DELTOOLW = WM_USER + 51;
TTM_NEWTOOLRECTW = WM_USER + 52;
TTM_GETTOOLINFOW = WM_USER + 53;
TTM_SETTOOLINFOW = WM_USER + 54;
TTM_HITTESTW = WM_USER + 55;
TTM_GETTEXTW = WM_USER + 56;
TTM_UPDATETIPTEXTW = WM_USER + 57;
TTM_ENUMTOOLSW = WM_USER + 58;
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_POPUP = WM_USER + 34;
TTM_UPDATE = WM_USER + 29;
TTM_ADDTOOL = {$IFDEF UNICODE_CTRLS} TTM_ADDTOOLW {$ELSE} TTM_ADDTOOLA {$ENDIF};
TTM_DELTOOL = {$IFDEF UNICODE_CTRLS} TTM_DELTOOLW {$ELSE} TTM_DELTOOLA {$ENDIF};
TTM_NEWTOOLRECT = {$IFDEF UNICODE_CTRLS} TTM_NEWTOOLRECTW {$ELSE} TTM_NEWTOOLRECTA {$ENDIF};
TTM_GETTOOLINFO = {$IFDEF UNICODE_CTRLS} TTM_GETTOOLINFOW {$ELSE} TTM_GETTOOLINFOA {$ENDIF};
TTM_SETTOOLINFO = {$IFDEF UNICODE_CTRLS} TTM_SETTOOLINFOW {$ELSE} TTM_SETTOOLINFOA {$ENDIF};
TTM_HITTEST = {$IFDEF UNICODE_CTRLS} TTM_HITTESTW {$ELSE} TTM_HITTESTA {$ENDIF};
TTM_GETTEXT = {$IFDEF UNICODE_CTRLS} TTM_GETTEXTW {$ELSE} TTM_GETTEXTA {$ENDIF};
TTM_UPDATETIPTEXT = {$IFDEF UNICODE_CTRLS} TTM_UPDATETIPTEXTW {$ELSE} TTM_UPDATETIPTEXTA {$ENDIF};
TTM_ENUMTOOLS = {$IFDEF UNICODE_CTRLS} TTM_ENUMTOOLSW {$ELSE} TTM_ENUMTOOLSA {$ENDIF};
TTM_GETCURRENTTOOL = {$IFDEF UNICODE_CTRLS} TTM_GETCURRENTTOOLW {$ELSE} TTM_GETCURRENTTOOLA {$ENDIF};
TTM_RELAYEVENT = WM_USER + 7;
TTM_GETTOOLCOUNT = WM_USER +13;
TTF_IDISHWND = $0001;
TTF_CENTERTIP = $0002;
TTF_RTLREADING = $0004;
TTF_SUBCLASS = $0010;
TTF_TRACK = $0020;
TTF_ABSOLUTE = $0080;
TTF_TRANSPARENT = $0100;
TTF_DI_SETITEM = $8000; // valid only on the TTN_NEEDTEXT callback
LPSTR_TEXTCALLBACKA = LPSTR(-1);
LPSTR_TEXTCALLBACKW = LPWSTR(-1);
LPSTR_TEXTCALLBACK = {$IFDEF UNICODE_CTRLS} LPSTR_TEXTCALLBACKW {$ELSE} LPSTR_TEXTCALLBACKA {$ENDIF};
CW_USEDEFAULT = Integer($80000000);
type
PTBAddBitmap = ^TTBAddBitmap;
TTBAddBitmap = record
hInst: HINST;
nID: UINT_PTR;
end;
PTBButton = ^TTBButton;
TTBButton = record
iBitmap: Integer;
idCommand: Integer;
fsState: Byte;
fsStyle: Byte;
{$IFDEF WIN64}
bReserved: array[1..6] of Byte;
{$ELSE}
bReserved: array[1..2] of Byte;
{$ENDIF}
dwData: DWORD_PTR;
iString: INT_PTR;
end;
PTBButtonInfo = ^TTBButtonInfo;
TTBButtonInfo = record
cbSize: UINT;
dwMask: DWORD;
idCommand: Integer;
iImage: Integer;
fsState: Byte;
fsStyle: Byte;
cx: Word;
lParam: DWORD_PTR;
pszText: PKOLChar;
cchText: Integer;
end;
PColorMap = ^TColorMap;
TColorMap = record
cFrom: TColorRef;
cTo: TColorRef;
end;
PTBNotify = ^TTBnotify;
TTBNotify = record
hdr: TNMHdr;
iItem: Integer;
tbButton: TTBButton;
cchText: Integer;
pszText: PKOLChar;
rcButton: TRect; //ie5
end;
PNMTBCustomDraw = ^TNMTBCustomDraw;
TNMTBCustomDraw = record
nmcd: TNMCUSTOMDRAW;
hbrMonoDither: HBrush;
hbrLines : HBrush;
hpenLines : HPen;
clrText : COLORREF;
clrMark : COLORREF;
clrTextHighlight: COLORREF;
clrBtnFace : COLORREF;
clrBtnHighlight : COLORREF;
clrHighlightHotTrack: COLORREF;
rcText : TRect;
nStringBkMode : Integer;
nHLStringBkMode : Integer;
iListGap : Integer;
end;
PTooltipText = ^TTooltipText;
TTooltipText = record
hdr: TNMHdr;
lpszText: PKOLChar;
szText: array[0..79] of KOLChar;
hinst: HINST;
uFlags: UINT;
lParam: LPARAM;
end;
PToolInfo = ^TToolInfo;
TToolInfo = record
cbSize: UINT;
uFlags: UINT;
hwnd: HWND;
uId: UINT_PTR;
Rect: TRect;
hInst: HINST;
lpszText: PKOLChar;
lParam: LPARAM;
end;
const
WM_MOUSEHOVER = $02A1;
WM_MOUSELEAVE = $02A3;
TME_HOVER = $00000001;
TME_LEAVE = $00000002;
TME_QUERY = $40000000;
TME_CANCEL = $80000000;
HOVER_DEFAULT = THandle(-1);// $FFFFFFFF;
ODT_HEADER = 100;
ODT_TAB = 101;
ODT_LISTVIEW = 102;
type
tagTRACKMOUSEEVENT = record
cbSize: DWORD;
dwFlags: DWORD;
hwndTrack: HWND;
dwHoverTime: DWORD;
end;
PTrackMouseEvent = ^TTrackMouseEvent;
TTrackMouseEvent = tagTRACKMOUSEEVENT;
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
// Some stuff from new Delphi versions (not available in old ones):
{$IFNDEF FPC}
{$IFNDEF UNICODE_CTRLS}
const
//IDC_HAND = MakeIntResource(32649);
IDC_HAND = PChar(32649);
{$ENDIF}
{$ENDIF}
/////////////////////////////////////////////////////////
const
VK_PAGE_DOWN = VK_NEXT;
VK_PAGE_UP = VK_PRIOR;
VK_ALT = VK_MENU;
PBT_APMQUERYSUSPEND = 00 ;
PBT_APMQUERYSTANDBY = 01 ;
PBT_APMQUERYSUSPENDFAILED = 02 ;
PBT_APMQUERYSTANDBYFAILED = 03 ;
PBT_APMSUSPEND = 04 ;
PBT_APMSTANDBY = 05 ;
PBT_APMRESUMECRITICAL = 06 ;
PBT_APMRESUMESUSPEND = 07 ;
PBT_APMRESUMESTANDBY = 08 ;
PBTF_APMRESUMEFROMFAILURE = 000001 ;
PBT_APMBATTERYLOW = 09 ;
PBT_APMPOWERSTATUSCHANGE = 10 ;
PBT_APMOEMEVENT = 11 ;
PBT_APMRESUMEAUTOMATIC = $12 ; // hexadecimal $12 = 18 !
{ DATETIMEPICKER}
const
// messages
DTM_FIRST = $1000;
DTM_GETSYSTEMTIME = DTM_FIRST + 1;
DTM_SETSYSTEMTIME = DTM_FIRST + 2;
DTM_GETRANGE = DTM_FIRST + 3;
DTM_SETRANGE = DTM_FIRST + 4;
DTM_SETFORMATA = DTM_FIRST + 5;
DTM_SETMCCOLOR = DTM_FIRST + 6;
DTM_GETMCCOLOR = DTM_FIRST + 7;
DTM_GETMONTHCAL = DTM_FIRST + 8;
DTM_SETMCFONT = DTM_FIRST + 9;
DTM_GETMCFONT = DTM_FIRST + 10;
DTM_SETFORMATW = DTM_FIRST + 50;
DTM_SETFORMAT = {$IFDEF UNICODE_CTRLS} DTM_SETFORMATW {$ELSE} DTM_SETFORMATA {$ENDIF};
// Ranges
GDTR_MIN = $0001;
GDTR_MAX = $0002;
// Return Values
GDT_ERROR = -1;
GDT_VALID = 0;
GDT_NONE = 1;
// notifications
DTN_FIRST = 0-760; { datetimepick }
DTN_LAST = 0-799;
DTN_DATETIMECHANGE = DTN_FIRST + 1; // the systemtime has changed
DTN_USERSTRINGA = DTN_FIRST + 2; // the user has entered a string
DTN_USERSTRINGW = DTN_FIRST + 15;
DTN_WMKEYDOWNA = DTN_FIRST + 3; // modify keydown on app format field (X)
DTN_WMKEYDOWNW = DTN_FIRST + 16;
DTN_FORMATA = DTN_FIRST + 4; // query display for app format field (X)
DTN_FORMATW = DTN_FIRST + 17;
DTN_FORMATQUERYA = DTN_FIRST + 5; // query formatting info for app format field (X)
DTN_FORMATQUERYW = DTN_FIRST + 18;
DTN_DROPDOWN = DTN_FIRST + 6; // MonthCal has dropped down
DTN_CLOSEUP = DTN_FIRST + 7; // MonthCal is popping up
DTN_USERSTRING = {$IFDEF UNICODE_CTRLS} DTN_USERSTRINGW {$ELSE} DTN_USERSTRINGA {$ENDIF};
DTN_WMKEYDOWN = {$IFDEF UNICODE_CTRLS} DTN_WMKEYDOWNW {$ELSE} DTN_WMKEYDOWNA {$ENDIF};
DTN_FORMAT = {$IFDEF UNICODE_CTRLS} DTN_FORMATW {$ELSE} DTN_FORMATA {$ENDIF};
DTN_FORMATQUERY = {$IFDEF UNICODE_CTRLS} DTN_FORMATQUERYW {$ELSE} DTN_FORMATQUERYA {$ENDIF};
// styles
DTS_UPDOWN = $0001; // use UPDOWN instead of MONTHCAL
DTS_SHOWNONE = $0002; // allow a NONE selection
DTS_SHORTDATEFORMAT = $0000; // use the short date format
// (app must forward WM_WININICHANGE messages)
DTS_LONGDATEFORMAT = $0004; // use the long date format
// (app must forward WM_WININICHANGE messages)
DTS_TIMEFORMAT = $0008; // use the time format
// (app must forward WM_WININICHANGE messages)
DTS_APPCANPARSE = $0010; // allow user entered strings
// (app MUST respond to DTN_USERSTRING)
DTS_RIGHTALIGN = $0020; // right-align popup instead of left-align it
// color index constants
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
// structures
type
tagNMDATETIMESTRINGA = record
nmhdr: TNmHdr;
pszUserString: PAnsiChar; // string user entered
st: TSystemTime; // app fills this in
dwFlags: DWORD; // GDT_VALID or GDT_NONE
end;
tagNMDATETIMESTRINGW = record
nmhdr: TNmHdr;
pszUserString: PWideChar; // string user entered
st: TSystemTime; // app fills this in
dwFlags: DWORD; // GDT_VALID or GDT_NONE
end;
tagNMDATETIMESTRING = {$IFDEF UNICODE_CTRLS} tagNMDATETIMESTRINGW {$ELSE} tagNMDATETIMESTRINGA {$ENDIF};
PNMDateTimeStringA = ^TNMDateTimeStringA;
PNMDateTimeStringW = ^TNMDateTimeStringW;
PNMDateTimeString = {$IFDEF UNICODE_CTRLS} PNMDateTimeStringW {$ELSE} PNMDateTimeStringA {$ENDIF};
TNMDateTimeStringA = tagNMDATETIMESTRINGA;
TNMDateTimeStringW = tagNMDATETIMESTRINGW;
TNMDateTimeString = {$IFDEF UNICODE_CTRLS} TNMDateTimeStringW {$ELSE} TNMDateTimeStringA {$ENDIF};
const
HDN_FIRST = 0-300; { header }
HDN_LAST = 0-399;
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_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
HDN_ITEMCHANGINGA = HDN_FIRST-0;
HDN_ITEMCHANGEDA = HDN_FIRST-1;
HDN_ITEMCLICKA = HDN_FIRST-2;
HDN_ITEMDBLCLICKA = HDN_FIRST-3;
HDN_DIVIDERDBLCLICKA = HDN_FIRST-5;
HDN_BEGINTRACKA = HDN_FIRST-6;
HDN_ENDTRACKA = HDN_FIRST-7;
HDN_TRACKA = HDN_FIRST-8;
HDN_GETDISPINFOA = HDN_FIRST-9;
HDN_BEGINDRAG = HDN_FIRST-10;
HDN_ENDDRAG = HDN_FIRST-11;
HDN_ITEMCHANGINGW = HDN_FIRST-20;
HDN_ITEMCHANGEDW = HDN_FIRST-21;
HDN_ITEMCLICKW = HDN_FIRST-22;
HDN_ITEMDBLCLICKW = HDN_FIRST-23;
HDN_DIVIDERDBLCLICKW = HDN_FIRST-25;
HDN_BEGINTRACKW = HDN_FIRST-26;
HDN_ENDTRACKW = HDN_FIRST-27;
HDN_TRACKW = HDN_FIRST-28;
HDN_GETDISPINFOW = HDN_FIRST-29;
type
tagNMHEADERA = record
Hdr: TNMHdr;
Item: Integer;
Button: Integer;
PItem: PHDItemA;
end;
tagNMHEADERW = record
Hdr: TNMHdr;
Item: Integer;
Button: Integer;
PItem: PHDItemW;
end;
tagNMHEADER = tagNMHEADERA;
PHDNotifyA = ^THDNotifyA;
PHDNotifyW = ^THDNotifyW;
THDNotifyA = tagNMHEADERA;
THDNotifyW = tagNMHEADERW;
{******************************************************************************}