Changeset 10185 for trunk/src/shell32


Ignore:
Timestamp:
Jul 28, 2003, 1:35:32 PM (22 years ago)
Author:
sandervl
Message:

Updates

Location:
trunk/src/shell32
Files:
2 edited

Legend:

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

    r9094 r10185  
    1 /* $Id: enumidlist.c,v 1.6 2002-08-22 14:20:44 sandervl Exp $ */
     1/* $Id: enumidlist.c,v 1.7 2003-07-28 11:28:56 sandervl Exp $ */
    22/*
    33 *      IEnumIDList
     
    202202              for (x = 0;x < count;x++)
    203203              {
     204                if ( !(dwFlags & SHCONTF_INCLUDEHIDDEN) && (stffile[x].dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) ) continue;
     205
    204206                if (stffile[x].dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    205207                { //directory
     
    247249              for (x = 0;x < count;x++)
    248250              {
     251                if ( !(dwFlags & SHCONTF_INCLUDEHIDDEN) && (stffile[x].dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) ) continue;
     252
    249253                if (! (stffile[x].dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) )
    250254                {
  • trunk/src/shell32/shlfolder.c

    r9885 r10185  
    235235 * This functions does not set flags!! It only resets flags when nessesary.
    236236 */
     237#include <dbglog.h>
    237238static HRESULT SHELL32_GetItemAttributes(
    238239        IShellFolder * psf,
     
    240241        LPDWORD pdwAttributes)
    241242{
     243#if 1
     244    GUID const *clsid;
     245    DWORD dwAttributes;
     246    DWORD dwSupportedAttr=SFGAO_CANCOPY |           /*0x00000001 */
     247                          SFGAO_CANMOVE |           /*0x00000002 */
     248                          SFGAO_CANLINK |           /*0x00000004 */
     249                          SFGAO_CANRENAME |         /*0x00000010 */
     250                          SFGAO_CANDELETE |         /*0x00000020 */
     251                          SFGAO_HASPROPSHEET |      /*0x00000040 */
     252                          SFGAO_DROPTARGET |        /*0x00000100 */
     253                          SFGAO_READONLY |          /*0x00040000 */
     254                          SFGAO_HIDDEN |            /*0x00080000 */
     255                          SFGAO_FILESYSANCESTOR |   /*0x10000000 */
     256                          SFGAO_FOLDER |            /*0x20000000 */
     257                          SFGAO_FILESYSTEM |        /*0x40000000 */
     258                          SFGAO_HASSUBFOLDER;       /*0x80000000 */
     259   
     260    TRACE ("0x%08lx\n", *pdwAttributes);
     261
     262    dprintf(("_ILGetTextPointer returned %s", _ILGetTextPointer(pidl)));
     263
     264    if (*pdwAttributes & ~dwSupportedAttr)
     265    {
     266        WARN ("attributes 0x%08lx not implemented\n", (*pdwAttributes & ~dwSupportedAttr));
     267        *pdwAttributes &= dwSupportedAttr;
     268    }
     269
     270    if (_ILIsDrive (pidl)) {
     271        *pdwAttributes &= SFGAO_HASSUBFOLDER|SFGAO_FILESYSTEM|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR|SFGAO_DROPTARGET|SFGAO_HASPROPSHEET|SFGAO_CANLINK;
     272    } else if ((clsid = _ILGetGUIDPointer (pidl))) {
     273        if (HCR_GetFolderAttributes (clsid, &dwAttributes)) {
     274            *pdwAttributes &= dwAttributes;
     275        } else {
     276            *pdwAttributes &= SFGAO_HASSUBFOLDER|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR|SFGAO_DROPTARGET|SFGAO_HASPROPSHEET|SFGAO_CANRENAME|SFGAO_CANLINK;
     277        }
     278    } else if (_ILGetDataPointer (pidl)) {
     279        dwAttributes = _ILGetFileAttributes (pidl, NULL, 0);
     280        *pdwAttributes &= ~SFGAO_FILESYSANCESTOR;
     281
     282        if (((SFGAO_FOLDER|SFGAO_HASSUBFOLDER) & *pdwAttributes) && !(dwAttributes & FILE_ATTRIBUTE_DIRECTORY))
     283            *pdwAttributes &= ~(SFGAO_FOLDER | SFGAO_HASSUBFOLDER);
     284
     285        if ((SFGAO_HIDDEN & *pdwAttributes) && !(dwAttributes & FILE_ATTRIBUTE_HIDDEN))
     286            *pdwAttributes &= ~SFGAO_HIDDEN;
     287
     288        if ((SFGAO_READONLY & *pdwAttributes) && !(dwAttributes & FILE_ATTRIBUTE_READONLY))
     289            *pdwAttributes &= ~SFGAO_READONLY;
     290    } else {
     291        *pdwAttributes &= SFGAO_HASSUBFOLDER|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR|SFGAO_DROPTARGET|SFGAO_HASPROPSHEET|SFGAO_CANRENAME|SFGAO_CANLINK;
     292    }
     293    TRACE ("-- 0x%08lx\n", *pdwAttributes);
     294    return S_OK;
     295#else
    242296        GUID const * clsid;
    243297        DWORD dwAttributes;
     
    284338        TRACE("-- 0x%08lx\n", *pdwAttributes);
    285339        return S_OK;
     340#endif
    286341}
    287342
     
    18091864             if (!SUCCEEDED(SHELL32_CoCreateInitSF (This->absPidl, pidl, clsid, riid, (LPVOID*)&pShellFolder)))
    18101865             {
     1866#ifdef __WIN32OS2__
     1867               //SvL: no implementation present, so just copy 'my computer'
     1868               if ( IsEqualIID(clsid, &CLSID_NetworkPlaces)) {
     1869                    pShellFolder = ISF_MyComputer_Constructor();
     1870               }
     1871#else
    18111872               return E_INVALIDARG;
     1873#endif
    18121874             }
    18131875          }
Note: See TracChangeset for help on using the changeset viewer.