diff --git a/dlls/advpack/advpack.spec b/dlls/advpack/advpack.spec index f6a85c7c729..5889c924eac 100644 --- a/dlls/advpack/advpack.spec +++ b/dlls/advpack/advpack.spec @@ -53,7 +53,7 @@ # stdcall RegInstallW(ptr wstr ptr) @ stdcall RegInstall(ptr str ptr) RegInstallA @ stdcall RegRestoreAllA(ptr str long) -# stdcall RegRestoreAllW(ptr wstr long) +@ 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) diff --git a/dlls/advpack/reg.c b/dlls/advpack/reg.c index 921dc1b2684..546d24928e9 100644 --- a/dlls/advpack/reg.c +++ b/dlls/advpack/reg.c @@ -191,6 +191,27 @@ HRESULT WINAPI RegInstallA(HMODULE hm, LPCSTR pszSection, const STRTABLEA* pstTa /*********************************************************************** * RegRestoreAllA (advpack.@) * + * See RegRestoreAllW. + */ +HRESULT WINAPI RegRestoreAllA(HWND hWnd, LPSTR pszTitleString, HKEY hkBackupKey) +{ + UNICODE_STRING title; + HRESULT hr; + + TRACE("(%p, %s, %p)\n", hWnd, pszTitleString, hkBackupKey); + + RtlCreateUnicodeStringFromAsciiz(&title, pszTitleString); + + hr = RegRestoreAllW(hWnd, title.Buffer, hkBackupKey); + + RtlFreeUnicodeString(&title); + + return hr; +} + +/*********************************************************************** + * RegRestoreAllW (advpack.@) + * * Restores all saved registry entries. * * PARAMS @@ -205,9 +226,9 @@ HRESULT WINAPI RegInstallA(HMODULE hm, LPCSTR pszSection, const STRTABLEA* pstTa * BUGS * Unimplemented. */ -HRESULT WINAPI RegRestoreAllA(HWND hWnd, LPSTR pszTitleString, HKEY hkBackupKey) +HRESULT WINAPI RegRestoreAllW(HWND hWnd, LPWSTR pszTitleString, HKEY hkBackupKey) { - FIXME("(%p, %p, %p) stub\n", hWnd, pszTitleString, hkBackupKey); + FIXME("(%p, %s, %p) stub\n", hWnd, debugstr_w(pszTitleString), hkBackupKey); return E_FAIL; }