Author: hpoussin
Date: Tue Dec  4 20:21:46 2007
New Revision: 31003
URL: 
http://svn.reactos.org/svn/reactos?rev=31003&view=rev
Log:
Change service interface too
Modified:
    trunk/reactos/base/system/services/rpcserver.c
    trunk/reactos/dll/win32/advapi32/service/scm.c
    trunk/reactos/include/reactos/idl/svcctl.idl
Modified: trunk/reactos/base/system/services/rpcserver.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/services/rpcse…
==============================================================================
--- trunk/reactos/base/system/services/rpcserver.c (original)
+++ trunk/reactos/base/system/services/rpcserver.c Tue Dec  4 20:21:46 2007
@@ -17,6 +17,9 @@
 #define NDEBUG
 #include <debug.h>
+#define SC_LOCK unsigned int
+#define SC_STATUS_TYPE unsigned long
+#define SC_ENUM_TYPE unsigned long
 /* GLOBALS *****************************************************************/
@@ -237,9 +240,9 @@
 /* Function 0 */
-unsigned long
+DWORD
 ScmrCloseServiceHandle(handle_t BindingHandle,
-                       unsigned int hScObject)
+                       unsigned long hScObject)
 {
     PMANAGER_HANDLE hManager;
@@ -289,10 +292,10 @@
 /* Function 1 */
-unsigned long
+DWORD
 ScmrControlService(handle_t BindingHandle,
-                   unsigned int hService,
-                   unsigned long dwControl,
+                   unsigned long hService,
+                   DWORD dwControl,
                    LPSERVICE_STATUS lpServiceStatus)
 {
     PSERVICE_HANDLE hSvc;
@@ -378,9 +381,9 @@
 /* Function 2 */
-unsigned long
+DWORD
 ScmrDeleteService(handle_t BindingHandle,
-                  unsigned int hService)
+                  unsigned long hService)
 {
     PSERVICE_HANDLE hSvc;
     PSERVICE lpService;
@@ -428,10 +431,10 @@
 /* Function 3 */
-unsigned long
+DWORD
 ScmrLockServiceDatabase(handle_t BindingHandle,
-                        unsigned int hSCManager,
-                        unsigned int *hLock)
+                        unsigned long hSCManager,
+                        SC_LOCK *hLock)
 {
     PMANAGER_HANDLE hMgr;
@@ -457,13 +460,13 @@
 /* Function 4 */
-unsigned long
+DWORD
 ScmrQueryServiceObjectSecurity(handle_t BindingHandle,
-                               unsigned int hService,
-                               unsigned long dwSecurityInformation,
+                               unsigned long hService,
+                               DWORD dwSecurityInformation,
                                unsigned char *lpSecurityDescriptor,
-                               unsigned long dwSecuityDescriptorSize,
-                               unsigned long *pcbBytesNeeded)
+                               DWORD dwSecuityDescriptorSize,
+                               DWORD *pcbBytesNeeded)
 {
 #if 0
     PSERVICE_HANDLE hSvc;
@@ -541,12 +544,12 @@
 /* Function 5 */
-unsigned long
+DWORD
 ScmrSetServiceObjectSecurity(handle_t BindingHandle,
-                             unsigned int hService,
-                             unsigned long dwSecurityInformation,
+                             unsigned long hService,
+                             DWORD dwSecurityInformation,
                              unsigned char *lpSecurityDescriptor,
-                             unsigned long dwSecuityDescriptorSize)
+                             DWORD dwSecuityDescriptorSize)
 {
     PSERVICE_HANDLE hSvc;
     PSERVICE lpService;
@@ -661,9 +664,9 @@
 /* Function 6 */
-unsigned long
+DWORD
 ScmrQueryServiceStatus(handle_t BindingHandle,
-                       unsigned int hService,
+                       unsigned long hService,
                        LPSERVICE_STATUS lpServiceStatus)
 {
     PSERVICE_HANDLE hSvc;
@@ -705,9 +708,9 @@
 /* Function 7 */
-unsigned long
+DWORD
 ScmrSetServiceStatus(handle_t BindingHandle,
-                     unsigned long hServiceStatus,
+                     SERVICE_STATUS_HANDLE hServiceStatus,
                      LPSERVICE_STATUS lpServiceStatus)
 {
     PSERVICE lpService;
@@ -736,9 +739,9 @@
 /* Function 8 */
-unsigned long
+DWORD
 ScmrUnlockServiceDatabase(handle_t BindingHandle,
-                          unsigned int hLock)
+                          SC_LOCK hLock)
 {
     DPRINT1("ScmrUnlockServiceDatabase() called\n");
     /* FIXME */
@@ -747,9 +750,9 @@
 /* Function 9 */
-unsigned long
+DWORD
 ScmrNotifyBootConfigStatus(handle_t BindingHandle,
-                           unsigned long BootAcceptable)
+                           BOOL BootAcceptable)
 {
     DPRINT1("ScmrNotifyBootConfigStatus() called\n");
     /* FIXME */
@@ -758,12 +761,12 @@
 /* Function 10 */
-unsigned long
+DWORD
 ScmrSetServiceBitsW(handle_t BindingHandle,
-                    unsigned long hServiceStatus,
-                    unsigned long dwServiceBits,
-                    unsigned long bSetBitsOn,
-                    unsigned long bUpdateImmediately,
+                    SERVICE_STATUS_HANDLE hServiceStatus,
+                    DWORD dwServiceBits,
+                    BOOL bSetBitsOn,
+                    BOOL bUpdateImmediately,
                     wchar_t *lpString)
 {
     DPRINT1("ScmrSetServiceBitsW() called\n");
@@ -773,20 +776,20 @@
 /* Function 11 */
-unsigned long
+DWORD
 ScmrChangeServiceConfigW(handle_t BiningHandle,
-                         unsigned int hService,
-                         unsigned long dwServiceType,
-                         unsigned long dwStartType,
-                         unsigned long dwErrorControl,
+                         unsigned long hService,
+                         DWORD dwServiceType,
+                         DWORD dwStartType,
+                         DWORD dwErrorControl,
                          wchar_t *lpBinaryPathName,
                          wchar_t *lpLoadOrderGroup,
-                         unsigned long *lpdwTagId, /* in, out, unique */
+                         DWORD *lpdwTagId, /* in, out, unique */
                          wchar_t *lpDependencies,
-                         unsigned long dwDependenciesLength,
+                         DWORD dwDependenciesLength,
                          wchar_t *lpServiceStartName,
                          wchar_t *lpPassword,
-                         unsigned long dwPasswordLength,
+                         DWORD dwPasswordLength,
                          wchar_t *lpDisplayName)
 {
     DWORD dwError = ERROR_SUCCESS;
@@ -994,24 +997,24 @@
 /* Function 12 */
-unsigned long
+DWORD
 ScmrCreateServiceW(handle_t BindingHandle,
-                   unsigned int hSCManager,
+                   unsigned long hSCManager,
                    wchar_t *lpServiceName,
                    wchar_t *lpDisplayName,
-                   unsigned long dwDesiredAccess,
-                   unsigned long dwServiceType,
-                   unsigned long dwStartType,
-                   unsigned long dwErrorControl,
+                   DWORD dwDesiredAccess,
+                   DWORD dwServiceType,
+                   DWORD dwStartType,
+                   DWORD dwErrorControl,
                    wchar_t *lpBinaryPathName,
                    wchar_t *lpLoadOrderGroup,
-                   unsigned long *lpdwTagId, /* in, out */
+                   DWORD *lpdwTagId, /* in, out */
                    wchar_t *lpDependencies,
-                   unsigned long dwDependenciesLength,
+                   DWORD dwDependenciesLength,
                    wchar_t *lpServiceStartName,
                    wchar_t *lpPassword,
-                   unsigned long dwPasswordLength,
-                   unsigned int *hService) /* out */
+                   DWORD dwPasswordLength,
+                   unsigned long *hService) /* out */
 {
     PMANAGER_HANDLE hManager;
     DWORD dwError = ERROR_SUCCESS;
@@ -1244,7 +1247,7 @@
     if (dwError == ERROR_SUCCESS)
     {
         DPRINT("hService %lx\n", hServiceHandle);
-        *hService = (unsigned int)hServiceHandle;
+        *hService = (unsigned long)hServiceHandle;
         if (lpdwTagId != NULL)
             *lpdwTagId = lpService->dwTag;
@@ -1255,7 +1258,7 @@
         if (lpService->lpServiceName != NULL)
             HeapFree(GetProcessHeap(), 0, lpService->lpDisplayName);
-        if (hServiceHandle != NULL)
+        if (hServiceHandle)
         {
             /* Remove the service handle */
             HeapFree(GetProcessHeap(), 0, hServiceHandle);
@@ -1277,14 +1280,14 @@
 /* Function 13 */
-unsigned long
+DWORD
 ScmrEnumDependentServicesW(handle_t BindingHandle,
-                           unsigned int hService,
-                           unsigned long dwServiceState,
+                           unsigned long hService,
+                           DWORD dwServiceState,
                            unsigned char *lpServices,
-                           unsigned long cbBufSize,
-                           unsigned long *pcbBytesNeeded,
-                           unsigned long *lpServicesReturned)
+                           DWORD cbBufSize,
+                           DWORD *pcbBytesNeeded,
+                           DWORD *lpServicesReturned)
 {
     DWORD dwError = ERROR_SUCCESS;
@@ -1299,16 +1302,16 @@
 /* Function 14 */
-unsigned long
+DWORD
 ScmrEnumServicesStatusW(handle_t BindingHandle,
-                        unsigned int hSCManager,
-                        unsigned long dwServiceType,
-                        unsigned long dwServiceState,
+                        unsigned long hSCManager,
+                        DWORD dwServiceType,
+                        DWORD dwServiceState,
                         unsigned char *lpServices,
-                        unsigned long dwBufSize,
-                        unsigned long *pcbBytesNeeded,
-                        unsigned long *lpServicesReturned,
-                        unsigned long *lpResumeHandle)
+                        DWORD dwBufSize,
+                        DWORD *pcbBytesNeeded,
+                        DWORD *lpServicesReturned,
+                        DWORD *lpResumeHandle)
 {
     PMANAGER_HANDLE hManager;
     PSERVICE lpService;
@@ -1498,12 +1501,12 @@
 /* Function 15 */
-unsigned long
+DWORD
 ScmrOpenSCManagerW(handle_t BindingHandle,
                    wchar_t *lpMachineName,
                    wchar_t *lpDatabaseName,
-                   unsigned long dwDesiredAccess,
-                   unsigned int *hScm)
+                   DWORD dwDesiredAccess,
+                   unsigned long *hScm)
 {
     DWORD dwError;
     SC_HANDLE hHandle;
@@ -1536,7 +1539,7 @@
         return dwError;
     }
-    *hScm = (unsigned int)hHandle;
+    *hScm = (unsigned long)hHandle;
     DPRINT("*hScm = %x\n", *hScm);
     DPRINT("ScmrOpenSCManagerW() done\n");
@@ -1546,12 +1549,12 @@
 /* Function 16 */
-unsigned long
+DWORD
 ScmrOpenServiceW(handle_t BindingHandle,
-                 unsigned int hSCManager,
+                 unsigned long hSCManager,
                  wchar_t *lpServiceName,
-                 unsigned long dwDesiredAccess,
-                 unsigned int *hService)
+                 DWORD dwDesiredAccess,
+                 unsigned long *hService)
 {
     PSERVICE lpService;
     PMANAGER_HANDLE hManager;
@@ -1603,7 +1606,7 @@
         return dwError;
     }
-    *hService = (unsigned int)hHandle;
+    *hService = (unsigned long)hHandle;
     DPRINT("*hService = %x\n", *hService);
     DPRINT("ScmrOpenServiceW() done\n");
@@ -1613,12 +1616,12 @@
 /* Function 17 */
-unsigned long
+DWORD
 ScmrQueryServiceConfigW(handle_t BindingHandle,
-                        unsigned int hService,
+                        unsigned long hService,
                         unsigned char *lpServiceConfig,
-                        unsigned long cbBufSize,
-                        unsigned long *pcbBytesNeeded)
+                        DWORD cbBufSize,
+                        DWORD *pcbBytesNeeded)
 {
     DWORD dwError = ERROR_SUCCESS;
     PSERVICE_HANDLE hSvc;
@@ -1773,12 +1776,12 @@
 /* Function 18 */
-unsigned long
+DWORD
 ScmrQueryServiceLockStatusW(handle_t BindingHandle,
-                            unsigned int hSCManager,
+                            unsigned long hSCManager,
                             unsigned char *lpLockStatus,   /* [out, unique,
size_is(cbBufSize)] */
-                            unsigned long cbBufSize,       /* [in] */
-                            unsigned long *pcbBytesNeeded) /* [out] */
+                            DWORD cbBufSize,       /* [in] */
+                            DWORD *pcbBytesNeeded) /* [out] */
 {
     DPRINT1("ScmrQueryServiceLockStatusW() called\n");
     return ERROR_CALL_NOT_IMPLEMENTED;
@@ -1786,12 +1789,12 @@
 /* Function 19 */
-unsigned long
+DWORD
 ScmrStartServiceW(handle_t BindingHandle,
-                  unsigned int hService,
-                  unsigned long dwNumServiceArgs,
+                  unsigned long hService,
+                  DWORD dwNumServiceArgs,
                   unsigned char *lpServiceArgBuffer,
-                  unsigned long cbBufSize)
+                  DWORD cbBufSize)
 {
     DWORD dwError = ERROR_SUCCESS;
     PSERVICE_HANDLE hSvc;
@@ -1837,12 +1840,12 @@
 /* Function 20 */
-unsigned long
+DWORD
 ScmrGetServiceDisplayNameW(handle_t BindingHandle,
-                           unsigned int hSCManager,
+                           unsigned long hSCManager,
                            wchar_t *lpServiceName,
                            wchar_t *lpDisplayName, /* [out, unique] */
-                           unsigned long *lpcchBuffer)
+                           DWORD *lpcchBuffer)
 {
 //    PMANAGER_HANDLE hManager;
     PSERVICE lpService;
@@ -1887,12 +1890,12 @@
 /* Function 21 */
-unsigned long
+DWORD
 ScmrGetServiceKeyNameW(handle_t BindingHandle,
-                       unsigned int hSCManager,
+                       unsigned long hSCManager,
                        wchar_t *lpDisplayName,
                        wchar_t *lpServiceName, /* [out, unique] */
-                       unsigned long *lpcchBuffer)
+                       DWORD *lpcchBuffer)
 {
 //    PMANAGER_HANDLE hManager;
     PSERVICE lpService;
@@ -1937,12 +1940,12 @@
 /* Function 22 */
-unsigned long
+DWORD
 ScmrSetServiceBitsA(handle_t BindingHandle,
-                    unsigned long hServiceStatus,
-                    unsigned long dwServiceBits,
-                    unsigned long bSetBitsOn,
-                    unsigned long bUpdateImmediately,
+                    SERVICE_STATUS_HANDLE hServiceStatus,
+                    DWORD dwServiceBits,
+                    BOOL bSetBitsOn,
+                    BOOL bUpdateImmediately,
                     char *lpString)
 {
     DPRINT1("ScmrSetServiceBitsA() is unimplemented\n");
@@ -1951,20 +1954,20 @@
 /* Function 23 */
-unsigned long
+DWORD
 ScmrChangeServiceConfigA(handle_t BiningHandle,
-                         unsigned int hService,
-                         unsigned long dwServiceType,
-                         unsigned long dwStartType,
-                         unsigned long dwErrorControl,
+                         unsigned long hService,
+                         DWORD dwServiceType,
+                         DWORD dwStartType,
+                         DWORD dwErrorControl,
                          char *lpBinaryPathName,
                          char *lpLoadOrderGroup,
-                         unsigned long *lpdwTagId,
+                         DWORD *lpdwTagId,
                          char *lpDependencies,
-                         unsigned long dwDependenciesLength,
+                         DWORD dwDependenciesLength,
                          char *lpServiceStartName,
                          char *lpPassword,
-                         unsigned long dwPasswordLength,
+                         DWORD dwPasswordLength,
                          char *lpDisplayName)
 {
     DPRINT1("ScmrChangeServiceConfigA() is unimplemented\n");
@@ -1973,24 +1976,24 @@
 /* Function 24 */
-unsigned long
+DWORD
 ScmrCreateServiceA(handle_t BindingHandle,
-                   unsigned int hSCManager,
+                   unsigned long hSCManager,
                    char *lpServiceName,
                    char *lpDisplayName,
-                   unsigned long dwDesiredAccess,
-                   unsigned long dwServiceType,
-                   unsigned long dwStartType,
-                   unsigned long dwErrorControl,
+                   DWORD dwDesiredAccess,
+                   DWORD dwServiceType,
+                   DWORD dwStartType,
+                   DWORD dwErrorControl,
                    char *lpBinaryPathName,
                    char *lpLoadOrderGroup,
-                   unsigned long *lpdwTagId, /* in, out */
+                   DWORD *lpdwTagId, /* in, out */
                    char *lpDependencies,
-                   unsigned long dwDependenciesLength,
+                   DWORD dwDependenciesLength,
                    char *lpServiceStartName,
                    char *lpPassword,
-                   unsigned long dwPasswordLength,
-                   unsigned int *hService) /* out */
+                   DWORD dwPasswordLength,
+                   unsigned long *hService) /* out */
 {
     DPRINT1("ScmrCreateServiceA() is unimplemented\n");
     return ERROR_CALL_NOT_IMPLEMENTED;
@@ -1998,14 +2001,14 @@
 /* Function 25 */
-unsigned long
+DWORD
 ScmrEnumDependentServicesA(handle_t BindingHandle,
-                           unsigned int hService,
-                           unsigned long dwServiceState,
+                           unsigned long hService,
+                           DWORD dwServiceState,
                            unsigned char *lpServices,
-                           unsigned long cbBufSize,
-                           unsigned long *pcbBytesNeeded,
-                           unsigned long *lpServicesReturned)
+                           DWORD cbBufSize,
+                           DWORD *pcbBytesNeeded,
+                           DWORD *lpServicesReturned)
 {
     DPRINT1("ScmrEnumDependentServicesA() is unimplemented\n");
     *pcbBytesNeeded = 0;
@@ -2015,15 +2018,15 @@
 /* Function 26 */
-unsigned long
+DWORD
 ScmrEnumServicesStatusA(handle_t BindingHandle,
-                        unsigned int hSCManager,
-                        unsigned long dwServiceType,
-                        unsigned long dwServiceState,
+                        unsigned long hSCManager,
+                        DWORD dwServiceType,
+                        DWORD dwServiceState,
                         unsigned char *lpServices,
-                        unsigned long dwBufSize,
-                        unsigned long *pcbBytesNeeded,
-                        unsigned long *lpServicesReturned,
+                        DWORD dwBufSize,
+                        DWORD *pcbBytesNeeded,
+                        DWORD *lpServicesReturned,
                         unsigned long *lpResumeHandle)
 {
     DPRINT1("ScmrEnumServicesAtatusA() is unimplemented\n");
@@ -2032,12 +2035,12 @@
 /* Function 27 */
-unsigned long
+DWORD
 ScmrOpenSCManagerA(handle_t BindingHandle,
                    char *lpMachineName,
                    char *lpDatabaseName,
-                   unsigned long dwDesiredAccess,
-                   unsigned int *hScm)
+                   DWORD dwDesiredAccess,
+                   unsigned long *hScm)
 {
     UNICODE_STRING MachineName;
     UNICODE_STRING DatabaseName;
@@ -2070,12 +2073,12 @@
 /* Function 28 */
-unsigned int
+DWORD
 ScmrOpenServiceA(handle_t BindingHandle,
-                 unsigned int hSCManager,
+                 unsigned long hSCManager,
                  char *lpServiceName,
-                 unsigned long dwDesiredAccess,
-                 unsigned int *hService)
+                 DWORD dwDesiredAccess,
+                 unsigned long *hService)
 {
     UNICODE_STRING ServiceName;
     DWORD dwError;
@@ -2098,12 +2101,12 @@
 /* Function 29 */
-unsigned long
+DWORD
 ScmrQueryServiceConfigA(handle_t BindingHandle,
-                        unsigned int hService,
+                        unsigned long hService,
                         unsigned char *lpServiceConfig,
-                        unsigned long cbBufSize,
-                        unsigned long *pcbBytesNeeded)
+                        DWORD cbBufSize,
+                        DWORD *pcbBytesNeeded)
 {
     DPRINT1("ScmrQueryServiceConfigA() is unimplemented\n");
     return ERROR_CALL_NOT_IMPLEMENTED;
@@ -2111,12 +2114,12 @@
 /* Function 30 */
-unsigned long
+DWORD
 ScmrQueryServiceLockStatusA(handle_t BindingHandle,
-                            unsigned int hSCManager,
+                            unsigned long hSCManager,
                             unsigned char *lpLockStatus,   /* [out, unique,
size_is(cbBufSize)] */
-                            unsigned long cbBufSize,       /* [in] */
-                            unsigned long *pcbBytesNeeded) /* [out] */
+                            DWORD cbBufSize,       /* [in] */
+                            DWORD *pcbBytesNeeded) /* [out] */
 {
     DPRINT1("ScmrQueryServiceLockStatusA() called\n");
     return ERROR_CALL_NOT_IMPLEMENTED;
@@ -2124,12 +2127,12 @@
 /* Function 31 */
-unsigned long
+DWORD
 ScmrStartServiceA(handle_t BindingHandle,
-                  unsigned int hService,
-                  unsigned long dwNumServiceArgs,
+                  unsigned long hService,
+                  DWORD dwNumServiceArgs,
                   unsigned char *lpServiceArgBuffer,
-                  unsigned long cbBufSize)
+                  DWORD cbBufSize)
 {
     DWORD dwError = ERROR_SUCCESS;
     PSERVICE_HANDLE hSvc;
@@ -2179,12 +2182,12 @@
 /* Function 32 */
-unsigned long
+DWORD
 ScmrGetServiceDisplayNameA(handle_t BindingHandle,
-                           unsigned int hSCManager,
+                           unsigned long hSCManager,
                            char *lpServiceName,
                            char *lpDisplayName, /* [out, unique] */
-                           unsigned long *lpcchBuffer)
+                           DWORD *lpcchBuffer)
 {
     DPRINT1("ScmrGetServiceDisplayNameA() is unimplemented\n");
     return ERROR_CALL_NOT_IMPLEMENTED;
@@ -2192,12 +2195,12 @@
 /* Function 33 */
-unsigned long
+DWORD
 ScmrGetServiceKeyNameA(handle_t BindingHandle,
-                       unsigned int hSCManager,
+                       unsigned long hSCManager,
                        char *lpDisplayName,
                        char *lpServiceName, /* [out, unique] */
-                       unsigned long *lpcchBuffer)
+                       DWORD *lpcchBuffer)
 {
     DPRINT1("ScmrGetServiceKeyNameA() is unimplemented\n");
     return ERROR_CALL_NOT_IMPLEMENTED;
@@ -2205,7 +2208,7 @@
 /* Function 34 */
-unsigned long
+DWORD
 ScmrGetCurrentGroupStateW(handle_t BindingHandle)
 {
     DPRINT1("ScmrGetCurrentGroupStateW() is unimplemented\n");
@@ -2214,7 +2217,7 @@
 /* Function 35 */
-unsigned long
+DWORD
 ScmrEnumServiceGroupW(handle_t BindingHandle)
 {
     DPRINT1("ScmrEnumServiceGroupW() is unimplemented\n");
@@ -2223,12 +2226,12 @@
 /* Function 36 */
-unsigned long
+DWORD
 ScmrChangeServiceConfig2A(handle_t BindingHandle,
-                          unsigned int hService,
-                          unsigned long dwInfoLevel,
+                          unsigned long hService,
+                          DWORD dwInfoLevel,
                           unsigned char *lpInfo,
-                          unsigned long dwInfoSize)
+                          DWORD dwInfoSize)
 {
     DPRINT1("ScmrChangeServiceConfig2A() is unimplemented\n");
     return ERROR_CALL_NOT_IMPLEMENTED;
@@ -2236,12 +2239,12 @@
 /* Function 37 */
-unsigned long
+DWORD
 ScmrChangeServiceConfig2W(handle_t BindingHandle,
-                          unsigned int hService,
-                          unsigned long dwInfoLevel,
+                          unsigned long hService,
+                          DWORD dwInfoLevel,
                           unsigned char *lpInfo,
-                          unsigned long dwInfoSize)
+                          DWORD dwInfoSize)
 {
     DWORD dwError = ERROR_SUCCESS;
     PSERVICE_HANDLE hSvc;
@@ -2332,13 +2335,13 @@
 /* Function 38 */
-unsigned long
+DWORD
 ScmrQueryServiceConfig2A(handle_t BindingHandle,
-                         unsigned int hService,
-                         unsigned long dwInfoLevel,
+                         unsigned long hService,
+                         DWORD dwInfoLevel,
                          unsigned char *lpBuffer,
-                         unsigned long cbBufSize,
-                         unsigned long *pcbBytesNeeded)
+                         DWORD cbBufSize,
+                         DWORD *pcbBytesNeeded)
 {
     DPRINT1("ScmrQueryServiceConfig2A() is unimplemented\n");
     return ERROR_CALL_NOT_IMPLEMENTED;
@@ -2346,13 +2349,13 @@
 /* Function 39 */
-unsigned long
+DWORD
 ScmrQueryServiceConfig2W(handle_t BindingHandle,
-                         unsigned int hService,
-                         unsigned long dwInfoLevel,
+                         unsigned long hService,
+                         DWORD dwInfoLevel,
                          unsigned char *lpBuffer,
-                         unsigned long cbBufSize,
-                         unsigned long *pcbBytesNeeded)
+                         DWORD cbBufSize,
+                         DWORD *pcbBytesNeeded)
 {
     DWORD dwError = ERROR_SUCCESS;
     PSERVICE_HANDLE hSvc;
@@ -2444,13 +2447,13 @@
 /* Function 40 */
-unsigned long
+DWORD
 ScmrQueryServiceStatusEx(handle_t BindingHandle,
-                         unsigned int hService,
-                         unsigned long InfoLevel,
+                         unsigned long hService,
+                         SC_STATUS_TYPE InfoLevel,
                          unsigned char *lpBuffer, /* out */
-                         unsigned long cbBufSize,
-                         unsigned long *pcbBytesNeeded) /* out */
+                         DWORD cbBufSize,
+                         DWORD *pcbBytesNeeded) /* out */
 {
     LPSERVICE_STATUS_PROCESS lpStatus;
     PSERVICE_HANDLE hSvc;
@@ -2505,16 +2508,16 @@
 /* Function 41 */
-unsigned long
+DWORD
 ScmrEnumServicesStatusExA(handle_t BindingHandle,
-                          unsigned int hSCManager,
-                          unsigned long InfoLevel,
-                          unsigned long dwServiceType,
-                          unsigned long dwServiceState,
+                          unsigned long hSCManager,
+                          SC_STATUS_TYPE InfoLevel,
+                          DWORD dwServiceType,
+                          DWORD dwServiceState,
                           unsigned char *lpServices,
-                          unsigned long dwBufSize,
-                          unsigned long *pcbBytesNeeded,
-                          unsigned long *lpServicesReturned,
+                          DWORD dwBufSize,
+                          DWORD *pcbBytesNeeded,
+                          DWORD *lpServicesReturned,
                           unsigned long *lpResumeHandle,
                           char *pszGroupName)
 {
@@ -2526,17 +2529,17 @@
 /* Function 42 */
-unsigned long
+DWORD
 ScmrEnumServicesStatusExW(handle_t BindingHandle,
-                          unsigned int hSCManager,
-                          unsigned long InfoLevel,
-                          unsigned long dwServiceType,
-                          unsigned long dwServiceState,
+                          unsigned long hSCManager,
+                          SC_ENUM_TYPE InfoLevel,
+                          DWORD dwServiceType,
+                          DWORD dwServiceState,
                           unsigned char *lpServices,
-                          unsigned long dwBufSize,
-                          unsigned long *pcbBytesNeeded,
-                          unsigned long *lpServicesReturned,
-                          unsigned long *lpResumeHandle,
+                          DWORD dwBufSize,
+                          DWORD *pcbBytesNeeded,
+                          DWORD *lpServicesReturned,
+                          DWORD *lpResumeHandle,
                           wchar_t *pszGroupName)
 {
     PMANAGER_HANDLE hManager;
Modified: trunk/reactos/dll/win32/advapi32/service/scm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advapi32/service…
==============================================================================
--- trunk/reactos/dll/win32/advapi32/service/scm.c (original)
+++ trunk/reactos/dll/win32/advapi32/service/scm.c Tue Dec  4 20:21:46 2007
@@ -657,7 +657,7 @@
                                  (LPWSTR)lpServiceStartName,
                                  NULL,              /* FIXME: lpPassword */
                                  0,                 /* FIXME: dwPasswordLength */
-                                 (unsigned int *)&hService);
+                                 (unsigned long *)&hService);
     if (dwError != ERROR_SUCCESS)
     {
         DPRINT("ScmrCreateServiceW() failed (Error %lu)\n", dwError);
@@ -1334,7 +1334,7 @@
                                  (LPSTR)lpMachineName,
                                  (LPSTR)lpDatabaseName,
                                  dwDesiredAccess,
-                                 (unsigned int*)&hScm);
+                                 (unsigned long*)&hScm);
     if (dwError != ERROR_SUCCESS)
     {
         DPRINT1("ScmrOpenSCManagerA() failed (Error %lu)\n", dwError);
@@ -1373,7 +1373,7 @@
                                  (LPWSTR)lpMachineName,
                                  (LPWSTR)lpDatabaseName,
                                  dwDesiredAccess,
-                                 (unsigned int*)&hScm);
+                                 (unsigned long*)&hScm);
     if (dwError != ERROR_SUCCESS)
     {
         DPRINT1("ScmrOpenSCManagerW() failed (Error %lu)\n", dwError);
@@ -1410,7 +1410,7 @@
                                (unsigned int)hSCManager,
                                (LPSTR)lpServiceName,
                                dwDesiredAccess,
-                               (unsigned int*)&hService);
+                               (unsigned long*)&hService);
     if (dwError != ERROR_SUCCESS)
     {
         DPRINT1("ScmrOpenServiceA() failed (Error %lu)\n", dwError);
@@ -1447,7 +1447,7 @@
                                (unsigned int)hSCManager,
                                (LPWSTR)lpServiceName,
                                dwDesiredAccess,
-                               (unsigned int*)&hService);
+                               (unsigned long*)&hService);
     if (dwError != ERROR_SUCCESS)
     {
         DPRINT("ScmrOpenServiceW() failed (Error %lu)\n", dwError);
Modified: trunk/reactos/include/reactos/idl/svcctl.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/idl/svcctl…
==============================================================================
--- trunk/reactos/include/reactos/idl/svcctl.idl (original)
+++ trunk/reactos/include/reactos/idl/svcctl.idl Tue Dec  4 20:21:46 2007
@@ -6,7 +6,7 @@
 //#include <winsvc.h>
 #include "include/reactos/idl/wtypes.idl"
-#define SC_HANDLE unsigned int
+#define SC_HANDLE unsigned long
 #define SC_LOCK unsigned int
 #define SERVICE_STATUS_HANDLE unsigned long
 #define SC_STATUS_TYPE unsigned long
@@ -268,7 +268,7 @@
                                 [in] DWORD dwBufSize,
                                 [out] LPDWORD pcbBytesNeeded,
                                 [out] LPDWORD lpServicesReturned,
-                                [in, out, unique] LPDWORD lpResumeHandle);
+                                [in, out, unique] SC_HANDLE *lpResumeHandle);
   /* Function 27 */
   DWORD R(OpenSCManagerA) ([in] handle_t BindingHandle,
@@ -278,11 +278,11 @@
                            [out] SC_HANDLE *hScm);
   /* Function 28 */
-  SC_HANDLE R(OpenServiceA) ([in] handle_t BindingHandle,
-                             [in] SC_HANDLE hSCManager,
-                             [in, string] LPCSTR lpServiceName,
-                             [in] DWORD dwDesiredAccess,
-                             [out] SC_HANDLE *hScm);
+  DWORD R(OpenServiceA) ([in] handle_t BindingHandle,
+                         [in] SC_HANDLE hSCManager,
+                         [in, string] LPCSTR lpServiceName,
+                         [in] DWORD dwDesiredAccess,
+                         [out] SC_HANDLE *hScm);
   /* Function 29 */
   DWORD R(QueryServiceConfigA) ([in] handle_t BindingHandle,
@@ -379,7 +379,7 @@
                                   [in] DWORD cbBufSize,
                                   [out] LPDWORD pcbBytesNeeded,
                                   [out] LPDWORD lpServicesReturned,
-                                  [in, out, unique] LPDWORD lpResumeHandle,
+                                  [in, out, unique] SC_HANDLE *lpResumeHandle,
                                   [in, string, unique] LPCSTR pszGroupName);
   /* Function 42 */