Ignore:
Timestamp:
Nov 16, 2001, 1:57:45 PM (24 years ago)
Author:
phaller
Message:

.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/shell32/pidl.c

    r7156 r7359  
    4343
    4444
    45 /****************************************************************************
    46  * local prototypes
    47  ****************************************************************************/
    48 
    49 LPITEMIDLIST _Optlink ODIN_ILGetNext(LPITEMIDLIST pidl);
    50 LPITEMIDLIST _Optlink ODIN_ILClone  (LPCITEMIDLIST pidl);
    51 DWORD        _Optlink ODIN_ILGetSize(LPITEMIDLIST pidl);
    52 
    53 void         _Optlink ODIN_SHFree   (LPVOID x);
    54 LPVOID       _Optlink ODIN_SHAlloc  (DWORD len);
    55 
    56 
     45#define ODIN_ILGETNEXT(pidl) \
     46  (pidl ? ( pidl->mkid.cb ? (LPITEMIDLIST) (((LPBYTE)pidl)+pidl->mkid.cb) : NULL) : NULL)
    5747
    5848#if defined( __WIN32OS2__) && defined(DEBUG)
     
    9787                       pidltemp, pidltemp->mkid.cb,type,dwAttrib,szName,debugstr_a(szLongName), debugstr_a(szShortName));
    9888
    99               pidltemp = ODIN_ILGetNext(pidltemp);
     89              pidltemp = ODIN_ILGETNEXT(pidltemp);
    10090
    10191            } while (pidltemp->mkid.cb);
     
    165155              }
    166156            }
    167             pidltemp = ODIN_ILGetNext(pidltemp);
     157            pidltemp = ODIN_ILGETNEXT(pidltemp);
    168158          } while (pidltemp->mkid.cb);
    169159        }
     
    198188        {
    199189          pidlLast = pidl;
    200           pidl = ODIN_ILGetNext(pidl);
     190          pidl = ODIN_ILGETNEXT(pidl);
    201191        }
    202192        return pidlLast;               
     
    233223    return NULL;
    234224   
    235   len = ODIN_ILGetSize(pidl);
    236   newpidl = (LPITEMIDLIST)ODIN_SHAlloc(len);
     225  len = ILGetSize(pidl);
     226  newpidl = (LPITEMIDLIST)SHAlloc(len);
    237227  if (newpidl)
    238228    memcpy(newpidl,pidl,len);
     
    260250        {
    261251          len = pidl->mkid.cb; 
    262           pidlNew = (LPITEMIDLIST) ODIN_SHAlloc (len+2);
     252          pidlNew = (LPITEMIDLIST) SHAlloc (len+2);
    263253          if (pidlNew)
    264254          {
     
    266256
    267257            if (len)
    268               ODIN_ILGetNext(pidlNew)->mkid.cb = 0x00;
     258              ODIN_ILGETNEXT(pidlNew)->mkid.cb = 0x00;
    269259          }
    270260        }
     
    291281
    292282        if (*ppPidl)
    293         { ODIN_SHFree(*ppPidl);
     283        { SHFree(*ppPidl);
    294284          *ppPidl = NULL;
    295285        }
     
    298288
    299289        if (SUCCEEDED(IStream_Read(pStream, (LPVOID)&wLen, 2, &dwBytesRead)))
    300         { *ppPidl = ODIN_SHAlloc (wLen);
     290        { *ppPidl = SHAlloc (wLen);
    301291          if (SUCCEEDED(IStream_Read(pStream, *ppPidl , wLen, &dwBytesRead)))
    302292          { ret = S_OK;
    303293          }
    304294          else
    305           { ODIN_SHFree(*ppPidl);
     295          { SHFree(*ppPidl);
    306296            *ppPidl = NULL;
    307297          }
     
    310300        /* we are not yet fully compatible */
    311301        if (!pcheck(*ppPidl))
    312         { ODIN_SHFree(*ppPidl);
     302        { SHFree(*ppPidl);
    313303          *ppPidl = NULL;
    314304        }
     
    342332        {
    343333          wLen += sizeof(WORD) + pidl->mkid.cb;
    344           pidl = ODIN_ILGetNext(pidl);
     334          pidl = ODIN_ILGETNEXT(pidl);
    345335        }
    346336
     
    448438          return NULL;
    449439   
    450         len = ODIN_ILGetSize(pidl);
     440        len = ILGetSize(pidl);
    451441        newpidl = (LPITEMIDLIST)pCOMCTL32_Alloc(len);
    452442        if (newpidl)
     
    497487              return FALSE;
    498488
    499             pidl1 = ODIN_ILGetNext(pidl1);
    500             pidl2 = ODIN_ILGetNext(pidl2);
     489            pidl1 = ODIN_ILGETNEXT(pidl1);
     490            pidl2 = ODIN_ILGETNEXT(pidl2);
    501491        }
    502492 
     
    537527            return FALSE;
    538528
    539           pParent = ODIN_ILGetNext(pParent);
    540           pChild = ODIN_ILGetNext(pChild);
     529          pParent = ODIN_ILGETNEXT(pParent);
     530          pChild = ODIN_ILGETNEXT(pChild);
    541531        }       
    542532       
     
    544534          return FALSE;
    545535       
    546         if ( ODIN_ILGetNext(pChild)->mkid.cb && bImmediate)     /* not immediate descent */
     536        if ( ODIN_ILGETNEXT(pChild)->mkid.cb && bImmediate)     /* not immediate descent */
    547537          return FALSE;
    548538       
     
    598588              break;
    599589
    600             pidltemp1 = ODIN_ILGetNext(pidltemp1);
    601             pidltemp2 = ODIN_ILGetNext(pidltemp2);
     590            pidltemp1 = ODIN_ILGETNEXT(pidltemp1);
     591            pidltemp2 = ODIN_ILGETNEXT(pidltemp2);
    602592            ret = pidltemp2;   
    603593          }
     
    635625        if(!pidl1)
    636626        {
    637           pidlNew = ODIN_ILClone(pidl2);
     627          pidlNew = ILClone(pidl2);
    638628          return pidlNew;
    639629        }
     
    641631        if(!pidl2)
    642632        {
    643           pidlNew = ODIN_ILClone(pidl1);
     633          pidlNew = ILClone(pidl1);
    644634          return pidlNew;
    645635        }
    646636
    647         len1  = ODIN_ILGetSize(pidl1)-2;
    648         len2  = ODIN_ILGetSize(pidl2);
    649         pidlNew  = ODIN_SHAlloc(len1+len2);
     637        len1  = ILGetSize(pidl1)-2;
     638        len2  = ILGetSize(pidl2);
     639        pidlNew  = SHAlloc(len1+len2);
    650640
    651641        if (pidlNew)
     
    729719
    730720/*************************************************************************
    731  * ODIN_ILGetNext [SHELL32.153]
     721 * ODIN_ILGETNEXT [SHELL32.153]
    732722 *  gets the next simple pidl of a complex pidl
    733723 *
     
    741731              LPITEMIDLIST, pidl)
    742732{
     733#ifdef __WIN32OS2__
     734  return ODIN_ILGETNEXT(pidl);
     735#else
    743736  WORD len;
    744737
     
    750743  }
    751744  return NULL;
     745#endif
    752746}
    753747/*************************************************************************
     
    774768        if (_ILIsDesktop(pidl))
    775769        {
    776            idlRet = ODIN_ILClone(item);
     770           idlRet = ILClone(item);
    777771           if (pidl)
    778              ODIN_SHFree (pidl);
     772             SHFree (pidl);
    779773           return idlRet;
    780774        }
     
    789783        }
    790784
    791         ODIN_SHFree(pidl);
     785        SHFree(pidl);
    792786        return idlRet;
    793787}
     
    805799  if(!pidl)
    806800    return FALSE;
    807   ODIN_SHFree(pidl);
     801  SHFree(pidl);
    808802  return TRUE;
    809803}
     
    11811175          /* we are on desktop level */
    11821176          if (ppidlLast)
    1183             *ppidlLast = ODIN_ILClone(pidl);
     1177            *ppidlLast = ILClone(pidl);
    11841178          hr = SHGetDesktopFolder((IShellFolder**)ppv);
    11851179        }
    11861180        else
    11871181        {
    1188           pidlChild =  ODIN_ILClone(ILFindLastID(pidl));
    1189           pidlParent = ODIN_ILClone(pidl);
     1182          pidlChild =  ILClone(ILFindLastID(pidl));
     1183          pidlParent = ILClone(pidl);
    11901184          ILRemoveLastID(pidlParent);
    11911185
     
    12001194            ILFree (pidlChild);
    12011195
    1202           ODIN_SHFree (pidlParent);
     1196          SHFree (pidlParent);
    12031197          if (psf) IShellFolder_Release(psf);
    12041198        }
     
    14101404        }
    14111405
    1412         if(!(pidlOut = ODIN_SHAlloc(uSize + 2))) return NULL;
     1406        if(!(pidlOut = SHAlloc(uSize + 2))) return NULL;
    14131407        ZeroMemory(pidlOut, uSize + 2);
    14141408        pidlOut->mkid.cb = uSize;
     
    14461440        }
    14471441       
    1448         pidlTemp = ODIN_ILGetNext(pidlOut);
     1442        pidlTemp = ODIN_ILGETNEXT(pidlOut);
    14491443        if (pidlTemp)
    14501444          pidlTemp->mkid.cb = 0x00;
     
    14661460
    14671461        if(_ILIsMyComputer(pidl))
    1468           pidl = ODIN_ILGetNext(pidl);
     1462          pidl = ODIN_ILGETNEXT(pidl);
    14691463
    14701464        if (pidl && _ILIsDrive(pidl))
     
    20222016        if(apidl)
    20232017        {
    2024           for(i = 0; i < cidl; i++) ODIN_SHFree(apidl[i]);
    2025           ODIN_SHFree(apidl);
     2018          for(i = 0; i < cidl; i++) SHFree(apidl[i]);
     2019          SHFree(apidl);
    20262020        }
    20272021}
     
    20352029{
    20362030        int i;
    2037         LPITEMIDLIST * apidldest = (LPITEMIDLIST*)ODIN_SHAlloc(cidl * sizeof(LPITEMIDLIST));
     2031        LPITEMIDLIST * apidldest = (LPITEMIDLIST*)SHAlloc(cidl * sizeof(LPITEMIDLIST));
    20382032        if(!apidlsrc) return NULL;
    20392033
    20402034        for(i = 0; i < cidl; i++)
    2041           apidldest[i] = ODIN_ILClone(apidlsrc[i]);
     2035          apidldest[i] = ILClone(apidlsrc[i]);
    20422036
    20432037        return apidldest;
     
    20522046{
    20532047        int i;
    2054         LPITEMIDLIST * dst = (LPITEMIDLIST*)ODIN_SHAlloc(cida->cidl * sizeof(LPITEMIDLIST));
     2048        LPITEMIDLIST * dst = (LPITEMIDLIST*)SHAlloc(cida->cidl * sizeof(LPITEMIDLIST));
    20552049
    20562050        if(!dst) return NULL;
    20572051
    20582052        if (pidl)
    2059           *pidl = ODIN_ILClone((LPITEMIDLIST)(&((LPBYTE)cida)[cida->aoffset[0]]));
     2053          *pidl = ILClone((LPITEMIDLIST)(&((LPBYTE)cida)[cida->aoffset[0]]));
    20602054
    20612055        for(i = 0; i < cida->cidl; i++)
    2062           dst[i] = ODIN_ILClone((LPITEMIDLIST)(&((LPBYTE)cida)[cida->aoffset[i + 1]]));
     2056          dst[i] = ILClone((LPITEMIDLIST)(&((LPBYTE)cida)[cida->aoffset[i + 1]]));
    20632057
    20642058        return dst;
Note: See TracChangeset for help on using the changeset viewer.