commctrl.inc 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 2006 Free Pascal development team.
  4. See the file COPYING.FPC, included in this distribution,
  5. for details about the copyright.
  6. This program is distributed in the hope that it will be useful,
  7. but WITHOUT ANY WARRANTY; without even the implied warranty of
  8. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  9. **********************************************************************}
  10. { Declarations for commctrl WinCE API
  11. }
  12. {exported functions list = to do,
  13. * please remove functions done *
  14. Exports
  15. ordinal name
  16. 73 AddMRUData
  17. 66 AddMRUStringA
  18. 67 AddMRUStringW
  19. 35 CenterWindow
  20. 11 CommandBar_GetItemWindow
  21. 63 CreateMRUListA
  22. 64 CreateMRUListW
  23. 15 CreateToolbar
  24. 50 DPA_Create
  25. 61 DPA_DeleteAllPtrs
  26. 60 DPA_DeletePtr
  27. 31 DPA_Destroy
  28. 56 DPA_DestroyCallback
  29. 32 DPA_GetPtr
  30. 62 DPA_GetPtrIndex
  31. 54 DPA_Grow
  32. 51 DPA_InsertPtr
  33. 59 DPA_Search
  34. 53 DPA_SetPtr
  35. 52 DPA_Sort
  36. 46 DSA_Clone
  37. 23 DSA_Create
  38. 30 DSA_DeleteAllItems
  39. 29 DSA_DeleteItem
  40. 24 DSA_Destroy
  41. 47 DSA_DestroyCallback
  42. 48 DSA_EnumCallback
  43. 25 DSA_GetItem
  44. 26 DSA_GetItemPtr
  45. 27 DSA_InsertItem
  46. 45 DSA_Search
  47. 28 DSA_SetItem
  48. 58 DSA_SetRange
  49. 57 DSA_Sort
  50. 68 DelMRUString
  51. 49 DoReaderMode
  52. 71 EnumMRUListA
  53. 72 EnumMRUListW
  54. 74 FindMRUData
  55. 69 FindMRUStringA
  56. 70 FindMRUStringW
  57. 65 FreeMRUList
  58. 22 InvertRect
  59. 55 IsCapEditAvailable
  60. ListView_SetItemSpacing
  61. 75 PopulateComboWithMRU
  62. 76 PopulateMenuWithMRU
  63. 80 SHCreateDefaultGradient
  64. 79 SHDrawGradient
  65. 81 SHDrawText
  66. 77 SHGetSysColor
  67. 78 SHGetSystemMetrics
  68. 82 SHSetSysColors
  69. 83 SHSetSystemMetrics
  70. 34 StrToIntW
  71. 33 Str_SetPtrW
  72. }
  73. {$ifdef read_interface}
  74. //*****************************************************************************
  75. // consts
  76. //*****************************************************************************
  77. const
  78. ComctlDLL = 'commctrl';
  79. COMCTL32_VERSION=$020c;
  80. // Common control shared messages
  81. CCM_FIRST = $2000;
  82. CCM_LAST = CCM_FIRST + $200;
  83. CCM_SETBKCOLOR = CCM_FIRST + $1; // lParam is bkColor
  84. CCM_SETVERSION = CCM_FIRST + $7;
  85. CCM_GETVERSION = CCM_FIRST + $8;
  86. //InitCommonControlEx
  87. //I_IMAGENONE = -2; // Desktop listview uses this same value for I_IMAGENONE when (_WIN32_IE >= 0x0501)
  88. //ICC_LISTVIEW_CLASSES = $00000001; // listview, header
  89. //ICC_TREEVIEW_CLASSES = $00000002; // treeview, tooltips
  90. //ICC_BAR_CLASSES = $00000004; // toolbar, statusbar, trackbar, tooltips
  91. //ICC_TAB_CLASSES = $00000008; // tab, tooltips
  92. //ICC_UPDOWN_CLASS = $00000010; // updown
  93. //ICC_PROGRESS_CLASS = $00000020; // progress
  94. ICC_ANIMATE_CLASS = $00000080; // animate
  95. //ICC_WIN95_CLASSES = $0000007F;
  96. //ICC_DATE_CLASSES = $00000100; // month picker, date picker, time picker, updown
  97. //ICC_COOL_CLASSES = $00000400; // rebar (coolbar) control
  98. //ICC_INTERNET_CLASSES = $00000800; // IP Address control
  99. //ICC_TOOLTIP_CLASSES = $00001000; // Tooltip static & button
  100. //ICC_CAPEDIT_CLASS = $00002000; // All-caps edit control
  101. //ICC_FE_CLASSES = $40000000; // FE specific input subclasses
  102. LVM_FIRST = $1000; // ListView messages
  103. TV_FIRST = $1100; // TreeView messages
  104. HDM_FIRST = $1200; // Header messages
  105. //Ranges for control message IDs
  106. LVN_FIRST = (-100); // listview
  107. LVN_LAST = (-199);
  108. HDN_FIRST = (-300); // header
  109. HDN_LAST = (-399);
  110. TVN_FIRST = (-400); // treeview
  111. TVN_LAST = (-499);
  112. TTN_FIRST = (-520); // tooltips
  113. TTN_LAST = (-549);
  114. TCN_FIRST = (-550); // tab control
  115. TCN_LAST = (-580);
  116. // Shell reserved (0U-580U) - (0U-589U)
  117. CDN_FIRST = (-601); // common dialog (new)
  118. CDN_LAST = (-699);
  119. TBN_FIRST = (-700); // toolbar
  120. TBN_LAST = (-720);
  121. UDN_FIRST = (-721); // updown
  122. UDN_LAST = (-740);
  123. MCN_FIRST = (-750); // monthcal
  124. MCN_LAST = (-759);
  125. RBN_FIRST = (-831); // rebar
  126. RBN_LAST = (-859);
  127. IPN_FIRST = (-860); // internet address
  128. IPN_LAST = (-879); // internet address
  129. SBN_FIRST = (-880); // status bar
  130. SBN_LAST = (-900);
  131. SHN_FIRST = (-1400); // Shell reserved
  132. SHN_LAST = (-1500);
  133. MSGF_COMMCTRL_BEGINDRAG = $4200;
  134. MSGF_COMMCTRL_SIZEHEADER = $4201;
  135. MSGF_COMMCTRL_DRAGSELECT = $4202;
  136. //Generic WM_NOTIFY notification codes
  137. NM_FIRST = 0;
  138. NM_LAST = -99;
  139. //NM_OUTOFMEMORY = (NM_FIRST-1);
  140. //NM_CLICK = (NM_FIRST-2);
  141. //NM_DBLCLK = (NM_FIRST-3);
  142. //NM_RETURN = (NM_FIRST-4);
  143. //NM_RCLICK = (NM_FIRST-5);
  144. //NM_RDBLCLK = (NM_FIRST-6);
  145. //NM_SETFOCUS = (NM_FIRST-7);
  146. //NM_KILLFOCUS = (NM_FIRST-8);
  147. NM_CUSTOMDRAW = (NM_FIRST-12);
  148. NM_HOVER = (NM_FIRST-13);
  149. NM_NCHITTEST = (NM_FIRST-14);
  150. NM_KEYDOWN = (NM_FIRST-15);
  151. NM_RECOGNIZEGESTURE = (NM_FIRST-50);
  152. { Header control notifications }
  153. HDN_BEGINTRACKW = HDN_FIRST-26;
  154. HDN_DIVIDERDBLCLICKW = HDN_FIRST-25;
  155. HDN_ENDTRACKW = HDN_FIRST-27;
  156. HDN_ITEMCHANGEDW = HDN_FIRST-21;
  157. HDN_ITEMCHANGINGW = HDN_FIRST-20;
  158. HDN_ITEMCLICKW = HDN_FIRST-22;
  159. HDN_ITEMDBLCLICKW = HDN_FIRST-23;
  160. HDN_TRACKW = HDN_FIRST-28;
  161. HDN_GETDISPINFOW = HDN_FIRST-29;
  162. HDN_BEGINDRAG = HDN_FIRST-10;
  163. HDN_ENDDRAG = HDN_FIRST-11;
  164. HDN_BEGINTRACK = HDN_BEGINTRACKW;
  165. HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKW;
  166. HDN_ENDTRACK = HDN_ENDTRACKW;
  167. HDN_ITEMCHANGED = HDN_ITEMCHANGEDW;
  168. HDN_ITEMCHANGING = HDN_ITEMCHANGINGW;
  169. HDN_ITEMCLICK = HDN_ITEMCLICKW;
  170. HDN_ITEMDBLCLICK = HDN_ITEMDBLCLICKW;
  171. HDN_TRACK = HDN_TRACKW;
  172. HDN_GETDISPINFO = HDN_GETDISPINFOW;
  173. // DATETIMEPICK CONTROL
  174. DATETIMEPICK_CLASS ='SysDateTimePick32';
  175. DTM_FIRST = $1000;
  176. DTM_GETSYSTEMTIME = DTM_FIRST + 1;
  177. DTM_SETSYSTEMTIME = DTM_FIRST + 2;
  178. DTM_GETRANGE = DTM_FIRST + 3;
  179. DTM_SETRANGE = DTM_FIRST + 4;
  180. DTM_SETFORMATA = DTM_FIRST + 5;
  181. DTM_SETMCCOLOR = DTM_FIRST + 6;
  182. DTM_GETMCCOLOR = DTM_FIRST + 7;
  183. DTM_GETMONTHCAL = DTM_FIRST + 8;
  184. DTM_SETMCFONT = DTM_FIRST + 9;
  185. DTM_GETMCFONT = DTM_FIRST + 10;
  186. DTM_SETFORMATW = DTM_FIRST + 50;
  187. DTM_SETFORMAT = DTM_SETFORMATW;
  188. DTS_UPDOWN = $0001;
  189. DTS_SHOWNONE = $0002;
  190. DTS_SHORTDATEFORMAT = $0000;
  191. DTS_LONGDATEFORMAT = $0004;
  192. DTS_SHORTDATECENTURYFORMAT = $000C;
  193. DTS_TIMEFORMAT = $0009;
  194. DTS_APPCANPARSE = $0010;
  195. DTS_RIGHTALIGN = $0020;
  196. DTS_NONEBUTTON = $0080;
  197. //datetimepick
  198. DTN_FIRST =-760;
  199. DTN_LAST =-799;
  200. DTN_DATETIMECHANGE = DTN_FIRST + 1;
  201. DTN_USERSTRINGA = DTN_FIRST + 2;
  202. DTN_WMKEYDOWNA = DTN_FIRST + 3;
  203. DTN_FORMATA = DTN_FIRST + 4;
  204. DTN_FORMATQUERYA = DTN_FIRST + 5;
  205. DTN_DROPDOWN = DTN_FIRST + 6;
  206. DTN_CLOSEUP = DTN_FIRST + 7;
  207. DTN_USERSTRINGW = DTN_FIRST + 15;
  208. DTN_WMKEYDOWNW = DTN_FIRST + 16;
  209. DTN_FORMATW = DTN_FIRST + 17;
  210. DTN_FORMATQUERYW = DTN_FIRST + 18;
  211. DTN_USERSTRING = DTN_USERSTRINGW;
  212. GDTR_MIN = $0001;
  213. GDTR_MAX = $0002;
  214. GDT_ERROR = -1;
  215. GDT_VALID = 0;
  216. GDT_NONE = 1;
  217. //TOOLBAR CONTROL
  218. //TOOLBARCLASSNAMEW = 'ToolbarWindow32';
  219. //TOOLBARCLASSNAME = TOOLBARCLASSNAMEW;
  220. TBIF_IMAGE = $00000001;
  221. TBIF_TEXT = $00000002;
  222. TBIF_STATE = $00000004;
  223. TBIF_STYLE = $00000008;
  224. TBIF_LPARAM = $00000010;
  225. TBIF_COMMAND = $00000020;
  226. TBIF_SIZE = $00000040;
  227. // BUTTONINFO APIs
  228. TB_GETBUTTONINFOW = (WM_USER + 63);
  229. TB_SETBUTTONINFOW = (WM_USER + 64);
  230. TB_GETBUTTONINFO = TB_GETBUTTONINFOW;
  231. TB_SETBUTTONINFO = TB_SETBUTTONINFOW;
  232. TB_INSERTBUTTONW = (WM_USER + 67);
  233. TB_ADDBUTTONSW = (WM_USER + 68);
  234. TB_HITTEST = (WM_USER + 69);
  235. //TB_INSERTBUTTON = TB_INSERTBUTTONW;
  236. //TB_ADDBUTTONS = TB_ADDBUTTONSW;
  237. TB_SETDRAWTEXTFLAGS = (WM_USER + 70);
  238. //TBN_GETBUTTONINFOW = (TBN_FIRST-20);
  239. //TBN_BEGINDRAG = (TBN_FIRST-1);
  240. //TBN_ENDDRAG = (TBN_FIRST-2);
  241. TBN_DROPDOWN = (TBN_FIRST - 10);
  242. TBN_DRAGOUT = (TBN_FIRST - 14);
  243. //TBN_GETBUTTONINFO = TBN_GETBUTTONINFOW;
  244. // custom draw return flags
  245. // values under 0x00010000 are reserved for global custom draw values.
  246. // above that are for specific controls
  247. CDRF_DODEFAULT = $00000000;
  248. CDRF_NEWFONT = $00000002;
  249. CDRF_SKIPDEFAULT = $00000004;
  250. CDRF_NOTIFYPOSTPAINT = $00000010;
  251. CDRF_NOTIFYITEMDRAW = $00000020;
  252. CDRF_NOTIFYSUBITEMDRAW = $00000020; // flags are the same, we can distinguish by context
  253. CDRF_NOTIFYPOSTERASE = $00000040;
  254. // drawstage flags
  255. // values under = $00010000 are reserved for global custom draw values.
  256. // above that are for specific controls
  257. CDDS_PREPAINT = $00000001;
  258. CDDS_POSTPAINT = $00000002;
  259. CDDS_PREERASE = $00000003;
  260. CDDS_POSTERASE = $00000004;
  261. // the = $000010000 bit means it's individual item specific
  262. CDDS_ITEM = $00010000;
  263. CDDS_ITEMPREPAINT = CDDS_ITEM or CDDS_PREPAINT;
  264. CDDS_ITEMPOSTPAINT = CDDS_ITEM or CDDS_POSTPAINT;
  265. CDDS_ITEMPREERASE = CDDS_ITEM or CDDS_PREERASE;
  266. CDDS_ITEMPOSTERASE = CDDS_ITEM or CDDS_POSTERASE;
  267. CDDS_SUBITEM = $00020000;
  268. // Pocket PC special controls
  269. WC_CAPEDIT = 'CAPEDIT';
  270. WC_TSTATIC = 'TTSTATIC';
  271. WC_TBUTTON = 'TTBUTTON';
  272. // for FE, single byte character edit
  273. WC_SBEDIT = 'sbedit';
  274. // REBAR CONTROL
  275. REBARCLASSNAME = 'ReBarWindow';
  276. RBIM_IMAGELIST = $00000001;
  277. RBS_VARHEIGHT = $0200;
  278. RBS_BANDBORDERS = $0400;
  279. RBS_FIXEDORDER = $0800;
  280. RBS_SMARTLABELS = $1000;
  281. RBS_AUTOSIZE = $2000;
  282. RBS_VERTICALGRIPPER = $4000; { this always has the vertical gripper (default for horizontal mode) }
  283. RBBS_BREAK = $00000001; { break to new line }
  284. RBBS_FIXEDSIZE = $00000002; { band can't be sized }
  285. RBBS_CHILDEDGE = $00000004; { edge around top & bottom of child window }
  286. RBBS_HIDDEN = $00000008; { don't show }
  287. RBBS_NOVERT = $00000010; { don't show when vertical }
  288. RBBS_FIXEDBMP = $00000020; { bitmap doesn't move during band resize }
  289. RBBS_VARIABLEHEIGHT = $00000040; { allow autosizing of this child vertically }
  290. RBBS_GRIPPERALWAYS = $00000080; { always show the gripper }
  291. RBBS_NOGRIPPER = $00000100; { never show gripper for this band }
  292. RBBIM_STYLE = $00000001;
  293. RBBIM_COLORS = $00000002;
  294. RBBIM_TEXT = $00000004;
  295. RBBIM_IMAGE = $00000008;
  296. RBBIM_CHILD = $00000010;
  297. RBBIM_CHILDSIZE = $00000020;
  298. RBBIM_SIZE = $00000040;
  299. RBBIM_BACKGROUND = $00000080;
  300. RBBIM_ID = $00000100;
  301. RBBIM_IDEALSIZE = $00000200;
  302. RBBIM_LPARAM = $00000400;
  303. RB_DELETEBAND = WM_USER+2;
  304. RB_GETBARINFO = WM_USER+3;
  305. RB_SETBARINFO = WM_USER+4;
  306. RB_SETPARENT = WM_USER+7;
  307. RB_HITTEST = WM_USER+8;
  308. RB_GETRECT = WM_USER+9;
  309. RB_INSERTBANDW = WM_USER+10;
  310. RB_SETBANDINFOW = WM_USER+11;
  311. RB_GETBANDCOUNT = WM_USER+12;
  312. RB_GETROWCOUNT = WM_USER+13;
  313. RB_GETROWHEIGHT = WM_USER+14;
  314. RB_IDTOINDEX = WM_USER+16; { wParam == id }
  315. RB_SETBKCOLOR = WM_USER+19; { sets the default BK color }
  316. RB_GETBKCOLOR = WM_USER+20; { defaults to CLR_NONE }
  317. RB_SETTEXTCOLOR = WM_USER+21;
  318. RB_GETTEXTCOLOR = WM_USER+22; { defaults to 0x00000000 }
  319. RB_SIZETORECT = WM_USER+23; { resize the rebar/break bands and such to this rect (lparam) }
  320. RB_INSERTBAND = RB_INSERTBANDW;
  321. RB_SETBANDINFO = RB_SETBANDINFOW;
  322. RB_BEGINDRAG = WM_USER+24;
  323. RB_ENDDRAG = WM_USER+25;
  324. RB_DRAGMOVE = WM_USER+26;
  325. RB_GETBARHEIGHT = WM_USER+27;
  326. RB_GETBANDINFOW = WM_USER+28;
  327. RB_GETBANDINFO = RB_GETBANDINFOW;
  328. RB_MINIMIZEBAND = WM_USER+30;
  329. RB_MAXIMIZEBAND = WM_USER+31;
  330. RB_GETBANDBORDERS = WM_USER+34; { returns in lparam = lprc the amount of edges added to band wparam }
  331. RB_SHOWBAND = WM_USER+35; { show/hide band }
  332. RB_MOVEBAND = WM_USER+36;
  333. RBN_HEIGHTCHANGE = RBN_FIRST-0;
  334. RBN_LAYOUTCHANGED = RBN_FIRST-2;
  335. RBN_AUTOSIZE = RBN_FIRST-3;
  336. RBN_BEGINDRAG = RBN_FIRST-4;
  337. RBN_ENDDRAG = RBN_FIRST-5;
  338. RBHT_NOWHERE = $0001;
  339. RBHT_CAPTION = $0002;
  340. RBHT_CLIENT = $0003;
  341. RBHT_GRABBER = $0004;
  342. //*****************************************************************************
  343. // types
  344. //*****************************************************************************
  345. type
  346. // DATETIMEPICK CONTROL
  347. tagNMDATETIMECHANGE = record
  348. nmhdr : NMHDR;
  349. dwFlags : DWORD;
  350. st : SYSTEMTIME;
  351. end;
  352. NMDATETIMECHANGE=tagNMDATETIMECHANGE;
  353. TNMDATETIMECHANGE=tagNMDATETIMECHANGE;
  354. LPNMDATETIMECHANGE=^tagNMDATETIMECHANGE;
  355. tagNMDATETIMESTRINGW = record
  356. nmhdr : NMHDR;
  357. pszUserString : LPCWSTR;
  358. st : SYSTEMTIME;
  359. dwFlags : DWORD;
  360. end;
  361. NMDATETIMESTRINGW=tagNMDATETIMESTRINGW;
  362. TNMDATETIMESTRINGW=tagNMDATETIMESTRINGW;
  363. LPNMDATETIMESTRINGW=^tagNMDATETIMESTRINGW;
  364. NMDATETIMESTRING=tagNMDATETIMESTRINGW;
  365. TNMDATETIMESTRING=tagNMDATETIMESTRINGW;
  366. PNMDATETIMESTRING=^tagNMDATETIMESTRINGW;
  367. tagNMDATETIMEWMKEYDOWNA = record
  368. nmhdr : NMHDR;
  369. nVirtKey : integer;
  370. pszFormat : LPCSTR;
  371. st : SYSTEMTIME;
  372. end;
  373. NMDATETIMEWMKEYDOWNA=tagNMDATETIMEWMKEYDOWNA;
  374. TNMDATETIMEWMKEYDOWNA=tagNMDATETIMEWMKEYDOWNA;
  375. LPNMDATETIMEWMKEYDOWNA=^tagNMDATETIMEWMKEYDOWNA;
  376. tagNMDATETIMEWMKEYDOWNW = record
  377. nmhdr : NMHDR;
  378. nVirtKey : integer;
  379. pszFormat : LPCWSTR;
  380. st : SYSTEMTIME;
  381. end;
  382. NMDATETIMEWMKEYDOWNW=tagNMDATETIMEWMKEYDOWNW;
  383. TNMDATETIMEWMKEYDOWNW=tagNMDATETIMEWMKEYDOWNW;
  384. LPNMDATETIMEWMKEYDOWNW=^tagNMDATETIMEWMKEYDOWNW;
  385. tagNMDATETIMEFORMATA = record
  386. nmhdr : NMHDR;
  387. pszFormat : LPCSTR;
  388. st : SYSTEMTIME;
  389. pszDisplay : LPCSTR;
  390. szDisplay : Array[0..63] of CHAR;
  391. end;
  392. NMDATETIMEFORMATA=tagNMDATETIMEFORMATA;
  393. TNMDATETIMEFORMATA=tagNMDATETIMEFORMATA;
  394. LPNMDATETIMEFORMATA=^NMDATETIMEFORMATA;
  395. tagNMDATETIMEFORMATW = record
  396. nmhdr : NMHDR;
  397. pszFormat : LPCWSTR;
  398. st : SYSTEMTIME;
  399. pszDisplay : LPCWSTR;
  400. szDisplay : Array[0..63] of WCHAR;
  401. end;
  402. NMDATETIMEFORMATW=tagNMDATETIMEFORMATW;
  403. TNMDATETIMEFORMATW=tagNMDATETIMEFORMATW;
  404. LPNMDATETIMEFORMATW=^NMDATETIMEFORMATW;
  405. tagNMDATETIMEFORMATQUERYA = record
  406. nmhdr : NMHDR;
  407. pszFormat : LPCSTR;
  408. szMax : SIZE;
  409. end;
  410. NMDATETIMEFORMATQUERYA=tagNMDATETIMEFORMATQUERYA;
  411. TNMDATETIMEFORMATQUERYA=tagNMDATETIMEFORMATQUERYA;
  412. LPNMDATETIMEFORMATQUERYA=^tagNMDATETIMEFORMATQUERYA;
  413. tagNMDATETIMEFORMATQUERYW = record
  414. nmhdr : NMHDR;
  415. pszFormat : LPCWSTR;
  416. szMax : SIZE;
  417. end;
  418. NMDATETIMEFORMATQUERYW=tagNMDATETIMEFORMATQUERYW;
  419. TNMDATETIMEFORMATQUERYW=tagNMDATETIMEFORMATQUERYW;
  420. LPNMDATETIMEFORMATQUERYW=^tagNMDATETIMEFORMATQUERYW;
  421. //Generic structure for a key
  422. tagNMKEY = Record
  423. hdr : NMHDR;
  424. wVKey : WORD;
  425. flags : UINT;
  426. end;
  427. NMKEY=tagNMKEY;
  428. LPNMKEY=^NMKEY;
  429. //Generic WM_NOTIFY notification structures
  430. tagNMMOUSE = Record
  431. hdr : NMHDR;
  432. dwItemSpec : DWORD;
  433. dwItemData : DWORD;
  434. pt : POINT;
  435. end;
  436. NMMOUSE=tagNMMOUSE;
  437. LPNMMOUSE=^NMMOUSE;
  438. PNMMOUSE=^NMMOUSE;
  439. NMCLICK=NMMOUSE;
  440. LPNMCLICK=LPNMMOUSE;
  441. //TOOLBAR CONTROL
  442. TBBUTTONINFOW = record
  443. cbSize : UINT;
  444. dwMask : DWORD;
  445. idCommand : Longint;
  446. iImage : Longint;
  447. fsState : BYTE;
  448. fsStyle : BYTE;
  449. cx : WORD;
  450. lParam : DWORD;
  451. pszText : LPWSTR;
  452. cchText : Longint;
  453. end;
  454. LPTBBUTTONINFOW=^TBBUTTONINFOW;
  455. TBBUTTONINFO=TBBUTTONINFOW;
  456. TTBButtonInfo=TBBUTTONINFO;
  457. tagNMCUSTOMDRAWINFO = packed record
  458. hdr: TNMHdr;
  459. dwDrawStage: DWORD;
  460. hdc: HDC;
  461. rc: TRect;
  462. dwItemSpec: DWORD;
  463. uItemState: UINT;
  464. lItemlParam: LPARAM;
  465. end;
  466. PNMCustomDraw = ^TNMCustomDraw;
  467. TNMCustomDraw = tagNMCUSTOMDRAWINFO;
  468. tagNMLVCUSTOMDRAW = packed record
  469. nmcd: TNMCustomDraw;
  470. clrText: COLORREF;
  471. clrTextBk: COLORREF;
  472. iSubItem: Integer;
  473. end;
  474. PNMLVCustomDraw = ^TNMLVCustomDraw;
  475. TNMLVCustomDraw = tagNMLVCUSTOMDRAW;
  476. tagNMLVODSTATECHANGE = packed record
  477. hdr: TNMHdr;
  478. iFrom: Integer;
  479. iTo: Integer;
  480. uNewState: UINT;
  481. uOldState: UINT;
  482. end;
  483. PNMLVODStateChange = ^TNMLVODStateChange;
  484. TNMLVODStateChange = tagNMLVODSTATECHANGE;
  485. tagREBARINFO = record
  486. cbSize : UINT;
  487. fMask : UINT;
  488. himl : HIMAGELIST;
  489. end;
  490. REBARINFO = tagREBARINFO;
  491. LPREBARINFO = ^tagREBARINFO;
  492. tagREBARBANDINFOW = record
  493. cbSize : UINT;
  494. fMask : UINT;
  495. fStyle : UINT;
  496. clrFore : COLORREF;
  497. clrBack : COLORREF;
  498. lpText : LPWSTR;
  499. cch : UINT;
  500. iImage : longint;
  501. hwndChild : HWND;
  502. cxMinChild : UINT;
  503. cyMinChild : UINT;
  504. cx : UINT;
  505. hbmBack : HBITMAP;
  506. wID : UINT;
  507. cyChild : UINT;
  508. cyMaxChild : UINT;
  509. cyIntegral : UINT;
  510. cxIdeal : UINT;
  511. lParam : LPARAM;
  512. end;
  513. REBARBANDINFOW = tagREBARBANDINFOW;
  514. LPREBARBANDINFOW = ^tagREBARBANDINFOW;
  515. LPCREBARBANDINFOW = REBARBANDINFOW;
  516. REBARBANDINFO = REBARBANDINFOW;
  517. LPREBARBANDINFO = LPREBARBANDINFOW;
  518. LPCREBARBANDINFO = LPCREBARBANDINFOW;
  519. tagNMREBAR = record
  520. hdr : NMHDR;
  521. uBand : UINT;
  522. wID : UINT;
  523. cyChild : UINT;
  524. cyBand : UINT;
  525. end;
  526. NMREBAR = tagNMREBAR;
  527. LPNMREBAR = ^tagNMREBAR;
  528. tagNMRBAUTOSIZE = record
  529. hdr : NMHDR;
  530. fChanged : BOOL;
  531. rcTarget : RECT;
  532. rcActual : RECT;
  533. end;
  534. NMRBAUTOSIZE = tagNMRBAUTOSIZE;
  535. LPNMRBAUTOSIZE = ^tagNMRBAUTOSIZE;
  536. _RB_HITTESTINFO = record
  537. pt : POINT;
  538. flags : UINT;
  539. iBand : longint;
  540. end;
  541. RBHITTESTINFO = _RB_HITTESTINFO;
  542. LPRBHITTESTINFO = ^_RB_HITTESTINFO;
  543. tagCOMMANDBANDSRESTOREINFO = record
  544. cbSize : UINT;
  545. wID : UINT;
  546. fStyle : UINT;
  547. cxRestored : UINT;
  548. fMaximized : BOOL;
  549. end;
  550. COMMANDBANDSRESTOREINFO = tagCOMMANDBANDSRESTOREINFO;
  551. LPCOMMANDBANDSRESTOREINFO = ^tagCOMMANDBANDSRESTOREINFO;
  552. LPCCOMMANDBANDSRESTOREINFO = COMMANDBANDSRESTOREINFO;
  553. //*****************************************************************************
  554. // functions
  555. //*****************************************************************************
  556. function CreatePropertySheetPage(lppsp:LPCPROPSHEETPAGE):HPROPSHEETPAGE; external ComctlDLL name 'CreatePropertySheetPageW';
  557. function CreatePropertySheetPageW(lppsp:LPCPROPSHEETPAGE):HPROPSHEETPAGE; external ComctlDLL name 'CreatePropertySheetPageW';
  558. function CreateStatusWindow(style:LONG; lpszText:LPCWSTR; hwndParent:HWND; wID:UINT):HWND; external ComctlDll name 'CreateStatusWindowW';
  559. function CreateStatusWindowW(style:LONG; lpszText:LPCWSTR; hwndParent:HWND; wID:UINT):HWND; external ComctlDll name 'CreateStatusWindowW';
  560. function CreateToolbarEx(hwnd:HWND; ws:DWORD; wID:UINT; nBitmaps:longint; hBMInst:HINST;wBMID:UINT; lpButtons:LPCTBBUTTON; iNumButtons:longint; dxButton:longint; dyButton:longint;dxBitmap:longint;
  561. dyBitmap:longint; uStructSize:UINT):HWND; external ComctlDLL name 'CreateToolbarEx';
  562. 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';
  563. function DestroyPropertySheetPage(hPSPage:HPROPSHEETPAGE):WINBOOL; external ComctlDLL name 'DestroyPropertySheetPage';
  564. procedure DrawStatusText(hDC:HDC; lprc:LPRECT; pszText:LPCWSTR; uFlags:UINT); external ComctlDLL name 'DrawStatusTextW';
  565. procedure DrawStatusTextW(hDC:HDC; lprc:LPRECT; pszText:LPCWSTR; uFlags:UINT); external ComctlDLL name 'DrawStatusTextW';
  566. procedure InitCommonControls; external ComctlDLL name 'InitCommonControls';
  567. function InitCommonControlsEx(_para1:LPINITCOMMONCONTROLSEX):WINBOOL; external ComctlDLL name 'InitCommonControlsEx';
  568. function PropertySheet(lppsph:LPCPROPSHEETHEADER):longint; external ComctlDll name 'PropertySheetW';
  569. function PropertySheetW(lppsph:LPCPROPSHEETHEADER):longint; external ComctlDll name 'PropertySheetW';
  570. function CommandBands_AddAdornments(hwndCmdBands:HWND; hinst:THandle; dwFlags:DWORD; prbbi:LPREBARBANDINFO):BOOL;external ComctlDll name 'CommandBands_AddAdornments';
  571. function CommandBands_AddBands(hwndCmdBands:HWND; hinst:THandle; cBands:UINT; prbbi:LPREBARBANDINFO):BOOL;external ComctlDll name 'CommandBands_AddBands';
  572. function CommandBands_Create(hinst:THandle; hwndParent:HWND; wID:UINT; dwStyles:DWORD; himl:HIMAGELIST):HWND;external ComctlDll name 'CommandBands_Create';
  573. function CommandBands_GetCommandBar(hwndCmdBands:HWND; uBand:UINT):HWND;external ComctlDll name 'CommandBands_GetCommandBar';
  574. function CommandBands_GetRestoreInformation(hwndCmdBands:HWND; uBand:UINT; pcbri:LPCOMMANDBANDSRESTOREINFO):BOOL;external ComctlDll name 'CommandBands_GetRestoreInformation';
  575. function CommandBands_Show(hwndCmdBands:HWND; fShow:BOOL):BOOL;external ComctlDll name 'CommandBands_Show';
  576. function CommandBar_AddAdornments(hwndCB:HWND; dwFlags:DWORD; dwReserved:DWORD):BOOL;external ComctlDll name 'CommandBar_AddAdornments';
  577. function CommandBar_AddBitmap(hwndCB:HWND; hInst:THandle; idBitmap:longint; iNumImages:longint; iImageWidth:longint; iImageHeight:longint):longint;external ComctlDll name 'CommandBar_AddBitmap';
  578. function CommandBar_Create(hInst:THandle; hwndParent:HWND; idCmdBar:longint):HWND;external ComctlDll name 'CommandBar_Create';
  579. function CommandBar_DrawMenuBar(hwndCB:HWND; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_DrawMenuBar';
  580. function CommandBar_GetMenu(hwndCB:HWND; iButton:WORD):HMENU;external ComctlDll name 'CommandBar_GetMenu';
  581. function CommandBar_Height(hwndCB:HWND):longint;external ComctlDll name 'CommandBar_Height';
  582. function CommandBar_InsertComboBox(hwndCB:HWND; THandle:THandle; iWidth:longint; dwStyle:UINT; idComboBox:WORD; iButton:WORD):HWND;external ComctlDll name 'CommandBar_InsertComboBox';
  583. function CommandBar_InsertMenubar(hwndCB:HWND; hInst:THandle; idMenu:WORD; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_InsertMenubar';
  584. function CommandBar_InsertMenubarEx(hwndCB:HWND; hinst:THandle; pszMenu:LPTSTR; iButton:WORD):BOOL;external ComctlDll name 'CommandBar_InsertMenubarEx';
  585. function CommandBar_Show(hwndCB:HWND; fShow:BOOL):BOOL;external ComctlDll name 'CommandBar_Show';
  586. function IsCommandBarMessage(hwndCB:HWND; lpMsg:LPMSG):BOOL;external ComctlDll name 'IsCommandBarMessage';
  587. procedure CommandBar_Destroy(hwndCB : HWND);
  588. function CommandBar_IsVisible(hwndCB : HWND) : BOOL;
  589. function CommandBar_AddButtons(hwndCB : HWND; cbButtons : UINT; lpButtons : LPTBBUTTON) : BOOL;
  590. function CommandBar_InsertButton(hwndCB : HWND; iButton : longint; lpButton : LPTBBUTTON) : BOOL;
  591. function CommandBar_AddToolTips(hwndCB: HWND; cbToolTips : UINT; lpToolTipsStrings : LPTSTR) : BOOL;
  592. function CommandBands_Height(hwndCmdBands : HWND) : UINT;
  593. function CommandBands_IsVisible(hwndCmdBands : HWND) : BOOL;
  594. {$endif read_interface}
  595. {$ifdef read_implementation}
  596. procedure CommandBar_Destroy(hwndCB : HWND);
  597. begin
  598. DestroyWindow(hwndCB);
  599. end;
  600. function CommandBar_IsVisible(hwndCB : HWND) : BOOL;
  601. begin
  602. CommandBar_IsVisible:=IsWindowVisible(hwndCB);
  603. end;
  604. function CommandBar_AddButtons(hwndCB : HWND; cbButtons : UINT; lpButtons : LPTBBUTTON) : BOOL;
  605. begin
  606. CommandBar_AddButtons:=BOOL(SendMessage(hwndCB,TB_ADDBUTTONS,WPARAM(cbButtons),LPARAM(lpButtons)));
  607. end;
  608. function CommandBar_InsertButton(hwndCB : HWND; iButton : longint; lpButton : LPTBBUTTON) : BOOL;
  609. begin
  610. CommandBar_InsertButton:=BOOL(SendMessage(hwndCB,TB_INSERTBUTTON,WPARAM(iButton),LPARAM(lpButton)));
  611. end;
  612. function CommandBar_AddToolTips(hwndCB: HWND; cbToolTips : UINT; lpToolTipsStrings : LPTSTR) : BOOL;
  613. begin
  614. CommandBar_AddToolTips:=BOOL(SendMessage(hwndCB,TB_SETTOOLTIPS,WPARAM(cbToolTips),LPARAM(lpToolTipsStrings)));
  615. end;
  616. function CommandBands_Height(hwndCmdBands : HWND) : UINT;
  617. begin
  618. CommandBands_Height:=UINT(SendMessage(hwndCmdBands,RB_GETBARHEIGHT,0,0));
  619. end;
  620. function CommandBands_IsVisible(hwndCmdBands : HWND) : BOOL;
  621. begin
  622. CommandBands_IsVisible:=IsWindowVisible(hwndCmdBands);
  623. end;
  624. {$endif read_implementation}