18#ifndef __TREELISTWND_H__
19#define __TREELISTWND_H__
29#define SNDMSG ::SendMessage
31#define SNDMSG SendMessage
85#define TVCOLUMN LV_COLUMN
86#define TV_COLUMN LV_COLUMN
88#define TV_NOIMAGE (-2)
89#define TV_NOCOLOR 0xFFFFFFFF
90#define TV_NOAUTOEXPAND 0x20000000
91#define TV_SECONDICON 0x40000000
92#define TVLE_DONOTIFY 0xF5A5A500
93#define TVIF_TEXTPTR 0x80000000
94#define TVIF_TOOLTIPTIME 0x40000000
95#define TVIF_TEXTCHANGED 0x20000000
96#define TVIF_RETURNEXIT 0x10000000
97#define TVIF_CASE 0x08000000
98#define TVIF_NEXT 0x04000000
99#define TVIF_CHILD 0x02000000
100#define TVIF_CANCELED 0x01000000
101#define TVIF_ONLYFOCUS 0x00800000
102#define TVIF_SUBITEM 0x8000
103#define TVIF_SUBNUMBER 0x4000
104#define TVIS_UNDERLINE 0x0001
105#define TVSIL_CHECK 0x0003
106#define TVSIL_SUBIMAGES 0x0004
107#define TVSIL_HEADER 0x0005
108#define TVN_COLUMNCLICK HDN_ITEMCLICK
109#define TVN_COLUMNDBLCLICK HDN_ITEMDBLCLICK
110#define TVE_EXPANDRECURSIVE (0x80000000)
111#define TVE_EXPANDFORCE (0x40000000)
112#define TVE_EXPANDNEXT (0x20000000)
113#define TVE_ALLCHILDS (0x10000000)
114#define TVE_ONLYCHILDS (0x00000008)
115#define TVI_SORTEX ((HTREEITEM)(ULONG_PTR)0xFFFF0007)
116#define TVI_BEFORE ((HTREEITEM)(ULONG_PTR)0xFFFF0006)
117#define TVI_AFTER ((HTREEITEM)(ULONG_PTR)0xFFFF0005)
118#define TVI_ROW(n) ((HTREEITEM)(ULONG_PTR)(0xFFE00000+(n)))
120#define VK_DBLCLK 0x10000
123#define VK_ICONCLK 0x10001
126#define VK_EDITCLK 0x10002
134#define TVC_CLASSNAME "SysTreeList32"
147#define TVC_MARKEVEN 9
152#define TVC_COLEVEN 14
157#define TVGN_DROPHILITESUB 0x000C
158#define TVGN_CARETSUB 0x000D
159#ifndef TVGN_NEXTSELECTED
160#define TVGN_NEXTSELECTED 0x000E
162#define TVGN_FOCUS 0x000F
163#define TVGN_FOCUSSUB 0x0010
164#define TVGN_NEXTSELCHILD 0x0011
165#define TVGN_LASTCHILD 0x0012
166#define TVGN_NEXTITEM 0x0013
170#define TVCF_FMT LVCF_FMT
171#define TVCF_IMAGE LVCF_IMAGE
172#define TVCF_TEXT LVCF_TEXT
173#define TVCF_WIDTH LVCF_WIDTH
174#define TVCF_VWIDTH LVCF_SUBITEM
175#define TVCF_MIN LVCF_ORDER
176#define TVCF_MARK 0x80000000
177#define TVCF_FIXED 0x40000000
178#define TVCF_LASTSIZE 0x44332211
182#define TVCFMT_BITMAP_ON_RIGHT LVCFMT_BITMAP_ON_RIGHT
183#define TVCFMT_COL_HAS_IMAGES LVCFMT_COL_HAS_IMAGES
184#define TVCFMT_CENTER LVCFMT_CENTER
185#define TVCFMT_IMAGE LVCFMT_IMAGE
186#define TVCFMT_LEFT LVCFMT_LEFT
187#define TVCFMT_RIGHT LVCFMT_RIGHT
188#define TVCFMT_FIXED 0x20000000
189#define TVCFMT_MARK 0x10000000
193#define TVAE_NONE (0<<TVAE_MODEPOS)
194#define TVAE_EDIT (1<<TVAE_MODEPOS)
195#define TVAE_COMBO (2<<TVAE_MODEPOS)
196#define TVAE_CBLIST (3<<TVAE_MODEPOS)
197#define TVAE_STEP (4<<TVAE_MODEPOS)
198#define TVAE_STEPED (5<<TVAE_MODEPOS)
199#define TVAE_CHECK (6<<TVAE_MODEPOS)
200#define TVAE_CHECKED (7<<TVAE_MODEPOS)
201#define TVAE_NEXTLINE 0x0001
202#define TVAE_DBLCLICK 0x0002
203#define TVAE_FULLWIDTH 0x0004
204#define TVAE_PTRLIST 0x0008
205#define TVAE_ONLYRETURN 0x0010
206#define TVAE_STATEENABLE 0x0020
207#define TVAE_ICONCLICK 0x0040
208#define TVAE_DROPDOWN 0x0080
209#define TVAE_COL(c) (((c)&0x3F)<<11)
210#define TVAE_CHAR(c) (((c)&0xFF)<<17)
211#define TVAE_COUNT(c) (((c)&0x7F)<<25)
212#define TVAE_MODEMASK (7<<TVAE_MODEPOS)
213#define TVAE_MODEPOS 0x0008
214#define TVIS_DISABLEBIT 0x8000
218#define TVHT_SUBTOCOL(u) (((unsigned)u)>>24)
219#define TVHT_SUBMASK 0xFF000000
220#define TVHT_ONRIGHTSPACE 0x00800000
221#define TVHT_ONSUBLABEL 0x00400000
222#define TVHT_ONSUBICON 0x00200000
223#define TVHT_ONSUBRIGHT 0x00100000
224#define TVHT_ONSUBITEM (TVHT_ONSUBICON|TVHT_ONSUBLABEL)
228#define TVIR_COLTOSUB(u) ((u)<<24)
229#define TVIR_GETCOLUMN 0x00000080
230#define TVIR_TEXT 0x00000001
234#define TVIS_WITHCHILDS 0x00000001
235#define TVIS_DESELECT 0x00000002
238#define TVOP_AUTOEXPANDOFF 0x00000001
239#define TVOP_WRITEOPTION 0x80000000
243#define TVIR_EDITCOMBOCHAR(n) (((n)&0xFF)<<8)
244#define TVIR_EDITCOMBODEL 0x00000080
245#define TVIR_EDITCOMBODOWN 0x10000000
246#define TVIR_EDITCOMBOBOX 0x20000000
247#define TVIR_EDITCOMBOLIST 0x40000000
248#define TVIR_EDITFULL 0x80000000
249#define TVIR_EDITTEXT 0x00000001
250#define TVIR_EDITCOL(u) ((u)&0xFF)
251#define TVIR_SELALL 0x00000000
253#define TVIR_SELAREA(a,b) ((0x0C0000|(a&0x1FF)|((b&0x1FF)<<9))<<8)
254#define TVIR_SETCURSOR(a) ((0x080000|(a&0x3FFFF))<<8)
255#define TVIR_SETAT(a) ((0x040000|(a&0x3FFFF))<<8)
257#define TVIR_SELAREA(a,b) ((0x0C0000|((a)&0x1FF)|(((b)&0x1FF)<<9))<<8)
258#define TVIR_SETCURSOR(a) ((0x080000|((a)&0x3FFFF))<<8)
259#define TVIR_SETAT(a) ((0x040000|((a)&0x3FFFF))<<8)
263#define TVS_EX_HEADEROWNIMGLIST 0x00000400
264#define TVS_EX_HEADERCHGNOTIFY 0x00000800
265#define TVS_EX_HEADERDRAGDROP 0x00001000
266#define TVS_EX_SINGLECHECKBOX 0x00002000
267#define TVS_EX_STEPOUT 0x00004000
268#define TVS_EX_BITCHECKBOX 0x00008000
269#define TVS_EX_ITEMLINES 0x00010000
270#define TVS_EX_ALTERNATECOLOR 0x00020000
271#define TVS_EX_SUBSELECT 0x00040000
272#define TVS_EX_FULLROWMARK 0x00080000
273#define TVS_EX_TOOLTIPNOTIFY 0x00100000
274#define TVS_EX_AUTOEXPANDICON 0x00200000
275#define TVS_EX_NOCHARSELCET 0x00400000
276#define TVS_EX_NOCOLUMNRESIZE 0x00800000
277#define TVS_EX_HIDEHEADERS 0x01000000
278#define TVS_EX_GRAYEDDISABLE 0x02000000
279#define TVS_EX_FULLROWITEMS 0x04000000
280#define TVS_EX_FIXEDCOLSIZE 0x08000000
281#define TVS_EX_HOMEENDSELECT 0x10000000
282#define TVS_EX_SHAREIMAGELISTS 0x20000000
283#define TVS_EX_EDITCLICK 0x40000000
284#define TVS_EX_NOCURSORSET 0x80000000
285#ifndef TVS_EX_MULTISELECT
286#define TVS_EX_MULTISELECT 0x00000002
288#ifndef TVS_EX_AUTOHSCROLL
289#define TVS_EX_AUTOHSCROLL 0x00000020
294#define TVN_ITEMTOOLTIP (TVN_FIRST-32)
295#define TVN_CBSTATECHANGED (TVN_FIRST-33)
296#define TVN_STEPSTATECHANGED (TVN_FIRST-34)
297#define TVN_STARTEDIT (TVN_FIRST-35)
298#define TVN_LBUTTONUP (TVN_FIRST-36)
299#define TVN_RBUTTONUP (TVN_FIRST-37)
300#define TVN_COLUMNCHANGED (TVN_FIRST-38)
304#define TVM_GETHEADER (TV_FIRST+128-1)
305#define TVM_GETCOLUMNCOUNT (TV_FIRST+128-2)
306#define TVM_DELETECOLUMN (TV_FIRST+128-3)
307#define TVM_INSERTCOLUMN (TV_FIRST+128-4-TV_UINICODE)
308#define TVM_SELECTSUBITEM (TV_FIRST+128-6)
309#define TVM_SELECTDROP (TV_FIRST+128-7)
310#define TVM_SETITEMBKCOLOR (TV_FIRST+128-8)
311#define TVM_GETITEMBKCOLOR (TV_FIRST+128-9)
312#define TVM_SETITEMTEXTCOLOR (TV_FIRST+128-10)
313#define TVM_GETITEMTEXTCOLOR (TV_FIRST+128-11)
314#define TVM_GETITEMOFROW (TV_FIRST+128-12)
315#define TVM_GETROWCOUNT (TV_FIRST+128-13)
316#define TVM_GETROWOFITEM (TV_FIRST+128-14)
317#define TVM_SETCOLUMN (TV_FIRST+128-15-TV_UINICODE)
318#define TVM_GETCOLUMN (TV_FIRST+128-17-TV_UINICODE)
319#define TVM_SETCOLUMNWIDTH (TV_FIRST+128-19)
320#define TVM_GETCOLUMNWIDTH (TV_FIRST+128-20)
321#define TVM_SETUSERDATASIZE (TV_FIRST+128-21)
322#define TVM_GETUSERDATASIZE (TV_FIRST+128-22)
323#define TVM_GETUSERDATA (TV_FIRST+128-23)
324#define TVM_SORTCHILDRENEX (TV_FIRST+128-24)
325#define TVM_COLUMNAUTOEDIT (TV_FIRST+128-25-TV_UINICODE)
326#define TVM_COLUMNAUTOICON (TV_FIRST+128-27)
327#define TVM_GETCOUNTPERPAGE (TV_FIRST+128-28)
328#define TVM_FINDITEM (TV_FIRST+128-29-TV_UINICODE)
329#define TVM_SELECTCHILDS (TV_FIRST+128-31)
330#define TVM_GETSETOPTION (TV_FIRST+128-32)
331#define TVM_ISITEMVISIBLE (TV_FIRST+128-33)
332#define TVM_SETFOCUSITEM (TV_FIRST+128-34)
333#define TVM_GETCOLUMNORDERARRAY (TV_FIRST+128-35)
334#define TVM_SETCOLUMNORDERARRAY (TV_FIRST+128-36)
335#ifndef TVM_GETITEMSTATE
336#define TVM_GETITEMSTATE (TV_FIRST+39)
338#ifndef TVM_GETEXTENDEDSTYLE
339#define TVM_GETEXTENDEDSTYLE (TV_FIRST+45)
341#ifndef TVM_SETEXTENDEDSTYLE
342#define TVM_SETEXTENDEDSTYLE (TV_FIRST+44)
344#ifndef TVM_GETLINECOLOR
345#define TVM_GETLINECOLOR (TV_FIRST+41)
347#ifndef TVM_SETLINECOLOR
348#define TVM_SETLINECOLOR (TV_FIRST+40)
352#ifndef TVNRET_DEFAULT
353#define TVNRET_DEFAULT 0
355#ifndef TVNRET_SKIPOLD
356#define TVNRET_SKIPOLD 1
358#ifndef TVNRET_SKIPNEW
359#define TVNRET_SKIPNEW 2
362#define TreeList_DeleteChildItems(h,i) ((BOOL )SNDMSG(h,TVM_DELETEITEM,0x88,(LPARAM)i))
363#define TreeList_DeleteAllItems(h) ((BOOL )SNDMSG(h,TVM_DELETEITEM,0,(LPARAM)TVI_ROOT))
364#define TreeList_DeleteItem(h,i) ((BOOL )SNDMSG(h,TVM_DELETEITEM,0,(LPARAM)(HTREEITEM)(i)))
365#define TreeList_Expand(h,i,c) ((BOOL )SNDMSG(h,TVM_EXPAND,(WPARAM)(c),(LPARAM)(HTREEITEM)(i)))
366#define TreeList_GetHeader(h) ((HWND )SNDMSG(h,TVM_GETHEADER,0,0))
367#define TreeList_DeleteColumn(h,i) ((BOOL )SNDMSG(h,TVM_DELETECOLUMN,(WPARAM)(int)(i),0))
368#define TreeList_InsertColumn(h,i,p) ((INT )SNDMSG(h,TVM_INSERTCOLUMN,(WPARAM)(int)(i),(LPARAM)(const TV_COLUMN*)(p)))
369#define TreeList_GetColumnCount(h) ((INT )SNDMSG(h,TVM_GETCOLUMNCOUNT,0,0))
370#define TreeList_HitTest(h,p) ((HTREEITEM )SNDMSG(h,TVM_HITTEST,0,(LPARAM)(LPTV_HITTESTINFO)(p)))
371#define TreeList_GetItemOfRow(h,r) ((HTREEITEM )SNDMSG(h,TVM_GETITEMOFROW,0,r))
372#define TreeList_GetRowOfItem(h,i) ((INT )SNDMSG(h,TVM_GETROWOFITEM,0,(LPARAM)(i)))
373#define TreeList_GetRowCount(h) ((INT )SNDMSG(h,TVM_GETROWCOUNT ,0,0))
374#define TreeList_GetCountPerPage(h) ((INT )SNDMSG(h,TVM_GETCOUNTPERPAGE ,0,0))
375#define TreeList_GetExtendedStyle(h) ((DWORD )SNDMSG(h,TVM_GETEXTENDEDSTYLE,0,0))
376#define TreeList_SetExtendedStyle(h,d) ((DWORD )SNDMSG(h,TVM_SETEXTENDEDSTYLE,0,d))
377#define TreeList_SetExtendedStyleEx(h,d,m) ((DWORD )SNDMSG(h,TVM_SETEXTENDEDSTYLE,m,d))
378#define TreeList_GetColor(h,i) ((COLORREF )SNDMSG(h,TVM_GETBKCOLOR,(WPARAM)(i),0))
379#define TreeList_SetColor(h,i,c) ((COLORREF )SNDMSG(h,TVM_SETBKCOLOR,(WPARAM)(i),c))
380#define TreeList_GetItemBkColor(h,i,s) ((COLORREF )SNDMSG(h,TVM_GETITEMBKCOLOR,(WPARAM)(i),s))
381#define TreeList_SetItemBkColor(h,i,s,c) ((COLORREF )SNDMSG(h,TVM_SETITEMBKCOLOR,((UINT)(i))|((s)<<24),c))
382#define TreeList_GetItemTextColor(h,i,s) ((COLORREF )SNDMSG(h,TVM_GETITEMTEXTCOLOR,(WPARAM)(i),s))
383#define TreeList_SetItemTextColor(h,i,s,c) ((COLORREF )SNDMSG(h,TVM_SETITEMTEXTCOLOR,((UINT)(i))|((s)<<24),c))
384#define TreeList_IsItemVisible(h,i,s) ((INT )SNDMSG(h,TVM_ISITEMVISIBLE,s,(LPARAM)(HTREEITEM)(i)))
385#define TreeList_EnsureVisible(h,i) ((BOOL )SNDMSG(h,TVM_ENSUREVISIBLE,0,(LPARAM)(HTREEITEM)(i)))
386#define TreeList_EnsureVisibleEx(h,i,s) ((BOOL )SNDMSG(h,TVM_ENSUREVISIBLE,s,(LPARAM)(HTREEITEM)(i)))
387#define TreeList_SelectDropTargetEx(h,i,s) ((BOOL )SNDMSG(h,TVM_SELECTDROP,(WPARAM)(s),(LPARAM)(HTREEITEM)(i)))
388#define TreeList_SelectSubItem(h,i,s) ((BOOL )SNDMSG(h,TVM_SELECTSUBITEM,(WPARAM)(s),(LPARAM)(HTREEITEM)(i)))
389#define TreeList_SelectChilds(h,i,s) ((BOOL )SNDMSG(h,TVM_SELECTCHILDS,(WPARAM)(s),(LPARAM)(HTREEITEM)(i)))
390#define TreeList_Select(h,i,c) ((BOOL )SNDMSG(h,TVM_SELECTITEM,(WPARAM)(c),(LPARAM)(HTREEITEM)(i)))
391#define TreeList_EditLabel(h,i,s) ((HWND )SNDMSG(h,TVM_EDITLABEL,s,(LPARAM)(HTREEITEM)(i)))
392#define TreeList_StartEdit(h,i,s) ((BOOL )SNDMSG(h,TVM_EDITLABEL,TVIR_EDITCOL(s)|TVLE_DONOTIFY,(LPARAM)(HTREEITEM)(i)))
393#define TreeList_EndEditLabelNow(h,c) ((BOOL )SNDMSG(h,TVM_ENDEDITLABELNOW,c,0))
394#define TreeList_GetItem(h,p) ((BOOL )SNDMSG(h,TVM_GETITEM,0,(LPARAM)(TV_ITEM*)(p)))
395#define TreeList_GetCount() ((BOOL )SNDMSG(h,TVM_GETCOUNT,0,0))
396#define TreeList_GetEditControl(h) ((HWND )SNDMSG(h,TVM_GETEDITCONTROL,0,0))
397#define TreeList_GetImageList(h,i) ((HIMAGELIST)SNDMSG(h,TVM_GETIMAGELIST,i,0))
398#define TreeList_GetUserData(h,i) ((LPVOID )SNDMSG(h,TVM_GETUSERDATA,0,(LPARAM)(HTREEITEM)(i)))
399#define TreeList_GetUserDataSize(h) ((INT )SNDMSG(h,TVM_GETUSERDATASIZE,0,0))
400#define TreeList_SetUserDataSize(h,s) ((INT )SNDMSG(h,TVM_SETUSERDATASIZE,0,s))
401#define TreeList_GetIndent ((UINT )SNDMSG(h,TVM_GETINDENT,0,0))
402#define TreeList_GetVisibleCount ((UINT )SNDMSG(h,TVM_GETVISIBLECOUNT,0,0))
403#define TreeList_InsertItem(h,p) ((HTREEITEM )SNDMSG(h,TVM_INSERTITEM,0,(LPARAM)(LPTV_INSERTSTRUCT)(p)))
404#define TreeList_FindItem(h,p,f) ((HTREEITEM )SNDMSG(h,TVM_FINDITEM ,(WPARAM)p,(LPARAM)f))
405#define TreeList_CreateDragImage(h,i) ((HIMAGELIST)SNDMSG(h,TVM_CREATEDRAGIMAGE, 0, (LPARAM)(HTREEITEM)(i)))
406#define TreeList_CreateDragImageEx(h,i,s) ((HIMAGELIST)SNDMSG(h,TVM_CREATEDRAGIMAGE, s, (LPARAM)(HTREEITEM)(i)))
407#define TreeList_SetImageList(h,l,i) ((HIMAGELIST)SNDMSG(h,TVM_SETIMAGELIST,i,(LPARAM)(HIMAGELIST)(l)))
408#define TreeList_SetIndent(h,i) ((BOOL )SNDMSG(h,TVM_SETINDENT,(WPARAM)(i),0))
409#define TreeList_SetItem(h,p) ((BOOL )SNDMSG(h,TVM_SETITEM,0,(LPARAM)(const TV_ITEM*)(p)))
410#define TreeList_SortChildren(h,i,r) ((BOOL )SNDMSG(h,TVM_SORTCHILDREN ,(WPARAM)r,(LPARAM)(HTREEITEM)(i)))
411#define TreeList_SortChildrenCB(h,p,r) ((BOOL )SNDMSG(h,TVM_SORTCHILDRENCB,(WPARAM)r,(LPARAM)(LPTV_SORTCB)(p)))
412#define TreeList_SortChildrenEX(h,p,r) ((BOOL )SNDMSG(h,TVM_SORTCHILDRENEX,(WPARAM)r,(LPARAM)(LPTV_SORTEX)(p)))
413#define TreeList_SetColumn(h,i,p) ((BOOL )SNDMSG(h,TVM_SETCOLUMN,i,(LPARAM)(const TV_COLUMN*)(p)))
414#define TreeList_GetColumn(h,i,p) ((BOOL )SNDMSG(h,TVM_GETCOLUMN,i,(LPARAM)(TV_COLUMN*)(p)))
415#define TreeList_SetColumnWidth(h,i,w) ((BOOL )SNDMSG(h,TVM_SETCOLUMNWIDTH,i,w))
416#define TreeList_GetColumnWidth(h,i) ((INT )SNDMSG(h,TVM_GETCOLUMNWIDTH,i,0))
417#define TreeList_SetColumnAutoEdit(h,i,f,p) ((BOOL )SNDMSG(h,TVM_COLUMNAUTOEDIT,(WPARAM)((f)&~TVAE_COL(-1))|TVAE_COL(i),(LPARAM)(p)))
418#define TreeList_SetColumnAutoIcon(h,i,n) ((BOOL )SNDMSG(h,TVM_COLUMNAUTOICON,i,n))
419#define TreeList_SetFocusItem(h,i,c) ((BOOL )SNDMSG(h,TVM_SETFOCUSITEM,c,(LPARAM)(i)))
420#define TreeList_SetOption(h,i,o) ((INT )SNDMSG(h,TVM_GETSETOPTION,(i)|TVOP_WRITEOPTION,(LPARAM)(o)))
421#define TreeList_GetOption(h,i) ((INT )SNDMSG(h,TVM_GETSETOPTION,i,0))
422#define TreeList_SetColumnOrderArray(h,n,p) ((BOOL )SNDMSG(h,TVM_SETCOLUMNORDERARRAY,n,(LPARAM)(p)))
423#define TreeList_GetColumnOrderArray(h,n,p) ((BOOL )SNDMSG(h,TVM_GETCOLUMNORDERARRAY,n,(LPARAM)(p)))
425#define TreeList_GetStyle(h) ((DWORD )::GetWindowLong(h,GWL_STYLE))
426#define TreeList_SetStyle(h,d) ((DWORD )::SetWindowLong(h,GWL_STYLE,d))
427#define TreeList_SetStyleEx(h,d,m) ((DWORD )::SetWindowLong(h,GWL_STYLE,((d)&(m))|(::GetWindowLong(h,GWL_STYLE)&~(m))))
429#define TreeList_GetStyle(h) ((DWORD )GetWindowLong(h,GWL_STYLE))
430#define TreeList_SetStyle(h,d) ((DWORD )SetWindowLong(h,GWL_STYLE,d))
431#define TreeList_SetStyleEx(h,d,m) ((DWORD )SetWindowLong(h,GWL_STYLE,((d)&(m))|(GetWindowLong(h,GWL_STYLE)&~(m))))
433#define TreeList_GetItemRect(h,i,s,p,c) (*(HTREEITEM*)p =(i),(BOOL)SNDMSG(h,TVM_GETITEMRECT,(WPARAM)((c)|(TVIR_COLTOSUB(s))),(LPARAM)(RECT*)(p)))
436#define TreeList_SelectItem(h,i) TreeList_Select(h,i,TVGN_CARET)
437#define TreeList_SelectDropTarget(h,i) TreeList_Select(h,i,TVGN_DROPHILITE)
438#define TreeList_SelectSetFirstVisible(h,i) TreeList_Select(h,i,TVGN_FIRSTVISIBLE)
440#define TreeList_GetNextItem(h,i,c) TreeView_GetNextItem(h, i, c)
441#define TreeList_GetChild(h,i) TreeView_GetNextItem(h, i, TVGN_CHILD)
442#define TreeList_GetParent(h, i) TreeView_GetNextItem(h, i, TVGN_PARENT)
443#define TreeList_GetNextSibling(h,i) TreeView_GetNextItem(h, i, TVGN_NEXT)
444#define TreeList_GetPrevSibling(h,i) TreeView_GetNextItem(h, i, TVGN_PREVIOUS)
445#define TreeList_GetNextSelected(h,i) TreeView_GetNextItem(h, i, TVGN_NEXTSELECTED)
446#define TreeList_GetNextSelectedChild(h,i) TreeView_GetNextItem(h, i, TVGN_NEXTSELCHILD)
447#define TreeList_GetNextVisible(h,i) TreeView_GetNextItem(h, i, TVGN_NEXTVISIBLE)
448#define TreeList_GetPrevVisible(h,i) TreeView_GetNextItem(h, i, TVGN_PREVIOUSVISIBLE)
449#define TreeList_GetLastChild(h,i) TreeView_GetNextItem(h, i, TVGN_LASTCHILD)
450#define TreeList_GetSelection(h) TreeView_GetNextItem(h, NULL, TVGN_CARET)
451#define TreeList_GetDropHilight(h) TreeView_GetNextItem(h, NULL, TVGN_DROPHILITE)
452#define TreeList_GetFirstVisible(h) TreeView_GetNextItem(h, NULL, TVGN_FIRSTVISIBLE)
453#define TreeList_GetLastVisible(h) TreeView_GetNextItem(h, NULL, TVGN_LASTVISIBLE)
454#define TreeList_GetRoot(h) TreeView_GetNextItem(h, NULL, TVGN_ROOT)
455#define TreeList_GetFocus(h) TreeView_GetNextItem(h, NULL, TVGN_FOCUS)
456#define TreeList_GetFocusColumn(h) ((int)TreeView_GetNextItem(h, NULL, TVGN_FOCUSSUB))
457#define TreeList_GetSelectionColumn(h) ((int)TreeView_GetNextItem(h, NULL, TVGN_CARETSUB))
458#define TreeList_GetDropHilightColumn(h) ((int)TreeView_GetNextItem(h, NULL, TVGN_DROPHILITESUB))
465#define TLCOLUMN TVCOLUMN
466#define HTLITEM HTREEITEM
468#define TL_INSERTSTRUCTA TV_INSERTSTRUCTA
469#define TLINSERTSTRUCTA TVINSERTSTRUCTA
470#define TL_INSERTSTRUCTW TV_INSERTSTRUCTW
471#define TLINSERTSTRUCTW TVINSERTSTRUCTW
472#define TL_INSERTSTRUCT TV_INSERTSTRUCT
473#define TLINSERTSTRUCT TVINSERTSTRUCT
475#define TL_ITEMA TV_ITEMA
476#define TLITEMA TVITEMA
477#define TL_ITEMW TV_ITEMW
478#define TLITEMW TVITEMW
479#define TL_ITEM TV_ITEM
484#define TreeList_SetItemText(hwndLV,hItem_,iSubItem_,pszText_) \
487 _ms_tvi.mask = TVIF_SUBITEM | TVIF_TEXT; \
488 _ms_tvi.hItem = (hItem_); \
489 _ms_tvi.stateMask = 0; \
490 _ms_tvi.pszText = (pszText_); \
491 _ms_tvi.cchTextMax = (pszText_) ? 256 : 0; \
492 _ms_tvi.cChildren = (iSubItem_); \
493 TreeList_SetItem((hwndLV), &_ms_tvi); \
496#define TreeList_SetItemText(hwndLV,hItem_,iSubItem_,pszText_) \
499 LPWSTR _my_pszText = (pszText_); \
500 _ms_tvi.mask = TVIF_SUBITEM | TVIF_TEXT; \
501 _ms_tvi.hItem = (hItem_); \
502 _ms_tvi.stateMask = 0; \
503 _ms_tvi.pszText = _my_pszText; \
504 _ms_tvi.cchTextMax = _my_pszText ? (int)wcslen(_my_pszText) : 0; \
505 _ms_tvi.cChildren = (iSubItem_); \
506 TreeList_SetItem((hwndLV), &_ms_tvi); \
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
PFNTVCOMPAREEX lpfnCompare
HTREEITEM LPCTSTR LPCTSTR LPARAM LPARAM lParamInsert
HTREEITEM LPCTSTR LPCTSTR LPARAM lParamItem
struct _TV_COLSIZE TV_COLSIZE
struct _TV_STARTEDIT TV_STARTEDIT
struct _TV_STARTEDIT * LPTV_STARTEDIT
int TreeListRegister(HINSTANCE hInstance)
struct _TVSORTEX * LPTVSORTEX
int(CALLBACK * PFNTVCOMPAREEX)(HWND hWnd, HTREEITEM hItem1, HTREEITEM hItem2, LPARAM lParam1, LPARAM lParam2, LPARAM lParam)
struct _TVFIND * LPTVFIND
struct _TV_KEYDOWN_EX TV_KEYDOWN_EX
HTREEITEM LPCTSTR pTextItem
struct _TV_COLSIZE * LPTV_COLSIZE
struct _TVSORTEX TVSORTEX
struct _TV_KEYDOWN_EX * LPTV_KEYDOWN_EX
BOOL TreeListUnregister(HINSTANCE hInstance)
HTREEITEM LPCTSTR LPCTSTR pTextInsert