source: trunk/dll/chklist.c@ 1498

Last change on this file since 1498 was 1498, checked in by Gregg Young, 16 years ago

Changes to get FM2 to compile with the latest watcom 1.9 beta (mostly type casts of CHAR CONSTANT * to CHAR *). Changes to get the environment settings working everywhere again (broken by the change that moved commands to the INI); Added an environment size variable (set to 2048 which was the largest I found hard coded). Still need to find everywhere the environment size is set and use this variable.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 15.1 KB
Line 
1
2/***********************************************************************
3
4 $Id: chklist.c 1498 2010-01-18 00:57:01Z gyoung $
5
6 Utility windows and mouse positioning
7
8 Copyright (c) 1993-98 M. Kimes
9 Copyright (c) 2005, 2010 Steven H.Levine
10
11 10 Jan 05 SHL Allow DND_TARGET to hold CCHMAXPATH
12 14 Jul 06 SHL Use Runtime_Error
13 22 Mar 07 GKY Use QWL_USER
14 20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat
15 29 Nov 08 GKY Add flag to tell CheckListProc file is in an archive so it won't try to open it.
16 17 JAN 10 GKY Changes to get working with Watcom 1.9 Beta (1/16/10). Mostly cast CHAR CONSTANT * as CHAR *.
17
18***********************************************************************/
19
20#include <string.h>
21#include <ctype.h>
22
23#define INCL_DOS
24#define INCL_WIN
25#define INCL_GPI
26#define INCL_LONGLONG
27
28#include "fm3dll.h"
29#include "fm3dll2.h" // #define's for UM_*, control id's, etc.
30#include "notebook.h" // Data declaration(s)
31#include "mainwnd.h" // Data declaration(s)
32#include "fm3dlg.h"
33#include "fm3str.h"
34#include "makelist.h" // AddToList
35#include "errutil.h" // Dos_Error...
36#include "strutil.h" // GetPString
37#include "getnames.h" // CustomFileDlg
38#include "chklist.h"
39#include "info.h" // FileInfoProc
40#include "defview.h" // QuickView
41#include "valid.h" // IsExecutable
42#include "walkem.h" // WalkAllDlgProc
43#include "misc.h" // PaintRecessedWindow
44
45#pragma data_seg(DATA1)
46
47static PSZ pszSrcFile = __FILE__;
48
49VOID CenterOverWindow(HWND hwnd)
50{
51 SWP swp;
52 POINTL ptl;
53
54 if (!fDontMoveMouse) {
55 if (WinQueryWindowPos(hwnd, &swp)) {
56 ptl.x = swp.x + (swp.cx / 2);
57 ptl.y = swp.y + (swp.cy / 2);
58 WinMapWindowPoints(WinQueryWindow(hwnd, QW_PARENT), HWND_DESKTOP, &ptl,
59 1L);
60 WinSetPointerPos(HWND_DESKTOP, ptl.x, ptl.y);
61 }
62 }
63}
64
65BOOL PopupMenu(HWND hwndParent, HWND hwndOwner, HWND hwndMenu)
66{
67 POINTL ptl;
68 BOOL rc;
69
70 if (!WinQueryPointerPos(HWND_DESKTOP, &ptl))
71 ptl.x = ptl.y = 32;
72 WinMapWindowPoints(HWND_DESKTOP, hwndParent, &ptl, 1L);
73 rc = WinPopupMenu(hwndParent, hwndOwner, hwndMenu,
74 ptl.x, ptl.y, 0,
75 PU_HCONSTRAIN | PU_VCONSTRAIN |
76 PU_KEYBOARD | PU_MOUSEBUTTON1);
77 if (rc)
78 CenterOverWindow(hwndMenu);
79 return rc;
80}
81
82VOID PosOverOkay(HWND hwnd)
83{
84 SWP swp;
85 POINTL ptl;
86
87 if (!fDontMoveMouse) {
88 if (WinQueryWindowPos(WinWindowFromID(hwnd, DID_OK), &swp)) {
89 ptl.x = swp.x + (swp.cx / 2);
90 ptl.y = swp.y + (swp.cy / 2);
91 WinMapWindowPoints(hwnd, HWND_DESKTOP, &ptl, 1L);
92 WinSetPointerPos(HWND_DESKTOP, ptl.x, ptl.y);
93 }
94 }
95}
96
97MRESULT EXPENTRY CheckListProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
98{
99 CHECKLIST *cl;
100
101 switch (msg) {
102 case WM_INITDLG:
103 if (mp2) {
104
105 SHORT x;
106
107 WinSetWindowPtr(hwnd, QWL_USER, (PVOID) mp2);
108 cl = (CHECKLIST *) mp2;
109 if (!cl->list || !cl->list[0]) {
110 WinDismissDlg(hwnd, 0);
111 break;
112 }
113 WinSetDlgItemText(hwnd, CHECK_PROMPT, cl->prompt);
114 for (x = 0; cl->list[x]; x++) {
115 WinSendDlgItemMsg(hwnd, CHECK_LISTBOX, LM_INSERTITEM,
116 MPFROM2SHORT(LIT_END, 0), MPFROMP(cl->list[x]));
117 WinSendDlgItemMsg(hwnd, CHECK_LISTBOX, LM_SELECTITEM,
118 MPFROM2SHORT(x, 0), MPFROMSHORT(TRUE));
119 }
120 PosOverOkay(hwnd);
121 WinEnableWindow(WinWindowFromID(hwnd, CHECK_INFO),
122 ((cl->flags & CHECK_FILES) != 0));
123 WinShowWindow(WinWindowFromID(hwnd, CHECK_INFO),
124 ((cl->flags & CHECK_FILES) != 0));
125 {
126 HBITMAP hbm, hbmd, hbmdd;
127 HPS hps;
128
129 hps = WinGetPS(WinWindowFromID(hwnd, CHECK_BITMAP));
130 hbm = GpiLoadBitmap(hps, 0, cl->cmd, 28, 28);
131 if (hbm) {
132 hbmd =
133 (HBITMAP) WinSendDlgItemMsg(hwnd, CHECK_BITMAP, SM_QUERYHANDLE,
134 MPVOID, MPVOID);
135 hbmdd =
136 (HBITMAP) WinSendDlgItemMsg(hwnd, CHECK_BITMAP, SM_SETHANDLE,
137 MPFROMLONG(hbm), MPVOID);
138 if (hbmdd && hbmd && hbmd != hbmdd)
139 GpiDeleteBitmap(hbmd);
140 }
141 if (hps)
142 WinReleasePS(hps);
143 WinSetWindowPos(WinWindowFromID(hwnd, CHECK_BITMAP), HWND_TOP,
144 0, 0, 28, 28, SWP_SIZE);
145 }
146 }
147 else
148 WinDismissDlg(hwnd, 0);
149 break;
150
151 case WM_ADJUSTWINDOWPOS:
152 PostMsg(hwnd, UM_SETDIR, MPVOID, MPVOID);
153 break;
154
155 case UM_SETDIR:
156 PaintRecessedWindow(WinWindowFromID(hwnd, CHECK_HELP), (HPS) 0, FALSE,
157 TRUE);
158 return 0;
159
160 case WM_CONTROL:
161 switch (SHORT1FROMMP(mp1)) {
162 case CHECK_LISTBOX:
163 switch (SHORT2FROMMP(mp1)) {
164 case LN_ENTER:
165 {
166 SHORT x;
167 CHAR szBuffer[CCHMAXPATH];
168
169 x = (SHORT) WinSendDlgItemMsg(hwnd, CHECK_LISTBOX,
170 LM_QUERYSELECTION,
171 MPFROMSHORT(LIT_FIRST), MPVOID);
172 if (x >= 0) {
173 *szBuffer = 0;
174 WinSendDlgItemMsg(hwnd, CHECK_LISTBOX, LM_QUERYITEMTEXT,
175 MPFROM2SHORT(x, CCHMAXPATH), MPFROMP(szBuffer));
176 cl = WinQueryWindowPtr(hwnd, QWL_USER);
177 if (*szBuffer && !(cl->flags & CHECK_ARCHIVE))
178 QuickView(hwnd, szBuffer);
179 }
180 }
181 break;
182 }
183 break;
184 }
185 return 0;
186
187 case WM_COMMAND:
188 switch (SHORT1FROMMP(mp1)) {
189 case CHECK_INFO:
190 cl = INSTDATA(hwnd);
191 if (cl)
192 WinDlgBox(HWND_DESKTOP, hwnd, FileInfoProc, FM3ModHandle,
193 FLE_FRAME, (PVOID) cl->list);
194 break;
195
196 case IDM_HELP:
197 if (hwndHelp)
198 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
199 MPFROM2SHORT(HELP_CHECKLIST, 0),
200 MPFROMSHORT(HM_RESOURCEID));
201 break;
202
203 case DID_OK:
204 cl = INSTDATA(hwnd);
205 if (cl) {
206
207 CHAR szBuffer[CCHMAXPATH + 1];
208 UINT numfiles = 0, numalloc = 0;
209 INT error;
210 SHORT x;
211
212 FreeList(cl->list);
213 cl->list = NULL;
214 x = (SHORT) WinSendDlgItemMsg(hwnd, CHECK_LISTBOX, LM_QUERYSELECTION,
215 MPFROMSHORT(LIT_FIRST), MPVOID);
216 if (x >= 0) {
217 do {
218 *szBuffer = 0;
219 WinSendDlgItemMsg(hwnd, CHECK_LISTBOX, LM_QUERYITEMTEXT,
220 MPFROM2SHORT(x, CCHMAXPATH), MPFROMP(szBuffer));
221 if (*szBuffer) {
222 error = AddToList(szBuffer, &cl->list, &numfiles, &numalloc);
223 if (error) {
224 Runtime_Error(pszSrcFile, __LINE__, "AddToList");
225 break;
226 }
227 }
228 x = (SHORT) WinSendDlgItemMsg(hwnd, CHECK_LISTBOX,
229 LM_QUERYSELECTION,
230 MPFROMSHORT(x), MPVOID);
231 } while (x >= 0);
232 }
233 WinDismissDlg(hwnd, 1);
234 }
235 else
236 WinDismissDlg(hwnd, 0);
237 break;
238
239 case DID_CANCEL:
240 WinDismissDlg(hwnd, 0);
241 break;
242 }
243 return 0;
244 }
245 return WinDefDlgProc(hwnd, msg, mp1, mp2);
246}
247
248MRESULT EXPENTRY DropListProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
249{
250 CHECKLIST *cl;
251 static BOOL Shadow = FALSE, Wild = FALSE;
252
253 switch (msg) {
254 case WM_INITDLG:
255 if (mp2) {
256
257 SHORT x;
258
259 WinSetWindowPtr(hwnd, QWL_USER, (PVOID) mp2);
260 cl = (CHECKLIST *) mp2;
261 if (!cl->list || !cl->list[0]) {
262 WinDismissDlg(hwnd, 0);
263 break;
264 }
265 if (IsRoot(cl->list[0])) {
266 WinDismissDlg(hwnd, DND_COMPARE);
267 break;
268 }
269 WinSendDlgItemMsg(hwnd, DND_LISTBOX, LM_DELETEALL, MPVOID, MPVOID);
270 for (x = 0; cl->list[x]; x++) {
271 WinSendDlgItemMsg(hwnd, DND_LISTBOX, LM_INSERTITEM,
272 MPFROM2SHORT(LIT_END, 0), MPFROMP(cl->list[x]));
273 WinSendDlgItemMsg(hwnd, DND_LISTBOX, LM_SELECTITEM,
274 MPFROM2SHORT(x, 0), MPFROMSHORT(TRUE));
275 }
276 WinSendDlgItemMsg(hwnd, DND_TARGET, EM_SETTEXTLIMIT,
277 (MPARAM) CCHMAXPATH, (MPARAM) 0);
278 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
279 }
280 else
281 WinDismissDlg(hwnd, 0);
282 break;
283
284 case UM_UNDO:
285 cl = INSTDATA(hwnd);
286 if (cl) {
287
288 CHAR *p;
289
290 WinSetDlgItemText(hwnd, DND_TARGET, cl->prompt);
291 WinEnableWindow(WinWindowFromID(hwnd, DND_LAUNCH),
292 (IsExecutable(cl->prompt)));
293 WinEnableWindow(WinWindowFromID(hwnd, DND_COPY), TRUE);
294 WinEnableWindow(WinWindowFromID(hwnd, DND_MOVE), TRUE);
295 WinEnableWindow(WinWindowFromID(hwnd, DND_RENAME), TRUE);
296 WinEnableWindow(WinWindowFromID(hwnd, DND_OBJECT), TRUE);
297 WinEnableWindow(WinWindowFromID(hwnd, DND_SHADOW), TRUE);
298 WinEnableWindow(WinWindowFromID(hwnd, DND_EXTRACT), TRUE);
299 WinEnableWindow(WinWindowFromID(hwnd, DND_SETICON), FALSE);
300 p = strrchr(cl->list[0], '.');
301 if (p) {
302 p++;
303 if (!stricmp(p, "ICO") || !stricmp(p, "PTR"))
304 WinEnableWindow(WinWindowFromID(hwnd, DND_SETICON), TRUE);
305 }
306 if (IsFile(cl->prompt)) {
307 WinEnableWindow(WinWindowFromID(hwnd, DND_OBJECT), FALSE);
308 WinEnableWindow(WinWindowFromID(hwnd, DND_SHADOW), FALSE);
309 WinEnableWindow(WinWindowFromID(hwnd, DND_EXTRACT), FALSE);
310 WinEnableWindow(WinWindowFromID(hwnd, DND_RENAME), FALSE);
311 }
312 else {
313
314 ARC_TYPE *info;
315
316 info = find_type(cl->list[0], NULL);
317 if (!info)
318 WinEnableWindow(WinWindowFromID(hwnd, DND_EXTRACT), FALSE);
319 }
320 if (Shadow)
321 WinCheckButton(hwnd, DND_SHADOW, TRUE);
322 if (Wild)
323 WinCheckButton(hwnd, DND_RENAME, TRUE);
324 PostMsg(hwnd, UM_SETUP, MPVOID, MPVOID);
325 if (cl->prompt && isalpha(*cl->prompt) &&
326 (driveflags[toupper(*cl->prompt) - 'A'] & DRIVE_NOTWRITEABLE)) {
327 WinEnableWindow(WinWindowFromID(hwnd, DND_COPY), FALSE);
328 WinEnableWindow(WinWindowFromID(hwnd, DND_MOVE), FALSE);
329 WinEnableWindow(WinWindowFromID(hwnd, DND_RENAME), FALSE);
330 WinEnableWindow(WinWindowFromID(hwnd, DND_OBJECT), FALSE);
331 WinEnableWindow(WinWindowFromID(hwnd, DND_SHADOW), FALSE);
332 WinEnableWindow(WinWindowFromID(hwnd, DND_EXTRACT), FALSE);
333 }
334 if (cl->prompt && IsFile(cl->prompt) == 1) {
335
336 ARC_TYPE *info;
337
338 info = find_type(cl->prompt, NULL);
339 if (!info) {
340 WinEnableWindow(WinWindowFromID(hwnd, DND_COPY), FALSE);
341 WinEnableWindow(WinWindowFromID(hwnd, DND_MOVE), FALSE);
342 WinEnableWindow(WinWindowFromID(hwnd, DND_RENAME), FALSE);
343 WinEnableWindow(WinWindowFromID(hwnd, DND_OBJECT), FALSE);
344 WinEnableWindow(WinWindowFromID(hwnd, DND_SHADOW), FALSE);
345 WinEnableWindow(WinWindowFromID(hwnd, DND_EXTRACT), FALSE);
346 }
347 }
348 }
349 break;
350
351 case UM_SETUP:
352 cl = WinQueryWindowPtr(hwnd, QWL_USER);
353 if (cl) {
354 if (cl->flags == DO_MOVE)
355 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, DND_MOVE));
356 else if (cl->flags == DO_LINK)
357 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, DND_COMPARE));
358 else
359 WinSetFocus(HWND_DESKTOP, WinWindowFromID(hwnd, DND_COPY));
360 }
361 return 0;
362
363 case WM_ADJUSTWINDOWPOS:
364 PostMsg(hwnd, UM_SETDIR, MPVOID, MPVOID);
365 break;
366
367 case UM_SETDIR:
368 PaintRecessedWindow(WinWindowFromID(hwnd, DND_HELP), (HPS) 0, FALSE,
369 TRUE);
370 return 0;
371
372 case WM_CONTROL:
373 switch (SHORT1FROMMP(mp1)) {
374 case DND_LISTBOX:
375 switch (SHORT2FROMMP(mp1)) {
376 case LN_SETFOCUS:
377 WinSetDlgItemText(hwnd, DND_HELP, (CHAR *) GetPString(IDS_DNDLISTBOXHELPTEXT));
378 break;
379 case LN_KILLFOCUS:
380 WinSetDlgItemText(hwnd, DND_HELP, (CHAR *) GetPString(IDS_DNDHELPTEXT));
381 break;
382 case LN_ENTER:
383 {
384 SHORT x;
385 CHAR szBuffer[CCHMAXPATH];
386
387 x = (SHORT) WinSendDlgItemMsg(hwnd, DND_LISTBOX, LM_QUERYSELECTION,
388 MPFROMSHORT(LIT_FIRST), MPVOID);
389 if (x >= 0) {
390 *szBuffer = 0;
391 WinSendDlgItemMsg(hwnd, DND_LISTBOX, LM_QUERYITEMTEXT,
392 MPFROM2SHORT(x, CCHMAXPATH), MPFROMP(szBuffer));
393 if (*szBuffer)
394 QuickView(hwnd, szBuffer);
395 }
396 }
397 break;
398 }
399 break;
400 case DND_TARGET:
401 switch (SHORT2FROMMP(mp1)) {
402 case EN_SETFOCUS:
403 WinSetDlgItemText(hwnd, DND_HELP, (CHAR *) GetPString(IDS_DNDTARGETHELPTEXT));
404 break;
405 case EN_KILLFOCUS:
406 WinSetDlgItemText(hwnd, DND_HELP, (CHAR *) GetPString(IDS_DNDHELPTEXT));
407 break;
408 }
409 break;
410 }
411 return 0;
412
413 case WM_COMMAND:
414 switch (SHORT1FROMMP(mp1)) {
415 case IDM_HELP:
416 if (hwndHelp)
417 WinSendMsg(hwndHelp, HM_DISPLAY_HELP,
418 MPFROM2SHORT(HELP_DNDDLG, 0), MPFROMSHORT(HM_RESOURCEID));
419 break;
420
421 case DND_INFO:
422 cl = INSTDATA(hwnd);
423 if (cl)
424 WinDlgBox(HWND_DESKTOP, hwnd, FileInfoProc, FM3ModHandle,
425 FLE_FRAME, (PVOID) cl->list);
426 break;
427
428 case DND_CHANGETARGET:
429 cl = INSTDATA(hwnd);
430 if (cl) {
431 if (cl->prompt && *cl->prompt) {
432 if (!IsFile(cl->prompt)) {
433
434 CHAR newpath[CCHMAXPATH];
435
436 strcpy(newpath, cl->prompt);
437 if (WinDlgBox(HWND_DESKTOP, hwnd, WalkAllDlgProc,
438 FM3ModHandle, WALK_FRAME,
439 MPFROMP(newpath)) && *newpath) {
440 strcpy(cl->prompt, newpath);
441 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
442 }
443 }
444 else {
445
446 FILEDLG fdlg;
447 FILESTATUS3 fs3;
448 CHAR drive[3], *pdrive = drive, filename[CCHMAXPATH], *p;
449
450 memset(&fdlg, 0, sizeof(FILEDLG));
451 fdlg.cbSize = (ULONG) sizeof(FILEDLG);
452 fdlg.fl = FDS_HELPBUTTON | FDS_CENTER |
453 FDS_OPEN_DIALOG | FDS_CUSTOM;
454 fdlg.pszTitle = (PSZ)GetPString(IDS_NEWTARGETTEXT);
455 fdlg.pszOKButton = (PSZ)GetPString(IDS_CHANGETEXT);
456 *drive = *cl->prompt;
457 drive[1] = ':';
458 drive[2] = 0;
459 fdlg.pszIDrive = pdrive;
460 strcpy(fdlg.szFullFile, cl->prompt);
461 p = strrchr(fdlg.szFullFile, '\\');
462 if (p)
463 *p = 0;
464 strcat(fdlg.szFullFile, "\\*");
465
466 fdlg.pfnDlgProc = (PFNWP) CustomFileDlg;
467 fdlg.hMod = FM3ModHandle;
468 fdlg.usDlgId = FDLG_FRAME;
469
470 if (WinFileDlg(HWND_DESKTOP, hwnd, &fdlg)) {
471 if (fdlg.lReturn != DID_CANCEL && !fdlg.lSRC) {
472 if (!DosQueryPathInfo(fdlg.szFullFile,
473 FIL_QUERYFULLNAME,
474 filename, sizeof(filename))) {
475 if (!DosQueryPathInfo(filename,
476 FIL_STANDARD, &fs3, sizeof(fs3))) {
477 p = filename;
478 while (*p) {
479 if (*p == '/')
480 *p = '\\';
481 p++;
482 }
483 strcpy(cl->prompt, filename);
484 PostMsg(hwnd, UM_UNDO, MPVOID, MPVOID);
485 }
486 }
487 }
488 }
489 }
490 }
491 }
492 break;
493
494 case DND_TARGETINFO:
495 cl = INSTDATA(hwnd);
496 if (cl) {
497
498 CHAR *list[2];
499
500 list[0] = cl->prompt;
501 list[1] = NULL;
502 WinDlgBox(HWND_DESKTOP, hwnd, FileInfoProc, FM3ModHandle,
503 FLE_FRAME, (PVOID) & list);
504 }
505 break;
506
507 case DND_EXTRACT:
508 case DND_LAUNCH:
509 case DND_COPY:
510 case DND_MOVE:
511 case DND_OBJECT:
512 case DND_COMPARE:
513 case DND_SETICON:
514 case DND_APPEND:
515 cl = INSTDATA(hwnd);
516 if (cl) {
517
518 SHORT x;
519 CHAR szBuffer[CCHMAXPATH + 1];
520 UINT numfiles = 0, numalloc = 0;
521 INT error;
522 USHORT cmd;
523
524 FreeList(cl->list);
525 cl->list = NULL;
526 x = (SHORT) WinSendDlgItemMsg(hwnd, DND_LISTBOX, LM_QUERYSELECTION,
527 MPFROMSHORT(LIT_FIRST), MPVOID);
528 if (x >= 0) {
529 do {
530 *szBuffer = 0;
531 WinSendDlgItemMsg(hwnd, DND_LISTBOX, LM_QUERYITEMTEXT,
532 MPFROM2SHORT(x, CCHMAXPATH), MPFROMP(szBuffer));
533 if (*szBuffer) {
534 error = AddToList(szBuffer, &cl->list, &numfiles, &numalloc);
535 if (error) {
536 Runtime_Error(pszSrcFile, __LINE__, "AddToList");
537 break;
538 }
539 }
540 x = (SHORT) WinSendDlgItemMsg(hwnd, DND_LISTBOX,
541 LM_QUERYSELECTION,
542 MPFROMSHORT(x), MPVOID);
543 } while (x >= 0);
544 }
545 cmd = SHORT1FROMMP(mp1);
546 switch (cmd) {
547 case DND_COPY:
548 if (WinQueryButtonCheckstate(hwnd, DND_RENAME)) {
549 Wild = TRUE;
550 cmd = DND_WILDCOPY;
551 }
552 else
553 Wild = FALSE;
554 break;
555 case DND_MOVE:
556 if (WinQueryButtonCheckstate(hwnd, DND_RENAME)) {
557 Wild = TRUE;
558 cmd = DND_WILDMOVE;
559 }
560 else
561 Wild = FALSE;
562 break;
563 case DND_OBJECT:
564 if (WinQueryButtonCheckstate(hwnd, DND_SHADOW)) {
565 Shadow = TRUE;
566 cmd = DND_SHADOW;
567 }
568 else
569 Shadow = FALSE;
570 break;
571 }
572 WinDismissDlg(hwnd, cmd);
573 }
574 else
575 WinDismissDlg(hwnd, 0);
576 break;
577
578 case DID_CANCEL:
579 WinDismissDlg(hwnd, 0);
580 break;
581 }
582 return 0;
583 }
584 return WinDefDlgProc(hwnd, msg, mp1, mp2);
585}
586
587#pragma alloc_text(CHECKLIST,CheckListProc)
588#pragma alloc_text(DNDLIST,DropListProc)
589#pragma alloc_text(MISC7,PosOverOkay,CenterOverWindow,PopupMenu)
Note: See TracBrowser for help on using the repository browser.