From: Alex Henrie alexhenrie24@gmail.com
--- dlls/comdlg32/filedlg.c | 34 +----------------------------- dlls/comdlg32/filedlgbrowser.c | 38 +--------------------------------- 2 files changed, 2 insertions(+), 70 deletions(-)
diff --git a/dlls/comdlg32/filedlg.c b/dlls/comdlg32/filedlg.c index 441f203fe7b..43066f02d83 100644 --- a/dlls/comdlg32/filedlg.c +++ b/dlls/comdlg32/filedlg.c @@ -3834,38 +3834,6 @@ ret: COMCTL32_ReleaseStgMedium(medium); }
- -/* copied from shell32 to avoid linking to it - * Although shell32 is already linked the behaviour of exported StrRetToStrN - * is dependent on whether emulated OS is unicode or not. - */ -static HRESULT COMDLG32_StrRetToStrNW (LPWSTR dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl) -{ - switch (src->uType) - { - case STRRET_WSTR: - lstrcpynW(dest, src->pOleStr, len); - CoTaskMemFree(src->pOleStr); - break; - - case STRRET_CSTR: - if (!MultiByteToWideChar( CP_ACP, 0, src->cStr, -1, dest, len ) && len) - dest[len-1] = 0; - break; - - case STRRET_OFFSET: - if (!MultiByteToWideChar( CP_ACP, 0, ((LPCSTR)&pidl->mkid)+src->uOffset, -1, dest, len ) && len) - dest[len-1] = 0; - break; - - default: - FIXME("unknown type %x!\n", src->uType); - if (len) *dest = '\0'; - return E_FAIL; - } - return S_OK; -} - /*********************************************************************** * FILEDLG95_FILENAME_GetFileNames * @@ -4005,7 +3973,7 @@ static HRESULT GetName(LPSHELLFOLDER lpsf, LPITEMIDLIST pidl,DWORD dwFlags,LPWST /* Get the display name of the pidl relative to the folder */ if (SUCCEEDED(hRes = IShellFolder_GetDisplayNameOf(lpsf, pidl, dwFlags, &str))) { - return COMDLG32_StrRetToStrNW(lpstrFileName, MAX_PATH, &str, pidl); + return StrRetToBufW(&str, pidl, lpstrFileName, MAX_PATH); } return E_FAIL; } diff --git a/dlls/comdlg32/filedlgbrowser.c b/dlls/comdlg32/filedlgbrowser.c index 14a9da91dc7..9c51e0d6056 100644 --- a/dlls/comdlg32/filedlgbrowser.c +++ b/dlls/comdlg32/filedlgbrowser.c @@ -145,42 +145,6 @@ static void COMDLG32_UpdateCurrentDir(const FileOpenDlgInfos *fodInfos) IShellFolder_Release(psfDesktop); }
-/* copied from shell32 to avoid linking to it */ -static BOOL COMDLG32_StrRetToStrNW (LPVOID dest, DWORD len, LPSTRRET src, LPCITEMIDLIST pidl) -{ - TRACE("dest=%p len=0x%lx strret=%p pidl=%p\n", dest , len, src, pidl); - - switch (src->uType) - { - case STRRET_WSTR: - lstrcpynW(dest, src->pOleStr, len); - CoTaskMemFree(src->pOleStr); - break; - - case STRRET_CSTR: - if (len && !MultiByteToWideChar( CP_ACP, 0, src->cStr, -1, dest, len )) - ((LPWSTR)dest)[len-1] = 0; - break; - - case STRRET_OFFSET: - if (pidl) - { - if (len && !MultiByteToWideChar( CP_ACP, 0, ((LPCSTR)&pidl->mkid)+src->uOffset, - -1, dest, len )) - ((LPWSTR)dest)[len-1] = 0; - } - break; - - default: - FIXME("unknown type!\n"); - if (len) - { *(LPWSTR)dest = '\0'; - } - return(FALSE); - } - return TRUE; -} - /* * IShellBrowser */ @@ -945,7 +909,7 @@ static HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_IncludeObject(ICommDlgBr
if (SUCCEEDED(IShellFolder_GetDisplayNameOf(fodInfos->Shell.FOIShellFolder, pidl, SHGDN_INFOLDER | SHGDN_FORPARSING, &str))) { - if (COMDLG32_StrRetToStrNW(szPathW, MAX_PATH, &str, pidl)) + if (SUCCEEDED(StrRetToBufW(&str, pidl, szPathW, MAX_PATH))) { if (PathMatchSpecW(szPathW, fodInfos->ShellInfos.lpstrCurrentFilter)) return S_OK;