Changeset 603
- Timestamp:
- Apr 6, 2007, 11:57:45 PM (18 years ago)
- Location:
- trunk/dll
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/arccnrs.c
r593 r603 33 33 14 Mar 07 SHL ArcObjWndProc/UM_ENTER: delay before starting viewer 34 34 30 Mar 07 GKY Remove GetPString for window class names 35 06 Apr 07 GKY Work around PM DragInfo and DrgFreeISH limit 36 06 Apr 07 GKY Add some error checking in drag/drop 35 37 ***********************************************************************/ 36 38 … … 1127 1129 cni.pDragInfo = (PDRAGINFO) mp1; 1128 1130 li = DoFileDrop(dcd->hwndCnr, 1129 dcd->directory, FALSE, MPVOID, MPFROMP(&cni)); 1131 dcd->directory, FALSE, MPVOID, MPFROMP(&cni)); 1132 if(fexceedpmdrglimit) 1133 saymsg(MB_CANCEL | MB_ICONEXCLAMATION, 1134 hwnd, 1135 GetPString(IDS_ERRORTEXT), 1136 GetPString(IDS_EXCEEDPMDRGLMT)); 1130 1137 if (li) { 1131 1138 li->type = (msg == DM_DISCARDOBJECT) ? IDM_DELETE : IDM_PRINT; … … 2999 3006 dcd->hwndObject, 3000 3007 mp2, dcd->arcname, NULL, TRUE)) { 3001 if ( fUnHilite && wasemphasized)3008 if ((fUnHilite && wasemphasized) || fexceedpmdrglimit) 3002 3009 UnHilite(hwnd, TRUE, &dcd->lastselection); 3003 3010 } … … 3028 3035 DosBeep(500, 100); // fixme to know why beep? 3029 3036 li = DoFileDrop(hwnd, dcd->arcname, FALSE, mp1, mp2); 3030 DosBeep(50, 100); // fixme to know why beep? 3037 DosBeep(50, 100); // fixme to know why beep? 3038 if(fexceedpmdrglimit) 3039 saymsg(MB_CANCEL | MB_ICONEXCLAMATION, 3040 hwnd, 3041 GetPString(IDS_ERRORTEXT), 3042 GetPString(IDS_EXCEEDPMDRGLMT)); 3031 3043 if (li) { 3032 3044 li->type = li->type == DO_MOVE ? IDM_ARCHIVEM : IDM_ARCHIVE; -
trunk/dll/avl.c
r551 r603 25 25 15 Aug 06 SHL Use Runtime_Error more 26 26 01 Nov 06 SHL Turn off leftover debug code 27 06 Apr 07 GKY Work around PM DragInfo and DrgFreeDISH limit 27 28 28 29 ***********************************************************************/ … … 673 674 MPFROMLONG(DMFL_TARGETSUCCESSFUL)); 674 675 } 676 DeleteDragitemStrHandles(pdinfo); // 675 677 DrgDeleteDraginfoStrHandles(pdinfo); 676 678 DrgFreeDraginfo(pdinfo); -
trunk/dll/collect.c
r593 r603 31 31 31 Aug 06 SHL Correct stop scan context menu enable/disable 32 32 30 Mar 07 GKY Remove GetPString for window class names 33 06 Apr 07 GKY Work around PM DragInfo and DrgFreeDISH limits 34 06 Apr 07 GKY Add some error checking in drag/drop 33 35 34 36 ***********************************************************************/ … … 457 459 cni.pDragInfo = (PDRAGINFO) mp1; 458 460 li = DoFileDrop(dcd->hwndCnr, NULL, FALSE, MPVOID, MPFROMP(&cni)); 461 if(fexceedpmdrglimit) 462 saymsg(MB_CANCEL | MB_ICONEXCLAMATION, 463 hwnd, 464 GetPString(IDS_ERRORTEXT), 465 GetPString(IDS_EXCEEDPMDRGLMT)); 459 466 if (li) { 460 467 li->type = (fDefaultDeletePerm) ? IDM_PERMDELETE : IDM_DELETE; … … 2106 2113 ULONG numitems; 2107 2114 USHORT usOperation; 2115 APIRET rc; 2108 2116 2109 2117 pci = (PCNRITEM) ((PCNRDRAGINFO) mp2)->pRecord; … … 2116 2124 numitems = DrgQueryDragitemCount(pDInfo); 2117 2125 usOperation = pDInfo->usOperation; 2118 DrgDeleteDraginfoStrHandles(pDInfo); 2119 DrgFreeDraginfo(pDInfo); 2126 rc = DeleteDragitemStrHandles(pDInfo); // 2127 if(!rc) 2128 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 2129 "DeleteDragitemStrHandles"); 2130 DrgDeleteDraginfoStrHandles (pDInfo); 2131 rc = DrgFreeDraginfo(pDInfo); 2132 if(!rc) 2133 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 2134 "DrgFreeDraginfo"); 2120 2135 saymsg(MB_ENTER | MB_ICONASTERISK, 2121 2136 hwnd, … … 2230 2245 GetPString(IDS_DRAGFILEOBJTEXT)); 2231 2246 if (DoFileDrag(hwnd, dcd->hwndObject, mp2, NULL, NULL, TRUE)) { 2232 if ( fUnHilite && wasemphasized)2247 if ((fUnHilite && wasemphasized) || fexceedpmdrglimit) 2233 2248 UnHilite(hwnd, TRUE, &dcd->lastselection); 2234 2249 } … … 2245 2260 ULONG action = UM_ACTION; 2246 2261 2247 li = DoFileDrop(hwnd, NULL, TRUE, mp1, mp2); 2262 li = DoFileDrop(hwnd, NULL, TRUE, mp1, mp2); 2263 if(fexceedpmdrglimit) 2264 saymsg(MB_CANCEL | MB_ICONEXCLAMATION, 2265 hwnd, 2266 GetPString(IDS_ERRORTEXT), 2267 GetPString(IDS_EXCEEDPMDRGLMT)); 2248 2268 if (li) { 2249 2269 if (!*li->targetpath) { -
trunk/dll/dircnrs.c
r593 r603 22 22 07 Jan 07 GKY Move error strings etc. to string file 23 23 30 Mar 07 GKY Remove GetPString for window class names 24 06 Apr 07 GKY Work around PM DragInfo and DrgFreeDISH limits 25 06 Apr 07 GKY Add some error checking in drag/drop 24 26 25 27 ***********************************************************************/ … … 587 589 DoFileDrop(dcd->hwndCnr, dcd->directory, FALSE, MPVOID, 588 590 MPFROMP(&cni)); 591 if(fexceedpmdrglimit) 592 saymsg(MB_CANCEL | MB_ICONEXCLAMATION, 593 hwnd, 594 GetPString(IDS_ERRORTEXT), 595 GetPString(IDS_EXCEEDPMDRGLMT)); 589 596 if (li) { 590 597 li->type = (fDefaultDeletePerm) ? IDM_PERMDELETE : IDM_DELETE; … … 1050 1057 { 1051 1058 DIRCNRDATA *dcd = WinQueryWindowPtr(hwnd, QWL_USER); 1059 APIRET rc; 1052 1060 1053 1061 switch (msg) { … … 2690 2698 numitems = DrgQueryDragitemCount(pDInfo); 2691 2699 usOperation = pDInfo->usOperation; 2692 DrgDeleteDraginfoStrHandles(pDInfo); 2693 DrgFreeDraginfo(pDInfo); 2700 rc = DeleteDragitemStrHandles(pDInfo); // 2701 if(!rc) 2702 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 2703 "DeleteDragitemStrHandles"); 2704 DrgDeleteDraginfoStrHandles (pDInfo); 2705 rc = DrgFreeDraginfo(pDInfo); 2706 if(!rc) 2707 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 2708 "DrgFreeDraginfo"); 2694 2709 saymsg(MB_ENTER | MB_ICONASTERISK, 2695 2710 hwnd, … … 2832 2847 (pci) ? NULL : dcd->directory, 2833 2848 (pci) ? TRUE : FALSE)) { 2834 if ( pci && fUnHilite && wasemphasized)2849 if ((pci && fUnHilite && wasemphasized) || fexceedpmdrglimit) 2835 2850 UnHilite(hwnd, TRUE, &dcd->lastselection); 2836 2851 } … … 2849 2864 ULONG action = UM_ACTION; 2850 2865 2851 li = DoFileDrop(hwnd, dcd->directory, TRUE, mp1, mp2); 2866 li = DoFileDrop(hwnd, dcd->directory, TRUE, mp1, mp2); 2867 if(fexceedpmdrglimit) 2868 saymsg(MB_CANCEL | MB_ICONEXCLAMATION, 2869 hwnd, 2870 GetPString(IDS_ERRORTEXT), 2871 GetPString(IDS_EXCEEDPMDRGLMT)); 2852 2872 if (li) { 2853 2873 if (li->list && li->list[0] && IsRoot(li->list[0])) -
trunk/dll/draglist.c
r551 r603 11 11 16 Oct 02 SHL DoFileDrag: don't free stack 12 12 26 Jul 06 SHL Check more run time errors 13 06 Apr 07 GKY Work around PM DragInfo and DrgFreeDISH limits 14 06 Apr 07 GKY Add DeleteDragitemStrHandles 15 06 Apr 07 GKY Add some error checking in drag/drop 13 16 14 17 ***********************************************************************/ … … 27 30 static PSZ pszSrcFile = __FILE__; 28 31 29 #pragma alloc_text(DRAGLIST,DragOne,DoFileDrag,DragList,PickUp) 32 #pragma alloc_text(DRAGLIST,DragOne,DoFileDrag,DragList,PickUp,DeleteDragitemStrHandles) 33 34 BOOL DeleteDragitemStrHandles (PDRAGINFO pDInfo) 35 { 36 PDRAGITEM pDItem = NULL; 37 ULONG cDitem; 38 INT i = 0; 39 cDitem = DrgQueryDragitemCount(pDInfo); 40 while (i < (INT) cDitem){ 41 pDItem = DrgQueryDragitemPtr(pDInfo, i); 42 if (pDItem){ 43 DrgDeleteStrHandle(pDItem->hstrType); 44 DrgDeleteStrHandle(pDItem->hstrRMF); 45 DrgDeleteStrHandle(pDItem->hstrContainerName); 46 DrgDeleteStrHandle(pDItem->hstrSourceName); 47 // Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 48 // "DrgAddStrHandle"); 49 DrgDeleteStrHandle(pDItem->hstrTargetName); 50 } 51 else 52 return FALSE; 53 i++; 54 } 55 return TRUE; 56 } 30 57 31 58 HWND DragOne(HWND hwndCnr, HWND hwndObj, CHAR * filename, BOOL moveok) … … 72 99 DItem.hstrContainerName = DrgAddStrHandle(szDir); 73 100 DItem.hstrSourceName = DrgAddStrHandle(szFile); 101 if(!DItem.hstrSourceName) 102 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 103 "DrgQueryStrName"); 74 104 DItem.hstrTargetName = DrgAddStrHandle(szFile); 75 105 DItem.fsControl = 0; … … 112 142 &fakeicon, 1L, VK_ENDDRAG, /* End of drag indicator */ 113 143 (PVOID) NULL); /* Reserved */ 114 115 DrgFreeDraginfo(pDInfo); /* Free DRAGINFO struct */ 144 if(hDrop == NULLHANDLE){ 145 if(!DeleteDragitemStrHandles(pDInfo)) //) 146 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 147 "DeleteDragistr"); 148 DrgDeleteDraginfoStrHandles (pDInfo); 149 DrgFreeDraginfo(pDInfo); /* Free DRAGINFO struct */ 150 } 116 151 WinSetWindowPos(hwndCnr, HWND_TOP, 0, 0, 0, 0, SWP_ACTIVATE); 117 152 } … … 137 172 CHAR szFile[CCHMAXPATH], szBuffer[CCHMAXPATH]; 138 173 DRAGIMAGE *padiIcon = NULL, *padiTest, diFakeIcon; 139 174 APIRET rc; 175 176 fexceedpmdrglimit = FALSE; 140 177 if (!pciRec && directory && *directory) 141 178 return DragOne(hwndCnr, hwndObj, directory, moveok); … … 238 275 ppDItem[ulNumfiles]->hstrContainerName = DrgAddStrHandle(szBuffer); 239 276 ppDItem[ulNumfiles]->hstrSourceName = DrgAddStrHandle(szFile); 277 if (!ppDItem[ulNumfiles]->hstrSourceName) 278 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 279 "DrgAddStrHandle"); 240 280 ppDItem[ulNumfiles]->hstrTargetName = DrgAddStrHandle(szFile); 241 281 ppDItem[ulNumfiles]->fsControl = (isdir) ? DC_CONTAINER : 0; … … 251 291 ppDItem[ulNumfiles]->fsSupportedOps = DO_LINKABLE; 252 292 rooting = TRUE; 253 } 293 } 294 if(ulNumfiles >= 1500){ 295 pDInfo = DrgAllocDraginfo(ulNumfiles); 296 fexceedpmdrglimit = TRUE; 297 goto Thatsall; 298 } 254 299 ulNumfiles++; 255 300 ppDItem[ulNumfiles] = NULL; … … 284 329 ppDItem[ulNumfiles]->hstrContainerName = DrgAddStrHandle(arcfile); 285 330 ppDItem[ulNumfiles]->hstrSourceName = DrgAddStrHandle(szFile); 331 if(!ppDItem[ulNumfiles]->hstrSourceName) 332 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 333 "DrgAddStrHandle"); 286 334 ppDItem[ulNumfiles]->hstrTargetName = DrgAddStrHandle(szFile); 287 335 ppDItem[ulNumfiles]->fsControl = DC_PREPARE; … … 302 350 ppDItem[ulNumfiles]->hstrContainerName = DrgAddStrHandle(arcfile); 303 351 ppDItem[ulNumfiles]->hstrSourceName = DrgAddStrHandle(szFile); 352 if(!ppDItem[ulNumfiles]->hstrSourceName) 353 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 354 "DrgAddStrHandle"); 304 355 ppDItem[ulNumfiles]->hstrTargetName = DrgAddStrHandle(szFile); 305 356 ppDItem[ulNumfiles]->fsControl = 0; … … 307 358 (driveflags[toupper(*arcfile) - 'A'] & DRIVE_REMOVABLE)) 308 359 ppDItem[ulNumfiles]->fsControl |= DC_REMOVEABLEMEDIA; 309 ppDItem[ulNumfiles]->fsSupportedOps = DO_COPYABLE; 360 ppDItem[ulNumfiles]->fsSupportedOps = DO_COPYABLE; 361 if(ulNumfiles >= 1500){ 362 pDInfo = DrgAllocDraginfo(ulNumfiles); 363 goto Thatsall; 364 } 310 365 ulNumfiles++; 311 366 } … … 326 381 if (ulNumfiles) { 327 382 pDInfo = DrgAllocDraginfo(ulNumfiles); /* Allocate DRAGINFO */ 383 Thatsall: 328 384 if (pDInfo) { 329 385 if ((arcfile && *arcfile) || (IsFullName(szBuffer) && … … 375 431 padiIcon, ulNumIcon, VK_ENDDRAG, /* End of drag indicator */ 376 432 (PVOID) NULL); /* Reserved */ 377 378 DrgFreeDraginfo(pDInfo); /* Free DRAGINFO struct */ 433 if(hDrop == NULLHANDLE){ 434 rc = DeleteDragitemStrHandles(pDInfo); // 435 if(!rc) 436 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 437 "DeleteDragistr"); 438 DrgDeleteDraginfoStrHandles (pDInfo); 439 rc = DrgFreeDraginfo(pDInfo); /* Free DRAGINFO struct */ 440 if(!rc) 441 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 442 "DrgFreeDraginfo"); 443 } 379 444 if (padiIcon && padiIcon != &diFakeIcon) 380 445 free(padiIcon); … … 478 543 ppDItem[ulNumfiles]->hstrContainerName = DrgAddStrHandle(szBuffer); 479 544 ppDItem[ulNumfiles]->hstrSourceName = DrgAddStrHandle(szFile); 545 if(!ppDItem[ulNumfiles]->hstrSourceName) 546 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 547 "DrgAddStrHandle"); 480 548 ppDItem[ulNumfiles]->hstrTargetName = DrgAddStrHandle(szFile); 481 549 ppDItem[ulNumfiles]->fsControl = (isdir) ? DC_CONTAINER : 0; … … 529 597 padiIcon, ulNumIcon, VK_ENDDRAG, /* End of drag indicator */ 530 598 (PVOID) NULL); /* Reserved */ 531 532 DrgFreeDraginfo(pDInfo); /* Free DRAGINFO struct */ 599 if(hDrop == NULLHANDLE){ 600 if(!DeleteDragitemStrHandles(pDInfo)) //) 601 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 602 "DeleteDragistr"); 603 DrgDeleteDraginfoStrHandles (pDInfo); 604 if(!DrgFreeDraginfo(pDInfo)); /* Free DRAGINFO struct */ 605 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 606 "DrgFreeDraginfo"); 607 } 533 608 free(padiIcon); 534 609 padiIcon = NULL; … … 601 676 ditem.hstrContainerName = DrgAddStrHandle(szDir); 602 677 ditem.hstrSourceName = DrgAddStrHandle(szFile); 678 if(!ditem.hstrSourceName) 679 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 680 "DrgAddStrHandle"); 603 681 ditem.hstrTargetName = DrgAddStrHandle(szFile); 604 682 ditem.fsControl = 0; -
trunk/dll/droplist.c
r593 r603 13 13 21 Jul 06 SHL Drop dup code 14 14 22 Jul 06 SHL Check more run time errors 15 06 Apr 07 GKY Work around PM DragInfo and DrgFreeDISH limits 16 06 Apr 07 GKY Add some error checking in drag/drop 15 17 16 18 ***********************************************************************/ … … 99 101 100 102 blen = DrgQueryStrName(pDItem->hstrContainerName, buflen, buffer); 101 if (blen) { 103 if(!blen) 104 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 105 "DrgQueryStrName"); 106 else { 102 107 if (*(buffer + (blen - 1)) != '\\') { 103 108 *(buffer + blen) = '\\'; … … 107 112 buffer[blen] = 0; 108 113 len = DrgQueryStrName(pDItem->hstrSourceName, 109 buflen - blen, buffer + blen); 114 buflen - blen, buffer + blen); 115 if(!len) 116 // printf("%s %d\n %s\n %d %X\n", pszSrcFile, __LINE__, pDItem->hstrSourceName, 117 // buflen - blen, buffer + blen); fflush(stdout); 118 // Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 119 // "DrgQueryStrName"); 110 120 buffer[blen + len] = 0; 111 121 { /* be sure we get full pathname of file/directory */ … … 144 154 register ULONG x; 145 155 BOOL ret = FALSE; 156 APIRET rc; 146 157 147 158 if (buffer && buflen) … … 168 179 MPFROMLONG(DMFL_TARGETFAIL)); 169 180 } 170 DrgDeleteDraginfoStrHandles(pDInfo); 171 DrgFreeDraginfo(pDInfo); /* Free DRAGINFO */ 181 rc = DeleteDragitemStrHandles(pDInfo); // 182 if(!rc) 183 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 184 "DeleteDragitemStrHandles"); 185 DrgDeleteDraginfoStrHandles (pDInfo); 186 rc = DrgFreeDraginfo(pDInfo); /* Free DRAGINFO */ 187 if(!rc) 188 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 189 "DrgFreeDraginfo"); 172 190 } 173 191 … … 180 198 PDRAGINFO pDInfo; /* Pointer to DRAGINFO */ 181 199 BOOL ret = FALSE; 200 APIRET rc; 182 201 183 202 pDInfo = (PDRAGINFO) mp1; /* Get DRAGINFO pointer */ … … 190 209 NULL)) /* formats */ 191 210 ret = TRUE; 192 DrgFreeDraginfo(pDInfo); 211 rc = DeleteDragitemStrHandles(pDInfo); // 212 if(!rc) 213 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 214 "DeleteDragitemStrHandles"); 215 DrgDeleteDraginfoStrHandles(pDInfo); 216 rc = DrgFreeDraginfo(pDInfo); 217 if(!rc) 218 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 219 "DrgFreeDraginfo"); 193 220 } 194 221 return ret; … … 199 226 PDRAGINFO pDInfo; 200 227 ULONG numitems; 228 APIRET rc; 201 229 202 230 pDInfo = mp1; … … 204 232 DrgAccessDraginfo(pDInfo); 205 233 numitems = DrgQueryDragitemCount(pDInfo); 234 rc = DeleteDragitemStrHandles(pDInfo); // 235 if(!rc) 236 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 237 "DeleteDragitemStrHandles"); 206 238 DrgDeleteDraginfoStrHandles(pDInfo); 207 DrgFreeDraginfo(pDInfo); 239 rc = DrgFreeDraginfo(pDInfo); 240 if(!rc) 241 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 242 "DrgFreeDraginfo"); 208 243 } 209 244 return numitems; … … 236 271 ARC_TYPE *arcinfo = NULL; 237 272 USHORT Operation; 273 APIRET rc; 238 274 239 275 *szArc = 0; … … 242 278 if (!pDInfo) 243 279 return NULL; 244 DrgAccessDraginfo(pDInfo); 280 rc = DrgAccessDraginfo(pDInfo); 281 if(!rc) 282 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 283 "DrgAccessDraginfo"); 245 284 Operation = pDInfo->usOperation; 246 285 pDItem = DrgQueryDragitemPtr(pDInfo, 0L); 286 if(!pDItem) 287 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 288 "DrgQueryDragitemPtr"); 247 289 if (Operation == DO_MOVE && !(pDItem->fsSupportedOps & DO_MOVEABLE)) { 248 290 saymsg(MB_ENTER, HWND_DESKTOP, GetPString(IDS_WARNINGTEXT), … … 424 466 FreeList(files); 425 467 } 468 rc = DeleteDragitemStrHandles(pDInfo); // 469 if(!rc) 470 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 471 "DeleteDragitemStrHandles"); 426 472 DrgDeleteDraginfoStrHandles(pDInfo); 427 473 DrgFreeDraginfo(pDInfo); -
trunk/dll/fm3dll.h
r593 r603 40 40 18 Mar 07 GKY Add MM import typedefines for fix for files misindentified as multimedia 41 41 30 Mar 07 GKY Defined golbals for removing GetPString for window class names 42 06 Apr 07 GKY Work around PM DragInfo and DrgFreeDISH limits fexceedpmgrglimit & DeleteDragitemStrHandles 43 06 Apr 07 GKY Add some error checking in drag/drop 42 44 43 45 ***********************************************************************/ … … 1056 1058 LISTINFO *DoFileDrop(HWND hwndCnr, CHAR * directory, BOOL arcfilesok, 1057 1059 MPARAM mp1, MPARAM mp2); 1060 BOOL DeleteDragitemStrHandles (PDRAGINFO pDInfo); 1058 1061 1059 1062 /* shadow.c */ … … 1342 1345 fCustomFileDlg, fSaveMiniCmds, fSaveBigCmds, fNoTileUpdate, 1343 1346 fFM2Deletes, fAutoAddAllDirs, fConfirmTarget, fChangeTarget, 1344 fFirstTime, fShowTarget, fNoFinger, fDrivebarHelp, fCheckMM ;1347 fFirstTime, fShowTarget, fNoFinger, fDrivebarHelp, fCheckMM, fexceedpmdrglimit; 1345 1348 DATADEF BOOL detailsladate, detailslatime, detailscrdate, detailscrtime, 1346 1349 detailslongname, detailsea, detailssize, detailssubject, -
trunk/dll/fm3dll.str
r593 r603 35 35 Error! 36 36 Can't start %s %s 37 37 Your Drag request exceeds the PM limit\n (For compatibility with 16 bit apps)\n The unprocessed objects are still selected in the\n source directory for additional processing\n See Drag & Drop in the help file for additional information 38 38 39 39 You are here --> x -
trunk/dll/fm3str.h
r593 r603 15 15 07 JAN 07 GKY Add new 16 16 31 Mar 07 GKY Removed IDS_WC window class names 17 06 Apr 07 GKY Add error message for drg work around 17 18 18 19 ***********************************************************************/ … … 62 63 #define IDS_ERRORTEXT 34 63 64 #define IDS_CANTSTARTTEXT 35 65 #define IDS_EXCEEDPMDRGLMT 36 64 66 #define IDS_YOUAREHERETEXT 38 65 67 #define IDS_FORCINGCOPYTEXT 39 -
trunk/dll/inis.c
r593 r603 16 16 22 Mar 07 GKY Use QWL_USER 17 17 30 Mar 07 GKY Remove GetPString for window class names 18 06 Apr 07 GKY Work around PM DragInfo and DrgFreeDISH limits 19 06 Apr 07 GKY Add some error checking in drag/drop 18 20 19 21 ***********************************************************************/ … … 1484 1486 PFNWP oldproc = (PFNWP) WinQueryWindowPtr(hwnd, QWL_USER); 1485 1487 static HWND hwndPopup = (HWND) 0; 1488 APIRET rc; 1486 1489 1487 1490 switch (msg) { … … 1534 1537 HPOINTER hptrINI; 1535 1538 USHORT id; 1539 HWND hDrop = 0; 1536 1540 1537 1541 id = WinQueryWindowUShort(hwnd, QWS_ID); … … 1567 1571 pDInfo = DrgAllocDraginfo(1L); 1568 1572 DrgSetDragitem(pDInfo, &DItem, sizeof(DRAGITEM), 0L); 1569 DrgDrag(hwnd, pDInfo, &DIcon, 1L, VK_ENDDRAG, (PVOID) NULL); 1573 hDrop = DrgDrag(hwnd, pDInfo, &DIcon, 1L, VK_ENDDRAG, (PVOID) NULL); 1574 DeleteDragitemStrHandles(pDInfo); // 1575 DrgDeleteDraginfoStrHandles (pDInfo); 1570 1576 DrgFreeDraginfo(pDInfo); 1571 1577 WinDestroyPointer(hptrINI); … … 1673 1679 curitem++; 1674 1680 } 1681 rc = DeleteDragitemStrHandles(pDInfo); // 1682 1683 if(!rc) 1684 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 1685 "DrgDeleteDraginfoStrHandles"); 1675 1686 DrgDeleteDraginfoStrHandles(pDInfo); 1676 DrgFreeDraginfo(pDInfo); 1687 rc = DrgFreeDraginfo(pDInfo); 1688 if(!rc) 1689 Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__, 1690 "DrgFreeDraginfo"); 1677 1691 } 1678 1692 return 0; -
trunk/dll/mainwnd.c
r593 r603 28 28 09 Mar 07 SHL RestoreDirCnrState/SaveDirCnrState: optimize and avoid overflows 29 29 30 Mar 07 GKY Remove GetPString for window class names 30 06 Apr 07 GKY Work around PM DragInfo and DrgFreeDISH limits 31 06 Apr 07 GKY Add some error checking in drag/drop 30 32 31 33 ***********************************************************************/ … … 1231 1233 cdi.pDragInfo = mp1; 1232 1234 li = DoFileDrop(hwnd, NULL, FALSE, mp1, MPFROMP(&cdi)); 1235 if(fexceedpmdrglimit) 1236 saymsg(MB_CANCEL | MB_ICONEXCLAMATION, 1237 hwnd, 1238 GetPString(IDS_ERRORTEXT), 1239 GetPString(IDS_EXCEEDPMDRGLMT)); 1233 1240 if (li) { 1234 1241 li->type = id; … … 1799 1806 NULL, 1800 1807 TRUE, MPFROM2SHORT(TREE_CNR, CN_DROP), MPFROMP(&cnd)); 1808 if(fexceedpmdrglimit) 1809 saymsg(MB_CANCEL | MB_ICONEXCLAMATION, 1810 hwnd, 1811 GetPString(IDS_ERRORTEXT), 1812 GetPString(IDS_EXCEEDPMDRGLMT)); 1801 1813 if (li) { 1802 1814 strcpy(li->targetpath, szDrv); -
trunk/dll/makelist.c
r551 r603 12 12 22 Jul 06 SHL Use Runtime_Error 13 13 22 Jul 06 SHL AddToList optimize 14 06 Apr 07 GKY Work around PM DragInfo and DrgFreeDISH limits 14 15 15 16 ***********************************************************************/ … … 74 75 FreeList(li->list); 75 76 free(li); 77 fexceedpmdrglimit = FALSE; 76 78 } 77 79 } -
trunk/dll/select.c
r551 r603 16 16 29 Jul 06 SHL Use xfgets_bstripcr 17 17 15 Aug 06 SHL Rework SetMask args and logic 18 06 Apr 07 GKY Work around PM DragInfo and DrgFreeDISH limits 18 19 19 20 ***********************************************************************/ … … 42 43 { 43 44 PCNRITEM pci; 44 INT numfiles = 0, numalloc = 0 ;45 INT numfiles = 0, numalloc = 0, x = 0; 45 46 INT attribute = CRA_CURSORED; 46 47 … … 60 61 MPFROM2SHORT(FALSE, CRA_SELECTED)); 61 62 if (!all) 62 break; 63 break; 64 if(fexceedpmdrglimit && x == 1499){ 65 fexceedpmdrglimit = FALSE; 66 break; 67 } 63 68 if (list) 64 69 AddToList(pci->szFileName, list, &numfiles, &numalloc); 65 70 pci = (PCNRITEM) WinSendMsg(hwndCnr, CM_QUERYRECORDEMPHASIS, 66 71 MPFROMP(pci), MPFROMSHORT(CRA_SELECTED)); 72 x++; 67 73 } 68 74 } -
trunk/dll/treecnr.c
r593 r603 26 26 09 Mar 07 GKY Use SelectDriveIcon 27 27 30 Mar 07 GKY Remove GetPString for window class names 28 06 Apr 07 GKY Work around PM DragInfo and DrgFreeDISH limits 29 06 Apr 07 GKY Add some error checking in drag/drop 28 30 29 31 ***********************************************************************/ … … 542 544 cni.pDragInfo = (PDRAGINFO) mp1; 543 545 li = DoFileDrop(dcd->hwndCnr, 544 dcd->directory, FALSE, MPVOID, MPFROMP(&cni)); 546 dcd->directory, FALSE, MPVOID, MPFROMP(&cni)); 547 if(fexceedpmdrglimit) 548 saymsg(MB_CANCEL | MB_ICONEXCLAMATION, 549 hwnd, 550 GetPString(IDS_ERRORTEXT), 551 GetPString(IDS_EXCEEDPMDRGLMT)); 545 552 if (li) { 546 553 li->type = ((fDefaultDeletePerm) ? IDM_PERMDELETE : IDM_DELETE); … … 1367 1374 ULONG action = UM_ACTION; 1368 1375 1369 li = DoFileDrop(hwnd, NULL, TRUE, mp1, mp2); 1376 li = DoFileDrop(hwnd, NULL, TRUE, mp1, mp2); 1377 if(fexceedpmdrglimit) 1378 saymsg(MB_CANCEL | MB_ICONEXCLAMATION, 1379 hwnd, 1380 GetPString(IDS_ERRORTEXT), 1381 GetPString(IDS_EXCEEDPMDRGLMT)); 1370 1382 if (li) { 1371 1383 if (!*li->targetpath) {
Note:
See TracChangeset
for help on using the changeset viewer.