You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

delphicommctrl.inc 55KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512
  1. {*******************************************************************************
  2. delpjicommctrl.inc
  3. -- included in KOL.pas --
  4. *******************************************************************************}
  5. ////////////////////////////////////////////////////////////////////////////
  6. // this part of unit contains definitions moved here from CommCtrl.pas
  7. // (using of CommCtrl.pas in Delphi3 leads to increase size of executable
  8. // onto 30K)
  9. type
  10. PTCItemA = ^TTCItemA;
  11. PTCItemW = ^TTCItemW;
  12. PTCItem = {$IFDEF UNICODE_CTRLS} PTCItemW {$ELSE} PTCItemA {$ENDIF};
  13. tagTCITEMA = packed record
  14. mask: UINT;
  15. dwState: UINT;
  16. dwStateMask: UINT;
  17. pszText: PAnsiChar;
  18. cchTextMax: Integer;
  19. iImage: Integer;
  20. lParam: LPARAM;
  21. end;
  22. tagTCITEMW = packed record
  23. mask: UINT;
  24. dwState: UINT;
  25. dwStateMask: UINT;
  26. pszText: PWideChar;
  27. cchTextMax: Integer;
  28. iImage: Integer;
  29. lParam: LPARAM;
  30. end;
  31. PTCKeyDown = ^TTCKeyDown;
  32. TTCKEYDOWN = packed record
  33. hdr: TNMHDR;
  34. wVKey: Word;
  35. flags: UINT;
  36. end;
  37. tagTCITEM = {$IFDEF UNICODE_CTRLS} tagTCITEMW {$ELSE} tagTCITEMA {$ENDIF};
  38. _TC_ITEMA = tagTCITEMA;
  39. _TC_ITEMW = tagTCITEMW;
  40. _TC_ITEM = {$IFDEF UNICODE_CTRLS} _TC_ITEMW {$ELSE} _TC_ITEMA {$ENDIF};
  41. TTCItemA = tagTCITEMA;
  42. TTCItemW = tagTCITEMW;
  43. TTCItem = {$IFDEF UNICODE_CTRLS} TTCItemW {$ELSE} TTCItemA {$ENDIF};
  44. TC_ITEMA = tagTCITEMA;
  45. TC_ITEMW = tagTCITEMW;
  46. TC_ITEM = {$IFDEF UNICODE_CTRLS} TC_ITEMW {$ELSE} TC_ITEMA {$ENDIF};
  47. const
  48. CCM_FIRST = $2000; { Common control shared messages }
  49. CCM_SETBKCOLOR = CCM_FIRST + 1; // lParam is bkColor
  50. CCM_SETCOLORSCHEME = CCM_FIRST + 2; // lParam is color scheme
  51. CCM_GETCOLORSCHEME = CCM_FIRST + 3; // fills in COLORSCHEME pointed to by lParam
  52. CCM_GETDROPTARGET = CCM_FIRST + 4;
  53. CCM_SETUNICODEFORMAT = CCM_FIRST + 5;
  54. CCM_GETUNICODEFORMAT = CCM_FIRST + 6;
  55. TCS_SCROLLOPPOSITE = $0001; // assumes multiline tab
  56. TCS_BOTTOM = $0002;
  57. TCS_RIGHT = $0002;
  58. TCS_MULTISELECT = $0004; // allow multi-select in button mode
  59. TCS_FLATBUTTONS = $0008;
  60. TCS_FORCEICONLEFT = $0010;
  61. TCS_FORCELABELLEFT = $0020;
  62. TCS_HOTTRACK = $0040;
  63. TCS_VERTICAL = $0080;
  64. TCS_TABS = $0000;
  65. TCS_BUTTONS = $0100;
  66. TCS_SINGLELINE = $0000;
  67. TCS_MULTILINE = $0200;
  68. TCS_RIGHTJUSTIFY = $0000;
  69. TCS_FIXEDWIDTH = $0400;
  70. TCS_RAGGEDRIGHT = $0800;
  71. TCS_FOCUSONBUTTONDOWN = $1000;
  72. TCS_OWNERDRAWFIXED = $2000;
  73. TCS_TOOLTIPS = $4000;
  74. TCS_FOCUSNEVER = $8000;
  75. TCS_EX_FLATSEPARATORS = $00000001;
  76. TCS_EX_REGISTERDROP = $00000002;
  77. TCM_FIRST = $1300; { Tab control messages }
  78. TCM_GETIMAGELIST = TCM_FIRST + 2;
  79. TCM_SETIMAGELIST = TCM_FIRST + 3;
  80. TCM_GETITEMCOUNT = TCM_FIRST + 4;
  81. TCM_GETITEMA = TCM_FIRST + 5;
  82. TCM_SETITEMA = TCM_FIRST + 6;
  83. TCM_INSERTITEMA = TCM_FIRST + 7;
  84. TCM_DELETEITEM = TCM_FIRST + 8;
  85. TCM_DELETEALLITEMS = TCM_FIRST + 9;
  86. TCM_GETITEMRECT = TCM_FIRST + 10;
  87. TCM_GETCURSEL = TCM_FIRST + 11;
  88. TCM_SETCURSEL = TCM_FIRST + 12;
  89. TCM_HITTEST = TCM_FIRST + 13;
  90. TCM_SETITEMEXTRA = TCM_FIRST + 14;
  91. TCM_ADJUSTRECT = TCM_FIRST + 40;
  92. TCM_SETITEMSIZE = TCM_FIRST + 41;
  93. TCM_REMOVEIMAGE = TCM_FIRST + 42;
  94. TCM_SETPADDING = TCM_FIRST + 43;
  95. TCM_GETROWCOUNT = TCM_FIRST + 44;
  96. TCM_GETTOOLTIPS = TCM_FIRST + 45;
  97. TCM_SETTOOLTIPS = TCM_FIRST + 46;
  98. TCM_GETCURFOCUS = TCM_FIRST + 47;
  99. TCM_SETCURFOCUS = TCM_FIRST + 48;
  100. TCM_SETMINTABWIDTH = TCM_FIRST + 49;
  101. TCM_DESELECTALL = TCM_FIRST + 50;
  102. TCM_HIGHLIGHTITEM = TCM_FIRST + 51;
  103. TCM_SETEXTENDEDSTYLE = TCM_FIRST + 52; // optional wParam == mask
  104. TCM_GETEXTENDEDSTYLE = TCM_FIRST + 53;
  105. TCM_GETITEMW = TCM_FIRST + 60;
  106. TCM_SETITEMW = TCM_FIRST + 61;
  107. TCM_INSERTITEMW = TCM_FIRST + 62;
  108. TCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  109. TCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  110. TCM_GETITEM = {$IFDEF UNICODE_CTRLS} TCM_GETITEMW
  111. {$ELSE} TCM_GETITEMA {$ENDIF};
  112. TCM_SETITEM = {$IFDEF UNICODE_CTRLS} TCM_SETITEMW
  113. {$ELSE} TCM_SETITEMA {$ENDIF};
  114. TCM_INSERTITEM = {$IFDEF UNICODE_CTRLS} TCM_INSERTITEMW
  115. {$ELSE} TCM_INSERTITEMA {$ENDIF};
  116. TCN_FIRST = 0-550; { tab control }
  117. TCN_LAST = 0-580;
  118. TCN_KEYDOWN = TCN_FIRST - 0;
  119. TCN_SELCHANGE = TCN_FIRST - 1;
  120. TCN_SELCHANGING = TCN_FIRST - 2;
  121. TCN_GETOBJECT = TCN_FIRST - 3;
  122. TCIF_TEXT = $0001;
  123. TCIF_IMAGE = $0002;
  124. TCIF_RTLREADING = $0004;
  125. TCIF_PARAM = $0008;
  126. TCIF_STATE = $0010;
  127. PBS_SMOOTH = 01;
  128. PBS_VERTICAL = 04;
  129. PBM_SETRANGE = WM_USER+1;
  130. PBM_SETPOS = WM_USER+2;
  131. PBM_DELTAPOS = WM_USER+3;
  132. PBM_SETSTEP = WM_USER+4;
  133. PBM_STEPIT = WM_USER+5;
  134. PBM_SETRANGE32 = WM_USER+6; // lParam = high, wParam = low
  135. PBM_GETRANGE = WM_USER+7; // lParam = PPBRange or Nil
  136. // wParam = False: Result = high
  137. // wParam = True: Result = low
  138. PBM_GETPOS = WM_USER+8;
  139. PBM_SETBARCOLOR = WM_USER+9; // lParam = bar color
  140. PBM_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor
  141. SB_SETTEXTA = WM_USER+1;
  142. SB_GETTEXTA = WM_USER+2;
  143. SB_GETTEXTLENGTHA = WM_USER+3;
  144. SB_SETTIPTEXTA = WM_USER+16;
  145. SB_GETTIPTEXTA = WM_USER+18;
  146. SB_SETTEXTW = WM_USER+11;
  147. SB_GETTEXTW = WM_USER+13;
  148. SB_GETTEXTLENGTHW = WM_USER+12;
  149. SB_SETTIPTEXTW = WM_USER+17;
  150. SB_GETTIPTEXTW = WM_USER+19;
  151. SB_SETTEXT = {$IFDEF UNICODE_CTRLS} SB_SETTEXTW {$ELSE} SB_SETTEXTA {$ENDIF};
  152. SB_GETTEXT = {$IFDEF UNICODE_CTRLS} SB_GETTEXTW {$ELSE} SB_GETTEXTA {$ENDIF};
  153. SB_GETTEXTLENGTH = {$IFDEF UNICODE_CTRLS} SB_GETTEXTLENGTHW {$ELSE} SB_GETTEXTLENGTHA {$ENDIF};
  154. SB_SETTIPTEXT = {$IFDEF UNICODE_CTRLS} SB_SETTIPTEXTW {$ELSE} SB_SETTIPTEXTA {$ENDIF};
  155. SB_GETTIPTEXT = {$IFDEF UNICODE_CTRLS} SB_GETTIPTEXTW {$ELSE} SB_GETTIPTEXTA {$ENDIF};
  156. SB_SETPARTS = WM_USER+4;
  157. SB_GETPARTS = WM_USER+6;
  158. SB_GETBORDERS = WM_USER+7;
  159. SB_SETMINHEIGHT = WM_USER+8;
  160. SB_SIMPLE = WM_USER+9;
  161. SB_GETRECT = WM_USER + 10;
  162. SB_ISSIMPLE = WM_USER+14;
  163. SB_SETICON = WM_USER+15;
  164. SB_GETICON = WM_USER+20;
  165. SB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  166. SB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  167. SBT_OWNERDRAW = $1000;
  168. SBT_NOBORDERS = $0100;
  169. SBT_POPOUT = $0200;
  170. SBT_RTLREADING = $0400;
  171. SBT_TOOLTIPS = $0800;
  172. SB_SETBKCOLOR = CCM_SETBKCOLOR; // lParam = bkColor
  173. SBARS_SIZEGRIP = $0100;
  174. { List View Styles }
  175. LVS_ICON = $0000;
  176. LVS_REPORT = $0001;
  177. LVS_SMALLICON = $0002;
  178. LVS_LIST = $0003;
  179. LVS_TYPEMASK = $0003;
  180. LVS_SINGLESEL = $0004;
  181. LVS_SHOWSELALWAYS = $0008;
  182. LVS_SORTASCENDING = $0010;
  183. LVS_SORTDESCENDING = $0020;
  184. LVS_SHAREIMAGELISTS = $0040;
  185. LVS_NOLABELWRAP = $0080;
  186. LVS_AUTOARRANGE = $0100;
  187. LVS_EDITLABELS = $0200;
  188. LVS_OWNERDATA = $1000;
  189. LVS_NOSCROLL = $2000;
  190. LVS_TYPESTYLEMASK = $FC00;
  191. LVS_ALIGNTOP = $0000;
  192. LVS_ALIGNLEFT = $0800;
  193. LVS_ALIGNMASK = $0c00;
  194. LVS_OWNERDRAWFIXED = $0400;
  195. LVS_NOCOLUMNHEADER = $4000;
  196. LVS_NOSORTHEADER = $8000;
  197. { List View Extended Styles }
  198. LVS_EX_GRIDLINES = $00000001;
  199. LVS_EX_SUBITEMIMAGES = $00000002;
  200. LVS_EX_CHECKBOXES = $00000004;
  201. LVS_EX_TRACKSELECT = $00000008;
  202. LVS_EX_HEADERDRAGDROP = $00000010;
  203. LVS_EX_FULLROWSELECT = $00000020; // applies to report mode only
  204. LVS_EX_ONECLICKACTIVATE = $00000040;
  205. LVS_EX_TWOCLICKACTIVATE = $00000080;
  206. LVS_EX_FLATSB = $00000100;
  207. LVS_EX_REGIONAL = $00000200;
  208. LVS_EX_INFOTIP = $00000400; // listview does InfoTips for you
  209. LVS_EX_LABELTIP = $00004000;
  210. LVS_EX_UNDERLINEHOT = $00000800;
  211. LVS_EX_UNDERLINECOLD = $00001000;
  212. LVS_EX_MULTIWORKAREAS = $00002000;
  213. I_IMAGECALLBACK = -1;
  214. I_SKIP = -2;
  215. LVSIL_NORMAL = 0;
  216. LVSIL_SMALL = 1;
  217. LVSIL_STATE = 2;
  218. { List View column styles }
  219. LVCF_FMT = $0001;
  220. LVCF_WIDTH = $0002;
  221. LVCF_TEXT = $0004;
  222. LVCF_SUBITEM = $0008;
  223. LVCF_IMAGE = $0010;
  224. LVCF_ORDER = $0020;
  225. LVSCW_AUTOSIZE = -1;
  226. LVSCW_AUTOSIZE_USEHEADER = -2;
  227. LVCFMT_LEFT = $0000;
  228. LVCFMT_RIGHT = $0001;
  229. LVCFMT_CENTER = $0002;
  230. LVCFMT_JUSTIFYMASK = $0003;
  231. LVCFMT_IMAGE = $0800;
  232. LVCFMT_BITMAP_ON_RIGHT = $1000;
  233. LVCFMT_COL_HAS_IMAGES = $8000;
  234. LVIF_TEXT = $0001;
  235. LVIF_IMAGE = $0002;
  236. LVIF_PARAM = $0004;
  237. LVIF_STATE = $0008;
  238. LVIF_INDENT = $0010;
  239. //LVIF_NORECOMPUTE = $0800;
  240. LVIF_DI_SETITEM = $1000;
  241. LVIS_FOCUSED = $0001;
  242. LVIS_SELECTED = $0002;
  243. LVIS_CUT = $0004;
  244. LVIS_DROPHILITED = $0008;
  245. //LVIS_ACTIVATING = $0020;
  246. LVIS_OVERLAYMASK = $0F00;
  247. LVIS_STATEIMAGEMASK = $F000;
  248. { List View messages }
  249. LVM_FIRST = $1000; { ListView messages }
  250. LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  251. LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  252. LVM_GETBKCOLOR = LVM_FIRST + 0;
  253. LVM_SETBKCOLOR = LVM_FIRST + 1;
  254. LVM_GETIMAGELIST = LVM_FIRST + 2;
  255. LVM_SETIMAGELIST = LVM_FIRST + 3;
  256. LVM_GETITEMCOUNT = LVM_FIRST + 4;
  257. LVM_GETITEMA = LVM_FIRST + 5;
  258. LVM_SETITEMA = LVM_FIRST + 6;
  259. LVM_INSERTITEMA = LVM_FIRST + 7;
  260. LVM_DELETEITEM = LVM_FIRST + 8;
  261. LVM_DELETEALLITEMS = LVM_FIRST + 9;
  262. LVM_GETCALLBACKMASK = LVM_FIRST + 10;
  263. LVM_SETCALLBACKMASK = LVM_FIRST + 11;
  264. LVM_GETNEXTITEM = LVM_FIRST + 12;
  265. LVM_FINDITEMA = LVM_FIRST + 13;
  266. LVM_GETITEMRECT = LVM_FIRST + 14;
  267. LVM_SETITEMPOSITION = LVM_FIRST + 15;
  268. LVM_GETITEMPOSITION = LVM_FIRST + 16;
  269. LVM_GETSTRINGWIDTHA = LVM_FIRST + 17;
  270. LVM_HITTEST = LVM_FIRST + 18;
  271. LVM_ENSUREVISIBLE = LVM_FIRST + 19;
  272. LVM_SCROLL = LVM_FIRST + 20;
  273. LVM_REDRAWITEMS = LVM_FIRST + 21;
  274. LVM_ARRANGE = LVM_FIRST + 22;
  275. LVM_EDITLABELA = LVM_FIRST + 23;
  276. LVM_GETCOLUMNA = LVM_FIRST + 25;
  277. LVM_SETCOLUMNA = LVM_FIRST + 26;
  278. LVM_INSERTCOLUMNA = LVM_FIRST + 27;
  279. LVM_DELETECOLUMN = LVM_FIRST + 28;
  280. LVM_GETCOLUMNWIDTH = LVM_FIRST + 29;
  281. LVM_SETCOLUMNWIDTH = LVM_FIRST + 30;
  282. LVM_GETHEADER = LVM_FIRST + 31;
  283. LVM_CREATEDRAGIMAGE = LVM_FIRST + 33;
  284. LVM_GETVIEWRECT = LVM_FIRST + 34;
  285. LVM_GETTEXTCOLOR = LVM_FIRST + 35;
  286. LVM_SETTEXTCOLOR = LVM_FIRST + 36;
  287. LVM_GETTEXTBKCOLOR = LVM_FIRST + 37;
  288. LVM_SETTEXTBKCOLOR = LVM_FIRST + 38;
  289. LVM_GETTOPINDEX = LVM_FIRST + 39;
  290. LVM_GETCOUNTPERPAGE = LVM_FIRST + 40;
  291. LVM_GETORIGIN = LVM_FIRST + 41;
  292. LVM_UPDATE = LVM_FIRST + 42;
  293. LVM_SETITEMSTATE = LVM_FIRST + 43;
  294. LVM_GETITEMSTATE = LVM_FIRST + 44;
  295. LVM_GETITEMTEXTA = LVM_FIRST + 45;
  296. LVM_SETITEMTEXTA = LVM_FIRST + 46;
  297. LVM_SETITEMCOUNT = LVM_FIRST + 47;
  298. LVM_SORTITEMS = LVM_FIRST + 48;
  299. LVM_SETITEMPOSITION32 = LVM_FIRST + 49;
  300. LVM_GETSELECTEDCOUNT = LVM_FIRST + 50;
  301. LVM_GETITEMSPACING = LVM_FIRST + 51;
  302. LVM_GETISEARCHSTRINGA = LVM_FIRST + 52;
  303. LVM_SETICONSPACING = LVM_FIRST + 53;
  304. LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54;
  305. LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55;
  306. LVM_GETSUBITEMRECT = LVM_FIRST + 56;
  307. LVM_SUBITEMHITTEST = LVM_FIRST + 57;
  308. LVM_SETCOLUMNORDERARRAY = LVM_FIRST + 58;
  309. LVM_GETCOLUMNORDERARRAY = LVM_FIRST + 59;
  310. LVM_SETHOTITEM = LVM_FIRST + 60;
  311. LVM_GETHOTITEM = LVM_FIRST + 61;
  312. LVM_SETHOTCURSOR = LVM_FIRST + 62;
  313. LVM_GETHOTCURSOR = LVM_FIRST + 63;
  314. LVM_APPROXIMATEVIEWRECT = LVM_FIRST + 64;
  315. LVM_SETWORKAREA = LVM_FIRST + 65;
  316. LVM_GETSELECTIONMARK = LVM_FIRST + 66;
  317. LVM_SETSELECTIONMARK = LVM_FIRST + 67;
  318. LVM_SETBKIMAGEA = LVM_FIRST + 68;
  319. LVM_GETBKIMAGEA = LVM_FIRST + 69;
  320. LVM_GETWORKAREAS = LVM_FIRST + 70;
  321. LVM_SETHOVERTIME = LVM_FIRST + 71;
  322. LVM_GETHOVERTIME = LVM_FIRST + 72;
  323. LVM_GETNUMBEROFWORKAREAS = LVM_FIRST + 73;
  324. LVM_SETTOOLTIPS = LVM_FIRST + 74;
  325. LVM_GETITEMW = LVM_FIRST + 75;
  326. LVM_SETITEMW = LVM_FIRST + 76;
  327. LVM_INSERTITEMW = LVM_FIRST + 77;
  328. LVM_GETTOOLTIPS = LVM_FIRST + 78;
  329. LVM_SORTITEMSEX = LVM_FIRST + 81;
  330. LVM_FINDITEMW = LVM_FIRST + 83;
  331. LVM_GETSTRINGWIDTHW = LVM_FIRST + 87;
  332. LVM_GETCOLUMNW = LVM_FIRST + 95;
  333. LVM_SETCOLUMNW = LVM_FIRST + 96;
  334. LVM_INSERTCOLUMNW = LVM_FIRST + 97;
  335. LVM_GETITEMTEXTW = LVM_FIRST + 115;
  336. LVM_SETITEMTEXTW = LVM_FIRST + 116;
  337. LVM_GETISEARCHSTRINGW = LVM_FIRST + 117;
  338. LVM_EDITLABELW = LVM_FIRST + 118;
  339. LVM_SETBKIMAGEW = LVM_FIRST + 138;
  340. LVM_GETBKIMAGEW = LVM_FIRST + 139;
  341. LVM_GETITEM = {$IFDEF UNICODE_CTRLS} LVM_GETITEMW {$ELSE} LVM_GETITEMA {$ENDIF};
  342. LVM_SETITEM = {$IFDEF UNICODE_CTRLS} LVM_SETITEMW {$ELSE} LVM_SETITEMA {$ENDIF};
  343. LVM_INSERTITEM = {$IFDEF UNICODE_CTRLS} LVM_INSERTITEMW {$ELSE} LVM_INSERTITEMA {$ENDIF};
  344. LVM_GETCOLUMN = {$IFDEF UNICODE_CTRLS} LVM_GETCOLUMNW {$ELSE} LVM_GETCOLUMNA {$ENDIF};
  345. LVM_SETCOLUMN = {$IFDEF UNICODE_CTRLS} LVM_SETCOLUMNW {$ELSE} LVM_SETCOLUMNA {$ENDIF};
  346. LVM_INSERTCOLUMN = {$IFDEF UNICODE_CTRLS} LVM_INSERTCOLUMNW {$ELSE} LVM_INSERTCOLUMNA {$ENDIF};
  347. LVM_GETITEMTEXT = {$IFDEF UNICODE_CTRLS} LVM_GETITEMTEXTW {$ELSE} LVM_GETITEMTEXTA {$ENDIF};
  348. LVM_SETITEMTEXT = {$IFDEF UNICODE_CTRLS} LVM_SETITEMTEXTW {$ELSE} LVM_SETITEMTEXTA {$ENDIF};
  349. LVM_EDITLABEL = {$IFDEF UNICODE_CTRLS} LVM_EDITLABELW {$ELSE} LVM_EDITLABELA {$ENDIF};
  350. LVM_FINDITEM = {$IFDEF UNICODE_CTRLS} LVM_FINDITEMW {$ELSE} LVM_FINDITEMA {$ENDIF};
  351. LVM_GETISEARCHSTRING = {$IFDEF UNICODE_CTRLS} LVM_GETISEARCHSTRINGW {$ELSE} LVM_GETISEARCHSTRINGA {$ENDIF};
  352. LVM_GETSTRINGWIDTH = {$IFDEF UNICODE_CTRLS} LVM_GETSTRINGWIDTHW {$ELSE} LVM_GETSTRINGWIDTHA {$ENDIF};
  353. LVM_SETBKIMAGE = {$IFDEF UNICODE_CTRLS} LVM_SETBKIMAGEW {$ELSE} LVM_SETBKIMAGEA {$ENDIF};
  354. LVM_GETBKIMAGE = {$IFDEF UNICODE_CTRLS} LVM_GETBKIMAGEW {$ELSE} LVM_GETBKIMAGEA {$ENDIF};
  355. LV_MAX_WORKAREAS = 16;
  356. LVIR_BOUNDS = 0;
  357. LVIR_ICON = 1;
  358. LVIR_LABEL = 2;
  359. LVIR_SELECTBOUNDS = 3;
  360. LVHT_NOWHERE = $0001;
  361. LVHT_ONITEMICON = $0002;
  362. LVHT_ONITEMLABEL = $0004;
  363. LVHT_ONITEMSTATEICON = $0008;
  364. LVHT_ONITEM = LVHT_ONITEMICON or LVHT_ONITEMLABEL or
  365. LVHT_ONITEMSTATEICON;
  366. LVHT_ABOVE = $0008;
  367. LVHT_BELOW = $0010;
  368. LVHT_TORIGHT = $0020;
  369. LVHT_TOLEFT = $0040;
  370. LVNI_ALL = $0000;
  371. LVNI_FOCUSED = $0001;
  372. LVNI_SELECTED = $0002;
  373. LVNI_CUT = $0004;
  374. LVNI_DROPHILITED = $0008;
  375. LVNI_ABOVE = $0100;
  376. LVNI_BELOW = $0200;
  377. LVNI_TOLEFT = $0400;
  378. LVNI_TORIGHT = $0800;
  379. { WM_NOTIFY codes }
  380. NM_FIRST = 0- 0; { generic to all controls }
  381. NM_LAST = 0- 99;
  382. NM_OUTOFMEMORY = NM_FIRST-1;
  383. NM_CLICK = NM_FIRST-2;
  384. NM_DBLCLK = NM_FIRST-3;
  385. NM_RETURN = NM_FIRST-4;
  386. NM_RCLICK = NM_FIRST-5;
  387. NM_RDBLCLK = NM_FIRST-6;
  388. NM_SETFOCUS = NM_FIRST-7;
  389. NM_KILLFOCUS = NM_FIRST-8;
  390. NM_CUSTOMDRAW = NM_FIRST-12;
  391. NM_HOVER = NM_FIRST-13;
  392. NM_NCHITTEST = NM_FIRST-14; // uses NMMOUSE struct
  393. NM_KEYDOWN = NM_FIRST-15; // uses NMKEY struct
  394. NM_RELEASEDCAPTURE = NM_FIRST-16;
  395. NM_SETCURSOR = NM_FIRST-17; // uses NMMOUSE struct
  396. NM_CHAR = NM_FIRST-18; // uses NMCHAR struct
  397. LVN_FIRST = 0-100; { listview }
  398. LVN_LAST = 0-199;
  399. LVN_ITEMCHANGING = LVN_FIRST-0;
  400. LVN_ITEMCHANGED = LVN_FIRST-1;
  401. LVN_INSERTITEM = LVN_FIRST-2;
  402. LVN_DELETEITEM = LVN_FIRST-3;
  403. LVN_DELETEALLITEMS = LVN_FIRST-4;
  404. LVN_COLUMNCLICK = LVN_FIRST-8;
  405. LVN_BEGINDRAG = LVN_FIRST-9;
  406. LVN_BEGINRDRAG = LVN_FIRST-11;
  407. LVN_ODCACHEHINT = LVN_FIRST-13;
  408. LVN_ODFINDITEMA = LVN_FIRST-52;
  409. LVN_ODFINDITEMW = LVN_FIRST-79;
  410. LVN_ITEMACTIVATE = LVN_FIRST-14;
  411. LVN_ODSTATECHANGED = LVN_FIRST-15;
  412. LVN_ODFINDITEM = {$IFDEF UNICODE_CTRLS} LVN_ODFINDITEMW {$ELSE} LVN_ODFINDITEMA {$ENDIF};
  413. LVN_BEGINLABELEDITA = LVN_FIRST-5;
  414. LVN_ENDLABELEDITA = LVN_FIRST-6;
  415. LVN_BEGINLABELEDITW = LVN_FIRST-75;
  416. LVN_ENDLABELEDITW = LVN_FIRST-76;
  417. LVN_BEGINLABELEDIT = {$IFDEF UNICODE_CTRLS} LVN_BEGINLABELEDITW {$ELSE} LVN_BEGINLABELEDITA {$ENDIF};
  418. LVN_ENDLABELEDIT = {$IFDEF UNICODE_CTRLS} LVN_ENDLABELEDITW {$ELSE} LVN_ENDLABELEDITA {$ENDIF};
  419. LVN_HOTTRACK = LVN_FIRST-21;
  420. LVN_GETDISPINFOA = LVN_FIRST-50;
  421. LVN_SETDISPINFOA = LVN_FIRST-51;
  422. LVN_GETDISPINFOW = LVN_FIRST-77;
  423. LVN_SETDISPINFOW = LVN_FIRST-78;
  424. LVN_GETDISPINFO = {$IFDEF UNICODE_CTRLS} LVN_GETDISPINFOW {$ELSE} LVN_GETDISPINFOA {$ENDIF};
  425. LVN_SETDISPINFO = {$IFDEF UNICODE_CTRLS} LVN_SETDISPINFOW {$ELSE} LVN_SETDISPINFOA {$ENDIF};
  426. type
  427. tagNMLVODSTATECHANGE = packed record
  428. hdr: TNMHdr;
  429. iFrom: Integer;
  430. iTo: Integer;
  431. uNewState: UINT;
  432. uOldState: UINT;
  433. end;
  434. PNMLVODStateChange = ^TNMLVODStateChange;
  435. TNMLVODStateChange = tagNMLVODSTATECHANGE;
  436. type
  437. PLVColumn = ^TLVColumn;
  438. TLVColumn = packed record
  439. mask: DWORD;
  440. fmt: DWORD;
  441. cx: Integer;
  442. pszText: PKOL_Char;
  443. cchTextMax: Integer;
  444. iSubItem: Integer;
  445. // only IE4+ :
  446. iImage: Integer;
  447. iOrder: Integer;
  448. end;
  449. PLVItem = ^TLVItem;
  450. TLVItem = packed record
  451. mask: DWORD;
  452. iItem: Integer;
  453. iSubItem: Integer;
  454. state: Integer;
  455. stateMask: DWORD;
  456. pszText: PKOL_Char;
  457. cchTextMax: Integer;
  458. iImage: Integer;
  459. lParam: LParam;
  460. iIndent: Integer; // only for IE3.0 and higher
  461. end;
  462. PLVDispInfo = ^TLVDispInfo;
  463. TLVDispInfo = packed record
  464. hdr: TNMHDR;
  465. item: TLVItem;
  466. end;
  467. PLVFindInfoA = ^TLVFindInfo;
  468. TLVFindInfo = packed record
  469. flags: UINT;
  470. psz: PKOLChar;
  471. lParam: LPARAM;
  472. pt: TPoint;
  473. vkDirection: UINT;
  474. end;
  475. PLVFindInfoW = ^TLVFindInfoW;
  476. TLVFindInfoW = packed record
  477. flags: UINT;
  478. psz: PWideChar;
  479. lParam: LPARAM;
  480. pt: TPoint;
  481. vkDirection: UINT;
  482. end;
  483. TLVHitTestInfo = packed record
  484. pt: TPoint;
  485. flags: DWORD;
  486. iItem: Integer;
  487. iSubItem: Integer;
  488. end;
  489. const
  490. LVFI_PARAM = $0001;
  491. LVFI_STRING = $0002;
  492. LVFI_PARTIAL = $0008;
  493. LVFI_WRAP = $0020;
  494. LVFI_NEARESTXY = $0040;
  495. const
  496. HDM_FIRST = $1200; { Header messages }
  497. HDM_GETITEMW = HDM_FIRST + 11;
  498. HDM_GETITEMA = HDM_FIRST + 3;
  499. HDM_GETITEM = {$IFDEF UNICODE_CTRLS} HDM_GETITEMW {$ELSE} HDM_GETITEMA {$ENDIF};
  500. HDI_WIDTH = $0001;
  501. type
  502. PHDItemA = ^THDItemA;
  503. PHDItemW = ^THDItemW;
  504. PHDItem = {$IFDEF UNICODE_CTRLS} PHDItemW {$ELSE} PHDItemA {$ENDIF};
  505. _HD_ITEMA = packed record
  506. Mask: Cardinal;
  507. cxy: Integer;
  508. pszText: PAnsiChar;
  509. hbm: HBITMAP;
  510. cchTextMax: Integer;
  511. fmt: Integer;
  512. lParam: LPARAM;
  513. iImage: Integer; // index of bitmap in ImageList
  514. iOrder: Integer; // where to draw this item
  515. end;
  516. _HD_ITEMW = packed record
  517. Mask: Cardinal;
  518. cxy: Integer;
  519. pszText: PWideChar;
  520. hbm: HBITMAP;
  521. cchTextMax: Integer;
  522. fmt: Integer;
  523. lParam: LPARAM;
  524. iImage: Integer; // index of bitmap in ImageList
  525. iOrder: Integer; // where to draw this item
  526. end;
  527. THDItemA = _HD_ITEMA;
  528. THDItemW = _HD_ITEMW;
  529. THDItem = {$IFDEF UNICODE_CTRLS} _HD_ITEMW {$ELSE} _HD_ITEMA {$ENDIF};
  530. const
  531. TVS_HASBUTTONS = $0001;
  532. TVS_HASLINES = $0002;
  533. TVS_LINESATROOT = $0004;
  534. TVS_EDITLABELS = $0008;
  535. TVS_DISABLEDRAGDROP = $0010;
  536. TVS_SHOWSELALWAYS = $0020;
  537. TVS_RTLREADING = $0040;
  538. TVS_NOTOOLTIPS = $0080;
  539. TVS_CHECKBOXES = $0100;
  540. TVS_TRACKSELECT = $0200;
  541. TVS_SINGLEEXPAND = $0400;
  542. TVS_INFOTIP = $0800;
  543. TVS_FULLROWSELECT = $1000;
  544. TVS_NOSCROLL = $2000;
  545. TVS_NONEVENHEIGHT = $4000;
  546. TVIF_TEXT = $0001;
  547. TVIF_IMAGE = $0002;
  548. TVIF_PARAM = $0004;
  549. TVIF_STATE = $0008;
  550. TVIF_HANDLE = $0010;
  551. TVIF_SELECTEDIMAGE = $0020;
  552. TVIF_CHILDREN = $0040;
  553. TVIF_INTEGRAL = $0080;
  554. TVIF_DI_SETITEM = $1000;
  555. TVIS_FOCUSED = $0001;
  556. TVIS_SELECTED = $0002;
  557. TVIS_CUT = $0004;
  558. TVIS_DROPHILITED = $0008;
  559. TVIS_BOLD = $0010;
  560. TVIS_EXPANDED = $0020;
  561. TVIS_EXPANDEDONCE = $0040;
  562. TVIS_EXPANDPARTIAL = $0080;
  563. TVIS_OVERLAYMASK = $0F00;
  564. TVIS_STATEIMAGEMASK = $F000;
  565. TVIS_USERMASK = $F000;
  566. TV_FIRST = $1100; { TreeView messages }
  567. TVM_INSERTITEMA = TV_FIRST + 0;
  568. TVM_INSERTITEMW = TV_FIRST + 50;
  569. TVM_INSERTITEM = {$IFDEF UNICODE_CTRLS} TVM_INSERTITEMW
  570. {$ELSE} TVM_INSERTITEMA {$ENDIF};
  571. TVM_DELETEITEM = TV_FIRST + 1;
  572. TVM_EXPAND = TV_FIRST + 2;
  573. TVE_COLLAPSE = $0001;
  574. TVE_EXPAND = $0002;
  575. TVE_TOGGLE = $0003;
  576. TVE_EXPANDPARTIAL = $4000;
  577. TVE_COLLAPSERESET = $8000;
  578. TVM_GETITEMRECT = TV_FIRST + 4;
  579. TVM_GETCOUNT = TV_FIRST + 5;
  580. TVM_GETINDENT = TV_FIRST + 6;
  581. TVM_SETINDENT = TV_FIRST + 7;
  582. TVM_GETIMAGELIST = TV_FIRST + 8;
  583. TVSIL_NORMAL = 0;
  584. TVSIL_STATE = 2;
  585. TVM_SETIMAGELIST = TV_FIRST + 9;
  586. TVM_GETNEXTITEM = TV_FIRST + 10;
  587. TVGN_ROOT = $0000;
  588. TVGN_NEXT = $0001;
  589. TVGN_PREVIOUS = $0002;
  590. TVGN_PARENT = $0003;
  591. TVGN_CHILD = $0004;
  592. TVGN_FIRSTVISIBLE = $0005;
  593. TVGN_NEXTVISIBLE = $0006;
  594. TVGN_PREVIOUSVISIBLE = $0007;
  595. TVGN_DROPHILITE = $0008;
  596. TVGN_CARET = $0009;
  597. TVGN_LASTVISIBLE = $000A;
  598. TVM_SELECTITEM = TV_FIRST + 11;
  599. TVM_GETITEMA = TV_FIRST + 12;
  600. TVM_GETITEMW = TV_FIRST + 62;
  601. TVM_GETITEM = {$IFDEF UNICODE_CTRLS} TVM_GETITEMW {$ELSE} TVM_GETITEMA {$ENDIF};
  602. TVM_SETITEMA = TV_FIRST + 13;
  603. TVM_SETITEMW = TV_FIRST + 63;
  604. TVM_SETITEM = {$IFDEF UNICODE_CTRLS} TVM_SETITEMW {$ELSE} TVM_SETITEMA {$ENDIF};
  605. TVM_EDITLABELA = TV_FIRST + 14;
  606. TVM_EDITLABELW = TV_FIRST + 65;
  607. TVM_EDITLABEL = {$IFDEF UNICODE_CTRLS} TVM_EDITLABELW {$ELSE} TVM_EDITLABELA {$ENDIF};
  608. TVM_GETEDITCONTROL = TV_FIRST + 15;
  609. TVM_GETVISIBLECOUNT = TV_FIRST + 16;
  610. TVM_HITTEST = TV_FIRST + 17;
  611. TVHT_NOWHERE = $0001;
  612. TVHT_ONITEMICON = $0002;
  613. TVHT_ONITEMLABEL = $0004;
  614. TVHT_ONITEMINDENT = $0008;
  615. TVHT_ONITEMBUTTON = $0010;
  616. TVHT_ONITEMRIGHT = $0020;
  617. TVHT_ONITEMSTATEICON = $0040;
  618. TVHT_ONITEM = TVHT_ONITEMICON or TVHT_ONITEMLABEL or
  619. TVHT_ONITEMSTATEICON;
  620. TVHT_ABOVE = $0100;
  621. TVHT_BELOW = $0200;
  622. TVHT_TORIGHT = $0400;
  623. TVHT_TOLEFT = $0800;
  624. TVM_CREATEDRAGIMAGE = TV_FIRST + 18;
  625. TVM_SORTCHILDREN = TV_FIRST + 19;
  626. TVM_ENSUREVISIBLE = TV_FIRST + 20;
  627. TVM_SORTCHILDRENCB = TV_FIRST + 21;
  628. TVM_ENDEDITLABELNOW = TV_FIRST + 22;
  629. TVM_GETISEARCHSTRINGA = TV_FIRST + 23;
  630. TVM_GETISEARCHSTRINGW = TV_FIRST + 64;
  631. TVM_GETISEARCHSTRING = {$IFDEF UNICODE_CTRLS} TVM_GETISEARCHSTRINGW {$ELSE} TVM_GETISEARCHSTRINGA {$ENDIF};
  632. TVM_SETTOOLTIPS = TV_FIRST + 24;
  633. TVM_GETTOOLTIPS = TV_FIRST + 25;
  634. TVM_SETINSERTMARK = TV_FIRST + 26;
  635. TVM_SETITEMHEIGHT = TV_FIRST + 27;
  636. TVM_GETITEMHEIGHT = TV_FIRST + 28;
  637. TVM_SETBKCOLOR = TV_FIRST + 29;
  638. TVM_SETTEXTCOLOR = TV_FIRST + 30;
  639. TVM_GETBKCOLOR = TV_FIRST + 31;
  640. TVM_GETTEXTCOLOR = TV_FIRST + 32;
  641. TVM_SETSCROLLTIME = TV_FIRST + 33;
  642. TVM_GETSCROLLTIME = TV_FIRST + 34;
  643. TVM_SETINSERTMARKCOLOR = TV_FIRST + 37;
  644. TVM_GETINSERTMARKCOLOR = TV_FIRST + 38;
  645. TVM_SETLINECOLOR = TV_FIRST + 40;
  646. TVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
  647. TVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
  648. TVN_FIRST = 0-400; { treeview }
  649. TVN_LAST = 0-499;
  650. TVN_SELCHANGINGA = TVN_FIRST-1;
  651. TVN_SELCHANGEDA = TVN_FIRST-2;
  652. TVN_SELCHANGINGW = TVN_FIRST-50;
  653. TVN_SELCHANGEDW = TVN_FIRST-51;
  654. TVN_SELCHANGING = {$IFDEF UNICODE_CTRLS} TVN_SELCHANGINGW {$ELSE} TVN_SELCHANGINGA {$ENDIF};
  655. TVN_SELCHANGED = {$IFDEF UNICODE_CTRLS} TVN_SELCHANGEDW {$ELSE} TVN_SELCHANGEDA {$ENDIF};
  656. TVC_UNKNOWN = $0000;
  657. TVC_BYMOUSE = $0001;
  658. TVC_BYKEYBOARD = $0002;
  659. TVN_GETDISPINFOA = TVN_FIRST-3;
  660. TVN_SETDISPINFOA = TVN_FIRST-4;
  661. TVN_GETDISPINFOW = TVN_FIRST-52;
  662. TVN_SETDISPINFOW = TVN_FIRST-53;
  663. TVN_GETDISPINFO = {$IFDEF UNICODE_CTRLS} TVN_GETDISPINFOW {$ELSE} TVN_GETDISPINFOA {$ENDIF};
  664. TVN_SETDISPINFO = {$IFDEF UNICODE_CTRLS} TVN_SETDISPINFOW {$ELSE} TVN_SETDISPINFOA {$ENDIF};
  665. TVN_ITEMEXPANDINGA = TVN_FIRST-5;
  666. TVN_ITEMEXPANDEDA = TVN_FIRST-6;
  667. TVN_BEGINDRAGA = TVN_FIRST-7;
  668. TVN_BEGINRDRAGA = TVN_FIRST-8;
  669. TVN_DELETEITEMA = TVN_FIRST-9;
  670. TVN_BEGINLABELEDITA = TVN_FIRST-10;
  671. TVN_ENDLABELEDITA = TVN_FIRST-11;
  672. TVN_GETINFOTIPA = TVN_FIRST-13;
  673. TVN_ITEMEXPANDINGW = TVN_FIRST-54;
  674. TVN_ITEMEXPANDEDW = TVN_FIRST-55;
  675. TVN_BEGINDRAGW = TVN_FIRST-56;
  676. TVN_BEGINRDRAGW = TVN_FIRST-57;
  677. TVN_DELETEITEMW = TVN_FIRST-58;
  678. TVN_BEGINLABELEDITW = TVN_FIRST-59;
  679. TVN_ENDLABELEDITW = TVN_FIRST-60;
  680. TVN_GETINFOTIPW = TVN_FIRST-14;
  681. TVN_ITEMEXPANDING = {$IFDEF UNICODE_CTRLS} TVN_ITEMEXPANDINGW {$ELSE} TVN_ITEMEXPANDINGA {$ENDIF};
  682. TVN_ITEMEXPANDED = {$IFDEF UNICODE_CTRLS} TVN_ITEMEXPANDEDW {$ELSE} TVN_ITEMEXPANDEDA {$ENDIF};
  683. TVN_BEGINDRAG = {$IFDEF UNICODE_CTRLS} TVN_BEGINDRAGW {$ELSE} TVN_BEGINDRAGA {$ENDIF};
  684. TVN_BEGINRDRAG = {$IFDEF UNICODE_CTRLS} TVN_BEGINRDRAGW {$ELSE} TVN_BEGINRDRAGA {$ENDIF};
  685. TVN_DELETEITEM = {$IFDEF UNICODE_CTRLS} TVN_DELETEITEMW {$ELSE} TVN_DELETEITEMA {$ENDIF};
  686. TVN_BEGINLABELEDIT = {$IFDEF UNICODE_CTRLS} TVN_BEGINLABELEDITW {$ELSE} TVN_BEGINLABELEDITA {$ENDIF};
  687. TVN_ENDLABELEDIT = {$IFDEF UNICODE_CTRLS} TVN_ENDLABELEDITW {$ELSE} TVN_ENDLABELEDITA {$ENDIF};
  688. TVN_GETINFOTIP = {$IFDEF UNICODE_CTRLS} TVN_GETINFOTIPW {$ELSE} TVN_GETINFOTIPA {$ENDIF};
  689. TVN_KEYDOWN = TVN_FIRST-12;
  690. TVN_SINGLEEXPAND = TVN_FIRST-15;
  691. TVI_ROOT = $FFFF0000;
  692. TVI_FIRST = $FFFF0001;
  693. TVI_LAST = $FFFF0002;
  694. TVI_SORT = $FFFF0003;
  695. type
  696. PTVItemA = ^TTVItemA;
  697. PTVItemW = ^TTVItemW;
  698. PTVItem = {$IFDEF UNICODE_CTRLS} PTVItemW {$ELSE} PTVItemA {$ENDIF};
  699. tagTVITEMA = packed record
  700. mask: UINT;
  701. hItem: THandle;
  702. state: UINT;
  703. stateMask: UINT;
  704. pszText: PAnsiChar;
  705. cchTextMax: Integer;
  706. iImage: Integer;
  707. iSelectedImage: Integer;
  708. cChildren: Integer;
  709. lParam: LPARAM;
  710. end;
  711. tagTVITEMW = packed record
  712. mask: UINT;
  713. hItem: THandle;
  714. state: UINT;
  715. stateMask: UINT;
  716. pszText: PWideChar;
  717. cchTextMax: Integer;
  718. iImage: Integer;
  719. iSelectedImage: Integer;
  720. cChildren: Integer;
  721. lParam: LPARAM;
  722. end;
  723. tagTVITEM = {$IFDEF UNICODE_CTRLS} tagTVITEMW {$ELSE} tagTVITEMA {$ENDIF};
  724. _TV_ITEMA = tagTVITEMA;
  725. _TV_ITEMW = tagTVITEMW;
  726. _TV_ITEM = {$IFDEF UNICODE_CTRLS} _TV_ITEMW {$ELSE} _TV_ITEMA {$ENDIF};
  727. TTVItemA = tagTVITEMA;
  728. TTVItemW = tagTVITEMW;
  729. TTVItem = {$IFDEF UNICODE_CTRLS} TTVItemW {$ELSE} TTVItemA {$ENDIF};
  730. TV_ITEMA = tagTVITEMA;
  731. TV_ITEMW = tagTVITEMW;
  732. TV_ITEM = {$IFDEF UNICODE_CTRLS} TV_ITEMW {$ELSE} TV_ITEMA {$ENDIF};
  733. // only used for Get and Set messages. no notifies
  734. tagTVITEMEXA = packed record
  735. mask: UINT;
  736. hItem: THandle;
  737. state: UINT;
  738. stateMask: UINT;
  739. pszText: PAnsiChar;
  740. cchTextMax: Integer;
  741. iImage: Integer;
  742. iSelectedImage: Integer;
  743. cChildren: Integer;
  744. lParam: LPARAM;
  745. iIntegral: Integer;
  746. end;
  747. tagTVITEMEXW = packed record
  748. mask: UINT;
  749. hItem: THandle;
  750. state: UINT;
  751. stateMask: UINT;
  752. pszText: PWideChar;
  753. cchTextMax: Integer;
  754. iImage: Integer;
  755. iSelectedImage: Integer;
  756. cChildren: Integer;
  757. lParam: LPARAM;
  758. iIntegral: Integer;
  759. end;
  760. tagTVITEMEX = {$IFDEF UNICODE_CTRLS} tagTVITEMEXW {$ELSE} tagTVITEMEXA {$ENDIF};
  761. PTVItemExA = ^TTVItemExA;
  762. PTVItemExW = ^TTVItemExW;
  763. PTVItemEx = {$IFDEF UNICODE_CTRLS} PTVItemExW {$ELSE} PTVItemExA {$ENDIF};
  764. TTVItemExA = tagTVITEMEXA;
  765. TTVItemExW = tagTVITEMEXW;
  766. TTVItemEx = {$IFDEF UNICODE_CTRLS} TTVItemExW {$ELSE} TTVItemExA {$ENDIF};
  767. PNMTreeViewA = ^TNMTreeViewA;
  768. PNMTreeViewW = ^TNMTreeViewW;
  769. PNMTreeView = {$IFDEF UNICODE_CTRLS} PNMTreeViewW {$ELSE} PNMTreeViewA {$ENDIF};
  770. tagNMTREEVIEWA = packed record
  771. hdr: TNMHDR;
  772. action: Integer;
  773. itemOld: TTVItemA;
  774. itemNew: TTVItemA;
  775. ptDrag: TPoint;
  776. end;
  777. tagNMTREEVIEWW = packed record
  778. hdr: TNMHDR;
  779. action: Integer;
  780. itemOld: TTVItemW;
  781. itemNew: TTVItemW;
  782. ptDrag: TPoint;
  783. end;
  784. tagNMTREEVIEW = {$IFDEF UNICODE_CTRLS} tagNMTREEVIEWW {$ELSE} tagNMTREEVIEWA {$ENDIF};
  785. _NM_TREEVIEWA = tagNMTREEVIEWA;
  786. _NM_TREEVIEWW = tagNMTREEVIEWW;
  787. _NM_TREEVIEW = {$IFDEF UNICODE_CTRLS} _NM_TREEVIEWW {$ELSE} _NM_TREEVIEWA {$ENDIF};
  788. TNMTreeViewA = tagNMTREEVIEWA;
  789. TNMTreeViewW = tagNMTREEVIEWW;
  790. TNMTreeView = {$IFDEF UNICODE_CTRLS} TNMTreeViewW {$ELSE} TNMTreeViewA {$ENDIF};
  791. NM_TREEVIEWA = tagNMTREEVIEWA;
  792. NM_TREEVIEWW = tagNMTREEVIEWW;
  793. NM_TREEVIEW = {$IFDEF UNICODE_CTRLS} NM_TREEVIEWW {$ELSE} NM_TREEVIEWA {$ENDIF};
  794. tagNMCUSTOMDRAWINFO = packed record
  795. hdr: TNMHdr;
  796. dwDrawStage: DWORD;
  797. hdc: HDC;
  798. rc: TRect;
  799. dwItemSpec: DWORD; // this is control specific, but it's how to specify an item. valid only with CDDS_ITEM bit set
  800. uItemState: UINT;
  801. lItemlParam: LPARAM;
  802. end;
  803. PNMCustomDraw = ^TNMCustomDraw;
  804. TNMCustomDraw = tagNMCUSTOMDRAWINFO;
  805. const
  806. // custom draw return flags
  807. // values under 0x00010000 are reserved for global custom draw values.
  808. // above that are for specific controls
  809. CDRF_DODEFAULT = $00000000;
  810. CDRF_NEWFONT = $00000002;
  811. CDRF_SKIPDEFAULT = $00000004;
  812. CDRF_NOTIFYPOSTPAINT = $00000010;
  813. CDRF_NOTIFYITEMDRAW = $00000020;
  814. CDRF_NOTIFYSUBITEMDRAW = $00000020; // flags are the same, we can distinguish by context
  815. CDRF_NOTIFYPOSTERASE = $00000040;
  816. // drawstage flags
  817. // values under = $00010000 are reserved for global custom draw values.
  818. // above that are for specific controls
  819. CDDS_PREPAINT = $00000001;
  820. CDDS_POSTPAINT = $00000002;
  821. CDDS_PREERASE = $00000003;
  822. CDDS_POSTERASE = $00000004;
  823. // the = $000010000 bit means it's individual item specific
  824. CDDS_ITEM = $00010000;
  825. CDDS_ITEMPREPAINT = CDDS_ITEM or CDDS_PREPAINT;
  826. CDDS_ITEMPOSTPAINT = CDDS_ITEM or CDDS_POSTPAINT;
  827. CDDS_ITEMPREERASE = CDDS_ITEM or CDDS_PREERASE;
  828. CDDS_ITEMPOSTERASE = CDDS_ITEM or CDDS_POSTERASE;
  829. CDDS_SUBITEM = $00020000;
  830. // itemState flags
  831. CDIS_SELECTED = $0001;
  832. CDIS_GRAYED = $0002;
  833. CDIS_DISABLED = $0004;
  834. CDIS_CHECKED = $0008;
  835. CDIS_FOCUS = $0010;
  836. CDIS_DEFAULT = $0020;
  837. CDIS_HOT = $0040;
  838. CDIS_MARKED = $0080;
  839. CDIS_INDETERMINATE = $0100;
  840. type
  841. tagNMLVCUSTOMDRAW = packed record
  842. nmcd: TNMCustomDraw;
  843. clrText: COLORREF;
  844. clrTextBk: COLORREF;
  845. iSubItem: Integer; // IE 4.0 and higher
  846. end;
  847. PNMLVCustomDraw = ^TNMLVCustomDraw;
  848. TNMLVCustomDraw = tagNMLVCUSTOMDRAW;
  849. PTVDispInfoA = ^TTVDispInfoA;
  850. PTVDispInfoW = ^TTVDispInfoW;
  851. PTVDispInfo = {$IFDEF UNICODE_CTRLS} PTVDispInfoW {$ELSE} PTVDispInfoA {$ENDIF};
  852. tagTVDISPINFOA = packed record
  853. hdr: TNMHDR;
  854. item: TTVItemA;
  855. end;
  856. tagTVDISPINFOW = packed record
  857. hdr: TNMHDR;
  858. item: TTVItemW;
  859. end;
  860. tagTVDISPINFO = {$IFDEF UNICODE_CTRLS} tagTVDISPINFOW {$ELSE} tagTVDISPINFOA {$ENDIF};
  861. _TV_DISPINFOA = tagTVDISPINFOA;
  862. _TV_DISPINFOW = tagTVDISPINFOW;
  863. _TV_DISPINFO = {$IFDEF UNICODE_CTRLS} _TV_DISPINFOW {$ELSE} _TV_DISPINFOA {$ENDIF};
  864. TTVDispInfoA = tagTVDISPINFOA;
  865. TTVDispInfoW = tagTVDISPINFOW;
  866. TTVDispInfo = {$IFDEF UNICODE_CTRLS} TTVDispInfoW {$ELSE} TTVDispInfoA {$ENDIF};
  867. TV_DISPINFOA = tagTVDISPINFOA;
  868. TV_DISPINFOW = tagTVDISPINFOW;
  869. TV_DISPINFO = {$IFDEF UNICODE_CTRLS} TV_DISPINFOW {$ELSE} TV_DISPINFOA {$ENDIF};
  870. tagNMMOUSE = packed record
  871. hdr: TNMHdr;
  872. dwItemSpec: DWORD;
  873. dwItemData: DWORD;
  874. pt: TPoint;
  875. dwHitInfo: DWORD; // any specifics about where on the item or control the mouse is
  876. end;
  877. PNMMouse = ^TNMMouse;
  878. TNMMouse = tagNMMOUSE;
  879. type
  880. PTVHitTestInfo = ^TTVHitTestInfo;
  881. TTVHitTestInfo = packed Record
  882. pt: TPoint;
  883. fl: DWORD;
  884. hItem: THandle;
  885. end;
  886. const
  887. cctrl = 'comctl32.dll';
  888. HINST_COMMCTRL = THandle(-1);
  889. CCS_TOP = $00000001;
  890. CCS_NOMOVEY = $00000002;
  891. CCS_BOTTOM = $00000003;
  892. CCS_NORESIZE = $00000004;
  893. CCS_NOPARENTALIGN = $00000008;
  894. CCS_ADJUSTABLE = $00000020;
  895. CCS_NODIVIDER = $00000040;
  896. CCS_VERT = $00000080;
  897. CCS_LEFT = (CCS_VERT or CCS_TOP);
  898. CCS_RIGHT = (CCS_VERT or CCS_BOTTOM);
  899. CCS_NOMOVEX = (CCS_VERT or CCS_NOMOVEY);
  900. PROGRESS_CLASS: array[ 0..17 ] of KOLChar = ('m','s','c','t','l','s','_',
  901. 'p','r','o','g','r','e','s','s','3','2',#0);
  902. STATUSCLASSNAME: array[ 0..18 ] of KOLChar = ('m','s','c','t','l','s','_',
  903. 's','t','a','t','u','s','b','a','r','3','2',#0);
  904. WC_LISTVIEW: array[0..13] of KOLChar = ('S','y','s','L','i','s','t',
  905. 'V','i','e','w','3','2',#0);
  906. TOOLBARCLASSNAME: array[0..15] of KOLChar = ('T','o','o','l','b','a','r',
  907. 'W','i','n','d','o','w','3','2',#0 );
  908. TOOLTIPS_CLASS: array[0..16] of KOLChar = ('t','o','o','l','t','i','p','s','_',
  909. 'c','l','a','s','s','3','2',#0);
  910. WC_TREEVIEW: array[0..13] of KOLChar = ('S','y','s','T','r','e','e',
  911. 'V','i','e','w','3','2',#0);
  912. WC_TABCONTROL: array[0..15] of KOLChar = ('S','y','s','T','a','b','C','o','n','t',
  913. 'r','o','l','3','2',#0);
  914. DATETIMEPICK_CLASS: array[ 0..17 ] of KOLChar = (
  915. 'S','y','s','D','a','t','e','T','i','m','e','P','i','c','k','3','2',#0 );
  916. TBN_FIRST = 0-700; { toolbar }
  917. TBN_LAST = 0-720;
  918. TBCDRF_NOEDGES = $00010000; // Don't draw button edges
  919. TBCDRF_HILITEHOTTRACK = $00020000; // Use color of the button bk when hottracked
  920. TBCDRF_NOOFFSET = $00040000; // Don't offset button if pressed
  921. TBCDRF_NOMARK = $00080000; // Don't draw default highlight of image/text for TBSTATE_MARKED
  922. TBCDRF_NOETCHEDEFFECT = $00100000; // Don't draw etched effect for disabled items
  923. TB_ENABLEBUTTON = WM_USER + 1;
  924. TB_CHECKBUTTON = WM_USER + 2;
  925. TB_PRESSBUTTON = WM_USER + 3;
  926. TB_HIDEBUTTON = WM_USER + 4;
  927. TB_INDETERMINATE = WM_USER + 5;
  928. TB_MARKBUTTON = WM_USER + 6;
  929. TB_ISBUTTONENABLED = WM_USER + 9;
  930. TB_ISBUTTONCHECKED = WM_USER + 10;
  931. TB_ISBUTTONPRESSED = WM_USER + 11;
  932. TB_ISBUTTONHIDDEN = WM_USER + 12;
  933. TB_ISBUTTONINDETERMINATE = WM_USER + 13;
  934. TB_ISBUTTONHIGHLIGHTED = WM_USER + 14;
  935. TB_SETSTATE = WM_USER + 17;
  936. TB_GETSTATE = WM_USER + 18;
  937. TB_ADDBITMAP = WM_USER + 19;
  938. TB_ADDBUTTONSA = WM_USER + 20;
  939. TB_ADDBUTTONSW = WM_USER + 68;
  940. TB_INSERTBUTTONA = WM_USER + 21;
  941. TB_INSERTBUTTONW = WM_USER + 67;
  942. TB_DELETEBUTTON = WM_USER + 22;
  943. TB_GETBUTTON = WM_USER + 23;
  944. TB_BUTTONCOUNT = WM_USER + 24;
  945. TB_COMMANDTOINDEX = WM_USER + 25;
  946. TB_SAVERESTOREA = WM_USER + 26;
  947. TB_ADDSTRINGA = WM_USER + 28;
  948. TB_GETBUTTONTEXTA = WM_USER + 45;
  949. TBN_GETBUTTONINFOA = TBN_FIRST-0;
  950. TB_GETBUTTONINFOW = WM_USER + 63;
  951. TB_SETBUTTONINFOW = WM_USER + 64;
  952. TB_GETBUTTONINFOA = WM_USER + 65;
  953. TB_SETBUTTONINFOA = WM_USER + 66;
  954. TB_GETBUTTONINFO = {$IFDEF UNICODE_CTRLS} TB_GETBUTTONINFOW {$ELSE} TB_GETBUTTONINFOA {$ENDIF};
  955. TB_SETBUTTONINFO = {$IFDEF UNICODE_CTRLS} TB_SETBUTTONINFOW {$ELSE} TB_SETBUTTONINFOA {$ENDIF};
  956. TB_SAVERESTOREW = WM_USER + 76;
  957. TB_ADDSTRINGW = WM_USER + 77;
  958. TB_GETBUTTONTEXTW = WM_USER + 75;
  959. TBN_GETBUTTONINFOW = TBN_FIRST-20;
  960. TB_SAVERESTORE = {$IFDEF UNICODE_CTRLS} TB_SAVERESTOREW {$ELSE} TB_SAVERESTOREA {$ENDIF};
  961. TB_ADDSTRING = {$IFDEF UNICODE_CTRLS} TB_ADDSTRINGW {$ELSE} TB_ADDSTRINGA {$ENDIF};
  962. TB_GETBUTTONTEXT = {$IFDEF UNICODE_CTRLS} TB_GETBUTTONTEXTW {$ELSE} TB_GETBUTTONTEXTA {$ENDIF};
  963. TBN_GETBUTTONINFO = {$IFDEF UNICODE_CTRLS} TBN_GETBUTTONINFOW {$ELSE} TBN_GETBUTTONINFOA {$ENDIF};
  964. TBN_DROPDOWN = TBN_FIRST-10;
  965. TBN_CLOSEUP = TBN_FIRST-11;
  966. TB_CUSTOMIZE = WM_USER + 27;
  967. TB_GETITEMRECT = WM_USER + 29;
  968. TB_BUTTONSTRUCTSIZE = WM_USER + 30;
  969. TB_SETBUTTONSIZE = WM_USER + 31;
  970. TB_SETBITMAPSIZE = WM_USER + 32;
  971. TB_AUTOSIZE = WM_USER + 33;
  972. TB_GETTOOLTIPS = WM_USER + 35;
  973. TB_SETTOOLTIPS = WM_USER + 36;
  974. TB_SETPARENT = WM_USER + 37;
  975. TB_SETROWS = WM_USER + 39;
  976. TB_GETROWS = WM_USER + 40;
  977. TB_SETCMDID = WM_USER + 42;
  978. TB_CHANGEBITMAP = WM_USER + 43;
  979. TB_GETBITMAP = WM_USER + 44;
  980. TB_REPLACEBITMAP = WM_USER + 46;
  981. TB_SETINDENT = WM_USER + 47;
  982. TB_SETIMAGELIST = WM_USER + 48;
  983. TB_GETIMAGELIST = WM_USER + 49;
  984. TB_LOADIMAGES = WM_USER + 50;
  985. TB_GETRECT = WM_USER + 51; { wParam is the Cmd instead of index }
  986. TB_SETHOTIMAGELIST = WM_USER + 52;
  987. TB_GETHOTIMAGELIST = WM_USER + 53;
  988. TB_SETDISABLEDIMAGELIST = WM_USER + 54;
  989. TB_GETDISABLEDIMAGELIST = WM_USER + 55;
  990. TB_SETSTYLE = WM_USER + 56;
  991. TB_GETSTYLE = WM_USER + 57;
  992. TB_GETBUTTONSIZE = WM_USER + 58;
  993. TB_SETBUTTONWIDTH = WM_USER + 59;
  994. TB_SETMAXTEXTROWS = WM_USER + 60;
  995. TB_GETTEXTROWS = WM_USER + 61;
  996. TB_GETOBJECT = WM_USER + 62; // wParam == IID, lParam void **ppv
  997. TB_GETHOTITEM = WM_USER + 71;
  998. TB_SETHOTITEM = WM_USER + 72; // wParam == iHotItem
  999. TB_SETANCHORHIGHLIGHT = WM_USER + 73; // wParam == TRUE/FALSE
  1000. TB_GETANCHORHIGHLIGHT = WM_USER + 74;
  1001. TB_MAPACCELERATORA = WM_USER + 78; // wParam == ch, lParam int * pidBtn
  1002. TB_SETEXTENDEDSTYLE = WM_USER + 84; // For TBSTYLE_EX_*
  1003. TB_GETEXTENDEDSTYLE = WM_USER + 85; // For TBSTYLE_EX_*
  1004. TB_INSERTBUTTON = {$IFDEF UNICODE_CTRLS} TB_INSERTBUTTONW {$ELSE} TB_INSERTBUTTONA {$ENDIF};
  1005. TB_ADDBUTTONS = {$IFDEF UNICODE_CTRLS} TB_ADDBUTTONSW {$ELSE} TB_ADDBUTTONSA {$ENDIF};
  1006. IDB_STD_SMALL_COLOR = 0;
  1007. IDB_STD_LARGE_COLOR = 1;
  1008. IDB_VIEW_SMALL_COLOR = 4;
  1009. IDB_VIEW_LARGE_COLOR = 5;
  1010. IDB_HIST_SMALL_COLOR = 8;
  1011. IDB_HIST_LARGE_COLOR = 9;
  1012. STD_CUT = 0;
  1013. STD_COPY = 1;
  1014. STD_PASTE = 2;
  1015. STD_UNDO = 3;
  1016. STD_REDO = 4;
  1017. STD_DELETE = 5;
  1018. STD_FILENEW = 6;
  1019. STD_FILEOPEN = 7;
  1020. STD_FILESAVE = 8;
  1021. STD_PRINTPRE = 9;
  1022. STD_PROPERTIES = 10;
  1023. STD_HELP = 11;
  1024. STD_FIND = 12;
  1025. STD_REPLACE = 13;
  1026. STD_PRINT = 14;
  1027. { icon indexes for standard view bitmap }
  1028. VIEW_LARGEICONS = 0;
  1029. VIEW_SMALLICONS = 1;
  1030. VIEW_LIST = 2;
  1031. VIEW_DETAILS = 3;
  1032. VIEW_SORTNAME = 4;
  1033. VIEW_SORTSIZE = 5;
  1034. VIEW_SORTDATE = 6;
  1035. VIEW_SORTTYPE = 7;
  1036. VIEW_PARENTFOLDER = 8;
  1037. VIEW_NETCONNECT = 9;
  1038. VIEW_NETDISCONNECT = 10;
  1039. VIEW_NEWFOLDER = 11;
  1040. VIEW_VIEWMENU = 12;
  1041. { icon indexes for standard history bitmap }
  1042. HIST_BACK = 0;
  1043. HIST_FORWARD = 1;
  1044. HIST_FAVORITES = 2;
  1045. HIST_ADDTOFAVORITES = 3;
  1046. HIST_VIEWTREE = 4;
  1047. TBSTATE_CHECKED = $01;
  1048. TBSTATE_PRESSED = $02;
  1049. TBSTATE_ENABLED = $04;
  1050. TBSTATE_HIDDEN = $08;
  1051. TBSTATE_INDETERMINATE = $10;
  1052. TBSTATE_WRAP = $20;
  1053. TBSTATE_ELLIPSES = $40;
  1054. TBSTATE_MARKED = $80;
  1055. TBSTYLE_BUTTON = $00;
  1056. TBSTYLE_SEP = $01;
  1057. TBSTYLE_CHECK = $02;
  1058. TBSTYLE_GROUP = $04;
  1059. TBSTYLE_CHECKGROUP = TBSTYLE_GROUP or TBSTYLE_CHECK;
  1060. TBSTYLE_DROPDOWN = $08;
  1061. TBSTYLE_AUTOSIZE = $0010; // automatically calculate the cx of the button
  1062. TBSTYLE_NOPREFIX = $0020; // if this button should not have accel prefix
  1063. TBSTYLE_TOOLTIPS = $0100;
  1064. TBSTYLE_WRAPABLE = $0200;
  1065. TBSTYLE_ALTDRAG = $0400;
  1066. TBSTYLE_FLAT = $0800;
  1067. TBSTYLE_LIST = $1000;
  1068. TBSTYLE_CUSTOMERASE = $2000;
  1069. TBSTYLE_REGISTERDROP = $4000;
  1070. TBSTYLE_TRANSPARENT = $8000;
  1071. TBSTYLE_EX_DRAWDDARROWS = $00000001;
  1072. TBIF_IMAGE = $00000001;
  1073. TBIF_TEXT = $00000002;
  1074. TBIF_STATE = $00000004;
  1075. TBIF_STYLE = $00000008;
  1076. TBIF_LPARAM = $00000010;
  1077. TBIF_COMMAND = $00000020;
  1078. TBIF_SIZE = $00000040;
  1079. TTN_FIRST = 0-520; { tooltips }
  1080. TTN_LAST = 0-549;
  1081. TTN_NEEDTEXTA = TTN_FIRST - 0;
  1082. TTN_NEEDTEXT = TTN_FIRST - 0;
  1083. TTN_NEEDTEXTW = TTN_FIRST - 10;
  1084. TTS_ALWAYSTIP = $01;
  1085. TTS_NOPREFIX = $02;
  1086. TTM_ACTIVATE = WM_USER + 1;
  1087. TTM_SETDELAYTIME = WM_USER + 3;
  1088. TTM_ADDTOOLA = WM_USER + 4;
  1089. TTM_DELTOOLA = WM_USER + 5;
  1090. TTM_NEWTOOLRECTA = WM_USER + 6;
  1091. TTM_GETTOOLINFOA = WM_USER + 8;
  1092. TTM_SETTOOLINFOA = WM_USER + 9;
  1093. TTM_HITTESTA = WM_USER + 10;
  1094. TTM_GETTEXTA = WM_USER + 11;
  1095. TTM_UPDATETIPTEXTA = WM_USER + 12;
  1096. TTM_ENUMTOOLSA = WM_USER + 14;
  1097. TTM_GETCURRENTTOOLA = WM_USER + 15;
  1098. TTM_ADDTOOLW = WM_USER + 50;
  1099. TTM_DELTOOLW = WM_USER + 51;
  1100. TTM_NEWTOOLRECTW = WM_USER + 52;
  1101. TTM_GETTOOLINFOW = WM_USER + 53;
  1102. TTM_SETTOOLINFOW = WM_USER + 54;
  1103. TTM_HITTESTW = WM_USER + 55;
  1104. TTM_GETTEXTW = WM_USER + 56;
  1105. TTM_UPDATETIPTEXTW = WM_USER + 57;
  1106. TTM_ENUMTOOLSW = WM_USER + 58;
  1107. TTM_GETCURRENTTOOLW = WM_USER + 59;
  1108. TTM_WINDOWFROMPOINT = WM_USER + 16;
  1109. TTM_TRACKACTIVATE = WM_USER + 17; // wParam = TRUE/FALSE start end lparam = LPTOOLINFO
  1110. TTM_TRACKPOSITION = WM_USER + 18; // lParam = dwPos
  1111. TTM_SETTIPBKCOLOR = WM_USER + 19;
  1112. TTM_SETTIPTEXTCOLOR = WM_USER + 20;
  1113. TTM_GETDELAYTIME = WM_USER + 21;
  1114. TTM_GETTIPBKCOLOR = WM_USER + 22;
  1115. TTM_GETTIPTEXTCOLOR = WM_USER + 23;
  1116. TTM_SETMAXTIPWIDTH = WM_USER + 24;
  1117. TTM_GETMAXTIPWIDTH = WM_USER + 25;
  1118. TTM_SETMARGIN = WM_USER + 26; // lParam = lprc
  1119. TTM_GETMARGIN = WM_USER + 27; // lParam = lprc
  1120. TTM_POP = WM_USER + 28;
  1121. TTM_POPUP = WM_USER + 34;
  1122. TTM_UPDATE = WM_USER + 29;
  1123. TTM_ADDTOOL = {$IFDEF UNICODE_CTRLS} TTM_ADDTOOLW {$ELSE} TTM_ADDTOOLA {$ENDIF};
  1124. TTM_DELTOOL = {$IFDEF UNICODE_CTRLS} TTM_DELTOOLW {$ELSE} TTM_DELTOOLA {$ENDIF};
  1125. TTM_NEWTOOLRECT = {$IFDEF UNICODE_CTRLS} TTM_NEWTOOLRECTW {$ELSE} TTM_NEWTOOLRECTA {$ENDIF};
  1126. TTM_GETTOOLINFO = {$IFDEF UNICODE_CTRLS} TTM_GETTOOLINFOW {$ELSE} TTM_GETTOOLINFOA {$ENDIF};
  1127. TTM_SETTOOLINFO = {$IFDEF UNICODE_CTRLS} TTM_SETTOOLINFOW {$ELSE} TTM_SETTOOLINFOA {$ENDIF};
  1128. TTM_HITTEST = {$IFDEF UNICODE_CTRLS} TTM_HITTESTW {$ELSE} TTM_HITTESTA {$ENDIF};
  1129. TTM_GETTEXT = {$IFDEF UNICODE_CTRLS} TTM_GETTEXTW {$ELSE} TTM_GETTEXTA {$ENDIF};
  1130. TTM_UPDATETIPTEXT = {$IFDEF UNICODE_CTRLS} TTM_UPDATETIPTEXTW {$ELSE} TTM_UPDATETIPTEXTA {$ENDIF};
  1131. TTM_ENUMTOOLS = {$IFDEF UNICODE_CTRLS} TTM_ENUMTOOLSW {$ELSE} TTM_ENUMTOOLSA {$ENDIF};
  1132. TTM_GETCURRENTTOOL = {$IFDEF UNICODE_CTRLS} TTM_GETCURRENTTOOLW {$ELSE} TTM_GETCURRENTTOOLA {$ENDIF};
  1133. TTM_RELAYEVENT = WM_USER + 7;
  1134. TTM_GETTOOLCOUNT = WM_USER +13;
  1135. TTF_IDISHWND = $0001;
  1136. TTF_CENTERTIP = $0002;
  1137. TTF_RTLREADING = $0004;
  1138. TTF_SUBCLASS = $0010;
  1139. TTF_TRACK = $0020;
  1140. TTF_ABSOLUTE = $0080;
  1141. TTF_TRANSPARENT = $0100;
  1142. TTF_DI_SETITEM = $8000; // valid only on the TTN_NEEDTEXT callback
  1143. LPSTR_TEXTCALLBACKA = LPSTR(-1);
  1144. LPSTR_TEXTCALLBACKW = LPWSTR(-1);
  1145. LPSTR_TEXTCALLBACK = {$IFDEF UNICODE_CTRLS} LPSTR_TEXTCALLBACKW {$ELSE} LPSTR_TEXTCALLBACKA {$ENDIF};
  1146. CW_USEDEFAULT = Integer($80000000);
  1147. type
  1148. PTBAddBitmap = ^TTBAddBitmap;
  1149. TTBAddBitmap = packed record
  1150. hInst: THandle;
  1151. nID: UINT;
  1152. end;
  1153. PTBButton = ^TTBButton;
  1154. TTBButton = packed record
  1155. iBitmap: Integer;
  1156. idCommand: Integer;
  1157. fsState: Byte;
  1158. fsStyle: Byte;
  1159. bReserved: array[1..2] of Byte;
  1160. dwData: Longint;
  1161. iString: Integer;
  1162. end;
  1163. PTBButtonInfo = ^TTBButtonInfo;
  1164. TTBButtonInfo = packed record
  1165. cbSize: UINT;
  1166. dwMask: DWORD;
  1167. idCommand: Integer;
  1168. iImage: Integer;
  1169. fsState: Byte;
  1170. fsStyle: Byte;
  1171. cx: Word;
  1172. lParam: DWORD;
  1173. pszText: PKOLChar;
  1174. cchText: Integer;
  1175. end;
  1176. PColorMap = ^TColorMap;
  1177. TColorMap = packed record
  1178. cFrom: TColorRef;
  1179. cTo: TColorRef;
  1180. end;
  1181. PTBNotify = ^TTBnotify;
  1182. TTBNotify = packed record
  1183. hdr: TNMHdr;
  1184. iItem: Integer;
  1185. tbButton: TTBButton;
  1186. cchText: Integer;
  1187. pszText: PChar;
  1188. end;
  1189. PNMTBCustomDraw = ^TNMTBCustomDraw;
  1190. TNMTBCustomDraw = packed record
  1191. nmcd: TNMCUSTOMDRAW;
  1192. hbrMonoDither: HBrush;
  1193. hbrLines : HBrush;
  1194. hpenLines : HPen;
  1195. clrText : COLORREF;
  1196. clrMark : COLORREF;
  1197. clrTextHighlight: COLORREF;
  1198. clrBtnFace : COLORREF;
  1199. clrBtnHighlight : COLORREF;
  1200. clrHighlightHotTrack: COLORREF;
  1201. rcText : TRect;
  1202. nStringBkMode : Integer;
  1203. nHLStringBkMode : Integer;
  1204. iListGap : Integer;
  1205. end;
  1206. PTooltipText = ^TTooltipText;
  1207. TTooltipText = packed record
  1208. hdr: TNMHdr;
  1209. lpszText: PKOLChar;
  1210. szText: array[0..79] of KOLChar;
  1211. hinst: HINST;
  1212. uFlags: UINT;
  1213. lParam: LPARAM;
  1214. end;
  1215. PToolInfo = ^TToolInfo;
  1216. TToolInfo = packed record
  1217. cbSize: UINT;
  1218. uFlags: UINT;
  1219. hwnd: HWND;
  1220. uId: UINT;
  1221. Rect: TRect;
  1222. hInst: THandle;
  1223. lpszText: PKOLChar;
  1224. lParam: LPARAM;
  1225. end;
  1226. const
  1227. WM_MOUSEHOVER = $02A1;
  1228. WM_MOUSELEAVE = $02A3;
  1229. TME_HOVER = $00000001;
  1230. TME_LEAVE = $00000002;
  1231. TME_QUERY = $40000000;
  1232. TME_CANCEL = $80000000;
  1233. HOVER_DEFAULT = $FFFFFFFF;
  1234. ODT_HEADER = 100;
  1235. ODT_TAB = 101;
  1236. ODT_LISTVIEW = 102;
  1237. type
  1238. tagTRACKMOUSEEVENT = packed record
  1239. cbSize: DWORD;
  1240. dwFlags: DWORD;
  1241. hwndTrack: HWND;
  1242. dwHoverTime: DWORD;
  1243. end;
  1244. PTrackMouseEvent = ^TTrackMouseEvent;
  1245. TTrackMouseEvent = tagTRACKMOUSEEVENT;
  1246. //////////////////////////////////////////////////////////////////////////////
  1247. /////////////////////////////////////////////////////////
  1248. // Some stuff from new Delphi versions (not available in old ones):
  1249. {$IFNDEF UNICODE_CTRLS}
  1250. const
  1251. //IDC_HAND = MakeIntResource(32649);
  1252. IDC_HAND = PChar(32649);
  1253. {$ENDIF}
  1254. /////////////////////////////////////////////////////////
  1255. const
  1256. VK_PAGE_DOWN = VK_NEXT;
  1257. VK_PAGE_UP = VK_PRIOR;
  1258. VK_ALT = VK_MENU;
  1259. PBT_APMQUERYSUSPEND = 00 ;
  1260. PBT_APMQUERYSTANDBY = 01 ;
  1261. PBT_APMQUERYSUSPENDFAILED = 02 ;
  1262. PBT_APMQUERYSTANDBYFAILED = 03 ;
  1263. PBT_APMSUSPEND = 04 ;
  1264. PBT_APMSTANDBY = 05 ;
  1265. PBT_APMRESUMECRITICAL = 06 ;
  1266. PBT_APMRESUMESUSPEND = 07 ;
  1267. PBT_APMRESUMESTANDBY = 08 ;
  1268. PBTF_APMRESUMEFROMFAILURE = 000001 ;
  1269. PBT_APMBATTERYLOW = 09 ;
  1270. PBT_APMPOWERSTATUSCHANGE = 10 ;
  1271. PBT_APMOEMEVENT = 11 ;
  1272. PBT_APMRESUMEAUTOMATIC = $12 ; // hexadecimal $12 = 18 !
  1273. { DATETIMEPICKER}
  1274. const
  1275. // messages
  1276. DTM_FIRST = $1000;
  1277. DTM_GETSYSTEMTIME = DTM_FIRST + 1;
  1278. DTM_SETSYSTEMTIME = DTM_FIRST + 2;
  1279. DTM_GETRANGE = DTM_FIRST + 3;
  1280. DTM_SETRANGE = DTM_FIRST + 4;
  1281. DTM_SETFORMATA = DTM_FIRST + 5;
  1282. DTM_SETMCCOLOR = DTM_FIRST + 6;
  1283. DTM_GETMCCOLOR = DTM_FIRST + 7;
  1284. DTM_GETMONTHCAL = DTM_FIRST + 8;
  1285. DTM_SETMCFONT = DTM_FIRST + 9;
  1286. DTM_GETMCFONT = DTM_FIRST + 10;
  1287. DTM_SETFORMATW = DTM_FIRST + 50;
  1288. DTM_SETFORMAT = {$IFDEF UNICODE_CTRLS} DTM_SETFORMATW {$ELSE} DTM_SETFORMATA {$ENDIF};
  1289. // Ranges
  1290. GDTR_MIN = $0001;
  1291. GDTR_MAX = $0002;
  1292. // Return Values
  1293. GDT_ERROR = -1;
  1294. GDT_VALID = 0;
  1295. GDT_NONE = 1;
  1296. // notifications
  1297. DTN_FIRST = 0-760; { datetimepick }
  1298. DTN_LAST = 0-799;
  1299. DTN_DATETIMECHANGE = DTN_FIRST + 1; // the systemtime has changed
  1300. DTN_USERSTRINGA = DTN_FIRST + 2; // the user has entered a string
  1301. DTN_USERSTRINGW = DTN_FIRST + 15;
  1302. DTN_WMKEYDOWNA = DTN_FIRST + 3; // modify keydown on app format field (X)
  1303. DTN_WMKEYDOWNW = DTN_FIRST + 16;
  1304. DTN_FORMATA = DTN_FIRST + 4; // query display for app format field (X)
  1305. DTN_FORMATW = DTN_FIRST + 17;
  1306. DTN_FORMATQUERYA = DTN_FIRST + 5; // query formatting info for app format field (X)
  1307. DTN_FORMATQUERYW = DTN_FIRST + 18;
  1308. DTN_DROPDOWN = DTN_FIRST + 6; // MonthCal has dropped down
  1309. DTN_CLOSEUP = DTN_FIRST + 7; // MonthCal is popping up
  1310. DTN_USERSTRING = {$IFDEF UNICODE_CTRLS} DTN_USERSTRINGW {$ELSE} DTN_USERSTRINGA {$ENDIF};
  1311. DTN_WMKEYDOWN = {$IFDEF UNICODE_CTRLS} DTN_WMKEYDOWNW {$ELSE} DTN_WMKEYDOWNA {$ENDIF};
  1312. DTN_FORMAT = {$IFDEF UNICODE_CTRLS} DTN_FORMATW {$ELSE} DTN_FORMATA {$ENDIF};
  1313. DTN_FORMATQUERY = {$IFDEF UNICODE_CTRLS} DTN_FORMATQUERYW {$ELSE} DTN_FORMATQUERYA {$ENDIF};
  1314. // styles
  1315. DTS_UPDOWN = $0001; // use UPDOWN instead of MONTHCAL
  1316. DTS_SHOWNONE = $0002; // allow a NONE selection
  1317. DTS_SHORTDATEFORMAT = $0000; // use the short date format
  1318. // (app must forward WM_WININICHANGE messages)
  1319. DTS_LONGDATEFORMAT = $0004; // use the long date format
  1320. // (app must forward WM_WININICHANGE messages)
  1321. DTS_TIMEFORMAT = $0008; // use the time format
  1322. // (app must forward WM_WININICHANGE messages)
  1323. DTS_APPCANPARSE = $0010; // allow user entered strings
  1324. // (app MUST respond to DTN_USERSTRING)
  1325. DTS_RIGHTALIGN = $0020; // right-align popup instead of left-align it
  1326. // color index constants
  1327. MCSC_BACKGROUND = 0; // the background color (between months)
  1328. MCSC_TEXT = 1; // the dates
  1329. MCSC_TITLEBK = 2; // background of the title
  1330. MCSC_TITLETEXT = 3;
  1331. MCSC_MONTHBK = 4; // background within the month cal
  1332. MCSC_TRAILINGTEXT = 5; // the text color of header & trailing days
  1333. // structures
  1334. type
  1335. tagNMDATETIMESTRINGA = packed record
  1336. nmhdr: TNmHdr;
  1337. pszUserString: PAnsiChar; // string user entered
  1338. st: TSystemTime; // app fills this in
  1339. dwFlags: DWORD; // GDT_VALID or GDT_NONE
  1340. end;
  1341. tagNMDATETIMESTRINGW = packed record
  1342. nmhdr: TNmHdr;
  1343. pszUserString: PWideChar; // string user entered
  1344. st: TSystemTime; // app fills this in
  1345. dwFlags: DWORD; // GDT_VALID or GDT_NONE
  1346. end;
  1347. tagNMDATETIMESTRING = {$IFDEF UNICODE_CTRLS} tagNMDATETIMESTRINGW {$ELSE} tagNMDATETIMESTRINGA {$ENDIF};
  1348. PNMDateTimeStringA = ^TNMDateTimeStringA;
  1349. PNMDateTimeStringW = ^TNMDateTimeStringW;
  1350. PNMDateTimeString = {$IFDEF UNICODE_CTRLS} PNMDateTimeStringW {$ELSE} PNMDateTimeStringA {$ENDIF};
  1351. TNMDateTimeStringA = tagNMDATETIMESTRINGA;
  1352. TNMDateTimeStringW = tagNMDATETIMESTRINGW;
  1353. TNMDateTimeString = {$IFDEF UNICODE_CTRLS} TNMDateTimeStringW {$ELSE} TNMDateTimeStringA {$ENDIF};
  1354. {******************************************************************************}