Windows服务程序的编写要点
时间:2010-12-20 来源:生不如死
{
{(LPTSTR)"Serveric Name",(LPSERVICE_MAIN_FUNCTION) Service},
{NULL, NULL}
};
ServiceStatusHandle = RegisterServiceCtrlHandler(
LPCTSTR("Service Name"),
(LPHANDLER_FUNCTION)ServiceCtrlHandler);
ServiceStatus.dwServiceType = SERVICE_WIN32;
ServiceStatus.dwCurrentState = SERVICE_RUNNING;
ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;
ServiceStatus.dwWin32ExitCode = NULL;
ServiceStatus.dwServiceSpecificExitCode = NULL;
ServiceStatus.dwCheckPoint = NULL;
ServiceStatus.dwWaitHint = NULL;
SetServiceStatus (ServiceStatusHandle, &ServiceStatus);
if(Opcode==SERVICE_CONTROL_STOP || Opcode==SERVICE_CONTROL_SHUTDOWN)
{
ServiceStatus.dwCurrentState = SERVICE_STOP_PENDING;
SetServiceStatus (ServiceStatusHandle,&ServiceStatus);
bRunning=false;
}
ServiceStatus.dwCurrentState = SERVICE_STOPPED;
SetServiceStatus (ServiceStatusHandle,&ServiceStatus);