Viewing file: winservice.h (3.52 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef WINSERVICE_H #define WINSERVICE_H
/* * * Windows Service related functions declaration * By Raju Krishanppa(raju_krishnappa@yahoo.com) * */
#ifdef __cplusplus extern "C" {
#endif /* */
/* * Define Constants for Register, De-register , Run As service or Console mode */ #define REGISTER_SERVICE 0 #define UN_REGISTER_SERVICE 1 #define RUN_AS_SERVICE 2 #define RUN_AS_CONSOLE 3
/* * Error levels returned when registering or unregistering the service */ #define SERVICE_ERROR_NONE 0 #define SERVICE_ERROR_SCM_OPEN 1 /* Can not open SCM */ #define SERVICE_ERROR_CREATE_SERVICE 2 /* Can not create service */ #define SERVICE_ERROR_CREATE_REGISTRY_ENTRIES 3 /* Can not create registry entries */ #define SERVICE_ERROR_OPEN_SERVICE 4 /* Can not open service (service does not exist) */ /* * Define Message catalog ID * MessageId: DISPLAY_MSG * MessageText: %1. */ #define DISPLAY_MSG 0x00000064L
/* * Hint Value to SCM to wait before sending successive commands to service */ #define SCM_WAIT_INTERVAL 7000
/* * Define Generic String Size, to hold Error or Information */ #define MAX_STR_SIZE 1024
/* * Delcare Global variables, which are visible to other modules */ extern BOOL g_fRunningAsService;
/* * Input parameter structure to thread */ typedef struct _InputParams { DWORD Argc; LPTSTR *Argv; } InputParams;
/* * Define Service Related functions */
/* * To register application as windows service with SCM */ int RegisterService (LPCTSTR lpszServiceName, LPCTSTR lpszServiceDisplayName, LPCTSTR lpszServiceDescription, InputParams * StartUpArg, int quiet);
/* * To unregister service */ int UnregisterService (LPCTSTR lpszServiceName, int quiet);
/* * To parse command line for startup option */ INT ParseCmdLineForServiceOption (INT argc, TCHAR * argv[], int *quiet);
/* * To write to windows event log */ VOID WriteToEventLog (WORD wType, LPCTSTR pszFormat, ...);
/* * To display generic windows error */ VOID DisplayError (LPCTSTR pszTitle, int quite);
/* * Service Main function, Which will spawn a thread, and calls the * Service run part */ VOID WINAPI ServiceMain (DWORD argc, LPTSTR argv[]);
/* * To start Service */
BOOL RunAsService (INT (*ServiceFunction) (INT, LPTSTR *));
/* * Call back function to process SCM Requests */ VOID WINAPI ControlHandler (DWORD dwControl);
/* * To Stop the service */ VOID ProcessServiceStop (VOID);
/* * To Pause service */ VOID ProcessServicePause (VOID);
/* * To Continue paused service */ VOID ProcessServiceContinue (VOID);
/* * To send Current Service status to SCM when INTERROGATE command is sent */ VOID ProcessServiceInterrogate (VOID);
/* * To allocate and Set security descriptor */ BOOL SetSimpleSecurityAttributes (SECURITY_ATTRIBUTES * pSecurityAttr);
/* * To free Security Descriptor */ VOID FreeSecurityAttributes (SECURITY_ATTRIBUTES * pSecurityAttr);
/* * TheadFunction - To spawan as thread - Invokes registered service function */ unsigned WINAPI ThreadFunction (LPVOID lpParam);
/* * Service STOP function registration with this framewrok * * this function must be invoked before calling RunAsService */ VOID RegisterStopFunction (VOID (*StopFunc) (VOID));
#ifdef __cplusplus } #endif /* */ #endif /* WINSERVICE_H */
|