ChangeLog: Jon Griffiths <jon_p_griffiths@yahoo.com> +dlls/shell32/shell32.spec,dlls/shell32/brsfolder.c Implement SHBrowseForFolderW ===== "Don't wait for the seas to part, or messiahs to come; Don't you sit around and waste this chance..." - Live jon_p_griffiths@yahoo.com __________________________________________________ Do You Yahoo!? Yahoo! Autos - Get free new car price quotes http://autos.yahoo.com
--- wine/dlls/shell32/shell32.spec Sat Jun 22 07:15:49 2002 +++ wine-develop//dlls/shell32/shell32.spec Tue Jul 16 12:57:30 2002 @@ -355,7 +355,7 @@ @ stdcall SHAppBarMessage(long ptr) SHAppBarMessage @ stdcall SHBrowseForFolder(ptr) SHBrowseForFolderA @ stdcall SHBrowseForFolderA(ptr) SHBrowseForFolderA -@ stub SHBrowseForFolderW@4 +@ stdcall SHBrowseForFolderW@4(ptr) SHBrowseForFolderW @ stdcall SHChangeNotify (long long ptr ptr) SHChangeNotifyAW @ stub ShellHookProc @ stub SHEmptyRecycleBinA@12 --- wine/dlls/shell32/brsfolder.c Sat Jun 1 11:25:51 2002 +++ wine-develop//dlls/shell32/brsfolder.c Tue Jul 16 13:18:42 2002 @@ -340,3 +340,44 @@ lpbi->hwndOwner, BrsFolderDlgProc, (INT)lpbi ); } + +/************************************************************************* + * SHBrowseForFolderW@4 [SHELL32.@] + */ +LPITEMIDLIST WINAPI SHBrowseForFolderW (LPBROWSEINFOW lpbi) +{ + char szDisplayName[MAX_PATH], szTitle[MAX_PATH]; + BROWSEINFOA bi; + + TRACE("((%p->{lpszTitle=%s,owner=%i})\n", lpbi, + lpbi ? debugstr_w(lpbi->lpszTitle): NULL, lpbi ? lpbi->hwndOwner: 0); + + if (!lpbi) + return NULL; + + bi.hwndOwner = lpbi->hwndOwner; + bi.pidlRoot = lpbi->pidlRoot; + if (lpbi->pszDisplayName) + { + WideCharToMultiByte(CP_ACP, 0, lpbi->pszDisplayName, -1, szDisplayName, MAX_PATH, 0, NULL); + bi.pszDisplayName = szDisplayName; + } + else + bi.pszDisplayName = NULL; + + if (lpbi->lpszTitle) + { + WideCharToMultiByte(CP_ACP, 0, lpbi->lpszTitle, -1, szTitle, MAX_PATH, 0, NULL); + bi.lpszTitle = szTitle; + } + else + bi.lpszTitle = NULL; + + bi.ulFlags = lpbi->ulFlags; + bi.lpfn = lpbi->lpfn; + bi.lParam = lpbi->lParam; + bi.iImage = lpbi->iImage; + return (LPITEMIDLIST) DialogBoxParamA(shell32_hInstance, + "SHBRSFORFOLDER_MSGBOX", lpbi->hwndOwner, + BrsFolderDlgProc, (INT)lpbi); +}