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