From 89eb67dbc8c6a7dc93fd76e2ad3ac1e4266f1f67 Mon Sep 17 00:00:00 2001 From: Austin English Date: Fri, 1 Apr 2016 18:36:45 -0500 Subject: [PATCH] sfc_os: Add SRSetRestorePointA/W stubs. Signed-off-by: Austin English Signed-off-by: Alexandre Julliard --- dlls/sfc/sfc.spec | 6 +++--- dlls/sfc_os/sfc_os.c | 15 +++++++++++++++ dlls/sfc_os/sfc_os.spec | 4 ++-- include/srrestoreptapi.h | 21 ++++++++++++++++++++- tools/make_specfiles | 4 ++++ 5 files changed, 44 insertions(+), 6 deletions(-) diff --git a/dlls/sfc/sfc.spec b/dlls/sfc/sfc.spec index 148f3dbd25e..77a82739a5c 100644 --- a/dlls/sfc/sfc.spec +++ b/dlls/sfc/sfc.spec @@ -7,9 +7,9 @@ 7 stub @ # sfc_os.SfcInstallProtectedFiles 8 stub @ # sfc_os.SfpInstallCatalog 9 stub @ # SfpDeleteCatalog -@ stub SRSetRestorePoint -@ stub SRSetRestorePointA -@ stub SRSetRestorePointW +@ stdcall SRSetRestorePoint(ptr ptr) sfc_os.SRSetRestorePointA +@ stdcall SRSetRestorePointA(ptr ptr) sfc_os.SRSetRestorePointA +@ stdcall SRSetRestorePointW(ptr ptr) sfc_os.SRSetRestorePointW @ stdcall SfcGetNextProtectedFile(long ptr) sfc_os.SfcGetNextProtectedFile @ stdcall SfcIsFileProtected(ptr wstr) sfc_os.SfcIsFileProtected @ stdcall SfcIsKeyProtected(long wstr long) sfc_os.SfcIsKeyProtected diff --git a/dlls/sfc_os/sfc_os.c b/dlls/sfc_os/sfc_os.c index 9e457623e42..c124b905785 100644 --- a/dlls/sfc_os/sfc_os.c +++ b/dlls/sfc_os/sfc_os.c @@ -25,6 +25,7 @@ #include "winerror.h" #include "winreg.h" #include "sfc.h" +#include "srrestoreptapi.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(sfc); @@ -138,3 +139,17 @@ DWORD WINAPI SfcConnectToServer(DWORD unknown) FIXME("%x\n", unknown); return 0; } + +BOOL WINAPI SRSetRestorePointA(RESTOREPOINTINFOA *restorepoint, STATEMGRSTATUS *status) +{ + FIXME("%p %p\n", restorepoint, status); + status->nStatus = ERROR_SERVICE_DISABLED; + return FALSE; +} + +BOOL WINAPI SRSetRestorePointW(RESTOREPOINTINFOW *restorepoint, STATEMGRSTATUS *status) +{ + FIXME("%p %p\n", restorepoint, status); + status->nStatus = ERROR_SERVICE_DISABLED; + return FALSE; +} diff --git a/dlls/sfc_os/sfc_os.spec b/dlls/sfc_os/sfc_os.spec index 4c7405df179..271043e985d 100644 --- a/dlls/sfc_os/sfc_os.spec +++ b/dlls/sfc_os/sfc_os.spec @@ -1,8 +1,8 @@ @ stub BeginFileMapEnumeration @ stub CloseFileMapEnumeration @ stub GetNextFileMapContent -@ stub SRSetRestorePointA -@ stub SRSetRestorePointW +@ stdcall SRSetRestorePointA(ptr ptr) +@ stdcall SRSetRestorePointW(ptr ptr) @ stub SfcClose @ stdcall SfcConnectToServer(long) @ stub SfcFileException diff --git a/include/srrestoreptapi.h b/include/srrestoreptapi.h index 6e62934901b..45a027c6be0 100644 --- a/include/srrestoreptapi.h +++ b/include/srrestoreptapi.h @@ -29,6 +29,7 @@ #define APPLICATION_INSTALL 0 #define MAX_DESC 64 +#define MAX_DESC_W 256 #pragma pack(1) @@ -39,6 +40,21 @@ typedef struct _RESTOREPTINFOA { CHAR szDescription[MAX_DESC]; } RESTOREPOINTINFOA, *PRESTOREPOINTINFOA; +typedef struct _RESTOREPTINFOW { + DWORD dwEventType; + DWORD dwRestorePtType; + INT64 llSequenceNumber; + WCHAR szDescription[MAX_DESC_W]; +} RESTOREPOINTINFOW, *PRESTOREPOINTINFOW; + +typedef struct _RESTOREPTINFOEX { + FILETIME ftCreation; + DWORD dwEventType; + DWORD dwRestorePtType; + DWORD dwRPNum; + WCHAR szDescription[MAX_DESC_W]; +} RESTOREPOINTINFOEX, *PRESTOREPOINTINFOEX; + typedef struct _SMGRSTATUS { DWORD nStatus; INT64 llSequenceNumber; @@ -48,7 +64,10 @@ typedef struct _SMGRSTATUS { extern "C" { #endif -BOOL WINAPI SRSetRestorePointA(PRESTOREPOINTINFOA, PSTATEMGRSTATUS); +BOOL WINAPI SRSetRestorePointA(RESTOREPOINTINFOA *, STATEMGRSTATUS *); +BOOL WINAPI SRSetRestorePointW(RESTOREPOINTINFOW *, STATEMGRSTATUS *); +#define SRSetRestorePoint WINELIB_NAME_AW(SRSetRestorePoint) + DWORD WINAPI SRRemoveRestorePoint(DWORD); #ifdef __cplusplus diff --git a/tools/make_specfiles b/tools/make_specfiles index b0a7b0a433a..a779628ad81 100755 --- a/tools/make_specfiles +++ b/tools/make_specfiles @@ -280,6 +280,10 @@ my @dll_groups = "bthprops.cpl", "irprops.cpl", ], + [ + "sfc_os", + "sfc", + ], ); my $update_flags = 0;