Module: wine Branch: refs/heads/master Commit: 9ec33414453683080177fe460fc8494f0a8d69e6 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=9ec33414453683080177fe46...
Author: James Hawkins truiken@gmail.com Date: Thu Mar 23 23:10:43 2006 -0600
advpack: Forward the FileSaveRestore API to their Unicode counterparts.
---
dlls/advpack/advpack.spec | 4 +- dlls/advpack/files.c | 81 ++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 74 insertions(+), 11 deletions(-)
diff --git a/dlls/advpack/advpack.spec b/dlls/advpack/advpack.spec index 3b54041..7a71d77 100644 --- a/dlls/advpack/advpack.spec +++ b/dlls/advpack/advpack.spec @@ -23,10 +23,10 @@ @ stdcall FileSaveMarkNotExistW(wstr wstr wstr) @ stdcall FileSaveMarkNotExist(str str str) FileSaveMarkNotExistA @ stdcall FileSaveRestoreA(ptr str str str long) -# stdcall FileSaveRestoreW(ptr wstr wstr wstr long) +@ stdcall FileSaveRestoreW(ptr wstr wstr wstr long) @ stdcall FileSaveRestore(ptr str str str long) FileSaveRestoreA @ stdcall FileSaveRestoreOnINFA(ptr str str str str str long) -# stdcall FileSaveRestoreOnINFW(ptr wstr wstr wstr wstr wstr long) +@ stdcall FileSaveRestoreOnINFW(ptr wstr wstr wstr wstr wstr long) @ stdcall FileSaveRestoreOnINF(ptr str str str str str long) FileSaveRestoreOnINFA @ stdcall GetVersionFromFileA(str ptr ptr long) @ stdcall GetVersionFromFileW(wstr ptr ptr long) diff --git a/dlls/advpack/files.c b/dlls/advpack/files.c index fa994e3..8900193 100644 --- a/dlls/advpack/files.c +++ b/dlls/advpack/files.c @@ -758,6 +758,34 @@ HRESULT WINAPI FileSaveMarkNotExistW(LPW /*********************************************************************** * FileSaveRestoreA (ADVPACK.@) * + * See FileSaveRestoreW. + */ +HRESULT WINAPI FileSaveRestoreA(HWND hDlg, LPSTR pszFileList, LPSTR pszDir, + LPSTR pszBaseName, DWORD dwFlags) +{ + UNICODE_STRING filelist, dir, basename; + HRESULT hr; + + TRACE("(%p, %s, %s, %s, %ld)\n", hDlg, pszFileList, pszDir, + pszBaseName, dwFlags); + + RtlCreateUnicodeStringFromAsciiz(&filelist, pszFileList); + RtlCreateUnicodeStringFromAsciiz(&dir, pszDir); + RtlCreateUnicodeStringFromAsciiz(&basename, pszBaseName); + + hr = FileSaveRestoreW(hDlg, filelist.Buffer, dir.Buffer, + basename.Buffer, dwFlags); + + RtlFreeUnicodeString(&filelist); + RtlFreeUnicodeString(&dir); + RtlFreeUnicodeString(&basename); + + return hr; +} + +/*********************************************************************** + * FileSaveRestoreW (ADVPACK.@) + * * Saves or restores the files in the specified file list. * * PARAMS @@ -777,11 +805,11 @@ HRESULT WINAPI FileSaveMarkNotExistW(LPW * BUGS * Unimplemented. */ -HRESULT WINAPI FileSaveRestoreA(HWND hDlg, LPSTR pszFileList, LPSTR pszDir, - LPSTR pszBaseName, DWORD dwFlags) +HRESULT WINAPI FileSaveRestoreW(HWND hDlg, LPWSTR pszFileList, LPWSTR pszDir, + LPWSTR pszBaseName, DWORD dwFlags) { - FIXME("(%p, %p, %p, %p, %ld) stub\n", hDlg, pszFileList, pszDir, - pszBaseName, dwFlags); + FIXME("(%p, %s, %s, %s, %ld) stub\n", hDlg, debugstr_w(pszFileList), + debugstr_w(pszDir), debugstr_w(pszBaseName), dwFlags);
return E_FAIL; } @@ -789,6 +817,40 @@ HRESULT WINAPI FileSaveRestoreA(HWND hDl /*********************************************************************** * FileSaveRestoreOnINFA (ADVPACK.@) * + * See FileSaveRestoreOnINFW. + */ +HRESULT WINAPI FileSaveRestoreOnINFA(HWND hWnd, LPCSTR pszTitle, LPCSTR pszINF, + LPCSTR pszSection, LPCSTR pszBackupDir, + LPCSTR pszBaseBackupFile, DWORD dwFlags) +{ + UNICODE_STRING title, inf, section; + UNICODE_STRING backupdir, backupfile; + HRESULT hr; + + TRACE("(%p, %s, %s, %s, %s, %s, %ld) stub\n", hWnd, pszTitle, pszINF, + pszSection, pszBackupDir, pszBaseBackupFile, dwFlags); + + RtlCreateUnicodeStringFromAsciiz(&title, pszTitle); + RtlCreateUnicodeStringFromAsciiz(&inf, pszINF); + RtlCreateUnicodeStringFromAsciiz(§ion, pszSection); + RtlCreateUnicodeStringFromAsciiz(&backupdir, pszBackupDir); + RtlCreateUnicodeStringFromAsciiz(&backupfile, pszBaseBackupFile); + + hr = FileSaveRestoreOnINFW(hWnd, title.Buffer, inf.Buffer, section.Buffer, + backupdir.Buffer, backupfile.Buffer, dwFlags); + + RtlFreeUnicodeString(&title); + RtlFreeUnicodeString(&inf); + RtlFreeUnicodeString(§ion); + RtlFreeUnicodeString(&backupdir); + RtlFreeUnicodeString(&backupfile); + + return hr; +} + +/*********************************************************************** + * FileSaveRestoreOnINFW (ADVPACK.@) + * * * PARAMS * hWnd [I] Handle to the window used for the display. @@ -809,12 +871,13 @@ HRESULT WINAPI FileSaveRestoreA(HWND hDl * BUGS * Unimplemented. */ -HRESULT WINAPI FileSaveRestoreOnINFA(HWND hWnd, LPCSTR pszTitle, LPCSTR pszINF, - LPCSTR pszSection, LPCSTR pszBackupDir, - LPCSTR pszBaseBackupFile, DWORD dwFlags) +HRESULT WINAPI FileSaveRestoreOnINFW(HWND hWnd, LPCWSTR pszTitle, LPCWSTR pszINF, + LPCWSTR pszSection, LPCWSTR pszBackupDir, + LPCWSTR pszBaseBackupFile, DWORD dwFlags) { - FIXME("(%p, %p, %p, %p, %p, %p, %ld) stub\n", hWnd, pszTitle, pszINF, - pszSection, pszBackupDir, pszBaseBackupFile, dwFlags); + FIXME("(%p, %p, %p, %p, %p, %p, %ld) stub\n", hWnd, debugstr_w(pszTitle), + debugstr_w(pszINF), debugstr_w(pszSection), debugstr_w(pszBackupDir), + debugstr_w(pszBaseBackupFile), dwFlags);
return E_FAIL; }