Changeset 551 for trunk/dll/datamin.c
- Timestamp:
- Feb 28, 2007, 2:33:51 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/datamin.c
r549 r551 50 50 static volatile HWND G_hwndSingle = NULLHANDLE; 51 51 52 static VOID dataminThread (VOID *pv);52 static VOID dataminThread(VOID * pv); 53 53 54 54 long MINI_X = 208, MINI_Y = 16; … … 59 59 { 60 60 APIRET rc; 61 switch (msg) 62 {61 62 switch (msg) { 63 63 case WM_CREATE: 64 64 { 65 PVOID pv = xmalloc(sizeof(tDataMin),pszSrcFile,__LINE__); 65 PVOID pv = xmalloc(sizeof(tDataMin), pszSrcFile, __LINE__); 66 66 67 WinSetWindowPtr(hwnd, QWL_DATAMIN_PTR, pv); 67 68 } … … 72 73 USHORT id = WinQueryWindowUShort(hwnd, QWS_ID); 73 74 74 if (id >= MINI_DRIVEA) 75 { 76 if (G_hevDataMin != NULLHANDLE) 77 { 75 if (id >= MINI_DRIVEA) { 76 if (G_hevDataMin != NULLHANDLE) { 78 77 G_hwndSingle = hwnd; 79 78 rc = DosPostEventSem(G_hevDataMin); 80 if (rc) 81 { 82 Dos_Error(MB_ENTER, 83 rc, 84 HWND_DESKTOP, 85 pszSrcFile, 86 __LINE__, 87 "Post Semaphore failed" // GetPString(IDS_POSTSEMFAILED) 88 ); 79 if (rc) { 80 Dos_Error(MB_ENTER, rc, HWND_DESKTOP, pszSrcFile, __LINE__, "Post Semaphore failed" // GetPString(IDS_POSTSEMFAILED) 81 ); 89 82 } 90 83 } 91 84 } 92 85 else if (id == MINI_TIME) 93 PostMsg(WinQueryWindow(hwnd, QW_PARENT), 94 UM_SETUP6, // Up time 95 MPVOID, 96 MPVOID); 86 PostMsg(WinQueryWindow(hwnd, QW_PARENT), UM_SETUP6, // Up time 87 MPVOID, MPVOID); 97 88 else if (id == MINI_PROC) 98 89 WinSendMsg(WinQueryWindow(hwnd, QW_PARENT), 99 WM_SYSCOMMAND, 100 MPFROM2SHORT(SC_TASKMANAGER, 0), 101 MPVOID); 90 WM_SYSCOMMAND, MPFROM2SHORT(SC_TASKMANAGER, 0), MPVOID); 102 91 } 103 92 break; … … 107 96 USHORT id = WinQueryWindowUShort(hwnd, QWS_ID); 108 97 109 if (id >= MINI_DRIVEA && !hwndMain) 110 { 98 if (id >= MINI_DRIVEA && !hwndMain) { 111 99 CHAR s[] = " :\\"; 112 100 113 101 *s = (CHAR) (id - MINI_DRIVEA) + 'A'; 114 OpenDirCnr((HWND)0, 115 HWND_DESKTOP, 116 (HWND)0, 117 FALSE, 118 s); 102 OpenDirCnr((HWND) 0, HWND_DESKTOP, (HWND) 0, FALSE, s); 119 103 return MRFROMLONG(1L); 120 104 } 121 else if (id == MINI_TIME) 122 { 105 else if (id == MINI_TIME) { 123 106 OpenObject("<WP_CLOCK>", 124 (SHORT2FROMMP(mp2) & KC_SHIFT) ? 125 Default : Settings, 126 hwnd); 107 (SHORT2FROMMP(mp2) & KC_SHIFT) ? Default : Settings, hwnd); 127 108 return MRFROMLONG(1L); 128 109 } 129 110 130 111 #ifdef NEVER 131 else if (id == MINI_MEM) 132 { 112 else if (id == MINI_MEM) { 133 113 WinDlgBox(HWND_DESKTOP, 134 114 HWND_DESKTOP, 135 SysInfoDlgProc, 136 FM3ModHandle, 137 SYS_FRAME, 138 NULL); 115 SysInfoDlgProc, FM3ModHandle, SYS_FRAME, NULL); 139 116 return MRFROMLONG(1L); 140 117 } 141 118 #endif 142 119 143 else if (id == MINI_PROC || id == MINI_MEM) 144 { 120 else if (id == MINI_PROC || id == MINI_MEM) { 145 121 WinDlgBox(HWND_DESKTOP, 146 hwnd, 147 KillDlgProc, 148 FM3ModHandle, 149 KILL_FRAME, 150 NULL); 122 hwnd, KillDlgProc, FM3ModHandle, KILL_FRAME, NULL); 151 123 return MRFROMLONG(1L); 152 124 } 153 else if (id == MINI_SWAP && *SwapperDat) 154 { 125 else if (id == MINI_SWAP && *SwapperDat) { 155 126 156 127 char s[5]; … … 160 131 WinDlgBox(HWND_DESKTOP, 161 132 hwndMain, 162 UndeleteDlgProc, 163 FM3ModHandle, 164 UNDEL_FRAME, 165 MPFROMP(s)); 133 UndeleteDlgProc, FM3ModHandle, UNDEL_FRAME, MPFROMP(s)); 166 134 return MRFROMLONG(1L); 167 135 } … … 171 139 case WM_BUTTON1MOTIONSTART: 172 140 PostMsg(WinQueryWindow(hwnd, QW_PARENT), 173 UM_BUTTON1MOTIONSTART, 174 MPVOID, 175 MPVOID); 141 UM_BUTTON1MOTIONSTART, MPVOID, MPVOID); 176 142 break; 177 143 178 144 case WM_CONTEXTMENU: 179 PostMsg(WinQueryWindow(hwnd, QW_PARENT), 180 UM_CONTEXTMENU, 181 MPVOID, 182 MPVOID); 145 PostMsg(WinQueryWindow(hwnd, QW_PARENT), UM_CONTEXTMENU, MPVOID, MPVOID); 183 146 break; 184 147 … … 189 152 190 153 id = WinQueryWindowUShort(hwnd, QWS_ID); 191 if (id >= MINI_DRIVEA) 192 { 154 if (id >= MINI_DRIVEA) { 193 155 HPS hps = WinBeginPaint(hwnd, (HPS) 0, NULL); 194 if (hps) 195 {156 157 if (hps) { 196 158 mr = WinSendMsg(WinQueryWindow(hwnd, QW_PARENT), 197 UM_PAINT, 198 MPFROM2SHORT(id, 0), 199 MPFROMLONG(hps)); 159 UM_PAINT, MPFROM2SHORT(id, 0), MPFROMLONG(hps)); 200 160 WinEndPaint(hps); 201 return mr; // Bypass default paint 202 } 203 } 204 } 205 break; 206 207 case WM_DESTROY: 208 { 209 PVOID pv = WinQueryWindowPtr(hwnd, QWL_DATAMIN_PTR); 210 xfree(pv); 211 } 212 break; 161 return mr; // Bypass default paint 162 } 163 } 164 } 165 break; 166 167 case WM_DESTROY: 168 { 169 PVOID pv = WinQueryWindowPtr(hwnd, QWL_DATAMIN_PTR); 170 171 xfree(pv); 172 } 173 break; 213 174 } 214 175 return PFNWPStatic(hwnd, msg, mp1, mp2); 215 176 216 } 177 } // MiniTimeProc 217 178 218 179 //=== DataProc - databar client window procedure === … … 224 185 static ULONG counter; 225 186 static BOOL NoFloat, noqproc = FALSE, Positioned; 226 static HWND hwndMenu = (HWND)0; 227 228 switch (msg) 229 { 187 static HWND hwndMenu = (HWND) 0; 188 189 switch (msg) { 230 190 case WM_CREATE: 231 191 if (DataHwnd) { 232 WinSetWindowPos(DataHwnd, 233 HWND_TOP, 234 0, 235 0, 236 0, 237 0, 238 SWP_ZORDER | SWP_SHOW); 192 WinSetWindowPos(DataHwnd, HWND_TOP, 0, 0, 0, 0, SWP_ZORDER | SWP_SHOW); 239 193 return MRFROMLONG(1L); 240 194 } … … 243 197 Positioned = FALSE; 244 198 SetPresParams(hwnd, 245 &RGBGREY, 246 &RGBBLACK, 247 &RGBBLACK, 248 GetPString(IDS_8HELVTEXT)); 199 &RGBGREY, &RGBBLACK, &RGBBLACK, GetPString(IDS_8HELVTEXT)); 249 200 { 250 201 int c; 251 202 long x = 3; 252 USHORT ids[] = { MINI_TIME, MINI_MEM, MINI_SWAP, MINI_PROC, 0};203 USHORT ids[] = { MINI_TIME, MINI_MEM, MINI_SWAP, MINI_PROC, 0 }; 253 204 POINTL aptl[TXTBOX_COUNT]; 254 205 HPS hps; 255 206 256 207 hps = WinGetPS(hwnd); 257 if (hps) 258 { 208 if (hps) { 259 209 GpiQueryTextBox(hps, 260 210 34, 261 211 " -=03:08:22 SMW 1998/08/02=- ", 262 TXTBOX_COUNT, 263 aptl); 212 TXTBOX_COUNT, aptl); 264 213 WinReleasePS(hps); 265 214 MINI_X = aptl[TXTBOX_TOPRIGHT].x + 6; 266 215 MINI_Y = aptl[TXTBOX_TOPRIGHT].y + 6; 267 216 } 268 for (c = 0; ids[c]; c++) 269 { 217 for (c = 0; ids[c]; c++) { 270 218 if (!WinCreateWindow(hwnd, 271 GetPString(IDS_WCMINITIME), 272 NullStr, 273 SS_TEXT | DT_CENTER | DT_VCENTER | WS_VISIBLE, 274 x, 275 3, 276 MINI_X, 277 MINI_Y, 278 hwnd, 279 HWND_TOP, 280 ids[c], 281 NULL, 282 NULL)) 283 { 284 Win_Error2(hwnd,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW); 219 GetPString(IDS_WCMINITIME), 220 NullStr, 221 SS_TEXT | DT_CENTER | DT_VCENTER | WS_VISIBLE, 222 x, 223 3, 224 MINI_X, 225 MINI_Y, hwnd, HWND_TOP, ids[c], NULL, NULL)) { 226 Win_Error2(hwnd, hwnd, pszSrcFile, __LINE__, IDS_WINCREATEWINDOW); 285 227 } 286 228 x += (MINI_X + 4); 287 229 } 288 230 } 289 if (!hwndMain) 290 { 231 if (!hwndMain) { 291 232 SWCNTRL swctl; 292 233 … … 296 237 swctl.fbJump = (fDataToFore) ? SWL_NOTJUMPABLE : SWL_JUMPABLE; 297 238 swctl.bProgType = PROG_PM; 298 strcpy(swctl.szSwtitle, 299 GetPString(IDS_DATABARTITLETEXT)); 300 WinCreateSwitchEntry(WinQueryAnchorBlock(hwnd), 301 &swctl); 302 } 303 PostMsg(hwnd, 304 UM_SETUP, 305 MPVOID, 306 MPVOID); 239 strcpy(swctl.szSwtitle, GetPString(IDS_DATABARTITLETEXT)); 240 WinCreateSwitchEntry(WinQueryAnchorBlock(hwnd), &swctl); 241 } 242 PostMsg(hwnd, UM_SETUP, MPVOID, MPVOID); 307 243 return 0; 308 244 309 245 case WM_MENUEND: 310 246 NoFloat = FALSE; 311 if (hwndMenu == (HWND)mp2) 312 { 247 if (hwndMenu == (HWND) mp2) { 313 248 WinDestroyWindow(hwndMenu); 314 hwndMenu = (HWND) 0;249 hwndMenu = (HWND) 0; 315 250 } 316 251 break; … … 333 268 if (!fDataInclRemote) 334 269 drivestyle |= DRIVE_REMOTE; 335 if (fDataShowDrives) 336 { 270 if (fDataShowDrives) { 337 271 DosError(FERR_DISABLEHARDERR); 338 272 DosQCurDisk(&ulDriveNum, &ulDriveMap); … … 340 274 y = MINI_Y + 4; 341 275 // Drive status windows 342 for (c = 2; c < 26; c++) 343 { 344 if ((ulDriveMap & (1L << c)) && !(driveflags[c] & drivestyle)) 345 { 276 for (c = 2; c < 26; c++) { 277 if ((ulDriveMap & (1L << c)) && !(driveflags[c] & drivestyle)) { 346 278 if (!WinCreateWindow(hwnd, 347 GetPString(IDS_WCMINITIME), 348 NullStr, 349 SS_TEXT | DT_CENTER | DT_VCENTER | WS_VISIBLE, 350 x, 351 y, 352 MINI_X, 353 MINI_Y, 354 hwnd, 355 HWND_TOP, 356 MINI_DRIVEA + c, 357 NULL, 358 NULL)) 359 { 360 Win_Error2(hwnd,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW); 279 GetPString(IDS_WCMINITIME), 280 NullStr, 281 SS_TEXT | DT_CENTER | DT_VCENTER | 282 WS_VISIBLE, x, y, MINI_X, MINI_Y, hwnd, 283 HWND_TOP, MINI_DRIVEA + c, NULL, NULL)) { 284 Win_Error2(hwnd, hwnd, pszSrcFile, __LINE__, 285 IDS_WINCREATEWINDOW); 361 286 } 362 287 numdrives++; 363 288 x += (MINI_X + 4); 364 if ((numdrives % 4) == 0) 365 { 289 if ((numdrives % 4) == 0) { 366 290 y += (MINI_Y + 4); 367 291 x = 3; … … 373 297 y = (MINI_Y + 4) + ((numdrives / 4) * (MINI_Y + 4)) + 374 298 (((numdrives % 4) != 0) * (MINI_Y + 4)); 375 if (!Positioned) 376 { 377 if (PrfQueryProfileData(fmprof, 378 appname, 379 "DataMinPos", 380 &swp, 381 &size)) 382 { 299 if (!Positioned) { 300 if (PrfQueryProfileData(fmprof, appname, "DataMinPos", &swp, &size)) { 383 301 WinQueryWindowPos(HWND_DESKTOP, &swpD); 384 302 if (swp.x > swpD.cx - 16) … … 390 308 swp.x, 391 309 swp.y, 392 x, 393 y, 394 SWP_SIZE | SWP_MOVE | SWP_SHOW | SWP_ZORDER); 310 x, y, SWP_SIZE | SWP_MOVE | SWP_SHOW | SWP_ZORDER); 395 311 } 396 312 else … … 399 315 0, 400 316 0, 401 x, 402 y, 403 SWP_SHOW | SWP_SIZE | SWP_MOVE | SWP_ZORDER); 317 x, y, SWP_SHOW | SWP_SIZE | SWP_MOVE | SWP_ZORDER); 404 318 Positioned = TRUE; 405 319 } … … 407 321 WinSetWindowPos(WinQueryWindow(hwnd, QW_PARENT), 408 322 HWND_TOP, 409 0, 410 0, 411 x, 412 y, 413 SWP_SHOW | SWP_SIZE | SWP_ZORDER); 414 WinShowWindow(WinQueryWindow(hwnd, QW_PARENT), 415 TRUE); 323 0, 0, x, y, SWP_SHOW | SWP_SIZE | SWP_ZORDER); 324 WinShowWindow(WinQueryWindow(hwnd, QW_PARENT), TRUE); 416 325 if (numdrives) { 417 if (_beginthread(dataminThread,NULL,32768,(PVOID)hwnd) == -1) { 418 Runtime_Error(pszSrcFile, __LINE__, GetPString(IDS_COULDNTSTARTTHREADTEXT)); 419 PostMsg(hwnd,WM_CLOSE,MPVOID,MPVOID); 326 if (_beginthread(dataminThread, NULL, 32768, (PVOID) hwnd) == -1) { 327 Runtime_Error(pszSrcFile, __LINE__, 328 GetPString(IDS_COULDNTSTARTTHREADTEXT)); 329 PostMsg(hwnd, WM_CLOSE, MPVOID, MPVOID); 420 330 } 421 331 } 422 332 counter = 0; 423 PostMsg(hwnd, 424 UM_TIMER, 425 MPVOID, 426 MPVOID); 427 } 428 return 0; // UM_SETUP 333 PostMsg(hwnd, UM_TIMER, MPVOID, MPVOID); 334 } 335 return 0; // UM_SETUP 429 336 430 337 case WM_BUTTON1DBLCLK: 431 338 if (hwndMain) 432 PostMsg(hwnd, 433 WM_CLOSE, 434 MPVOID, 435 MPVOID); 339 PostMsg(hwnd, WM_CLOSE, MPVOID, MPVOID); 436 340 break; 437 341 … … 439 343 case WM_CONTEXTMENU: 440 344 if (!hwndMenu) 441 hwndMenu = WinLoadMenu(HWND_DESKTOP, 442 FM3ModHandle, 443 MINI_FRAME); 444 if (hwndMenu) 445 { 446 WinCheckMenuItem(hwndMenu, 447 MINI_FLOAT, 448 fDataToFore); 449 WinCheckMenuItem(hwndMenu, 450 MINI_SHOW, 451 fDataShowDrives); 452 WinCheckMenuItem(hwndMenu, 453 MINI_BORING, 454 fDullMin); 455 WinCheckMenuItem(hwndMenu, 456 MINI_INCLREMOTE, 457 fDataInclRemote); 345 hwndMenu = WinLoadMenu(HWND_DESKTOP, FM3ModHandle, MINI_FRAME); 346 if (hwndMenu) { 347 WinCheckMenuItem(hwndMenu, MINI_FLOAT, fDataToFore); 348 WinCheckMenuItem(hwndMenu, MINI_SHOW, fDataShowDrives); 349 WinCheckMenuItem(hwndMenu, MINI_BORING, fDullMin); 350 WinCheckMenuItem(hwndMenu, MINI_INCLREMOTE, fDataInclRemote); 458 351 NoFloat = TRUE; 459 if (!PopupMenu(hwnd, 460 hwnd, 461 hwndMenu)) 352 if (!PopupMenu(hwnd, hwnd, hwndMenu)) 462 353 NoFloat = FALSE; 463 354 } … … 467 358 468 359 case WM_BUTTON2DBLCLK: 469 if (!(SHORT2FROMMP(mp2) & KC_SHIFT)) 470 { 471 PostMsg(hwnd, 472 WM_COMMAND, 473 MPFROM2SHORT(MINI_FLOAT, 0), 474 MPVOID); 360 if (!(SHORT2FROMMP(mp2) & KC_SHIFT)) { 361 PostMsg(hwnd, WM_COMMAND, MPFROM2SHORT(MINI_FLOAT, 0), MPVOID); 475 362 break; 476 363 } … … 478 365 case WM_CHORD: 479 366 case WM_BUTTON3DBLCLK: 480 PostMsg(hwnd, 481 WM_COMMAND, 482 MPFROM2SHORT(MINI_SHOW, 0), 483 MPVOID); 367 PostMsg(hwnd, WM_COMMAND, MPFROM2SHORT(MINI_SHOW, 0), MPVOID); 484 368 break; 485 369 … … 512 396 TrackInfo.ptlMaxTrackSize.y = Position.cy; 513 397 TrackInfo.fs = TF_MOVE | TF_STANDARD | TF_ALLINBOUNDARY; 514 if (WinTrackRect(HWND_DESKTOP, (HPS) 0, &TrackInfo)) 515 { 398 if (WinTrackRect(HWND_DESKTOP, (HPS) 0, &TrackInfo)) { 516 399 WinSetWindowPos(WinQueryWindow(hwnd, QW_PARENT), 517 400 HWND_TOP, TrackInfo.rclTrack.xLeft, … … 527 410 528 411 case WM_COMMAND: 529 switch (SHORT1FROMMP(mp1)) 530 { 412 switch (SHORT1FROMMP(mp1)) { 531 413 case IDM_COMMANDLINE: 532 414 case IDM_DOSCOMMANDLINE: … … 537 419 538 420 *path = 0; 539 TopWindowName(hwnd, 540 (HWND)0, 541 path); 421 TopWindowName(hwnd, (HWND) 0, path); 542 422 if (SHORT1FROMMP(mp1) == IDM_DOSCOMMANDLINE) 543 423 env = GetCmdSpec(TRUE); 544 else if (SHORT1FROMMP(mp1) != IDM_COMMANDLINE) 545 { 424 else if (SHORT1FROMMP(mp1) != IDM_COMMANDLINE) { 546 425 env = "WINOS2.COM"; 547 426 type = SEPARATE | FULLSCREEN; 548 427 } 549 runemf2(type, 550 hwnd, 551 path, 552 NULL, 553 "%s", 554 env); 428 runemf2(type, hwnd, path, NULL, "%s", env); 555 429 } 556 430 break; … … 560 434 WinSendMsg(hwndHelp, 561 435 HM_DISPLAY_HELP, 562 MPFROM2SHORT(HELP_DATABAR, 0), 563 MPFROMSHORT(HM_RESOURCEID)); 436 MPFROM2SHORT(HELP_DATABAR, 0), MPFROMSHORT(HM_RESOURCEID)); 564 437 break; 565 438 566 439 case MINI_CLOSE: 567 PostMsg(hwnd, 568 WM_CLOSE, 569 MPVOID, 570 MPVOID); 440 PostMsg(hwnd, WM_CLOSE, MPVOID, MPVOID); 571 441 break; 572 442 … … 574 444 fDullMin = (fDullMin) ? FALSE : TRUE; 575 445 PrfWriteProfileData(fmprof, 576 FM3Str, 577 "DullDatabar", 578 &fDullMin, 579 sizeof(BOOL)); 580 if (G_hevDataMin != NULLHANDLE) 581 { 446 FM3Str, "DullDatabar", &fDullMin, sizeof(BOOL)); 447 if (G_hevDataMin != NULLHANDLE) { 582 448 rc = DosPostEventSem(G_hevDataMin); 583 449 if (rc) { 584 Dos_Error(MB_ENTER, 585 rc, 586 HWND_DESKTOP, 587 pszSrcFile, 588 __LINE__, 589 "Post Semaphore failed" // GetPString(IDS_POSTSEMFAILED) 590 ); 450 Dos_Error(MB_ENTER, rc, HWND_DESKTOP, pszSrcFile, __LINE__, "Post Semaphore failed" // GetPString(IDS_POSTSEMFAILED) 451 ); 591 452 } 592 453 } … … 596 457 case MINI_INCLREMOTE: 597 458 case MINI_SHOW: 598 if (SHORT1FROMMP(mp1) == MINI_SHOW) 599 { 459 if (SHORT1FROMMP(mp1) == MINI_SHOW) { 600 460 fDataShowDrives = (fDataShowDrives) ? FALSE : TRUE; 601 461 PrfWriteProfileData(fmprof, 602 462 appname, 603 "DataShowDrives", 604 &fDataShowDrives, 605 sizeof(BOOL)); 606 } 607 else 608 { 463 "DataShowDrives", &fDataShowDrives, sizeof(BOOL)); 464 } 465 else { 609 466 fDataInclRemote = (fDataInclRemote) ? FALSE : TRUE; 610 467 PrfWriteProfileData(fmprof, 611 468 appname, 612 "DataInclRemote", 613 &fDataInclRemote, 614 sizeof(BOOL)); 469 "DataInclRemote", &fDataInclRemote, sizeof(BOOL)); 615 470 } 616 471 { … … 620 475 621 476 henum = WinBeginEnumWindows(hwnd); 622 while ((hwndChild = WinGetNextWindow(henum)) != NULLHANDLE) 623 { 477 while ((hwndChild = WinGetNextWindow(henum)) != NULLHANDLE) { 624 478 id = WinQueryWindowUShort(hwndChild, QWS_ID); 625 479 if (id >= MINI_DRIVEA) … … 634 488 fDataToFore = (fDataToFore) ? FALSE : TRUE; 635 489 PrfWriteProfileData(fmprof, 636 appname, 637 "DataToFore", 638 &fDataToFore, 639 sizeof(BOOL)); 640 if (!hwndMain) 641 { 490 appname, "DataToFore", &fDataToFore, sizeof(BOOL)); 491 if (!hwndMain) { 642 492 643 493 SWCNTRL swcntrl; … … 645 495 646 496 hswitch = (HSWITCH) WinQuerySwitchHandle(hwnd, (PID) 0); 647 if (hswitch) 648 { 497 if (hswitch) { 649 498 memset(&swcntrl, 0, sizeof(SWCNTRL)); 650 if (!WinQuerySwitchEntry(hswitch, &swcntrl)) 651 { 499 if (!WinQuerySwitchEntry(hswitch, &swcntrl)) { 652 500 swcntrl.fbJump = (fDataToFore) ? SWL_NOTJUMPABLE : SWL_JUMPABLE; 653 WinChangeSwitchEntry(hswitch, 654 &swcntrl); 501 WinChangeSwitchEntry(hswitch, &swcntrl); 655 502 } 656 503 } … … 666 513 0, 667 514 SHORT1FROMMP(mp2), 668 SHORT2FROMMP(mp2), 669 SWP_MOVE | SWP_SIZE); 515 SHORT2FROMMP(mp2), SWP_MOVE | SWP_SIZE); 670 516 break; 671 517 … … 677 523 RECTL rcl; 678 524 679 hps = WinBeginPaint(hwnd, 680 (HPS) 0, 681 &rcl); 682 if (hps) 683 { 684 WinFillRect(hps, 685 (PRECTL) & rcl, 686 CLR_PALEGRAY); 525 hps = WinBeginPaint(hwnd, (HPS) 0, &rcl); 526 if (hps) { 527 WinFillRect(hps, (PRECTL) & rcl, CLR_PALEGRAY); 687 528 GpiSetMix(hps, FM_OVERPAINT); 688 529 GpiSetColor(hps, CLR_WHITE); … … 705 546 706 547 henum = WinBeginEnumWindows(hwnd); 707 while ((hwndTemp = WinGetNextWindow(henum)) != NULLHANDLE) 708 { 548 while ((hwndTemp = WinGetNextWindow(henum)) != NULLHANDLE) { 709 549 PaintRecessedWindow(hwndTemp, 710 hps, 711 (WinQueryWindowUShort(hwndTemp, QWS_ID) 712 != MINI_TIME), 713 FALSE); 550 hps, (WinQueryWindowUShort(hwndTemp, QWS_ID) 551 != MINI_TIME), FALSE); 714 552 } 715 553 WinEndEnumWindows(henum); … … 737 575 738 576 id = SHORT1FROMMP(mp1); 739 if (id >= MINI_DRIVEA) 740 { 577 if (id >= MINI_DRIVEA) { 741 578 hwndChild = WinWindowFromID(hwnd, id); 742 579 if (!hwndChild) … … 745 582 return 0; 746 583 pDM = WinQueryWindowPtr(hwndChild, QWL_DATAMIN_PTR); 747 if (!pDM || pDM -> qfsi_rc) 748 { 584 if (!pDM || pDM->qfsi_rc) { 749 585 ullFreeQty = 0; 750 586 ulPercentFree = 0; 751 587 } 752 else 753 { 754 ullFreeQty = (ULONGLONG)pDM -> fsa.cUnitAvail * 755 (pDM -> fsa.cSectorUnit * pDM -> fsa.cbSector); 756 757 ulPercentFree = (pDM -> fsa.cUnit && pDM -> fsa.cUnitAvail) ? 758 (pDM -> fsa.cUnitAvail * 100) / pDM -> fsa.cUnit : 759 0; 760 } 761 762 CommaFmtULL(szFreeQty, sizeof(szFreeQty), ullFreeQty,' '); 763 *szDrvLtr = (CHAR)(id - MINI_DRIVEA) + 'A'; 764 765 if (!pDM || pDM -> qfsi_rc || pDM -> qfsa_rc) 588 else { 589 ullFreeQty = (ULONGLONG) pDM->fsa.cUnitAvail * 590 (pDM->fsa.cSectorUnit * pDM->fsa.cbSector); 591 592 ulPercentFree = (pDM->fsa.cUnit && pDM->fsa.cUnitAvail) ? 593 (pDM->fsa.cUnitAvail * 100) / pDM->fsa.cUnit : 0; 594 } 595 596 CommaFmtULL(szFreeQty, sizeof(szFreeQty), ullFreeQty, ' '); 597 *szDrvLtr = (CHAR) (id - MINI_DRIVEA) + 'A'; 598 599 if (!pDM || pDM->qfsi_rc || pDM->qfsa_rc) 766 600 pszFSystem = "N/A"; 767 else 768 { 769 pszFSystem = pDM -> fsqb2.szName + 770 pDM -> fsqb2.cbName + 1; 601 else { 602 pszFSystem = pDM->fsqb2.szName + pDM->fsqb2.cbName + 1; 771 603 pszFSystem[15] = 0; 772 604 } … … 775 607 szDrvLtr, 776 608 szFreeQty, 777 ulPercentFree, 778 GetPString(IDS_FREETEXT), 779 pszFSystem); 609 ulPercentFree, GetPString(IDS_FREETEXT), pszFSystem); 780 610 if (!hps) 781 611 hps = WinGetPS(hwndChild); 782 if (hps) 783 { 784 if (!fDullMin) 785 { 612 if (hps) { 613 if (!fDullMin) { 786 614 ptl.x = 0; 787 615 ptl.y = 0; 788 GpiMove(hps, 789 &ptl); 790 GpiSetColor(hps, 791 CLR_BLACK); 616 GpiMove(hps, &ptl); 617 GpiSetColor(hps, CLR_BLACK); 792 618 ptl.x = swp.cx - 1; 793 619 ptl.y = swp.cy - 1; 794 GpiBox(hps, 795 DRO_OUTLINE, 796 &ptl, 797 0, 798 0); 620 GpiBox(hps, DRO_OUTLINE, &ptl, 0, 0); 799 621 ptl.x = 1; 800 622 ptl.y = 1; 801 if (ulPercentFree) 802 { 623 if (ulPercentFree) { 803 624 GpiMove(hps, &ptl); 804 625 GpiSetColor(hps, … … 809 630 ptl.x = ((swp.cx - 2) * ulPercentFree) / 100; 810 631 wasx = ptl.x; 811 GpiBox(hps, 812 DRO_OUTLINEFILL, 813 &ptl, 814 0, 815 0); 632 GpiBox(hps, DRO_OUTLINEFILL, &ptl, 0, 0); 816 633 GpiSetColor(hps, 817 634 (ulPercentFree < 11) ? CLR_RED : … … 819 636 ptl.x = wasx; 820 637 ptl.y = swp.cy - 2; 821 GpiMove(hps, 822 &ptl); 638 GpiMove(hps, &ptl); 823 639 ptl.x = 1; 824 GpiLine(hps, 825 &ptl); 640 GpiLine(hps, &ptl); 826 641 ptl.y = 2; 827 642 ptl.x = 1; 828 GpiLine(hps, 829 &ptl); 643 GpiLine(hps, &ptl); 830 644 ptl.x = wasx; 831 645 } 832 if (ulPercentFree < 99) 833 { 834 GpiSetColor(hps, 835 CLR_DARKGRAY); 646 if (ulPercentFree < 99) { 647 GpiSetColor(hps, CLR_DARKGRAY); 836 648 wasx = ptl.x; 837 649 ptl.y = 2; … … 839 651 ptl.y = swp.cy - 2; 840 652 ptl.x = swp.cx - 2; 841 GpiBox(hps, 842 DRO_OUTLINEFILL, 843 &ptl, 844 0, 845 0); 653 GpiBox(hps, DRO_OUTLINEFILL, &ptl, 0, 0); 846 654 ptl.x = wasx; 847 GpiMove(hps, 848 &ptl); 849 GpiSetColor(hps, 850 CLR_PALEGRAY); 655 GpiMove(hps, &ptl); 656 GpiSetColor(hps, CLR_PALEGRAY); 851 657 ptl.x = swp.cx - 3; 852 658 GpiLine(hps, &ptl); … … 854 660 ptl.y = 1; 855 661 GpiMove(hps, &ptl); 856 GpiSetColor(hps, 857 CLR_BLACK); 662 GpiSetColor(hps, CLR_BLACK); 858 663 ptl.x = swp.cx - 2; 859 664 GpiLine(hps, &ptl); … … 861 666 GpiLine(hps, &ptl); 862 667 } 863 GpiSetColor(hps, 864 CLR_WHITE); 668 GpiSetColor(hps, CLR_WHITE); 865 669 } 866 else 867 { 868 GpiSetColor(hps, 869 CLR_PALEGRAY); 670 else { 671 GpiSetColor(hps, CLR_PALEGRAY); 870 672 ptl.x = 0; 871 673 ptl.y = 0; 872 GpiMove(hps, 873 &ptl); 674 GpiMove(hps, &ptl); 874 675 ptl.x = swp.cx - 1; 875 676 ptl.y = swp.cy - 1; 876 GpiBox(hps, 877 DRO_OUTLINEFILL, 878 &ptl, 879 0, 880 0); 677 GpiBox(hps, DRO_OUTLINEFILL, &ptl, 0, 0); 881 678 GpiSetColor(hps, 882 (ulPercentFree < 11) ? CLR_DARKRED : 883 CLR_DARKBLUE); 679 (ulPercentFree < 11) ? CLR_DARKRED : CLR_DARKBLUE); 884 680 } 885 GpiSetBackMix(hps, 886 BM_LEAVEALONE); 887 GpiSetMix(hps, 888 FM_OVERPAINT); 681 GpiSetBackMix(hps, BM_LEAVEALONE); 682 GpiSetMix(hps, FM_OVERPAINT); 889 683 { 890 684 POINTL aptl[TXTBOX_COUNT]; 891 685 892 GpiQueryTextBox(hps, 893 strlen(s), 894 s, 895 TXTBOX_COUNT, 896 aptl); 686 GpiQueryTextBox(hps, strlen(s), s, TXTBOX_COUNT, aptl); 897 687 ptl.y = ((swp.cy / 2) - 898 688 ((aptl[TXTBOX_TOPRIGHT].y + … … 902 692 if (ptl.x < 2) 903 693 ptl.x = 2; 904 GpiCharStringAt(hps, 905 &ptl, 906 strlen(s), 907 s); 694 GpiCharStringAt(hps, &ptl, strlen(s), s); 908 695 } 909 696 if (!mp2) 910 697 WinReleasePS(hps); 911 698 } 912 } 699 } // if drive window 913 700 } 914 701 return 0; … … 922 709 WinSetWindowPos(WinQueryWindow(hwnd, QW_PARENT), 923 710 HWND_TOP, 0, 0, 0, 0, SWP_ZORDER); 924 if (counter && (counter % 19) && (counter % 20)) 925 { 926 if (!DosGetDateTime(&dt)) 927 { 711 if (counter && (counter % 19) && (counter % 20)) { 712 if (!DosGetDateTime(&dt)) { 928 713 sprintf(s, 929 714 " %02hu:%02hu:%02hu %s %04u/%02u/%02u", … … 932 717 dt.seconds, 933 718 GetPString(IDS_SUNDAY + dt.weekday), 934 dt.year, 935 dt.month, 936 dt.day); 937 WinSetDlgItemText(hwnd, 938 MINI_TIME, 939 s); 719 dt.year, dt.month, dt.day); 720 WinSetDlgItemText(hwnd, MINI_TIME, s); 940 721 } 941 722 } 942 723 else if (!counter || !(counter % 19)) 943 724 PostMsg(hwnd, UM_SETUP6, MPVOID, MPVOID); // Uptime 944 if (!(counter % 4)) 945 { 725 if (!(counter % 4)) { 946 726 PostMsg(hwnd, UM_SETUP3, MPVOID, MPVOID); // Memory utilization 947 if (!(counter % 10)) 948 { 727 if (!(counter % 10)) { 949 728 PostMsg(hwnd, UM_SETUP5, MPVOID, MPVOID); // Process status 950 if (!(counter % 20)) 951 { 729 if (!(counter % 20)) { 952 730 PostMsg(hwnd, UM_SETUP2, MPVOID, MPVOID); // Swapper 953 731 } … … 967 745 FSALLOCATE fsa; 968 746 969 if (*SwapperDat) 970 { 747 if (*SwapperDat) { 971 748 DosError(FERR_DISABLEHARDERR); 972 749 if (!DosFindFirst(SwapperDat, &hdir, FILE_NORMAL | FILE_HIDDEN | 973 750 FILE_SYSTEM | FILE_ARCHIVED | FILE_READONLY, 974 &ffb, sizeof(ffb), &nm, FIL_STANDARD)) 975 { 751 &ffb, sizeof(ffb), &nm, FIL_STANDARD)) { 976 752 priority_bumped(); 977 753 DosFindClose(hdir); 978 754 DosError(FERR_DISABLEHARDERR); 979 755 if (!DosQueryFSInfo(toupper(*SwapperDat) - '@', FSIL_ALLOC, 980 &fsa, sizeof(FSALLOCATE))) 981 {982 ullFreeQty = (ULONGLONG)fsa.cUnitAvail * (fsa.cSectorUnit * fsa.cbSector);983 CommaFmtULL(szFreeQty, sizeof(szFreeQty), ullFreeQty, ' ');756 &fsa, sizeof(FSALLOCATE))) { 757 ullFreeQty = 758 (ULONGLONG) fsa.cUnitAvail * (fsa.cSectorUnit * fsa.cbSector); 759 CommaFmtULL(szFreeQty, sizeof(szFreeQty), ullFreeQty, ' '); 984 760 } 985 761 else 986 762 *szFreeQty = 0; 987 763 988 CommaFmtULL(szFileQty, sizeof(szFileQty), ffb.cbFile, ' ');764 CommaFmtULL(szFileQty, sizeof(szFileQty), ffb.cbFile, ' '); 989 765 sprintf(s, " %s %s%s%s", 990 766 GetPString(IDS_SWAPTITLETEXT), 991 szFileQty, 992 *szFreeQty ? "/" : NullStr, 993 szFreeQty); 994 WinSetDlgItemText(hwnd,MINI_SWAP,s); 767 szFileQty, *szFreeQty ? "/" : NullStr, szFreeQty); 768 WinSetDlgItemText(hwnd, MINI_SWAP, s); 995 769 } 996 770 } … … 1004 778 1005 779 if (!DosQuerySysInfo(QSV_TOTAVAILMEM, QSV_TOTAVAILMEM, 1006 (PVOID) & amem, (ULONG) sizeof(amem))) 1007 { 1008 CommaFmtUL(tm, sizeof(tm), amem,'M'); 780 (PVOID) & amem, (ULONG) sizeof(amem))) { 781 CommaFmtUL(tm, sizeof(tm), amem, 'M'); 1009 782 if (!Dos16MemAvail(&amem)) 1010 CommaFmtUL(szQty, sizeof(szQty), amem, 'M');783 CommaFmtUL(szQty, sizeof(szQty), amem, 'M'); 1011 784 else 1012 785 *szQty = 0; 1013 786 sprintf(s, " %s%s%s%s", 1014 787 GetPString(IDS_MEMTITLETEXT), 1015 szQty, 1016 (*szQty) ? "/" : NullStr, 1017 tm); 1018 WinSetDlgItemText(hwnd, 1019 MINI_MEM, 1020 s); 788 szQty, (*szQty) ? "/" : NullStr, tm); 789 WinSetDlgItemText(hwnd, MINI_MEM, s); 1021 790 } 1022 791 } 1023 792 return 0; 1024 793 1025 case UM_SETUP5: // Process status794 case UM_SETUP5: // Process status 1026 795 { 1027 796 CHAR s[134], tm[38], szQty[38]; 1028 797 1029 if (fUseQProcStat && !noqproc) 1030 { 798 if (fUseQProcStat && !noqproc) { 1031 799 1032 800 PROCESSINFO *ppi; … … 1037 805 1038 806 rc = DosAllocMem((PVOID) & pbh, USHRT_MAX + 4096, 1039 807 PAG_COMMIT | OBJ_TILE | PAG_READ | PAG_WRITE); 1040 808 if (rc) 1041 Dos_Error(MB_CANCEL,rc,hwnd,pszSrcFile,__LINE__,GetPString(IDS_OUTOFMEMORY)); 1042 else1043 {809 Dos_Error(MB_CANCEL, rc, hwnd, pszSrcFile, __LINE__, 810 GetPString(IDS_OUTOFMEMORY)); 811 else { 1044 812 if (DosQProcStatus(pbh, USHRT_MAX)) 1045 813 noqproc = TRUE; 1046 814 else { 1047 ppi = pbh -> ppi; 1048 while (ppi -> ulEndIndicator != PROCESS_END_INDICATOR) 1049 { 1050 pmi = pbh -> pmi; 1051 while (pmi && ppi -> hModRef != pmi -> hMod) 1052 pmi = pmi -> pNext; 1053 if (pmi) 1054 { 815 ppi = pbh->ppi; 816 while (ppi->ulEndIndicator != PROCESS_END_INDICATOR) { 817 pmi = pbh->pmi; 818 while (pmi && ppi->hModRef != pmi->hMod) 819 pmi = pmi->pNext; 820 if (pmi) { 1055 821 numprocs++; 1056 numthreads += ppi ->usThreadCount;822 numthreads += ppi->usThreadCount; 1057 823 } 1058 ppi = (PPROCESSINFO) (ppi -> ptiFirst + ppi ->usThreadCount);824 ppi = (PPROCESSINFO) (ppi->ptiFirst + ppi->usThreadCount); 1059 825 } 1060 826 commafmt(szQty, sizeof(szQty), numprocs); … … 1063 829 " %s%s %s%s", 1064 830 GetPString(IDS_PROCSTITLETEXT), 1065 szQty, 1066 GetPString(IDS_THRDSTITLETEXT), 1067 tm); 1068 WinSetDlgItemText(hwnd, 1069 MINI_PROC, 1070 s); 831 szQty, GetPString(IDS_THRDSTITLETEXT), tm); 832 WinSetDlgItemText(hwnd, MINI_PROC, s); 1071 833 } 1072 834 DosFreeMem(pbh); 1073 835 } 1074 836 } 1075 else 1076 { 837 else { 1077 838 commafmt(szQty, sizeof(szQty), 1078 WinQuerySwitchList(WinQueryAnchorBlock(hwnd), (PSWBLOCK) 0, 0)); 1079 sprintf(s, 1080 " %s%s", 1081 GetPString(IDS_TASKSTITLETEXT), 1082 szQty); 1083 WinSetDlgItemText(hwnd, 1084 MINI_PROC, 1085 s); 839 WinQuerySwitchList(WinQueryAnchorBlock(hwnd), (PSWBLOCK) 0, 840 0)); 841 sprintf(s, " %s%s", GetPString(IDS_TASKSTITLETEXT), szQty); 842 WinSetDlgItemText(hwnd, MINI_PROC, s); 1086 843 } 1087 844 } … … 1095 852 if (!DosQuerySysInfo(QSV_MS_COUNT, 1096 853 QSV_MS_COUNT, 1097 (PVOID) & val, 1098 (ULONG) sizeof(val))) 1099 { 854 (PVOID) & val, (ULONG) sizeof(val))) { 1100 855 val /= 60000L; 1101 856 numdays = val / (60L * 24L); … … 1104 859 sprintf(s + strlen(s), 1105 860 " %lu %s%s, ", 1106 numdays, 1107 GetPString(IDS_DAYTEXT), 1108 &"s"[numdays == 1L]); 861 numdays, GetPString(IDS_DAYTEXT), &"s"[numdays == 1L]); 1109 862 nummins = val % (60L * 24L); 1110 sprintf(s + strlen(s), 1111 " %lu:%02lu", 1112 nummins / 60, 1113 nummins % 60); 1114 WinSetDlgItemText(hwnd, 1115 MINI_TIME, 1116 s); 863 sprintf(s + strlen(s), " %lu:%02lu", nummins / 60, nummins % 60); 864 WinSetDlgItemText(hwnd, MINI_TIME, s); 1117 865 } 1118 866 } … … 1124 872 1125 873 WinQueryWindowPos(WinQueryWindow(hwnd, QW_PARENT), &swp); 1126 PrfWriteProfileData(fmprof, 1127 appname, 1128 "DataMinPos", 1129 &swp, 1130 sizeof(SWP)); 874 PrfWriteProfileData(fmprof, appname, "DataMinPos", &swp, sizeof(SWP)); 1131 875 } 1132 876 break; 1133 877 1134 878 case WM_CLOSE: 1135 WinSendMsg(hwnd, 1136 WM_SAVEAPPLICATION, 1137 MPVOID, 1138 MPVOID); 879 WinSendMsg(hwnd, WM_SAVEAPPLICATION, MPVOID, MPVOID); 1139 880 WinDestroyWindow(WinQueryWindow(hwnd, QW_PARENT)); 1140 881 return 0; 1141 882 1142 883 case WM_DESTROY: 1143 if (DataHwnd == WinQueryWindow(hwnd, QW_PARENT)) 1144 { 1145 DataHwnd = (HWND)0; 884 if (DataHwnd == WinQueryWindow(hwnd, QW_PARENT)) { 885 DataHwnd = (HWND) 0; 1146 886 if (hwndMenu) 1147 887 WinDestroyWindow(hwndMenu); 1148 hwndMenu = (HWND)0; 1149 } 1150 if (hwndMain) 1151 { 888 hwndMenu = (HWND) 0; 889 } 890 if (hwndMain) { 1152 891 1153 892 SWP swp; … … 1159 898 fl |= ((ofl & SWP_MAXIMIZE) ? SWP_MAXIMIZE : SWP_RESTORE); 1160 899 WinSetWindowPos(WinQueryWindow(hwndMain, QW_PARENT), 1161 HWND_TOP, 1162 0, 1163 0, 1164 0, 1165 0, 1166 fl); 1167 } 1168 else if (!PostMsg((HWND)0, 1169 WM_QUIT, 1170 MPVOID, 1171 MPVOID)) 1172 WinSendMsg((HWND)0, 1173 WM_QUIT, 1174 MPVOID, 1175 MPVOID); 900 HWND_TOP, 0, 0, 0, 0, fl); 901 } 902 else if (!PostMsg((HWND) 0, WM_QUIT, MPVOID, MPVOID)) 903 WinSendMsg((HWND) 0, WM_QUIT, MPVOID, MPVOID); 1176 904 break; 1177 905 } 1178 906 return WinDefWindowProc(hwnd, msg, mp1, mp2); 1179 907 1180 } 908 } // DataProc 1181 909 1182 910 //=== CreateDataBar - create databar windows === … … 1184 912 HWND CreateDataBar(HWND hwndParent, ULONG fl) 1185 913 { 1186 HWND hwndClient = (HWND) 0;914 HWND hwndClient = (HWND) 0; 1187 915 ULONG FrameFlags = 0; 1188 916 … … 1191 919 &FrameFlags, 1192 920 GetPString(IDS_WCDATABAR), 1193 NULL, 1194 WS_VISIBLE, 1195 0, 1196 MINI_FRAME, 1197 &hwndClient)) 1198 { 1199 WinSendMsg(hwndClient, 1200 UM_RESTORE, 1201 MPFROMLONG(fl), 1202 MPVOID); 921 NULL, WS_VISIBLE, 0, MINI_FRAME, &hwndClient)) { 922 WinSendMsg(hwndClient, UM_RESTORE, MPFROMLONG(fl), MPVOID); 1203 923 } 1204 924 return hwndClient; 1205 925 1206 } 926 } // CreateDataBar 1207 927 1208 928 //=== dataminThread - drive status thread === 1209 929 1210 static VOID dataminThread (VOID *pv)930 static VOID dataminThread(VOID * pv) 1211 931 { 1212 HAB 1213 HMQ 1214 HWND hwndParent = (HWND)pv;1215 HWND 1216 HENUM 932 HAB hab = NULLHANDLE; 933 HMQ hmq = NULLHANDLE; 934 HWND hwndParent = (HWND) pv; 935 HWND hwnd; 936 HENUM henum; 1217 937 BOOL busy = TRUE; 1218 938 APIRET rc; 1219 939 USHORT id; 1220 940 1221 if (G_hevDataMin == NULLHANDLE) 1222 { 941 if (G_hevDataMin == NULLHANDLE) { 1223 942 // Create just once for any thread that might use it 1224 943 // Kernel will clean up on exit 1225 rc = DosCreateEventSem(NULL, (PHEV)&G_hevDataMin,0L,FALSE);944 rc = DosCreateEventSem(NULL, (PHEV) & G_hevDataMin, 0L, FALSE); 1226 945 if (rc) { 1227 Dos_Error(MB_ENTER, 1228 rc, 1229 HWND_DESKTOP, 1230 pszSrcFile, 1231 __LINE__, 1232 "Create Semaphore failed" // GetPString(IDS_CREATESEMFAILED) 1233 ); 946 Dos_Error(MB_ENTER, rc, HWND_DESKTOP, pszSrcFile, __LINE__, "Create Semaphore failed" // GetPString(IDS_CREATESEMFAILED) 947 ); 1234 948 busy = FALSE; 1235 949 } … … 1240 954 if (hab == NULLHANDLE) 1241 955 busy = FALSE; 1242 else 1243 { 1244 hmq = WinCreateMsgQueue(hab,0); 956 else { 957 hmq = WinCreateMsgQueue(hab, 0); 1245 958 if (hmq == NULLHANDLE) 1246 959 busy = FALSE; 1247 960 else 1248 WinCancelShutdown(hmq, TRUE);961 WinCancelShutdown(hmq, TRUE); 1249 962 } 1250 963 1251 while (busy) 1252 { 964 while (busy) { 1253 965 HWND hwndSingle = G_hwndSingle; 966 1254 967 G_hwndSingle = NULLHANDLE; 1255 968 1256 969 busy = FALSE; 1257 970 1258 if (!WinIsWindow(hab, hwndParent))971 if (!WinIsWindow(hab, hwndParent)) 1259 972 break; 1260 973 1261 974 henum = WinBeginEnumWindows(hwndParent); 1262 while(henum && (hwnd = WinGetNextWindow(henum)) != NULLHANDLE) 1263 { 1264 if (!WinIsWindow(hab,hwnd)) 975 while (henum && (hwnd = WinGetNextWindow(henum)) != NULLHANDLE) { 976 if (!WinIsWindow(hab, hwnd)) 1265 977 continue; 1266 978 if (hwndSingle && hwndSingle != hwnd) 1267 979 continue; 1268 id = WinQueryWindowUShort(hwnd,QWS_ID); 1269 if (id > MINI_DRIVEA ) 1270 { 980 id = WinQueryWindowUShort(hwnd, QWS_ID); 981 if (id > MINI_DRIVEA) { 1271 982 ULONG dskNum = id - MINI_DRIVEA + 1; 1272 983 tDataMin *pDM = WinQueryWindowPtr(hwnd, QWL_DATAMIN_PTR); 1273 984 SWP swp; 1274 985 CHAR szPath[] = " :"; 986 1275 987 if (!pDM) 1276 988 continue; … … 1280 992 1281 993 DosError(FERR_DISABLEHARDERR); 1282 pDM -> qfsi_rc = DosQueryFSInfo(dskNum, 1283 FSIL_ALLOC, 1284 &pDM -> fsa, 1285 sizeof(FSALLOCATE)); 1286 1287 if (!pDM -> qfsi_rc) 1288 { 994 pDM->qfsi_rc = DosQueryFSInfo(dskNum, 995 FSIL_ALLOC, 996 &pDM->fsa, sizeof(FSALLOCATE)); 997 998 if (!pDM->qfsi_rc) { 1289 999 *szPath = (CHAR) dskNum + 'A' - 1; 1290 pDM ->qfsa_cb = sizeof(FSQBUFFER2) + 256; // se tDataMin1000 pDM->qfsa_cb = sizeof(FSQBUFFER2) + 256; // se tDataMin 1291 1001 DosError(FERR_DISABLEHARDERR); 1292 pDM -> qfsa_rc = DosQueryFSAttach(szPath, 1293 0, /* Ordinal */ 1294 FSAIL_QUERYNAME, 1295 &pDM -> fsqb2, 1296 &pDM -> qfsa_cb); 1002 pDM->qfsa_rc = DosQueryFSAttach(szPath, 0, /* Ordinal */ 1003 FSAIL_QUERYNAME, 1004 &pDM->fsqb2, &pDM->qfsa_cb); 1297 1005 } 1298 1006 WinInvalidateRect(hwnd, NULL, FALSE); 1299 } 1300 } 1007 } // if drive window 1008 } // while henum 1301 1009 WinEndEnumWindows(henum); 1302 1010 1303 if (busy) 1304 { 1011 if (busy) { 1305 1012 ULONG clPosted; 1306 rc = DosWaitEventSem(G_hevDataMin,20000L); 1307 if (rc && rc != ERROR_TIMEOUT) 1308 { 1309 Dos_Error(MB_ENTER, 1310 rc, 1311 HWND_DESKTOP, 1312 pszSrcFile, 1313 __LINE__, 1314 "Wait Semaphore failed" // GetPString(IDS_POSTSEMFAILED) 1315 ); 1316 } 1317 1318 rc = DosResetEventSem(G_hevDataMin,&clPosted); 1319 if (rc && rc != ERROR_ALREADY_RESET) 1320 { 1321 Dos_Error(MB_ENTER, 1322 rc, 1323 HWND_DESKTOP, 1324 pszSrcFile, 1325 __LINE__, 1326 "Reset Semaphore failed" // GetPString(IDS_POSTSEMFAILED) 1327 ); 1328 } 1329 } 1330 1331 } // while 1013 1014 rc = DosWaitEventSem(G_hevDataMin, 20000L); 1015 if (rc && rc != ERROR_TIMEOUT) { 1016 Dos_Error(MB_ENTER, rc, HWND_DESKTOP, pszSrcFile, __LINE__, "Wait Semaphore failed" // GetPString(IDS_POSTSEMFAILED) 1017 ); 1018 } 1019 1020 rc = DosResetEventSem(G_hevDataMin, &clPosted); 1021 if (rc && rc != ERROR_ALREADY_RESET) { 1022 Dos_Error(MB_ENTER, rc, HWND_DESKTOP, pszSrcFile, __LINE__, "Reset Semaphore failed" // GetPString(IDS_POSTSEMFAILED) 1023 ); 1024 } 1025 } 1026 1027 } // while 1332 1028 1333 1029 if (hmq != NULLHANDLE) … … 1337 1033 WinTerminate(hab); 1338 1034 1339 } 1035 } // dataminThread
Note:
See TracChangeset
for help on using the changeset viewer.