--- mstools/h/winsvc.h 2018/08/09 18:21:13 1.1.1.2 +++ mstools/h/winsvc.h 2018/08/09 18:23:09 1.1.1.3 @@ -1,6 +1,6 @@ -/*++ BUILD Version: 0009 // Increment this if a change has global effects +/*++ BUILD Version: 0010 // Increment this if a change has global effects -Copyright (c) 1992 Microsoft Corporation +Copyright (c) 1993 Microsoft Corporation Module Name: @@ -20,13 +20,20 @@ Environment: Revision History: - 19-Jan-1992 danl - Created + 05-Nov-1992 danl + Added Display Names + + 19-Jan-1992 danl + Created --*/ #ifndef _WINSVC_ #define _WINSVC_ +#ifdef __cplusplus +extern "C" { +#endif + // // Constants // @@ -181,18 +188,20 @@ typedef struct _SERVICE_STATUS { typedef struct _ENUM_SERVICE_STATUSA { LPSTR lpServiceName; + LPSTR lpDisplayName; SERVICE_STATUS ServiceStatus; } ENUM_SERVICE_STATUSA, *LPENUM_SERVICE_STATUSA; typedef struct _ENUM_SERVICE_STATUSW { LPWSTR lpServiceName; + LPWSTR lpDisplayName; SERVICE_STATUS ServiceStatus; } ENUM_SERVICE_STATUSW, *LPENUM_SERVICE_STATUSW; #ifdef UNICODE -#define ENUM_SERVICE_STATUS ENUM_SERVICE_STATUSW -#define LPENUM_SERVICE_STATUS LPENUM_SERVICE_STATUSW +typedef ENUM_SERVICE_STATUSW ENUM_SERVICE_STATUS; +typedef LPENUM_SERVICE_STATUSW LPENUM_SERVICE_STATUS; #else -#define ENUM_SERVICE_STATUS ENUM_SERVICE_STATUSA -#define LPENUM_SERVICE_STATUS LPENUM_SERVICE_STATUSA +typedef ENUM_SERVICE_STATUSA ENUM_SERVICE_STATUS; +typedef LPENUM_SERVICE_STATUSA LPENUM_SERVICE_STATUS; #endif // UNICODE @@ -213,11 +222,11 @@ typedef struct _QUERY_SERVICE_LOCK_STATU DWORD dwLockDuration; } QUERY_SERVICE_LOCK_STATUSW, *LPQUERY_SERVICE_LOCK_STATUSW; #ifdef UNICODE -#define QUERY_SERVICE_LOCK_STATUS QUERY_SERVICE_LOCK_STATUSW -#define LPQUERY_SERVICE_LOCK_STATUS LPQUERY_SERVICE_LOCK_STATUSW +typedef QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUS; +typedef LPQUERY_SERVICE_LOCK_STATUSW LPQUERY_SERVICE_LOCK_STATUS; #else -#define QUERY_SERVICE_LOCK_STATUS QUERY_SERVICE_LOCK_STATUSA -#define LPQUERY_SERVICE_LOCK_STATUS LPQUERY_SERVICE_LOCK_STATUSA +typedef QUERY_SERVICE_LOCK_STATUSA QUERY_SERVICE_LOCK_STATUS; +typedef LPQUERY_SERVICE_LOCK_STATUSA LPQUERY_SERVICE_LOCK_STATUS; #endif // UNICODE @@ -235,6 +244,7 @@ typedef struct _QUERY_SERVICE_CONFIGA { DWORD dwTagId; LPSTR lpDependencies; LPSTR lpServiceStartName; + LPSTR lpDisplayName; } QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA; typedef struct _QUERY_SERVICE_CONFIGW { DWORD dwServiceType; @@ -245,13 +255,14 @@ typedef struct _QUERY_SERVICE_CONFIGW { DWORD dwTagId; LPWSTR lpDependencies; LPWSTR lpServiceStartName; + LPWSTR lpDisplayName; } QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW; #ifdef UNICODE -#define QUERY_SERVICE_CONFIG QUERY_SERVICE_CONFIGW -#define LPQUERY_SERVICE_CONFIG LPQUERY_SERVICE_CONFIGW +typedef QUERY_SERVICE_CONFIGW QUERY_SERVICE_CONFIG; +typedef LPQUERY_SERVICE_CONFIGW LPQUERY_SERVICE_CONFIG; #else -#define QUERY_SERVICE_CONFIG QUERY_SERVICE_CONFIGA -#define LPQUERY_SERVICE_CONFIG LPQUERY_SERVICE_CONFIGA +typedef QUERY_SERVICE_CONFIGA QUERY_SERVICE_CONFIG; +typedef LPQUERY_SERVICE_CONFIGA LPQUERY_SERVICE_CONFIG; #endif // UNICODE @@ -290,11 +301,11 @@ typedef struct _SERVICE_TABLE_ENTRYW { LPSERVICE_MAIN_FUNCTIONW lpServiceProc; }SERVICE_TABLE_ENTRYW, *LPSERVICE_TABLE_ENTRYW; #ifdef UNICODE -#define SERVICE_TABLE_ENTRY SERVICE_TABLE_ENTRYW -#define LPSERVICE_TABLE_ENTRY LPSERVICE_TABLE_ENTRYW +typedef SERVICE_TABLE_ENTRYW SERVICE_TABLE_ENTRY; +typedef LPSERVICE_TABLE_ENTRYW LPSERVICE_TABLE_ENTRY; #else -#define SERVICE_TABLE_ENTRY SERVICE_TABLE_ENTRYA -#define LPSERVICE_TABLE_ENTRY LPSERVICE_TABLE_ENTRYA +typedef SERVICE_TABLE_ENTRYA SERVICE_TABLE_ENTRY; +typedef LPSERVICE_TABLE_ENTRYA LPSERVICE_TABLE_ENTRY; #endif // UNICODE // @@ -323,7 +334,8 @@ ChangeServiceConfigA( LPDWORD lpdwTagId, LPCSTR lpDependencies, LPCSTR lpServiceStartName, - LPCSTR lpPassword + LPCSTR lpPassword, + LPCSTR lpDisplayName ); BOOL WINAPI @@ -337,12 +349,13 @@ ChangeServiceConfigW( LPDWORD lpdwTagId, LPCWSTR lpDependencies, LPCWSTR lpServiceStartName, - LPCWSTR lpPassword + LPCWSTR lpPassword, + LPCWSTR lpDisplayName ); #ifdef UNICODE -#define ChangeServiceConfig ChangeServiceConfigW +#define ChangeServiceConfig ChangeServiceConfigW #else -#define ChangeServiceConfig ChangeServiceConfigA +#define ChangeServiceConfig ChangeServiceConfigA #endif // !UNICODE BOOL @@ -364,6 +377,7 @@ WINAPI CreateServiceA( SC_HANDLE hSCManager, LPCSTR lpServiceName, + LPCSTR lpDisplayName, DWORD dwDesiredAccess, DWORD dwServiceType, DWORD dwStartType, @@ -380,6 +394,7 @@ WINAPI CreateServiceW( SC_HANDLE hSCManager, LPCWSTR lpServiceName, + LPCWSTR lpDisplayName, DWORD dwDesiredAccess, DWORD dwServiceType, DWORD dwStartType, @@ -392,9 +407,9 @@ CreateServiceW( LPCWSTR lpPassword ); #ifdef UNICODE -#define CreateService CreateServiceW +#define CreateService CreateServiceW #else -#define CreateService CreateServiceA +#define CreateService CreateServiceA #endif // !UNICODE BOOL @@ -424,9 +439,9 @@ EnumDependentServicesW( LPDWORD lpServicesReturned ); #ifdef UNICODE -#define EnumDependentServices EnumDependentServicesW +#define EnumDependentServices EnumDependentServicesW #else -#define EnumDependentServices EnumDependentServicesA +#define EnumDependentServices EnumDependentServicesA #endif // !UNICODE BOOL @@ -454,9 +469,53 @@ EnumServicesStatusW( LPDWORD lpResumeHandle ); #ifdef UNICODE -#define EnumServicesStatus EnumServicesStatusW +#define EnumServicesStatus EnumServicesStatusW #else -#define EnumServicesStatus EnumServicesStatusA +#define EnumServicesStatus EnumServicesStatusA +#endif // !UNICODE + +BOOL +WINAPI +GetServiceKeyNameA( + SC_HANDLE hSCManager, + LPCSTR lpDisplayName, + LPSTR lpServiceName, + LPDWORD lpcchBuffer + ); +BOOL +WINAPI +GetServiceKeyNameW( + SC_HANDLE hSCManager, + LPCWSTR lpDisplayName, + LPWSTR lpServiceName, + LPDWORD lpcchBuffer + ); +#ifdef UNICODE +#define GetServiceKeyName GetServiceKeyNameW +#else +#define GetServiceKeyName GetServiceKeyNameA +#endif // !UNICODE + +BOOL +WINAPI +GetServiceDisplayNameA( + SC_HANDLE hSCManager, + LPCSTR lpServiceName, + LPSTR lpDisplayName, + LPDWORD lpcchBuffer + ); +BOOL +WINAPI +GetServiceDisplayNameW( + SC_HANDLE hSCManager, + LPCWSTR lpServiceName, + LPWSTR lpDisplayName, + LPDWORD lpcchBuffer + ); +#ifdef UNICODE +#define GetServiceDisplayName GetServiceDisplayNameW +#else +#define GetServiceDisplayName GetServiceDisplayNameA #endif // !UNICODE SC_LOCK @@ -486,9 +545,9 @@ OpenSCManagerW( DWORD dwDesiredAccess ); #ifdef UNICODE -#define OpenSCManager OpenSCManagerW +#define OpenSCManager OpenSCManagerW #else -#define OpenSCManager OpenSCManagerA +#define OpenSCManager OpenSCManagerA #endif // !UNICODE SC_HANDLE @@ -506,9 +565,9 @@ OpenServiceW( DWORD dwDesiredAccess ); #ifdef UNICODE -#define OpenService OpenServiceW +#define OpenService OpenServiceW #else -#define OpenService OpenServiceA +#define OpenService OpenServiceA #endif // !UNICODE BOOL @@ -528,9 +587,9 @@ QueryServiceConfigW( LPDWORD pcbBytesNeeded ); #ifdef UNICODE -#define QueryServiceConfig QueryServiceConfigW +#define QueryServiceConfig QueryServiceConfigW #else -#define QueryServiceConfig QueryServiceConfigA +#define QueryServiceConfig QueryServiceConfigA #endif // !UNICODE BOOL @@ -550,9 +609,9 @@ QueryServiceLockStatusW( LPDWORD pcbBytesNeeded ); #ifdef UNICODE -#define QueryServiceLockStatus QueryServiceLockStatusW +#define QueryServiceLockStatus QueryServiceLockStatusW #else -#define QueryServiceLockStatus QueryServiceLockStatusA +#define QueryServiceLockStatus QueryServiceLockStatusA #endif // !UNICODE BOOL @@ -585,9 +644,9 @@ RegisterServiceCtrlHandlerW( LPHANDLER_FUNCTION lpHandlerProc ); #ifdef UNICODE -#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerW +#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerW #else -#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerA +#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerA #endif // !UNICODE BOOL @@ -616,9 +675,9 @@ StartServiceCtrlDispatcherW( LPSERVICE_TABLE_ENTRYW lpServiceStartTable ); #ifdef UNICODE -#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherW +#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherW #else -#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherA +#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherA #endif // !UNICODE @@ -637,9 +696,9 @@ StartServiceW( LPCWSTR *lpServiceArgVectors ); #ifdef UNICODE -#define StartService StartServiceW +#define StartService StartServiceW #else -#define StartService StartServiceA +#define StartService StartServiceA #endif // !UNICODE BOOL @@ -649,6 +708,8 @@ UnlockServiceDatabase( ); - +#ifdef __cplusplus +} +#endif #endif // _WINSVC_