Changeset 7359 for trunk/src/shell32/pidl.c
- Timestamp:
- Nov 16, 2001, 1:57:45 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/shell32/pidl.c
r7156 r7359 43 43 44 44 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) 57 47 58 48 #if defined( __WIN32OS2__) && defined(DEBUG) … … 97 87 pidltemp, pidltemp->mkid.cb,type,dwAttrib,szName,debugstr_a(szLongName), debugstr_a(szShortName)); 98 88 99 pidltemp = ODIN_ILG etNext(pidltemp);89 pidltemp = ODIN_ILGETNEXT(pidltemp); 100 90 101 91 } while (pidltemp->mkid.cb); … … 165 155 } 166 156 } 167 pidltemp = ODIN_ILG etNext(pidltemp);157 pidltemp = ODIN_ILGETNEXT(pidltemp); 168 158 } while (pidltemp->mkid.cb); 169 159 } … … 198 188 { 199 189 pidlLast = pidl; 200 pidl = ODIN_ILG etNext(pidl);190 pidl = ODIN_ILGETNEXT(pidl); 201 191 } 202 192 return pidlLast; … … 233 223 return NULL; 234 224 235 len = ODIN_ILGetSize(pidl);236 newpidl = (LPITEMIDLIST) ODIN_SHAlloc(len);225 len = ILGetSize(pidl); 226 newpidl = (LPITEMIDLIST)SHAlloc(len); 237 227 if (newpidl) 238 228 memcpy(newpidl,pidl,len); … … 260 250 { 261 251 len = pidl->mkid.cb; 262 pidlNew = (LPITEMIDLIST) ODIN_SHAlloc (len+2);252 pidlNew = (LPITEMIDLIST) SHAlloc (len+2); 263 253 if (pidlNew) 264 254 { … … 266 256 267 257 if (len) 268 ODIN_ILG etNext(pidlNew)->mkid.cb = 0x00;258 ODIN_ILGETNEXT(pidlNew)->mkid.cb = 0x00; 269 259 } 270 260 } … … 291 281 292 282 if (*ppPidl) 293 { ODIN_SHFree(*ppPidl);283 { SHFree(*ppPidl); 294 284 *ppPidl = NULL; 295 285 } … … 298 288 299 289 if (SUCCEEDED(IStream_Read(pStream, (LPVOID)&wLen, 2, &dwBytesRead))) 300 { *ppPidl = ODIN_SHAlloc (wLen);290 { *ppPidl = SHAlloc (wLen); 301 291 if (SUCCEEDED(IStream_Read(pStream, *ppPidl , wLen, &dwBytesRead))) 302 292 { ret = S_OK; 303 293 } 304 294 else 305 { ODIN_SHFree(*ppPidl);295 { SHFree(*ppPidl); 306 296 *ppPidl = NULL; 307 297 } … … 310 300 /* we are not yet fully compatible */ 311 301 if (!pcheck(*ppPidl)) 312 { ODIN_SHFree(*ppPidl);302 { SHFree(*ppPidl); 313 303 *ppPidl = NULL; 314 304 } … … 342 332 { 343 333 wLen += sizeof(WORD) + pidl->mkid.cb; 344 pidl = ODIN_ILG etNext(pidl);334 pidl = ODIN_ILGETNEXT(pidl); 345 335 } 346 336 … … 448 438 return NULL; 449 439 450 len = ODIN_ILGetSize(pidl);440 len = ILGetSize(pidl); 451 441 newpidl = (LPITEMIDLIST)pCOMCTL32_Alloc(len); 452 442 if (newpidl) … … 497 487 return FALSE; 498 488 499 pidl1 = ODIN_ILG etNext(pidl1);500 pidl2 = ODIN_ILG etNext(pidl2);489 pidl1 = ODIN_ILGETNEXT(pidl1); 490 pidl2 = ODIN_ILGETNEXT(pidl2); 501 491 } 502 492 … … 537 527 return FALSE; 538 528 539 pParent = ODIN_ILG etNext(pParent);540 pChild = ODIN_ILG etNext(pChild);529 pParent = ODIN_ILGETNEXT(pParent); 530 pChild = ODIN_ILGETNEXT(pChild); 541 531 } 542 532 … … 544 534 return FALSE; 545 535 546 if ( ODIN_ILG etNext(pChild)->mkid.cb && bImmediate) /* not immediate descent */536 if ( ODIN_ILGETNEXT(pChild)->mkid.cb && bImmediate) /* not immediate descent */ 547 537 return FALSE; 548 538 … … 598 588 break; 599 589 600 pidltemp1 = ODIN_ILG etNext(pidltemp1);601 pidltemp2 = ODIN_ILG etNext(pidltemp2);590 pidltemp1 = ODIN_ILGETNEXT(pidltemp1); 591 pidltemp2 = ODIN_ILGETNEXT(pidltemp2); 602 592 ret = pidltemp2; 603 593 } … … 635 625 if(!pidl1) 636 626 { 637 pidlNew = ODIN_ILClone(pidl2);627 pidlNew = ILClone(pidl2); 638 628 return pidlNew; 639 629 } … … 641 631 if(!pidl2) 642 632 { 643 pidlNew = ODIN_ILClone(pidl1);633 pidlNew = ILClone(pidl1); 644 634 return pidlNew; 645 635 } 646 636 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); 650 640 651 641 if (pidlNew) … … 729 719 730 720 /************************************************************************* 731 * ODIN_ILG etNext[SHELL32.153]721 * ODIN_ILGETNEXT [SHELL32.153] 732 722 * gets the next simple pidl of a complex pidl 733 723 * … … 741 731 LPITEMIDLIST, pidl) 742 732 { 733 #ifdef __WIN32OS2__ 734 return ODIN_ILGETNEXT(pidl); 735 #else 743 736 WORD len; 744 737 … … 750 743 } 751 744 return NULL; 745 #endif 752 746 } 753 747 /************************************************************************* … … 774 768 if (_ILIsDesktop(pidl)) 775 769 { 776 idlRet = ODIN_ILClone(item);770 idlRet = ILClone(item); 777 771 if (pidl) 778 ODIN_SHFree (pidl);772 SHFree (pidl); 779 773 return idlRet; 780 774 } … … 789 783 } 790 784 791 ODIN_SHFree(pidl);785 SHFree(pidl); 792 786 return idlRet; 793 787 } … … 805 799 if(!pidl) 806 800 return FALSE; 807 ODIN_SHFree(pidl);801 SHFree(pidl); 808 802 return TRUE; 809 803 } … … 1181 1175 /* we are on desktop level */ 1182 1176 if (ppidlLast) 1183 *ppidlLast = ODIN_ILClone(pidl);1177 *ppidlLast = ILClone(pidl); 1184 1178 hr = SHGetDesktopFolder((IShellFolder**)ppv); 1185 1179 } 1186 1180 else 1187 1181 { 1188 pidlChild = ODIN_ILClone(ILFindLastID(pidl));1189 pidlParent = ODIN_ILClone(pidl);1182 pidlChild = ILClone(ILFindLastID(pidl)); 1183 pidlParent = ILClone(pidl); 1190 1184 ILRemoveLastID(pidlParent); 1191 1185 … … 1200 1194 ILFree (pidlChild); 1201 1195 1202 ODIN_SHFree (pidlParent);1196 SHFree (pidlParent); 1203 1197 if (psf) IShellFolder_Release(psf); 1204 1198 } … … 1410 1404 } 1411 1405 1412 if(!(pidlOut = ODIN_SHAlloc(uSize + 2))) return NULL;1406 if(!(pidlOut = SHAlloc(uSize + 2))) return NULL; 1413 1407 ZeroMemory(pidlOut, uSize + 2); 1414 1408 pidlOut->mkid.cb = uSize; … … 1446 1440 } 1447 1441 1448 pidlTemp = ODIN_ILG etNext(pidlOut);1442 pidlTemp = ODIN_ILGETNEXT(pidlOut); 1449 1443 if (pidlTemp) 1450 1444 pidlTemp->mkid.cb = 0x00; … … 1466 1460 1467 1461 if(_ILIsMyComputer(pidl)) 1468 pidl = ODIN_ILG etNext(pidl);1462 pidl = ODIN_ILGETNEXT(pidl); 1469 1463 1470 1464 if (pidl && _ILIsDrive(pidl)) … … 2022 2016 if(apidl) 2023 2017 { 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); 2026 2020 } 2027 2021 } … … 2035 2029 { 2036 2030 int i; 2037 LPITEMIDLIST * apidldest = (LPITEMIDLIST*) ODIN_SHAlloc(cidl * sizeof(LPITEMIDLIST));2031 LPITEMIDLIST * apidldest = (LPITEMIDLIST*)SHAlloc(cidl * sizeof(LPITEMIDLIST)); 2038 2032 if(!apidlsrc) return NULL; 2039 2033 2040 2034 for(i = 0; i < cidl; i++) 2041 apidldest[i] = ODIN_ILClone(apidlsrc[i]);2035 apidldest[i] = ILClone(apidlsrc[i]); 2042 2036 2043 2037 return apidldest; … … 2052 2046 { 2053 2047 int i; 2054 LPITEMIDLIST * dst = (LPITEMIDLIST*) ODIN_SHAlloc(cida->cidl * sizeof(LPITEMIDLIST));2048 LPITEMIDLIST * dst = (LPITEMIDLIST*)SHAlloc(cida->cidl * sizeof(LPITEMIDLIST)); 2055 2049 2056 2050 if(!dst) return NULL; 2057 2051 2058 2052 if (pidl) 2059 *pidl = ODIN_ILClone((LPITEMIDLIST)(&((LPBYTE)cida)[cida->aoffset[0]]));2053 *pidl = ILClone((LPITEMIDLIST)(&((LPBYTE)cida)[cida->aoffset[0]])); 2060 2054 2061 2055 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]])); 2063 2057 2064 2058 return dst;
Note:
See TracChangeset
for help on using the changeset viewer.