1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
;Display Control plugin for Miranda. Turns on the screen if in power saving mode, when a message arives
;Copyright © 2006-2007 A. Chilaru
;
;This program is free software; you can redistribute it and/or
;modify it under the terms of the GNU General Public License
;as published by the Free Software Foundation; either version 2
;of the License, or (at your option) any later version.
;
;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with this program; if not, write to the Free Software
;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
CLS_MANUALUPDATE equ 0001h ;todo
CLS_SHOWHIDDEN equ 0002h
CLS_HIDEOFFLINE equ 0004h ;hides all offline users
CLS_CHECKBOXES equ 0008h
CLS_MULTICOLUMN equ 0010h ;not true multi-column, just for ignore/vis options
CLS_HIDEEMPTYGROUPS equ 0020h ;note: this flag will be spontaneously removed if the 'new subgroup' menu item is clicked, for obvious reasons
CLS_USEGROUPS equ 0040h
CLS_NOHIDEOFFLINE equ 0080h ;overrides CLS_HIDEOFFLINE and the per-group hideoffline setting
CLS_GREYALTERNATE equ 0100h ;make every other line slightly grey
CLS_GROUPCHECKBOXES equ 0200h ;put checkboxes on groups too (managed by CLC)
CLS_CONTACTLIST equ 0400h ;this control will be the main contact list (v. 0.3.4.3+ 2004/11/02)
CLS_EX_DISABLEDRAGDROP equ 00000001h
CLS_EX_EDITLABELS equ 00000002h
CLS_EX_SHOWSELALWAYS equ 00000004h
CLS_EX_TRACKSELECT equ 00000008h
CLS_EX_SHOWGROUPCOUNTS equ 00000010h
CLS_EX_DIVIDERONOFF equ 00000020h
CLS_EX_HIDECOUNTSWHENEMPTY equ 00000040h
CLS_EX_NOTRANSLUCENTSEL equ 00000080h
CLS_EX_LINEWITHGROUPS equ 00000100h
CLS_EX_QUICKSEARCHVISONLY equ 00000200h
CLS_EX_SORTGROUPSALPHA equ 00000400h
CLS_EX_NOSMOOTHSCROLLING equ 00000800h
CLM_FIRST equ 1000h ;this is the same as LVM_FIRST
CLM_LAST equ 1100h
;messages, compare with equivalent TVM_s in the MSDN
CLM_ADDCONTACT equ (CLM_FIRST+0) ;wParam=hContact
CLM_ADDGROUP equ (CLM_FIRST+1) ;wParam=hGroup
CLM_AUTOREBUILD equ (CLM_FIRST+2)
CLM_DELETEITEM equ (CLM_FIRST+3) ;wParam=hItem
CLM_EDITLABEL equ (CLM_FIRST+4) ;wParam=hItem
CLM_ENDEDITLABELNOW equ (CLM_FIRST+5) ;wParam=cancel, 0 to save
CLM_ENSUREVISIBLE equ (CLM_FIRST+6) ;wParam=hItem, lParam=partialOk
CLE_TOGGLE equ -1
CLE_COLLAPSE equ 0
CLE_EXPAND equ 1
CLE_INVALID equ FFFFh
CLM_EXPAND equ (CLM_FIRST+7) ;wParam=hItem, lParam=CLE_
CLM_FINDCONTACT equ (CLM_FIRST+8) ;wParam=hContact, returns an hItem
CLM_FINDGROUP equ (CLM_FIRST+9) ;wParam=hGroup, returns an hItem
CLM_GETBKCOLOR equ (CLM_FIRST+10) ;returns a COLORREF
CLM_GETCHECKMARK equ (CLM_FIRST+11) ;wParam=hItem, returns 1 or 0
CLM_GETCOUNT equ (CLM_FIRST+12) ;returns the total number of items
CLM_GETEDITCONTROL equ (CLM_FIRST+13) ;returns the HWND, or NULL
CLM_GETEXPAND equ (CLM_FIRST+14) ;wParam=hItem, returns a CLE_, CLE_INVALID if not a group
CLM_GETEXTRACOLUMNS equ (CLM_FIRST+15) ;returns number of extra columns
CLM_GETEXTRAIMAGE equ (CLM_FIRST+16) ;wParam=hItem, lParam=MAKELPARAM(iColumn (0 based),0), returns iImage or 0xFF
CLM_GETEXTRAIMAGELIST equ (CLM_FIRST+17) ;returns HIMAGELIST
CLM_GETFONT equ (CLM_FIRST+18) ;wParam=fontId, see clm_setfont. returns hFont.
CLM_GETINDENT equ (CLM_FIRST+19) ;wParam=new group indent
CLM_GETISEARCHSTRING equ (CLM_FIRST+20) ;lParam=(char*)pszStr, max 120 bytes, returns number of chars in string
CLM_GETITEMTEXT equ (CLM_FIRST+21) ;wParam=hItem, lParam=(char*)pszStr, max 120 bytes
CLM_GETSCROLLTIME equ (CLM_FIRST+22) ;returns time in ms
CLM_GETSELECTION equ (CLM_FIRST+23) ;returns hItem
CLCHT_ABOVE equ 0001h ;above client area
CLCHT_BELOW equ 0002h ;below client area
CLCHT_TOLEFT equ 0004h ;left of client area
CLCHT_TORIGHT equ 0008h ;right of client area
CLCHT_NOWHERE equ 0010h ;in client area, not on an item
CLCHT_ONITEMICON equ 0020h
CLCHT_ONITEMCHECK equ 0040h
CLCHT_ONITEMLABEL equ 0080h
CLCHT_ONITEMINDENT equ 0100h ;to the left of an item icon
CLCHT_ONITEMEXTRA equ 0200h ;on an extra icon, HIBYTE(HIWORD()) says which
CLCHT_ONITEM equ 03E0h
CLCHT_INLEFTMARGIN equ 0400h
CLCHT_BELOWITEMS equ 0800h ;in client area but below last item
CLM_HITTEST equ (CLM_FIRST+25) ;lParam=MAKELPARAM(x,y) (relative to control), wParam=(PDWORD)&hitTest (see encoding of HitTest() in clc.h, can be NULL) returns hItem or NULL
CLM_SELECTITEM equ (CLM_FIRST+26) ;wParam=hItem
CLB_TOPLEFT equ 0
CLB_STRETCHV equ 1
CLB_STRETCHH equ 2 ;and tile vertically
CLB_STRETCH equ 3
CLBM_TYPE equ 00FFh
CLBF_TILEH equ 1000h
CLBF_TILEV equ 2000h
CLBF_PROPORTIONAL equ 4000h
CLBF_SCROLL equ 8000h
CLM_SETBKBITMAP equ (CLM_FIRST+27) ;wParam=mode, lParam=hBitmap (don't delete it), NULL for none
CLM_SETBKCOLOR equ (CLM_FIRST+28) ;wParam=a COLORREF, default is GetSysColor(COLOR_3DFACE)
CLM_SETCHECKMARK equ (CLM_FIRST+29) ;wParam=hItem, lParam=1 or 0
CLM_SETEXTRACOLUMNS equ (CLM_FIRST+30) ;wParam=number of extra columns (zero to MAXEXTRACOLUMNS from clc.h, currently 16)
CLM_SETEXTRAIMAGE equ (CLM_FIRST+31) ;wParam=hItem, lParam=MAKELPARAM(iColumn (0 based),iImage). iImage=0xFF is a blank
CLM_SETEXTRAIMAGELIST equ (CLM_FIRST+32) ;lParam=HIMAGELIST
FONTID_CONTACTS equ 0
FONTID_INVIS equ 1
FONTID_OFFLINE equ 2
FONTID_NOTONLIST equ 3
FONTID_GROUPS equ 4
FONTID_GROUPCOUNTS equ 5
FONTID_DIVIDER equ 6
FONTID_OFFINVIS equ 7
FONTID_STATUSMSG equ 8
FONTID_GROUPSCLOSED equ 9
FONTID_CONTACTSHOVER equ 10
FONTID_MAX equ 18
CLM_SETFONT equ (CLM_FIRST+33) ;wParam=hFont, lParam=MAKELPARAM(fRedraw,fontId)
CLM_SETINDENT equ (CLM_FIRST+34) ;wParam=new indent, default is 3 pixels
CLM_SETITEMTEXT equ (CLM_FIRST+35) ;wParam=hItem, lParam=(char*)pszNewText
CLM_SETSCROLLTIME equ (CLM_FIRST+36) ;wParam=time in ms, default 200
CLM_SETHIDEEMPTYGROUPS equ (CLM_FIRST+38) ;wParam=TRUE/FALSE
GREYF_UNFOCUS equ 80000000h
MODEF_OFFLINE equ 40000000h
;and use the PF2_ #defines from m_protosvc.h
CLM_SETGREYOUTFLAGS equ (CLM_FIRST+39) ;wParam=new flags
CLM_GETHIDEOFFLINEROOT equ (CLM_FIRST+40) ;returns TRUE/FALSE
CLM_SETHIDEOFFLINEROOT equ (CLM_FIRST+41) ;wParam=TRUE/FALSE
CLM_SETUSEGROUPS equ (CLM_FIRST+42) ;wParam=TRUE/FALSE
CLM_SETOFFLINEMODES equ (CLM_FIRST+43) ;for 'hide offline', wParam=PF2_ flags and MODEF_OFFLINE
CLM_GETEXSTYLE equ (CLM_FIRST+44) ;returns CLS_EX_ flags
CLM_SETEXSTYLE equ (CLM_FIRST+45) ;wParam=CLS_EX_ flags
CLM_GETLEFTMARGIN equ (CLM_FIRST+46) ;returns count of pixels
CLM_SETLEFTMARGIN equ (CLM_FIRST+47) ;wParam=pixels
CLCINFOITEM struct
cbSize dd ?
pszText dd ?
hParentGroup dd ?
flags dd ?
hIcon dd ?
CLCINFOITEM ends
CLCIIF_BELOWGROUPS equ 1 ;put it between groups and contacts, default is at top
CLCIIF_BELOWCONTACTS equ 2 ;put it at the bottom
CLCIIF_CHECKBOX equ 40h ;give this item a check box
CLCIIF_GROUPFONT equ 80h ;draw the item using FONTID_GROUPS
CLM_ADDINFOITEMA equ (CLM_FIRST+48) ;lParam=&cii, returns hItem
CLM_ADDINFOITEMW equ (CLM_FIRST+53) ;lParam=&cii, returns hItem
IFDEF _UNICODE
CLM_ADDINFOITEM equ CLM_ADDINFOITEMW
ELSE
CLM_ADDINFOITEM equ CLM_ADDINFOITEMA
ENDIF
CLCIT_INVALID equ -1
CLCIT_GROUP equ 0
CLCIT_CONTACT equ 1
CLCIT_DIVIDER equ 2
CLCIT_INFO equ 3
CLM_GETITEMTYPE equ (CLM_FIRST+49) ;wParam=hItem, returns a CLCIT_
CLGN_ROOT equ 0
CLGN_CHILD equ 1
CLGN_PARENT equ 2
CLGN_NEXT equ 3
CLGN_PREVIOUS equ 4
CLGN_NEXTCONTACT equ 5
CLGN_PREVIOUSCONTACT equ 6
CLGN_NEXTGROUP equ 7
CLGN_PREVIOUSGROUP equ 8
CLM_GETNEXTITEM equ (CLM_FIRST+50) ;wParam=flag, lParam=hItem, returns an hItem
CLM_GETTEXTCOLOR equ (CLM_FIRST+51) ;wParam=FONTID_, returns COLORREF
CLM_SETTEXTCOLOR equ (CLM_FIRST+52) ;wParam=FONTID_, lParam=COLORREF
;notifications (most are omitted because the control processes everything)
CLNF_ISGROUP equ 1
CLNF_ISINFO equ 2
NMCLISTCONTROL struct
hdr NMHDR <>
hItem dd ?
action dd ?
iColumn dd ? ;-1 if not on an extra column
flags dd ?
pt POINT <>
NMCLISTCONTROL ends
CLN_FIRST equ (0-100)
CLN_EXPANDED equ (CLN_FIRST-0) ;hItem=hGroup, action=CLE_*
CLN_LISTREBUILT equ (CLN_FIRST-1)
CLN_ITEMCHECKED equ (CLN_FIRST-2) ;todo //hItem,action,flags valid
CLN_DRAGGING equ (CLN_FIRST-3) ;hItem,pt,flags valid. only sent when cursor outside window, return nonzero if processed
CLN_DROPPED equ (CLN_FIRST-4) ;hItem,pt,flags valid. only sent when cursor outside window, return nonzero if processed
CLN_LISTSIZECHANGE equ (CLN_FIRST-5) ;pt.y valid. the vertical height of the visible items in the list has changed.
CLN_OPTIONSCHANGED equ (CLN_FIRST-6) ;nothing valid. If you set some extended options they have been overwritten and should be re-set
CLN_DRAGSTOP equ (CLN_FIRST-7) ;hItem,flags valid. sent when cursor goes back in to the window having been outside, return nonzero if processed
CLN_NEWCONTACT equ (CLN_FIRST-8) ;hItem,flags valid. sent when a new contact is added without a full list rebuild
CLN_CONTACTMOVED equ (CLN_FIRST-9) ;hItem,flags valid. sent when contact is moved without a full list rebuild
CLN_CHECKCHANGED equ (CLN_FIRST-10) ;hItem,flags valid. sent when any check mark is changed, but only for one change if there are many
;NM_CLICK //hItem,iColumn,pt,flags valid
;NM_KEYDOWN //NMKEY structure, only sent when key is not already processed, return nonzero to prevent further processing
|