From 9ec33414453683080177fe460fc8494f0a8d69e6 Mon Sep 17 00:00:00 2001 From: James Hawkins Date: Thu, 23 Mar 2006 23:10:43 -0600 Subject: [PATCH] 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 3b5404122be..7a71d773df5 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 fa994e35b19..8900193b50b 100644 --- a/dlls/advpack/files.c +++ b/dlls/advpack/files.c @@ -758,6 +758,34 @@ HRESULT WINAPI FileSaveMarkNotExistW(LPWSTR pszFileList, LPWSTR pszDir, LPWSTR p /*********************************************************************** * 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(LPWSTR pszFileList, LPWSTR pszDir, LPWSTR p * 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 hDlg, LPSTR pszFileList, LPSTR pszDir, /*********************************************************************** * 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 hDlg, LPSTR pszFileList, LPSTR pszDir, * 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; } -- 2.11.4.GIT