mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-14 17:28:51 +02:00
685 lines
25 KiB
PHP
685 lines
25 KiB
PHP
{
|
|
This file is part of the Free Pascal run time library.
|
|
Copyright (c) 2006 Free Pascal development team.
|
|
|
|
See the file COPYING.FPC, included in this distribution,
|
|
for details about the copyright.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**********************************************************************}
|
|
|
|
{ Declarations for commctrl WinCE API
|
|
|
|
}
|
|
|
|
{exported functions list = to do,
|
|
* please remove functions done *
|
|
|
|
Exports
|
|
|
|
ordinal name
|
|
|
|
73 AddMRUData
|
|
66 AddMRUStringA
|
|
67 AddMRUStringW
|
|
35 CenterWindow
|
|
11 CommandBar_GetItemWindow
|
|
63 CreateMRUListA
|
|
64 CreateMRUListW
|
|
15 CreateToolbar
|
|
50 DPA_Create
|
|
61 DPA_DeleteAllPtrs
|
|
60 DPA_DeletePtr
|
|
31 DPA_Destroy
|
|
56 DPA_DestroyCallback
|
|
32 DPA_GetPtr
|
|
62 DPA_GetPtrIndex
|
|
54 DPA_Grow
|
|
51 DPA_InsertPtr
|
|
59 DPA_Search
|
|
53 DPA_SetPtr
|
|
52 DPA_Sort
|
|
46 DSA_Clone
|
|
23 DSA_Create
|
|
30 DSA_DeleteAllItems
|
|
29 DSA_DeleteItem
|
|
24 DSA_Destroy
|
|
47 DSA_DestroyCallback
|
|
48 DSA_EnumCallback
|
|
25 DSA_GetItem
|
|
26 DSA_GetItemPtr
|
|
27 DSA_InsertItem
|
|
45 DSA_Search
|
|
28 DSA_SetItem
|
|
58 DSA_SetRange
|
|
57 DSA_Sort
|
|
68 DelMRUString
|
|
49 DoReaderMode
|
|
71 EnumMRUListA
|
|
72 EnumMRUListW
|
|
74 FindMRUData
|
|
69 FindMRUStringA
|
|
70 FindMRUStringW
|
|
65 FreeMRUList
|
|
22 InvertRect
|
|
55 IsCapEditAvailable
|
|
ListView_SetItemSpacing
|
|
75 PopulateComboWithMRU
|
|
76 PopulateMenuWithMRU
|
|
80 SHCreateDefaultGradient
|
|
79 SHDrawGradient
|
|
81 SHDrawText
|
|
77 SHGetSysColor
|
|
78 SHGetSystemMetrics
|
|
82 SHSetSysColors
|
|
83 SHSetSystemMetrics
|
|
34 StrToIntW
|
|
33 Str_SetPtrW
|
|
}
|
|
|
|
{$ifdef read_interface}
|
|
|
|
//*****************************************************************************
|
|
// consts
|
|
//*****************************************************************************
|
|
const
|
|
ComctlDLL = 'commctrl';
|
|
|
|
COMCTL32_VERSION=$020c;
|
|
|
|
// Common control shared messages
|
|
CCM_FIRST = $2000;
|
|
CCM_LAST = CCM_FIRST + $200;
|
|
|
|
CCM_SETBKCOLOR = CCM_FIRST + $1; // lParam is bkColor
|
|
CCM_SETVERSION = CCM_FIRST + $7;
|
|
CCM_GETVERSION = CCM_FIRST + $8;
|
|
|
|
//InitCommonControlEx
|
|
//I_IMAGENONE = -2; // Desktop listview uses this same value for I_IMAGENONE when (_WIN32_IE >= 0x0501)
|
|
|
|
//ICC_LISTVIEW_CLASSES = $00000001; // listview, header
|
|
//ICC_TREEVIEW_CLASSES = $00000002; // treeview, tooltips
|
|
//ICC_BAR_CLASSES = $00000004; // toolbar, statusbar, trackbar, tooltips
|
|
//ICC_TAB_CLASSES = $00000008; // tab, tooltips
|
|
//ICC_UPDOWN_CLASS = $00000010; // updown
|
|
//ICC_PROGRESS_CLASS = $00000020; // progress
|
|
ICC_ANIMATE_CLASS = $00000080; // animate
|
|
//ICC_WIN95_CLASSES = $0000007F;
|
|
//ICC_DATE_CLASSES = $00000100; // month picker, date picker, time picker, updown
|
|
//ICC_COOL_CLASSES = $00000400; // rebar (coolbar) control
|
|
//ICC_INTERNET_CLASSES = $00000800; // IP Address control
|
|
//ICC_TOOLTIP_CLASSES = $00001000; // Tooltip static & button
|
|
//ICC_CAPEDIT_CLASS = $00002000; // All-caps edit control
|
|
//ICC_FE_CLASSES = $40000000; // FE specific input subclasses
|
|
|
|
LVM_FIRST = $1000; // ListView messages
|
|
TV_FIRST = $1100; // TreeView messages
|
|
HDM_FIRST = $1200; // Header messages
|
|
|
|
//Ranges for control message IDs
|
|
LVN_FIRST = (-100); // listview
|
|
LVN_LAST = (-199);
|
|
HDN_FIRST = (-300); // header
|
|
HDN_LAST = (-399);
|
|
TVN_FIRST = (-400); // treeview
|
|
TVN_LAST = (-499);
|
|
TTN_FIRST = (-520); // tooltips
|
|
TTN_LAST = (-549);
|
|
TCN_FIRST = (-550); // tab control
|
|
TCN_LAST = (-580);
|
|
// Shell reserved (0U-580U) - (0U-589U)
|
|
CDN_FIRST = (-601); // common dialog (new)
|
|
CDN_LAST = (-699);
|
|
TBN_FIRST = (-700); // toolbar
|
|
TBN_LAST = (-720);
|
|
UDN_FIRST = (-721); // updown
|
|
UDN_LAST = (-740);
|
|
MCN_FIRST = (-750); // monthcal
|
|
MCN_LAST = (-759);
|
|
RBN_FIRST = (-831); // rebar
|
|
RBN_LAST = (-859);
|
|
IPN_FIRST = (-860); // internet address
|
|
IPN_LAST = (-879); // internet address
|
|
SBN_FIRST = (-880); // status bar
|
|
SBN_LAST = (-900);
|
|
SHN_FIRST = (-1400); // Shell reserved
|
|
SHN_LAST = (-1500);
|
|
|
|
MSGF_COMMCTRL_BEGINDRAG = $4200;
|
|
MSGF_COMMCTRL_SIZEHEADER = $4201;
|
|
MSGF_COMMCTRL_DRAGSELECT = $4202;
|
|
|
|
//Generic WM_NOTIFY notification codes
|
|
NM_FIRST = 0;
|
|
NM_LAST = -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);
|
|
NM_KEYDOWN = (NM_FIRST-15);
|
|
NM_RECOGNIZEGESTURE = (NM_FIRST-50);
|
|
|
|
// DATETIMEPICK CONTROL
|
|
DATETIMEPICK_CLASS ='SysDateTimePick32';
|
|
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 = DTM_SETFORMATW;
|
|
|
|
|
|
DTS_UPDOWN = $0001;
|
|
DTS_SHOWNONE = $0002;
|
|
DTS_SHORTDATEFORMAT = $0000;
|
|
DTS_LONGDATEFORMAT = $0004;
|
|
DTS_SHORTDATECENTURYFORMAT = $000C;
|
|
DTS_TIMEFORMAT = $0009;
|
|
DTS_APPCANPARSE = $0010;
|
|
DTS_RIGHTALIGN = $0020;
|
|
DTS_NONEBUTTON = $0080;
|
|
|
|
//datetimepick
|
|
DTN_FIRST =-760;
|
|
DTN_LAST =-799;
|
|
DTN_DATETIMECHANGE = DTN_FIRST + 1;
|
|
DTN_USERSTRINGA = DTN_FIRST + 2;
|
|
DTN_WMKEYDOWNA = DTN_FIRST + 3;
|
|
DTN_FORMATA = DTN_FIRST + 4;
|
|
DTN_FORMATQUERYA = DTN_FIRST + 5;
|
|
DTN_DROPDOWN = DTN_FIRST + 6;
|
|
DTN_CLOSEUP = DTN_FIRST + 7;
|
|
DTN_USERSTRINGW = DTN_FIRST + 15;
|
|
DTN_WMKEYDOWNW = DTN_FIRST + 16;
|
|
DTN_FORMATW = DTN_FIRST + 17;
|
|
DTN_FORMATQUERYW = DTN_FIRST + 18;
|
|
|
|
DTN_USERSTRING = DTN_USERSTRINGW;
|
|
|
|
GDTR_MIN = $0001;
|
|
GDTR_MAX = $0002;
|
|
|
|
GDT_ERROR = -1;
|
|
GDT_VALID = 0;
|
|
GDT_NONE = 1;
|
|
|
|
//TOOLBAR CONTROL
|
|
//TOOLBARCLASSNAMEW = 'ToolbarWindow32';
|
|
//TOOLBARCLASSNAME = TOOLBARCLASSNAMEW;
|
|
|
|
TBIF_IMAGE = $00000001;
|
|
TBIF_TEXT = $00000002;
|
|
TBIF_STATE = $00000004;
|
|
TBIF_STYLE = $00000008;
|
|
TBIF_LPARAM = $00000010;
|
|
TBIF_COMMAND = $00000020;
|
|
TBIF_SIZE = $00000040;
|
|
|
|
// BUTTONINFO APIs
|
|
TB_GETBUTTONINFOW = (WM_USER + 63);
|
|
TB_SETBUTTONINFOW = (WM_USER + 64);
|
|
TB_GETBUTTONINFO = TB_GETBUTTONINFOW;
|
|
TB_SETBUTTONINFO = TB_SETBUTTONINFOW;
|
|
|
|
TB_INSERTBUTTONW = (WM_USER + 67);
|
|
TB_ADDBUTTONSW = (WM_USER + 68);
|
|
TB_HITTEST = (WM_USER + 69);
|
|
|
|
//TB_INSERTBUTTON = TB_INSERTBUTTONW;
|
|
//TB_ADDBUTTONS = TB_ADDBUTTONSW;
|
|
|
|
TB_SETDRAWTEXTFLAGS = (WM_USER + 70);
|
|
|
|
//TBN_GETBUTTONINFOW = (TBN_FIRST-20);
|
|
//TBN_BEGINDRAG = (TBN_FIRST-1);
|
|
//TBN_ENDDRAG = (TBN_FIRST-2);
|
|
TBN_DROPDOWN = (TBN_FIRST - 10);
|
|
TBN_DRAGOUT = (TBN_FIRST - 14);
|
|
//TBN_GETBUTTONINFO = TBN_GETBUTTONINFOW;
|
|
|
|
// 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;
|
|
|
|
// Pocket PC special controls
|
|
WC_CAPEDIT = 'CAPEDIT';
|
|
WC_TSTATIC = 'TTSTATIC';
|
|
WC_TBUTTON = 'TTBUTTON';
|
|
|
|
// for FE, single byte character edit
|
|
WC_SBEDIT = 'sbedit';
|
|
|
|
// REBAR CONTROL
|
|
REBARCLASSNAME = 'ReBarWindow';
|
|
|
|
RBIM_IMAGELIST = $00000001;
|
|
RBS_VARHEIGHT = $0200;
|
|
RBS_BANDBORDERS = $0400;
|
|
RBS_FIXEDORDER = $0800;
|
|
RBS_SMARTLABELS = $1000;
|
|
RBS_AUTOSIZE = $2000;
|
|
RBS_VERTICALGRIPPER = $4000; { this always has the vertical gripper (default for horizontal mode) }
|
|
|
|
RBBS_BREAK = $00000001; { break to new line }
|
|
RBBS_FIXEDSIZE = $00000002; { band can't be sized }
|
|
RBBS_CHILDEDGE = $00000004; { edge around top & bottom of child window }
|
|
RBBS_HIDDEN = $00000008; { don't show }
|
|
RBBS_NOVERT = $00000010; { don't show when vertical }
|
|
RBBS_FIXEDBMP = $00000020; { bitmap doesn't move during band resize }
|
|
RBBS_VARIABLEHEIGHT = $00000040; { allow autosizing of this child vertically }
|
|
RBBS_GRIPPERALWAYS = $00000080; { always show the gripper }
|
|
RBBS_NOGRIPPER = $00000100; { never show gripper for this band }
|
|
|
|
RBBIM_STYLE = $00000001;
|
|
RBBIM_COLORS = $00000002;
|
|
RBBIM_TEXT = $00000004;
|
|
RBBIM_IMAGE = $00000008;
|
|
RBBIM_CHILD = $00000010;
|
|
RBBIM_CHILDSIZE = $00000020;
|
|
RBBIM_SIZE = $00000040;
|
|
RBBIM_BACKGROUND = $00000080;
|
|
RBBIM_ID = $00000100;
|
|
RBBIM_IDEALSIZE = $00000200;
|
|
RBBIM_LPARAM = $00000400;
|
|
|
|
RB_DELETEBAND = WM_USER+2;
|
|
RB_GETBARINFO = WM_USER+3;
|
|
RB_SETBARINFO = WM_USER+4;
|
|
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_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 }
|
|
RB_SIZETORECT = WM_USER+23; { resize the rebar/break bands and such to this rect (lparam) }
|
|
RB_INSERTBAND = RB_INSERTBANDW;
|
|
RB_SETBANDINFO = RB_SETBANDINFOW;
|
|
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_GETBANDINFO = RB_GETBANDINFOW;
|
|
RB_MINIMIZEBAND = WM_USER+30;
|
|
RB_MAXIMIZEBAND = WM_USER+31;
|
|
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_MOVEBAND = WM_USER+36;
|
|
|
|
RBN_HEIGHTCHANGE = RBN_FIRST-0;
|
|
RBN_LAYOUTCHANGED = RBN_FIRST-2;
|
|
RBN_AUTOSIZE = RBN_FIRST-3;
|
|
RBN_BEGINDRAG = RBN_FIRST-4;
|
|
RBN_ENDDRAG = RBN_FIRST-5;
|
|
|
|
RBHT_NOWHERE = $0001;
|
|
RBHT_CAPTION = $0002;
|
|
RBHT_CLIENT = $0003;
|
|
RBHT_GRABBER = $0004;
|
|
|
|
//*****************************************************************************
|
|
// types
|
|
//*****************************************************************************
|
|
|
|
type
|
|
// DATETIMEPICK CONTROL
|
|
tagNMDATETIMECHANGE = record
|
|
nmhdr : NMHDR;
|
|
dwFlags : DWORD;
|
|
st : SYSTEMTIME;
|
|
end;
|
|
NMDATETIMECHANGE=tagNMDATETIMECHANGE;
|
|
TNMDATETIMECHANGE=tagNMDATETIMECHANGE;
|
|
LPNMDATETIMECHANGE=^tagNMDATETIMECHANGE;
|
|
|
|
tagNMDATETIMESTRINGW = record
|
|
nmhdr : NMHDR;
|
|
pszUserString : LPCWSTR;
|
|
st : SYSTEMTIME;
|
|
dwFlags : DWORD;
|
|
end;
|
|
NMDATETIMESTRINGW=tagNMDATETIMESTRINGW;
|
|
TNMDATETIMESTRINGW=tagNMDATETIMESTRINGW;
|
|
LPNMDATETIMESTRINGW=^tagNMDATETIMESTRINGW;
|
|
NMDATETIMESTRING=tagNMDATETIMESTRINGW;
|
|
TNMDATETIMESTRING=tagNMDATETIMESTRINGW;
|
|
PNMDATETIMESTRING=^tagNMDATETIMESTRINGW;
|
|
|
|
tagNMDATETIMEWMKEYDOWNA = record
|
|
nmhdr : NMHDR;
|
|
nVirtKey : integer;
|
|
pszFormat : LPCSTR;
|
|
st : SYSTEMTIME;
|
|
end;
|
|
NMDATETIMEWMKEYDOWNA=tagNMDATETIMEWMKEYDOWNA;
|
|
TNMDATETIMEWMKEYDOWNA=tagNMDATETIMEWMKEYDOWNA;
|
|
LPNMDATETIMEWMKEYDOWNA=^tagNMDATETIMEWMKEYDOWNA;
|
|
|
|
tagNMDATETIMEWMKEYDOWNW = record
|
|
nmhdr : NMHDR;
|
|
nVirtKey : integer;
|
|
pszFormat : LPCWSTR;
|
|
st : SYSTEMTIME;
|
|
end;
|
|
NMDATETIMEWMKEYDOWNW=tagNMDATETIMEWMKEYDOWNW;
|
|
TNMDATETIMEWMKEYDOWNW=tagNMDATETIMEWMKEYDOWNW;
|
|
LPNMDATETIMEWMKEYDOWNW=^tagNMDATETIMEWMKEYDOWNW;
|
|
|
|
|
|
tagNMDATETIMEFORMATA = record
|
|
nmhdr : NMHDR;
|
|
pszFormat : LPCSTR;
|
|
st : SYSTEMTIME;
|
|
pszDisplay : LPCSTR;
|
|
szDisplay : Array[0..63] of CHAR;
|
|
end;
|
|
NMDATETIMEFORMATA=tagNMDATETIMEFORMATA;
|
|
TNMDATETIMEFORMATA=tagNMDATETIMEFORMATA;
|
|
LPNMDATETIMEFORMATA=^NMDATETIMEFORMATA;
|
|
|
|
tagNMDATETIMEFORMATW = record
|
|
nmhdr : NMHDR;
|
|
pszFormat : LPCWSTR;
|
|
st : SYSTEMTIME;
|
|
pszDisplay : LPCWSTR;
|
|
szDisplay : Array[0..63] of WCHAR;
|
|
end;
|
|
NMDATETIMEFORMATW=tagNMDATETIMEFORMATW;
|
|
TNMDATETIMEFORMATW=tagNMDATETIMEFORMATW;
|
|
LPNMDATETIMEFORMATW=^NMDATETIMEFORMATW;
|
|
|
|
|
|
tagNMDATETIMEFORMATQUERYA = record
|
|
nmhdr : NMHDR;
|
|
pszFormat : LPCSTR;
|
|
szMax : SIZE;
|
|
end;
|
|
NMDATETIMEFORMATQUERYA=tagNMDATETIMEFORMATQUERYA;
|
|
TNMDATETIMEFORMATQUERYA=tagNMDATETIMEFORMATQUERYA;
|
|
LPNMDATETIMEFORMATQUERYA=^tagNMDATETIMEFORMATQUERYA;
|
|
|
|
tagNMDATETIMEFORMATQUERYW = record
|
|
nmhdr : NMHDR;
|
|
pszFormat : LPCWSTR;
|
|
szMax : SIZE;
|
|
end;
|
|
NMDATETIMEFORMATQUERYW=tagNMDATETIMEFORMATQUERYW;
|
|
TNMDATETIMEFORMATQUERYW=tagNMDATETIMEFORMATQUERYW;
|
|
LPNMDATETIMEFORMATQUERYW=^tagNMDATETIMEFORMATQUERYW;
|
|
|
|
//Generic structure for a key
|
|
tagNMKEY = Record
|
|
hdr : NMHDR;
|
|
wVKey : WORD;
|
|
flags : UINT;
|
|
end;
|
|
NMKEY=tagNMKEY;
|
|
LPNMKEY=^NMKEY;
|
|
|
|
//Generic WM_NOTIFY notification structures
|
|
tagNMMOUSE = Record
|
|
hdr : NMHDR;
|
|
dwItemSpec : DWORD;
|
|
dwItemData : DWORD;
|
|
pt : POINT;
|
|
end;
|
|
NMMOUSE=tagNMMOUSE;
|
|
LPNMMOUSE=^NMMOUSE;
|
|
PNMMOUSE=^NMMOUSE;
|
|
NMCLICK=NMMOUSE;
|
|
LPNMCLICK=LPNMMOUSE;
|
|
|
|
//TOOLBAR CONTROL
|
|
TBBUTTONINFOW = record
|
|
cbSize : UINT;
|
|
dwMask : DWORD;
|
|
idCommand : Longint;
|
|
iImage : Longint;
|
|
fsState : BYTE;
|
|
fsStyle : BYTE;
|
|
cx : WORD;
|
|
lParam : DWORD;
|
|
pszText : LPWSTR;
|
|
cchText : Longint;
|
|
end;
|
|
LPTBBUTTONINFOW=^TBBUTTONINFOW;
|
|
TBBUTTONINFO=TBBUTTONINFOW;
|
|
TTBButtonInfo=TBBUTTONINFO;
|
|
|
|
tagNMCUSTOMDRAWINFO = packed record
|
|
hdr: TNMHdr;
|
|
dwDrawStage: DWORD;
|
|
hdc: HDC;
|
|
rc: TRect;
|
|
dwItemSpec: DWORD;
|
|
uItemState: UINT;
|
|
lItemlParam: LPARAM;
|
|
end;
|
|
PNMCustomDraw = ^TNMCustomDraw;
|
|
TNMCustomDraw = tagNMCUSTOMDRAWINFO;
|
|
|
|
tagNMLVCUSTOMDRAW = packed record
|
|
nmcd: TNMCustomDraw;
|
|
clrText: COLORREF;
|
|
clrTextBk: COLORREF;
|
|
iSubItem: Integer;
|
|
end;
|
|
PNMLVCustomDraw = ^TNMLVCustomDraw;
|
|
TNMLVCustomDraw = tagNMLVCUSTOMDRAW;
|
|
|
|
tagNMLVODSTATECHANGE = packed record
|
|
hdr: TNMHdr;
|
|
iFrom: Integer;
|
|
iTo: Integer;
|
|
uNewState: UINT;
|
|
uOldState: UINT;
|
|
end;
|
|
PNMLVODStateChange = ^TNMLVODStateChange;
|
|
TNMLVODStateChange = tagNMLVODSTATECHANGE;
|
|
|
|
tagREBARINFO = record
|
|
cbSize : UINT;
|
|
fMask : UINT;
|
|
himl : HIMAGELIST;
|
|
end;
|
|
REBARINFO = tagREBARINFO;
|
|
LPREBARINFO = ^tagREBARINFO;
|
|
|
|
tagREBARBANDINFOW = record
|
|
cbSize : UINT;
|
|
fMask : UINT;
|
|
fStyle : UINT;
|
|
clrFore : COLORREF;
|
|
clrBack : COLORREF;
|
|
lpText : LPWSTR;
|
|
cch : UINT;
|
|
iImage : longint;
|
|
hwndChild : HWND;
|
|
cxMinChild : UINT;
|
|
cyMinChild : UINT;
|
|
cx : UINT;
|
|
hbmBack : HBITMAP;
|
|
wID : UINT;
|
|
cyChild : UINT;
|
|
cyMaxChild : UINT;
|
|
cyIntegral : UINT;
|
|
cxIdeal : UINT;
|
|
lParam : LPARAM;
|
|
end;
|
|
REBARBANDINFOW = tagREBARBANDINFOW;
|
|
LPREBARBANDINFOW = ^tagREBARBANDINFOW;
|
|
LPCREBARBANDINFOW = REBARBANDINFOW;
|
|
REBARBANDINFO = REBARBANDINFOW;
|
|
LPREBARBANDINFO = LPREBARBANDINFOW;
|
|
LPCREBARBANDINFO = LPCREBARBANDINFOW;
|
|
|
|
tagNMREBAR = record
|
|
hdr : NMHDR;
|
|
uBand : UINT;
|
|
wID : UINT;
|
|
cyChild : UINT;
|
|
cyBand : UINT;
|
|
end;
|
|
NMREBAR = tagNMREBAR;
|
|
LPNMREBAR = ^tagNMREBAR;
|
|
|
|
tagNMRBAUTOSIZE = record
|
|
hdr : NMHDR;
|
|
fChanged : BOOL;
|
|
rcTarget : RECT;
|
|
rcActual : RECT;
|
|
end;
|
|
NMRBAUTOSIZE = tagNMRBAUTOSIZE;
|
|
LPNMRBAUTOSIZE = ^tagNMRBAUTOSIZE;
|
|
|
|
_RB_HITTESTINFO = record
|
|
pt : POINT;
|
|
flags : UINT;
|
|
iBand : longint;
|
|
end;
|
|
RBHITTESTINFO = _RB_HITTESTINFO;
|
|
LPRBHITTESTINFO = ^_RB_HITTESTINFO;
|
|
|
|
tagCOMMANDBANDSRESTOREINFO = record
|
|
cbSize : UINT;
|
|
wID : UINT;
|
|
fStyle : UINT;
|
|
cxRestored : UINT;
|
|
fMaximized : BOOL;
|
|
end;
|
|
COMMANDBANDSRESTOREINFO = tagCOMMANDBANDSRESTOREINFO;
|
|
LPCOMMANDBANDSRESTOREINFO = ^tagCOMMANDBANDSRESTOREINFO;
|
|
LPCCOMMANDBANDSRESTOREINFO = COMMANDBANDSRESTOREINFO;
|
|
|
|
//*****************************************************************************
|
|
// functions
|
|
//*****************************************************************************
|
|
|
|
function CreatePropertySheetPage(lppsp:LPCPROPSHEETPAGE):HPROPSHEETPAGE; external ComctlDLL name 'CreatePropertySheetPageW';
|
|
function CreatePropertySheetPageW(lppsp:LPCPROPSHEETPAGE):HPROPSHEETPAGE; external ComctlDLL name 'CreatePropertySheetPageW';
|
|
function CreateStatusWindow(style:LONG; lpszText:LPCWSTR; hwndParent:HWND; wID:UINT):HWND; external ComctlDll name 'CreateStatusWindowW';
|
|
function CreateStatusWindowW(style:LONG; lpszText:LPCWSTR; hwndParent:HWND; wID:UINT):HWND; external ComctlDll name 'CreateStatusWindowW';
|
|
function CreateToolbarEx(hwnd:HWND; ws:DWORD; wID:UINT; nBitmaps:longint; hBMInst:HINST;wBMID:UINT; lpButtons:LPCTBBUTTON; iNumButtons:longint; dxButton:longint; dyButton:longint;dxBitmap:longint;
|
|
dyBitmap:longint; uStructSize:UINT):HWND; external ComctlDLL name 'CreateToolbarEx';
|
|
function CreateUpDownControl(dwStyle:DWORD; x:longint; y:longint; cx:longint; cy:longint;hParent:HWND; nID:longint; hInst:HINST; hBuddy:HWND; nUpper:longint;nLower:longint; nPos:longint):HWND; external ComctlDLL name 'CreateUpDownControl';
|
|
function DestroyPropertySheetPage(hPSPage:HPROPSHEETPAGE):WINBOOL; external ComctlDLL name 'DestroyPropertySheetPage';
|
|
procedure DrawStatusText(hDC:HDC; lprc:LPRECT; pszText:LPCWSTR; uFlags:UINT); external ComctlDLL name 'DrawStatusTextW';
|
|
procedure DrawStatusTextW(hDC:HDC; lprc:LPRECT; pszText:LPCWSTR; uFlags:UINT); external ComctlDLL name 'DrawStatusTextW';
|
|
procedure InitCommonControls; external ComctlDLL name 'InitCommonControls';
|
|
function InitCommonControlsEx(_para1:LPINITCOMMONCONTROLSEX):WINBOOL; external ComctlDLL name 'InitCommonControlsEx';
|
|
function PropertySheet(lppsph:LPCPROPSHEETHEADER):longint; external ComctlDll name 'PropertySheetW';
|
|
function PropertySheetW(lppsph:LPCPROPSHEETHEADER):longint; external ComctlDll name 'PropertySheetW';
|
|
|
|
function CommandBands_AddAdornments(hwndCmdBands:HWND; hinst:THandle; dwFlags:DWORD; prbbi:LPREBARBANDINFO):BOOL;external ComctlDll name 'CommandBands_AddAdornments';
|
|
function CommandBands_AddBands(hwndCmdBands:HWND; hinst:THandle; cBands:UINT; prbbi:LPREBARBANDINFO):BOOL;external ComctlDll name 'CommandBands_AddBands';
|
|
function CommandBands_Create(hinst:THandle; hwndParent:HWND; wID:UINT; dwStyles:DWORD; himl:HIMAGELIST):HWND;external ComctlDll name 'CommandBands_Create';
|
|
function CommandBands_GetCommandBar(hwndCmdBands:HWND; uBand:UINT):HWND;external ComctlDll name 'CommandBands_GetCommandBar';
|
|
function CommandBands_GetRestoreInformation(hwndCmdBands:HWND; uBand:UINT; pcbri:LPCOMMANDBANDSRESTOREINFO):BOOL;external ComctlDll name 'CommandBands_GetRestoreInformation';
|
|
function CommandBands_Show(hwndCmdBands:HWND; fShow:BOOL):BOOL;external ComctlDll name 'CommandBands_Show';
|
|
function CommandBar_AddAdornments(hwndCB:HWND; dwFlags:DWORD; dwReserved:DWORD):BOOL;external ComctlDll name 'CommandBar_AddAdornments';
|
|
function CommandBar_AddBitmap(hwndCB:HWND; hInst:THandle; idBitmap:longint; iNumImages:longint; iImageWidth:longint; iImageHeight:longint):longint;external ComctlDll name 'CommandBar_AddBitmap';
|
|
function CommandBar_Create(hInst:THandle; hwndParent:HWND; idCmdBar:longint):HWND;external ComctlDll name 'CommandBar_Create';
|
|
function CommandBar_DrawMenuBar(hwndCB:HWND; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_DrawMenuBar';
|
|
function CommandBar_GetMenu(hwndCB:HWND; iButton:WORD):HMENU;external ComctlDll name 'CommandBar_GetMenu';
|
|
function CommandBar_Height(hwndCB:HWND):longint;external ComctlDll name 'CommandBar_Height';
|
|
function CommandBar_InsertComboBox(hwndCB:HWND; THandle:THandle; iWidth:longint; dwStyle:UINT; idComboBox:WORD; iButton:WORD):HWND;external ComctlDll name 'CommandBar_InsertComboBox';
|
|
function CommandBar_InsertMenubar(hwndCB:HWND; hInst:THandle; idMenu:WORD; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_InsertMenubar';
|
|
function CommandBar_InsertMenubarEx(hwndCB:HWND; hinst:THandle; pszMenu:LPTSTR; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_InsertMenubarEx';
|
|
function CommandBar_Show(hwndCB:HWND; fShow:BOOL):BOOL;external ComctlDll name 'CommandBar_Show';
|
|
function IsCommandBarMessage(hwndCB:HWND; lpMsg:LPMSG):BOOL;external ComctlDll name 'IsCommandBarMessage';
|
|
procedure CommandBar_Destroy(hwndCB : HWND);
|
|
function CommandBar_IsVisible(hwndCB : HWND) : BOOL;
|
|
function CommandBar_AddButtons(hwndCB : HWND; cbButtons : UINT; lpButtons : LPTBBUTTON) : BOOL;
|
|
function CommandBar_InsertButton(hwndCB : HWND; iButton : longint; lpButton : LPTBBUTTON) : BOOL;
|
|
function CommandBar_AddToolTips(hwndCB: HWND; cbToolTips : UINT; lpToolTipsStrings : LPTSTR) : BOOL;
|
|
function CommandBands_Height(hwndCmdBands : HWND) : UINT;
|
|
function CommandBands_IsVisible(hwndCmdBands : HWND) : BOOL;
|
|
|
|
{$endif read_interface}
|
|
|
|
{$ifdef read_implementation}
|
|
|
|
procedure CommandBar_Destroy(hwndCB : HWND);
|
|
begin
|
|
DestroyWindow(hwndCB);
|
|
end;
|
|
|
|
function CommandBar_IsVisible(hwndCB : HWND) : BOOL;
|
|
begin
|
|
CommandBar_IsVisible:=IsWindowVisible(hwndCB);
|
|
end;
|
|
|
|
function CommandBar_AddButtons(hwndCB : HWND; cbButtons : UINT; lpButtons : LPTBBUTTON) : BOOL;
|
|
begin
|
|
CommandBar_AddButtons:=BOOL(SendMessage(hwndCB,TB_ADDBUTTONS,WPARAM(cbButtons),LPARAM(lpButtons)));
|
|
end;
|
|
|
|
function CommandBar_InsertButton(hwndCB : HWND; iButton : longint; lpButton : LPTBBUTTON) : BOOL;
|
|
begin
|
|
CommandBar_InsertButton:=BOOL(SendMessage(hwndCB,TB_INSERTBUTTON,WPARAM(iButton),LPARAM(lpButton)));
|
|
end;
|
|
|
|
function CommandBar_AddToolTips(hwndCB: HWND; cbToolTips : UINT; lpToolTipsStrings : LPTSTR) : BOOL;
|
|
begin
|
|
CommandBar_AddToolTips:=BOOL(SendMessage(hwndCB,TB_SETTOOLTIPS,WPARAM(cbToolTips),LPARAM(lpToolTipsStrings)));
|
|
end;
|
|
|
|
function CommandBands_Height(hwndCmdBands : HWND) : UINT;
|
|
begin
|
|
CommandBands_Height:=UINT(SendMessage(hwndCmdBands,RB_GETBARHEIGHT,0,0));
|
|
end;
|
|
|
|
function CommandBands_IsVisible(hwndCmdBands : HWND) : BOOL;
|
|
begin
|
|
CommandBands_IsVisible:=IsWindowVisible(hwndCmdBands);
|
|
end;
|
|
|
|
{$endif read_implementation}
|