Changeset 1461 for trunk/dll/draglist.c


Ignore:
Timestamp:
Sep 20, 2009, 12:13:11 AM (16 years ago)
Author:
Gregg Young
Message:

Suppress (spurious?) error message when dragging multiple items from pmmail to FM/2 (ticket 391)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/draglist.c

    r1453 r1461  
    7373{
    7474
    75 # ifdef  USE_FAST_FREE
    76   if (!DrgDeleteDraginfoStrHandles(pDInfo)) {
    77     Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
    78               "DrgDeleteDraginfoStrHandles");
    79   }
    80 # else // The slow way
    81   PDRAGITEM pDItem;
    82   ULONG cDitem;
    83   ULONG curitem;
    84   APIRET ok;
    85 
    86   cDitem = DrgQueryDragitemCount(pDInfo);
    87   for (curitem = 0; curitem < cDitem; curitem++) {
    88     pDItem = DrgQueryDragitemPtr(pDInfo, curitem);
    89     if (!pDItem) {
     75//# ifdef  USE_FAST_FREE
     76  if (IsFm2Window(pDInfo->hwndSource, FALSE)) {
     77    if (!DrgDeleteDraginfoStrHandles(pDInfo)) {
    9078      Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
    91                 "DrgQueryDragitemPtr(%u)", curitem);
    92     }
    93     else {
    94       ok = DrgDeleteStrHandle(pDItem->hstrType);
    95       if (!ok) {
    96         HAB hab = WinQueryAnchorBlock(hwnd);
    97         PERRINFO pErrInfoBlk = WinGetErrorInfo(hab);
    98         if (ERRORIDERROR(pErrInfoBlk->idError) != PMERR_INVALID_PARAMETER)
    99           Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
    100                     "DrgDeleteStrHandle(0x%x) hstrType",pDItem->hstrType);
    101       }
    102       ok = DrgDeleteStrHandle(pDItem->hstrRMF);
    103       if (!ok) {
    104         HAB hab = WinQueryAnchorBlock(hwnd);
    105         PERRINFO pErrInfoBlk = WinGetErrorInfo(hab);
    106         if (ERRORIDERROR(pErrInfoBlk->idError) != PMERR_INVALID_PARAMETER)
    107           Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
    108                     "DrgDeleteStrHandle(0x%x) hstrRMF",pDItem->hstrRMF);
    109       }
    110       ok = DrgDeleteStrHandle(pDItem->hstrContainerName);
    111       if (!ok) {
    112         HAB hab = WinQueryAnchorBlock(hwnd);
    113         PERRINFO pErrInfoBlk = WinGetErrorInfo(hab);
    114         if (ERRORIDERROR(pErrInfoBlk->idError) != PMERR_INVALID_PARAMETER)
    115           Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
    116                     "DrgDeleteStrHandle(0x%x) hstrContainerName",pDItem->hstrContainerName);
    117       }
    118       ok = DrgDeleteStrHandle(pDItem->hstrSourceName);
    119       if (!ok) {
    120         Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
    121                       "DrgDeleteStrHandle(0x%x) hstrSourceName",pDItem->hstrSourceName);
    122       }
    123       ok = DrgDeleteStrHandle(pDItem->hstrTargetName);
    124       if (!ok) {
    125         Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
    126                       "DrgDeleteStrHandle(0x%x) hstrTargetName",pDItem->hstrTargetName);
    127       }
    128     }
    129   } // for
    130 # endif
     79                "DrgDeleteDraginfoStrHandles");
     80    }
     81  }
     82  //# else // The slow way
     83  else {
     84    PDRAGITEM pDItem;
     85    ULONG cDitem;
     86    ULONG curitem;
     87    APIRET ok;
     88 
     89    cDitem = DrgQueryDragitemCount(pDInfo);
     90    for (curitem = 0; curitem < cDitem; curitem++) {
     91      pDItem = DrgQueryDragitemPtr(pDInfo, curitem);
     92      if (!pDItem) {
     93        Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
     94                  "DrgQueryDragitemPtr(%u)", curitem);
     95      }
     96      else {
     97        ok = DrgDeleteStrHandle(pDItem->hstrType);
     98        if (!ok) {
     99          HAB hab = WinQueryAnchorBlock(hwnd);
     100          PERRINFO pErrInfoBlk = WinGetErrorInfo(hab);
     101          if (ERRORIDERROR(pErrInfoBlk->idError) != PMERR_INVALID_PARAMETER)
     102            Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
     103                      "DrgDeleteStrHandle(0x%x) hstrType",pDItem->hstrType);
     104        }
     105        ok = DrgDeleteStrHandle(pDItem->hstrRMF);
     106        if (!ok) {
     107          HAB hab = WinQueryAnchorBlock(hwnd);
     108          PERRINFO pErrInfoBlk = WinGetErrorInfo(hab);
     109          if (ERRORIDERROR(pErrInfoBlk->idError) != PMERR_INVALID_PARAMETER)
     110            Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
     111                      "DrgDeleteStrHandle(0x%x) hstrRMF",pDItem->hstrRMF);
     112        }
     113        ok = DrgDeleteStrHandle(pDItem->hstrContainerName);
     114        if (!ok) {
     115          HAB hab = WinQueryAnchorBlock(hwnd);
     116          PERRINFO pErrInfoBlk = WinGetErrorInfo(hab);
     117          if (ERRORIDERROR(pErrInfoBlk->idError) != PMERR_INVALID_PARAMETER)
     118            Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
     119                      "DrgDeleteStrHandle(0x%x) hstrContainerName",pDItem->hstrContainerName);
     120        }
     121        ok = DrgDeleteStrHandle(pDItem->hstrSourceName);
     122        if (!ok) {
     123          Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
     124                        "DrgDeleteStrHandle(0x%x) hstrSourceName",pDItem->hstrSourceName);
     125        }
     126        ok = DrgDeleteStrHandle(pDItem->hstrTargetName);
     127        if (!ok) {
     128          Win_Error(hwnd, hwnd, pszSrcFile, __LINE__,
     129                        "DrgDeleteStrHandle(0x%x) hstrTargetName",pDItem->hstrTargetName);
     130        }
     131      }
     132    } // for
     133  }
     134//# endif
    131135  if (!DrgFreeDraginfo(pDInfo)) {
    132136    // PMERR_SOURCE_SAME_AS_TARGET is not an error if dragging within same fm/2 process
Note: See TracChangeset for help on using the changeset viewer.