Ignore:
Timestamp:
Mar 8, 2002, 12:01:03 PM (23 years ago)
Author:
sandervl
Message:

PH: Wine resync + OS2 integration

File:
1 edited

Legend:

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

    r7085 r8048  
    1 /* $Id: shell32_main.c,v 1.6 2001-10-17 09:15:21 phaller Exp $ */
     1/* $Id: shell32_main.c,v 1.7 2002-03-08 11:01:00 sandervl Exp $ */
    22/*
    33 *                              Shell basics
     
    215215        LPITEMIDLIST    pidlLast = NULL, pidl = NULL;
    216216        HRESULT hr = S_OK;
     217        BOOL IconNotYetLoaded=TRUE;
    217218
    218219        TRACE("(%s fattr=0x%lx sfi=%p(attr=0x%08lx) size=0x%x flags=0x%x)\n",
     
    337338        if (SUCCEEDED(hr) && (flags & SHGFI_TYPENAME))
    338339        {
    339           _ILGetFileType(pidlLast, psfi->szTypeName, 80);
     340            if (!(flags & SHGFI_USEFILEATTRIBUTES))
     341                _ILGetFileType(pidlLast, psfi->szTypeName, 80);
     342            else
     343            {
     344                char sTemp[64];
     345                strcpy(sTemp,PathFindExtensionA(path));
     346                if (!( HCR_MapTypeToValue(sTemp, sTemp, 64, TRUE)
     347                       && HCR_MapTypeToValue(sTemp, psfi->szTypeName, 80, FALSE )))
     348                {
     349                    lstrcpynA (psfi->szTypeName, sTemp, 80 - 6);
     350                    strcat (psfi->szTypeName, "-file");
     351                }
     352            }
    340353        }
    341354
     
    359372          {
    360373            hr = IExtractIconA_GetIconLocation(pei, (flags & SHGFI_OPENICON)? GIL_OPENICON : 0,szLoaction, MAX_PATH, &iIndex, &uFlags);
    361             /* fixme what to do with the index? */
     374            /* FIXME what to do with the index? */
    362375
    363376            if(uFlags != GIL_NOTFILENAME)
     
    373386        if (SUCCEEDED(hr) && (flags & (SHGFI_ICON | SHGFI_SYSICONINDEX)))
    374387        {
     388
    375389          if (flags & SHGFI_USEFILEATTRIBUTES)
    376390          {
     
    388402                strcpy(sTemp, path);
    389403              }
    390               /* FIXME: if sTemp contains a valid filename, get the icon
    391                  from there, index is in dwNr
    392               */
    393               psfi->iIcon = 2;
     404              IconNotYetLoaded=FALSE;
     405              psfi->iIcon = 0;
     406              if (SHGFI_LARGEICON)
     407                PrivateExtractIconsA(sTemp,dwNr,GetSystemMetrics(SM_CXICON),
     408                                     GetSystemMetrics(SM_CYICON),
     409                                     &psfi->hIcon,0,1,0);
     410              else
     411                PrivateExtractIconsA(sTemp,dwNr,GetSystemMetrics(SM_CXSMICON),
     412                                     GetSystemMetrics(SM_CYSMICON),
     413                                     &psfi->hIcon,0,1,0);
    394414            }
    395415            else                                  /* default icon */
     
    413433
    414434        /* icon handle */
    415         if (SUCCEEDED(hr) && (flags & SHGFI_ICON))
     435        if (SUCCEEDED(hr) && (flags & SHGFI_ICON) && IconNotYetLoaded)
    416436          psfi->hIcon = ImageList_GetIcon((flags & SHGFI_LARGEICON) ? ShellBigIconList:ShellSmallIconList, psfi->iIcon, ILD_NORMAL);
    417437
     
    432452        return ret;
    433453}
     454
    434455/*************************************************************************
    435456 * SHGetFileInfoW                       [SHELL32.@]
     
    462483
    463484/*************************************************************************
    464  * SHGetFileInfoAW                      [SHELL32.@]
     485 * SHGetFileInfo                        [SHELL32.@]
    465486 */
    466487DWORD WINAPI SHGetFileInfoAW(
Note: See TracChangeset for help on using the changeset viewer.