James Hawkins : advpack: Forward the FileSaveRestore API to their Unicode counterparts.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Mar 24 07:13:12 CST 2006


Module: wine
Branch: refs/heads/master
Commit: 9ec33414453683080177fe460fc8494f0a8d69e6
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=9ec33414453683080177fe460fc8494f0a8d69e6

Author: James Hawkins <truiken at 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(&section, 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(&section);
+    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;
 }




More information about the wine-cvs mailing list