Ignore:
Timestamp:
Sep 15, 2001, 11:26:26 AM (24 years ago)
Author:
sandervl
Message:

restored old version

File:
1 edited

Legend:

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

    r6650 r6709  
    1 /* $Id: brsfolder.c,v 1.4 2001-09-05 13:46:55 bird Exp $ */
    21#include <stdlib.h>
    32#include <string.h>
     
    1312DEFAULT_DEBUG_CHANNEL(shell);
    1413
    15 static HWND     hwndTreeView;
    16 static LPBROWSEINFOA    lpBrowseInfo;
    17 static LPITEMIDLIST pidlRet;
     14static HWND             hwndTreeView;
     15static LPBROWSEINFOA    lpBrowseInfo;
     16static LPITEMIDLIST     pidlRet;
    1817
    1918static void FillTreeView(LPSHELLFOLDER lpsf, LPITEMIDLIST  lpifq, HTREEITEM hParent);
     
    2120static void InitializeTreeView(HWND hwndParent, LPCITEMIDLIST root)
    2221{
    23     HIMAGELIST  hImageList;
    24     IShellFolder *  lpsf;
    25     HRESULT hr;
    26 
    27     hwndTreeView = GetDlgItem (hwndParent, IDD_TREEVIEW);
    28     Shell_GetImageList(NULL, &hImageList);
    29 
    30     TRACE("dlg=%x tree=%x\n", hwndParent, hwndTreeView );
    31 
    32     if (hImageList && hwndTreeView)
    33     { TreeView_SetImageList(hwndTreeView, hImageList, 0);
    34     }
    35 
    36     /* so far, this method doesn't work (still missing the upper level), keep the old way */
     22        HIMAGELIST      hImageList;
     23        IShellFolder *  lpsf;
     24        HRESULT hr;
     25
     26        hwndTreeView = GetDlgItem (hwndParent, IDD_TREEVIEW);
     27        Shell_GetImageList(NULL, &hImageList);
     28       
     29        TRACE("dlg=%x tree=%x\n", hwndParent, hwndTreeView );
     30
     31        if (hImageList && hwndTreeView)
     32        { TreeView_SetImageList(hwndTreeView, hImageList, 0);
     33        }
     34
     35        /* so far, this method doesn't work (still missing the upper level), keep the old way */
    3736#if 0
    38     if (root == NULL) {
    39        hr = SHGetDesktopFolder(&lpsf);
    40     } else {
    41        IShellFolder *   lpsfdesktop;
    42 
    43        hr = SHGetDesktopFolder(&lpsfdesktop);
    44        if (SUCCEEDED(hr)) {
    45           hr = IShellFolder_BindToObject(lpsfdesktop, root, 0,(REFIID)&IID_IShellFolder,(LPVOID *)&lpsf);
    46           IShellFolder_Release(lpsfdesktop);
    47        }
    48     }
     37        if (root == NULL) {
     38           hr = SHGetDesktopFolder(&lpsf);
     39        } else {
     40           IShellFolder *       lpsfdesktop;
     41
     42           hr = SHGetDesktopFolder(&lpsfdesktop);
     43           if (SUCCEEDED(hr)) {
     44              hr = IShellFolder_BindToObject(lpsfdesktop, root, 0,(REFIID)&IID_IShellFolder,(LPVOID *)&lpsf);
     45              IShellFolder_Release(lpsfdesktop);
     46           }
     47        }
    4948#else
    50     hr = SHGetDesktopFolder(&lpsf);
     49        hr = SHGetDesktopFolder(&lpsf);
    5150#endif
    5251
    53     if (SUCCEEDED(hr) && hwndTreeView)
    54     { TreeView_DeleteAllItems(hwndTreeView);
    55           FillTreeView(lpsf, NULL, TVI_ROOT);
    56     }
    57 
    58     if (SUCCEEDED(hr))
    59     { IShellFolder_Release(lpsf);
    60     }
    61     TRACE("done\n");
     52        if (SUCCEEDED(hr) && hwndTreeView)
     53        { TreeView_DeleteAllItems(hwndTreeView);
     54          FillTreeView(lpsf, NULL, TVI_ROOT);
     55        }
     56       
     57        if (SUCCEEDED(hr))
     58        { IShellFolder_Release(lpsf);
     59        }
     60        TRACE("done\n");
    6261}
    6362
    6463static int GetIcon(LPITEMIDLIST lpi, UINT uFlags)
    65 {   SHFILEINFOA    sfi;
    66     SHGetFileInfoA((LPCSTR)lpi,0,&sfi, sizeof(SHFILEINFOA), uFlags);
    67     return sfi.iIcon;
     64{       SHFILEINFOA    sfi;
     65        SHGetFileInfoA((LPCSTR)lpi,0,&sfi, sizeof(SHFILEINFOA), uFlags);
     66        return sfi.iIcon;
    6867}
    6968
    7069static void GetNormalAndSelectedIcons(LPITEMIDLIST lpifq,LPTVITEMA lpTV_ITEM)
    71 {   TRACE("%p %p\n",lpifq, lpTV_ITEM);
    72 
    73     lpTV_ITEM->iImage = GetIcon(lpifq, SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
    74     lpTV_ITEM->iSelectedImage = GetIcon(lpifq, SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_OPENICON);
    75 
    76     return;
     70{       TRACE("%p %p\n",lpifq, lpTV_ITEM);
     71
     72        lpTV_ITEM->iImage = GetIcon(lpifq, SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
     73        lpTV_ITEM->iSelectedImage = GetIcon(lpifq, SHGFI_PIDL | SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_OPENICON);
     74
     75        return;
    7776}
    7877
     
    8685static BOOL GetName(LPSHELLFOLDER lpsf, LPITEMIDLIST lpi, DWORD dwFlags, LPSTR lpFriendlyName)
    8786{
    88     BOOL   bSuccess=TRUE;
    89     STRRET str;
    90 
    91     TRACE("%p %p %lx %p\n", lpsf, lpi, dwFlags, lpFriendlyName);
    92     if (SUCCEEDED(IShellFolder_GetDisplayNameOf(lpsf, lpi, dwFlags, &str)))
    93     {
    94       if(FAILED(StrRetToStrNA (lpFriendlyName, MAX_PATH, &str, lpi)))
    95       {
    96           bSuccess = FALSE;
    97       }
    98     }
    99     else
    100       bSuccess = FALSE;
    101 
    102     TRACE("-- %s\n",lpFriendlyName);
    103     return bSuccess;
     87        BOOL   bSuccess=TRUE;
     88        STRRET str;
     89
     90        TRACE("%p %p %lx %p\n", lpsf, lpi, dwFlags, lpFriendlyName);
     91        if (SUCCEEDED(IShellFolder_GetDisplayNameOf(lpsf, lpi, dwFlags, &str)))
     92        {
     93          if(FAILED(StrRetToStrNA (lpFriendlyName, MAX_PATH, &str, lpi)))
     94          {
     95              bSuccess = FALSE;
     96          }
     97        }
     98        else
     99          bSuccess = FALSE;
     100
     101        TRACE("-- %s\n",lpFriendlyName);
     102        return bSuccess;
    104103}
    105104
    106105static void FillTreeView(IShellFolder * lpsf, LPITEMIDLIST  pidl, HTREEITEM hParent)
    107106{
    108     TVITEMA     tvi;
    109     TVINSERTSTRUCTA tvins;
    110     HTREEITEM   hPrev = 0;
    111     LPENUMIDLIST    lpe=0;
    112     LPITEMIDLIST    pidlTemp=0;
    113     LPTV_ITEMDATA   lptvid=0;
    114     ULONG       ulFetched;
    115     HRESULT     hr;
    116     char        szBuff[256];
    117     HWND        hwnd=GetParent(hwndTreeView);
    118 
    119     TRACE("%p %p %x\n",lpsf, pidl, (INT)hParent);
    120     SetCapture(GetParent(hwndTreeView));
    121     SetCursor(LoadCursorA(0, IDC_WAITA));
    122 
    123     hr=IShellFolder_EnumObjects(lpsf,hwnd, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS,&lpe);
    124 
    125     if (SUCCEEDED(hr))
    126     { while (NOERROR == IEnumIDList_Next(lpe,1,&pidlTemp,&ulFetched))
    127       { ULONG ulAttrs = SFGAO_HASSUBFOLDER | SFGAO_FOLDER;
    128         IShellFolder_GetAttributesOf(lpsf, 1, &pidlTemp, &ulAttrs);
    129         if (ulAttrs & (SFGAO_HASSUBFOLDER | SFGAO_FOLDER))
    130         { if (ulAttrs & SFGAO_FOLDER)
    131           { tvi.mask  = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;
    132 
    133             if (ulAttrs & SFGAO_HASSUBFOLDER)
    134             {  tvi.cChildren=1;
    135                tvi.mask |= TVIF_CHILDREN;
    136             }
    137 
    138             if (!( lptvid = (LPTV_ITEMDATA)SHAlloc(sizeof(TV_ITEMDATA))))
    139             goto Done;
    140 
    141             if (!GetName(lpsf, pidlTemp, SHGDN_NORMAL, szBuff))
    142             goto Done;
    143 
    144             tvi.pszText    = szBuff;
    145             tvi.cchTextMax = MAX_PATH;
    146             tvi.lParam = (LPARAM)lptvid;
    147 
    148             IShellFolder_AddRef(lpsf);
    149             lptvid->lpsfParent = lpsf;
    150             lptvid->lpi = ILClone(pidlTemp);
    151             lptvid->lpifq   = ILCombine(pidl, pidlTemp);
    152             GetNormalAndSelectedIcons(lptvid->lpifq, &tvi);
    153 
    154             tvins.DUMMYUNIONNAME.item         = tvi;
    155             tvins.hInsertAfter = hPrev;
    156             tvins.hParent      = hParent;
    157 
    158             hPrev = (HTREEITEM)TreeView_InsertItemA (hwndTreeView, &tvins);
    159 
    160           }
    161         }
    162         SHFree(pidlTemp);  /* Finally, free the pidl that the shell gave us... */
    163         pidlTemp=0;
    164       }
    165     }
     107        TVITEMA         tvi;
     108        TVINSERTSTRUCTA tvins;
     109        HTREEITEM       hPrev = 0;
     110        LPENUMIDLIST    lpe=0;
     111        LPITEMIDLIST    pidlTemp=0;
     112        LPTV_ITEMDATA   lptvid=0;
     113        ULONG           ulFetched;
     114        HRESULT         hr;
     115        char            szBuff[256];
     116        HWND            hwnd=GetParent(hwndTreeView);
     117
     118        TRACE("%p %p %x\n",lpsf, pidl, (INT)hParent);
     119        SetCapture(GetParent(hwndTreeView));
     120        SetCursor(LoadCursorA(0, IDC_WAITA));
     121
     122        hr=IShellFolder_EnumObjects(lpsf,hwnd, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS,&lpe);
     123
     124        if (SUCCEEDED(hr))
     125        { while (NOERROR == IEnumIDList_Next(lpe,1,&pidlTemp,&ulFetched))
     126          { ULONG ulAttrs = SFGAO_HASSUBFOLDER | SFGAO_FOLDER;
     127            IShellFolder_GetAttributesOf(lpsf, 1, &pidlTemp, &ulAttrs);
     128            if (ulAttrs & (SFGAO_HASSUBFOLDER | SFGAO_FOLDER))
     129            { if (ulAttrs & SFGAO_FOLDER)
     130              { tvi.mask  = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;
     131
     132                if (ulAttrs & SFGAO_HASSUBFOLDER)
     133                {  tvi.cChildren=1;
     134                   tvi.mask |= TVIF_CHILDREN;
     135                }
     136
     137                if (!( lptvid = (LPTV_ITEMDATA)SHAlloc(sizeof(TV_ITEMDATA))))
     138                    goto Done;
     139
     140                if (!GetName(lpsf, pidlTemp, SHGDN_NORMAL, szBuff))
     141                    goto Done;
     142
     143                tvi.pszText    = szBuff;
     144                tvi.cchTextMax = MAX_PATH;
     145                tvi.lParam = (LPARAM)lptvid;
     146
     147                IShellFolder_AddRef(lpsf);
     148                lptvid->lpsfParent = lpsf;
     149                lptvid->lpi     = ILClone(pidlTemp);
     150                lptvid->lpifq   = ILCombine(pidl, pidlTemp);
     151                GetNormalAndSelectedIcons(lptvid->lpifq, &tvi);
     152
     153                tvins.DUMMYUNIONNAME.item         = tvi;
     154                tvins.hInsertAfter = hPrev;
     155                tvins.hParent      = hParent;
     156
     157                hPrev = (HTREEITEM)TreeView_InsertItemA (hwndTreeView, &tvins);
     158
     159              }
     160            }
     161            SHFree(pidlTemp);  /* Finally, free the pidl that the shell gave us... */
     162            pidlTemp=0;
     163          }
     164        }
    166165
    167166Done:
    168     ReleaseCapture();
    169     SetCursor(LoadCursorA(0, IDC_ARROWA));
    170 
    171     if (lpe)
    172       IEnumIDList_Release(lpe);
    173     if (pidlTemp )
    174       SHFree(pidlTemp);
     167        ReleaseCapture();
     168        SetCursor(LoadCursorA(0, IDC_ARROWA));
     169
     170        if (lpe)
     171          IEnumIDList_Release(lpe);
     172        if (pidlTemp )
     173          SHFree(pidlTemp);
    175174}
    176175
    177176static LRESULT MsgNotify(HWND hWnd,  UINT CtlID, LPNMHDR lpnmh)
    178 {
    179     NMTREEVIEWA *pnmtv   = (NMTREEVIEWA *)lpnmh;
    180     LPTV_ITEMDATA   lptvid;  /* Long pointer to TreeView item data */
    181     IShellFolder *  lpsf2=0;
    182 
    183 
    184     TRACE("%x %x %p msg=%x\n", hWnd,  CtlID, lpnmh, pnmtv->hdr.code);
    185 
    186     switch (pnmtv->hdr.idFrom)
    187     { case IDD_TREEVIEW:
    188         switch (pnmtv->hdr.code)
    189         { case TVN_DELETEITEMA:
    190             { FIXME("TVN_DELETEITEMA\n");
    191           lptvid=(LPTV_ITEMDATA)pnmtv->itemOld.lParam;
    192               IShellFolder_Release(lptvid->lpsfParent);
    193               SHFree(lptvid->lpi);
    194               SHFree(lptvid->lpifq);
    195               SHFree(lptvid);
    196         }
    197             break;
    198 
    199           case TVN_ITEMEXPANDINGA:
    200         { FIXME("TVN_ITEMEXPANDINGA\n");
    201           if ((pnmtv->itemNew.state & TVIS_EXPANDEDONCE))
    202                 break;
    203 
    204               lptvid=(LPTV_ITEMDATA)pnmtv->itemNew.lParam;
    205               if (SUCCEEDED(IShellFolder_BindToObject(lptvid->lpsfParent, lptvid->lpi,0,(REFIID)&IID_IShellFolder,(LPVOID *)&lpsf2)))
    206               { FillTreeView( lpsf2, lptvid->lpifq, pnmtv->itemNew.hItem );
    207               }
    208               TreeView_SortChildren(hwndTreeView, pnmtv->itemNew.hItem, FALSE);
    209         }
    210             break;
    211           case TVN_SELCHANGEDA:
    212             lptvid=(LPTV_ITEMDATA)pnmtv->itemNew.lParam;
    213         pidlRet = lptvid->lpifq;
    214         if (lpBrowseInfo->lpfn)
    215            (lpBrowseInfo->lpfn)(hWnd, BFFM_SELCHANGED, (LPARAM)pidlRet, lpBrowseInfo->lParam);
    216             break;
    217 
    218           default:
    219             FIXME("unhandled (%d)\n", pnmtv->hdr.code);
    220         break;
    221         }
    222         break;
    223 
    224       default:
    225         break;
    226     }
    227 
    228     return 0;
     177{       
     178        NMTREEVIEWA     *pnmtv   = (NMTREEVIEWA *)lpnmh;
     179        LPTV_ITEMDATA   lptvid;  /* Long pointer to TreeView item data */
     180        IShellFolder *  lpsf2=0;
     181       
     182
     183        TRACE("%x %x %p msg=%x\n", hWnd,  CtlID, lpnmh, pnmtv->hdr.code);
     184
     185        switch (pnmtv->hdr.idFrom)
     186        { case IDD_TREEVIEW:
     187            switch (pnmtv->hdr.code)   
     188            { case TVN_DELETEITEMA:
     189                { FIXME("TVN_DELETEITEMA\n");
     190                  lptvid=(LPTV_ITEMDATA)pnmtv->itemOld.lParam;
     191                  IShellFolder_Release(lptvid->lpsfParent);
     192                  SHFree(lptvid->lpi); 
     193                  SHFree(lptvid->lpifq); 
     194                  SHFree(lptvid); 
     195                }
     196                break;
     197                       
     198              case TVN_ITEMEXPANDINGA:
     199                { FIXME("TVN_ITEMEXPANDINGA\n");
     200                  if ((pnmtv->itemNew.state & TVIS_EXPANDEDONCE))
     201                    break;
     202               
     203                  lptvid=(LPTV_ITEMDATA)pnmtv->itemNew.lParam;
     204                  if (SUCCEEDED(IShellFolder_BindToObject(lptvid->lpsfParent, lptvid->lpi,0,(REFIID)&IID_IShellFolder,(LPVOID *)&lpsf2)))
     205                  { FillTreeView( lpsf2, lptvid->lpifq, pnmtv->itemNew.hItem );
     206                  }
     207                  TreeView_SortChildren(hwndTreeView, pnmtv->itemNew.hItem, FALSE);
     208                }
     209                break;
     210              case TVN_SELCHANGEDA:
     211                lptvid=(LPTV_ITEMDATA)pnmtv->itemNew.lParam;
     212                pidlRet = lptvid->lpifq;
     213                if (lpBrowseInfo->lpfn)
     214                   (lpBrowseInfo->lpfn)(hWnd, BFFM_SELCHANGED, (LPARAM)pidlRet, lpBrowseInfo->lParam);
     215                break;
     216
     217              default:
     218                FIXME("unhandled (%d)\n", pnmtv->hdr.code);
     219                break;
     220            }
     221            break;
     222
     223          default:
     224            break;
     225        }
     226
     227        return 0;
    229228}
    230229
     
    234233 */
    235234static BOOL WINAPI BrsFolderDlgProc( HWND hWnd, UINT msg, WPARAM wParam,
    236                      LPARAM lParam )
     235                                     LPARAM lParam )
    237236{       TRACE("hwnd=%i msg=%i 0x%08x 0x%08lx\n", hWnd,  msg, wParam, lParam );
    238237
    239     switch(msg)
    240     { case WM_INITDIALOG:
    241         pidlRet = NULL;
    242         lpBrowseInfo = (LPBROWSEINFOA) lParam;
    243         if (lpBrowseInfo->ulFlags & ~(BIF_STATUSTEXT))
    244           FIXME("flags %x not implemented\n", lpBrowseInfo->ulFlags & ~(BIF_STATUSTEXT));
    245         if (lpBrowseInfo->lpszTitle) {
    246            SetWindowTextA(GetDlgItem(hWnd, IDD_TITLE), lpBrowseInfo->lpszTitle);
    247         } else {
    248            ShowWindow(GetDlgItem(hWnd, IDD_TITLE), SW_HIDE);
    249         }
    250         if (!(lpBrowseInfo->ulFlags & BIF_STATUSTEXT))
    251            ShowWindow(GetDlgItem(hWnd, IDD_STATUS), SW_HIDE);
    252 
    253         if ( lpBrowseInfo->pidlRoot )
    254           FIXME("root is desktop\n");
    255 
    256         InitializeTreeView( hWnd, lpBrowseInfo->pidlRoot );
    257 
    258         if (lpBrowseInfo->lpfn) {
    259            (lpBrowseInfo->lpfn)(hWnd, BFFM_INITIALIZED, 0, lpBrowseInfo->lParam);
     238        switch(msg)
     239        { case WM_INITDIALOG:
     240            pidlRet = NULL;
     241            lpBrowseInfo = (LPBROWSEINFOA) lParam;
     242            if (lpBrowseInfo->ulFlags & ~(BIF_STATUSTEXT))
     243              FIXME("flags %x not implemented\n", lpBrowseInfo->ulFlags & ~(BIF_STATUSTEXT));
     244            if (lpBrowseInfo->lpszTitle) {
     245               SetWindowTextA(GetDlgItem(hWnd, IDD_TITLE), lpBrowseInfo->lpszTitle);
     246            } else {
     247               ShowWindow(GetDlgItem(hWnd, IDD_TITLE), SW_HIDE);
     248            }
     249            if (!(lpBrowseInfo->ulFlags & BIF_STATUSTEXT))
     250               ShowWindow(GetDlgItem(hWnd, IDD_STATUS), SW_HIDE);
     251
     252            if ( lpBrowseInfo->pidlRoot )
     253              FIXME("root is desktop\n");
     254
     255            InitializeTreeView( hWnd, lpBrowseInfo->pidlRoot );
     256
     257            if (lpBrowseInfo->lpfn) {
     258               (lpBrowseInfo->lpfn)(hWnd, BFFM_INITIALIZED, 0, lpBrowseInfo->lParam);
    260259#ifndef __WIN32OS2__
    261            (lpBrowseInfo->lpfn)(hWnd, BFFM_SELCHANGED, 0/*FIXME*/, lpBrowseInfo->lParam);
     260               (lpBrowseInfo->lpfn)(hWnd, BFFM_SELCHANGED, 0/*FIXME*/, lpBrowseInfo->lParam);
    262261#endif
    263         }
    264 
    265         return TRUE;
    266 
    267       case WM_NOTIFY:
    268         MsgNotify( hWnd, (UINT)wParam, (LPNMHDR)lParam);
    269         break;
    270 
    271       case WM_COMMAND:
    272         switch (wParam)
    273         { case IDOK:
    274         pdump ( pidlRet );
    275         SHGetPathFromIDListA(pidlRet, lpBrowseInfo->pszDisplayName);
    276             EndDialog(hWnd, (DWORD) ILClone(pidlRet));
    277             return TRUE;
    278 
    279           case IDCANCEL:
    280             EndDialog(hWnd, 0);
    281             return TRUE;
    282         break;
    283         }
    284         break;
    285     case BFFM_SETSTATUSTEXTA:
    286        TRACE("Set status %s\n", debugstr_a((LPSTR)lParam));
    287        SetWindowTextA(GetDlgItem(hWnd, IDD_STATUS), (LPSTR)lParam);
    288        break;
    289     case BFFM_SETSTATUSTEXTW:
    290        TRACE("Set status %s\n", debugstr_w((LPWSTR)lParam));
    291        SetWindowTextW(GetDlgItem(hWnd, IDD_STATUS), (LPWSTR)lParam);
    292        break;
    293     case BFFM_ENABLEOK:
    294        TRACE("Enable %ld\n", lParam);
    295        EnableWindow(GetDlgItem(hWnd, 1), (lParam)?TRUE:FALSE);
    296        break;
    297     case BFFM_SETSELECTIONA:
    298        if (wParam)
    299           TRACE("Set selection %s\n", debugstr_a((LPSTR)lParam));
    300        else
    301           TRACE("Set selection %p\n", (void*)lParam);
    302        break;
    303     case BFFM_SETSELECTIONW:
    304        if (wParam)
    305           TRACE("Set selection %s\n", debugstr_w((LPWSTR)lParam));
    306        else
    307           TRACE("Set selection %p\n", (void*)lParam);
    308        break;
    309     }
    310     return FALSE;
     262            }
     263
     264            return TRUE;
     265
     266          case WM_NOTIFY:
     267            MsgNotify( hWnd, (UINT)wParam, (LPNMHDR)lParam);
     268            break;
     269           
     270          case WM_COMMAND:
     271            switch (wParam)
     272            { case IDOK:
     273                pdump ( pidlRet );
     274                SHGetPathFromIDListA(pidlRet, lpBrowseInfo->pszDisplayName);
     275                EndDialog(hWnd, (DWORD) ILClone(pidlRet));
     276                return TRUE;
     277
     278              case IDCANCEL:
     279                EndDialog(hWnd, 0);
     280                return TRUE;
     281                break;
     282            }
     283            break;
     284        case BFFM_SETSTATUSTEXTA:
     285           TRACE("Set status %s\n", debugstr_a((LPSTR)lParam));
     286           SetWindowTextA(GetDlgItem(hWnd, IDD_STATUS), (LPSTR)lParam);
     287           break;
     288        case BFFM_SETSTATUSTEXTW:
     289           TRACE("Set status %s\n", debugstr_w((LPWSTR)lParam));
     290           SetWindowTextW(GetDlgItem(hWnd, IDD_STATUS), (LPWSTR)lParam);
     291           break;
     292        case BFFM_ENABLEOK:
     293           TRACE("Enable %ld\n", lParam);
     294           EnableWindow(GetDlgItem(hWnd, 1), (lParam)?TRUE:FALSE);
     295           break;
     296        case BFFM_SETSELECTIONA:
     297           if (wParam) {
     298              TRACE("Set selection %s\n", debugstr_a((LPSTR)lParam));
     299           }
     300           else {
     301              TRACE("Set selection %p\n", (void*)lParam);
     302           }
     303           break;
     304        case BFFM_SETSELECTIONW:
     305           if (wParam) {
     306              TRACE("Set selection %s\n", debugstr_w((LPWSTR)lParam));
     307           }
     308           else {
     309              TRACE("Set selection %p\n", (void*)lParam);
     310           }
     311           break;
     312        }
     313        return FALSE;
    311314}
    312315
     
    317320LPITEMIDLIST WINAPI SHBrowseForFolderA (LPBROWSEINFOA lpbi)
    318321{
    319     TRACE("(%p{lpszTitle=%s,owner=%i})\n",
    320           lpbi, debugstr_a(lpbi->lpszTitle), lpbi->hwndOwner);
    321 
    322     return (LPITEMIDLIST) DialogBoxParamA( shell32_hInstance,
    323                            "SHBRSFORFOLDER_MSGBOX",
    324                            lpbi->hwndOwner,
    325                            BrsFolderDlgProc, (INT)lpbi );
    326 }
     322        TRACE("(%p{lpszTitle=%s,owner=%i})\n",
     323              lpbi, debugstr_a(lpbi->lpszTitle), lpbi->hwndOwner);
     324
     325        return (LPITEMIDLIST) DialogBoxParamA( shell32_hInstance,
     326                                               "SHBRSFORFOLDER_MSGBOX", 
     327                                               lpbi->hwndOwner,
     328                                               BrsFolderDlgProc, (INT)lpbi );
     329}
Note: See TracChangeset for help on using the changeset viewer.