Module: wine Branch: refs/heads/master Commit: 96a428066ad04b0bbf0f7fc46d0466a525bb2804 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=96a428066ad04b0bbf0f7fc4...
Author: James Hawkins truiken@gmail.com Date: Mon Apr 3 12:04:21 2006 -0500
advpack: Forward RegSaveRestoreA to its Unicode counterpart.
---
dlls/advpack/advpack.spec | 2 +- dlls/advpack/reg.c | 37 ++++++++++++++++++++++++++++++++++--- 2 files changed, 35 insertions(+), 4 deletions(-)
diff --git a/dlls/advpack/advpack.spec b/dlls/advpack/advpack.spec index 5889c92..5964403 100644 --- a/dlls/advpack/advpack.spec +++ b/dlls/advpack/advpack.spec @@ -56,7 +56,7 @@ @ stdcall RegRestoreAllW(ptr wstr long) @ stdcall RegRestoreAll(ptr str long) RegRestoreAllA @ stdcall RegSaveRestoreA(ptr str long str str str long) -# stdcall RegSaveRestoreW(ptr wstr long wstr wstr wstr long) +@ stdcall RegSaveRestoreW(ptr wstr long wstr wstr wstr long) @ stdcall RegSaveRestore(ptr str long str str str long) RegSaveRestoreA @ stdcall RegSaveRestoreOnINFA(ptr str str str long long long) # stdcall RegSaveRestoreOnINFW(ptr wstr wstr wstr long long long) diff --git a/dlls/advpack/reg.c b/dlls/advpack/reg.c index 546d249..270a9df 100644 --- a/dlls/advpack/reg.c +++ b/dlls/advpack/reg.c @@ -236,6 +236,37 @@ HRESULT WINAPI RegRestoreAllW(HWND hWnd, /*********************************************************************** * RegSaveRestoreA (advpack.@) * + * See RegSaveRestoreW. + */ +HRESULT WINAPI RegSaveRestoreA(HWND hWnd, LPCSTR pszTitleString, HKEY hkBackupKey, + LPCSTR pcszRootKey, LPCSTR pcszSubKey, + LPCSTR pcszValueName, DWORD dwFlags) +{ + UNICODE_STRING title, root, subkey, value; + HRESULT hr; + + TRACE("(%p, %p, %p, %p, %p, %p, %ld)\n", hWnd, pszTitleString, + hkBackupKey, pcszRootKey, pcszSubKey, pcszValueName, dwFlags); + + RtlCreateUnicodeStringFromAsciiz(&title, pszTitleString); + RtlCreateUnicodeStringFromAsciiz(&root, pcszRootKey); + RtlCreateUnicodeStringFromAsciiz(&subkey, pcszSubKey); + RtlCreateUnicodeStringFromAsciiz(&value, pcszValueName); + + hr = RegSaveRestoreW(hWnd, title.Buffer, hkBackupKey, root.Buffer, + subkey.Buffer, value.Buffer, dwFlags); + + RtlFreeUnicodeString(&title); + RtlFreeUnicodeString(&root); + RtlFreeUnicodeString(&subkey); + RtlFreeUnicodeString(&value); + + return hr; +} + +/*********************************************************************** + * RegSaveRestoreW (advpack.@) + * * Saves or restores the specified registry value. * * PARAMS @@ -254,9 +285,9 @@ HRESULT WINAPI RegRestoreAllW(HWND hWnd, * BUGS * Unimplemented. */ -HRESULT WINAPI RegSaveRestoreA(HWND hWnd, LPCSTR pszTitleString, HKEY hkBackupKey, - LPCSTR pcszRootKey, LPCSTR pcszSubKey, - LPCSTR pcszValueName, DWORD dwFlags) +HRESULT WINAPI RegSaveRestoreW(HWND hWnd, LPCWSTR pszTitleString, HKEY hkBackupKey, + LPCWSTR pcszRootKey, LPCWSTR pcszSubKey, + LPCWSTR pcszValueName, DWORD dwFlags) { FIXME("(%p, %p, %p, %p, %p, %p, %ld) stub\n", hWnd, pszTitleString, hkBackupKey, pcszRootKey, pcszSubKey, pcszValueName, dwFlags);