ADVAPI32: implement ChangeServiceConfig2A using ChangeServiceConfig2W
Mike McCormack
mike at codeweavers.com
Wed Oct 20 04:42:54 CDT 2004
This is not a resend. It is a seperate function.
Mike
ChangeLog:
* implement ChangeServiceConfig2A using ChangeServiceConfig2W
-------------- next part --------------
Index: dlls/advapi32/service.c
===================================================================
RCS file: /home/wine/wine/dlls/advapi32/service.c,v
retrieving revision 1.60
diff -u -r1.60 service.c
--- dlls/advapi32/service.c 27 Sep 2004 20:35:27 -0000 1.60
+++ dlls/advapi32/service.c 20 Oct 2004 07:47:16 -0000
@@ -1476,8 +1501,41 @@
BOOL WINAPI ChangeServiceConfig2A( SC_HANDLE hService, DWORD dwInfoLevel,
LPVOID lpInfo)
{
- FIXME("STUB: %p %ld %p\n",hService, dwInfoLevel, lpInfo);
- return TRUE;
+ BOOL r = FALSE;
+
+ TRACE("%p %ld %p\n",hService, dwInfoLevel, lpInfo);
+
+ if (dwInfoLevel == SERVICE_CONFIG_DESCRIPTION)
+ {
+ LPSERVICE_DESCRIPTIONA sd = (LPSERVICE_DESCRIPTIONA) lpInfo;
+ SERVICE_DESCRIPTIONW sdw;
+
+ sdw.lpDescription = SERV_dup( sd->lpDescription );
+
+ r = ChangeServiceConfig2W( hService, dwInfoLevel, &sdw );
+
+ SERV_free( sdw.lpDescription );
+ }
+ else if (dwInfoLevel == SERVICE_CONFIG_FAILURE_ACTIONS)
+ {
+ LPSERVICE_FAILURE_ACTIONSA fa = (LPSERVICE_FAILURE_ACTIONSA) lpInfo;
+ SERVICE_FAILURE_ACTIONSW faw;
+
+ faw.dwResetPeriod = fa->dwResetPeriod;
+ faw.lpRebootMsg = SERV_dup( fa->lpRebootMsg );
+ faw.lpCommand = SERV_dup( fa->lpCommand );
+ faw.cActions = fa->cActions;
+ faw.lpsaActions = fa->lpsaActions;
+
+ r = ChangeServiceConfig2W( hService, dwInfoLevel, &faw );
+
+ SERV_free( faw.lpRebootMsg );
+ SERV_free( faw.lpCommand );
+ }
+ else
+ SetLastError( ERROR_INVALID_PARAMETER );
+
+ return r;
}
/******************************************************************************
More information about the wine-patches
mailing list