10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
-
+
-
+
|
idCCList = 763
proc CreateCCList, .parent
begin
push ebx
invoke CreateWindowExA, WS_EX_CLIENTEDGE, cFormClassName, 0, WS_POPUP or WS_CLIPSIBLINGS or WS_CLIPCHILDREN, \
invoke CreateWindowExW, WS_EX_CLIENTEDGE, cFormClassName, 0, WS_POPUP or WS_CLIPSIBLINGS or WS_CLIPCHILDREN, \
0, 0, 300, 120, [.parent], 0, [hInstance], 0
mov [hCCList], eax
invoke SetPropA, eax, [propOwnerAsmEdit], [.parent]
; invoke SetWindowLongA, [hCCList], GWL_HWNDPARENT, [.parent]
stdcall SubclassWindow, [hCCList], CCParentProc
invoke CreateWindowExA, 0, cListboxClassName, 0, \
invoke CreateWindowExW, 0, cListboxClassName, 0, \
WS_CHILD or WS_VSCROLL or WS_VISIBLE or LBS_NOINTEGRALHEIGHT or LBS_OWNERDRAWFIXED or LBS_NODATA, \
0, 0, 300, 120, [hCCList], idCCList, [hInstance], 0
mov ebx, eax
stdcall SubclassWindow, ebx, CCListProc
stdcall SetAlign, ebx, waClient
stdcall GetDefaultFont, gdfMessage
|
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
-
+
-
+
|
; returns pointer to the string in ebx
proc GetCCListSelected
begin
push eax ecx edx
invoke SendMessageA, [hCCList], LB_GETCURSEL, 0, 0
invoke SendMessageW, [hCCList], LB_GETCURSEL, 0, 0
add eax, 1
jc .err
mov ebx, eax
invoke GetWindowLongA, [hCCList], GWL_USERDATA
invoke GetWindowLongW, [hCCList], GWL_USERDATA
cmp [eax+TArray.count], ebx
jb .err
mov ebx, [eax+TArray.array+4*ebx-4]
mov ebx, [ebx+TLabel.iName]
add ebx, [ptrNames]
|