SERVICE.H
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:5k
源码类别:
Windows编程
开发平台:
Visual C++
- // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- // PARTICULAR PURPOSE.
- //
- // Copyright (C) 1993- 1996, 1995 Microsoft Corporation. All Rights Reserved.
- //
- // MODULE: service.h
- //
- // AUTHOR: Craig Link
- //
- //
- // Comments: The use of this header file and the accompanying service.c
- // file simplifies the process of writting a service. You as a developer
- // simply need to follow the TODO's outlined in this header file, and
- // implement the ServiceStart() and ServiceStop() functions.
- //
- // There is no need to modify the code in service.c. Just add service.c
- // to your project and link with the following libraries...
- //
- // libcmt.lib kernel32.lib advapi.lib shell32.lib
- //
- // This code also supports unicode. Be sure to compile both service.c and
- // and code #include "service.h" with the same Unicode setting.
- //
- // Upon completion, your code will have the following command line interface
- //
- // <service exe> -? to display this list
- // <service exe> -install to install the service
- // <service exe> -remove to remove the service
- // <service exe> -debug <params> to run as a console app for debugging
- //
- // Note: This code also implements Ctrl+C and Ctrl+Break handlers
- // when using the debug option. These console events cause
- // your ServiceStop routine to be called
- //
- // Also, this code only handles the OWN_SERVICE service type
- // running in the LOCAL_SYSTEM security context.
- //
- // To control your service ( start, stop, etc ) you may use the
- // Services control panel applet or the NET.EXE program.
- //
- // To aid in writing/debugging service, the
- // SDK contains a utility (MSTOOLSBINSC.EXE) that
- // can be used to control, configure, or obtain service status.
- // SC displays complete status for any service/driver
- // in the service database, and allows any of the configuration
- // parameters to be easily changed at the command line.
- // For more information on SC.EXE, type SC at the command line.
- //
- #ifndef _SERVICE_H
- #define _SERVICE_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- //////////////////////////////////////////////////////////////////////////////
- //// todo: change to desired strings
- ////
- // name of the executable
- #define SZAPPNAME "nsserv"
- // internal name of the service
- #define SZSERVICENAME "NSHelloService"
- // displayed name of the service
- #define SZSERVICEDISPLAYNAME "NS Hello Service"
- // list of service dependencies - "dep1 dep2 "
- #define SZDEPENDENCIES "RPCSS RPCLOCATOR "
- //////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- //// todo: ServiceStart()must be defined by in your code.
- //// The service should use ReportStatusToSCMgr to indicate
- //// progress. This routine must also be used by StartService()
- //// to report to the SCM when the service is running.
- ////
- //// If a ServiceStop procedure is going to take longer than
- //// 3 seconds to execute, it should spawn a thread to
- //// execute the stop code, and return. Otherwise, the
- //// ServiceControlManager will believe that the service has
- //// stopped responding
- ////
- VOID ServiceStart(DWORD dwArgc, LPTSTR *lpszArgv);
- VOID ServiceStop();
- //////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- //// The following are procedures which
- //// may be useful to call within the above procedures,
- //// but require no implementation by the user.
- //// They are implemented in service.c
- //
- // FUNCTION: ReportStatusToSCMgr()
- //
- // PURPOSE: Sets the current status of the service and
- // reports it to the Service Control Manager
- //
- // PARAMETERS:
- // dwCurrentState - the state of the service
- // dwWin32ExitCode - error code to report
- // dwWaitHint - worst case estimate to next checkpoint
- //
- // RETURN VALUE:
- // TRUE - success
- // FALSE - failure
- //
- BOOL ReportStatusToSCMgr(DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwWaitHint);
- //
- // FUNCTION: AddToMessageLog(LPTSTR lpszMsg)
- //
- // PURPOSE: Allows any thread to log an error message
- //
- // PARAMETERS:
- // lpszMsg - text for message
- //
- // RETURN VALUE:
- // none
- //
- void AddToMessageLog(LPTSTR lpszMsg);
- //////////////////////////////////////////////////////////////////////////////
- #ifdef __cplusplus
- }
- #endif
- #endif