101 lines
2.5 KiB
C
101 lines
2.5 KiB
C
|
/******************************************************************************
|
||
|
|
||
|
Copyright (c) 2000 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
module.h
|
||
|
|
||
|
Abstract:
|
||
|
This file contains the declaration of the CComModule extension for the service.
|
||
|
|
||
|
Revision History:
|
||
|
Davide Massarenti (Dmassare) 03/14/2000
|
||
|
created
|
||
|
|
||
|
******************************************************************************/
|
||
|
|
||
|
#if !defined(__INCLUDED___PCH___MODULE_H___)
|
||
|
#define __INCLUDED___PCH___MODULE_H___
|
||
|
|
||
|
#if _MSC_VER > 1000
|
||
|
#pragma once
|
||
|
#endif // _MSC_VER > 1000
|
||
|
|
||
|
#define STRICT
|
||
|
#ifndef _WIN32_WINNT
|
||
|
#define _WIN32_WINNT 0x0400
|
||
|
#endif
|
||
|
|
||
|
#include <atlbase.h>
|
||
|
|
||
|
class CServiceModule : public CComModule
|
||
|
{
|
||
|
HANDLE m_hEventShutdown;
|
||
|
DWORD m_dwThreadID;
|
||
|
HANDLE m_hMonitor;
|
||
|
BOOL m_bActivity;
|
||
|
|
||
|
LPCWSTR m_szServiceName;
|
||
|
UINT m_iDisplayName;
|
||
|
UINT m_iDescription;
|
||
|
SERVICE_STATUS_HANDLE m_hServiceStatus;
|
||
|
SERVICE_STATUS m_status;
|
||
|
BOOL m_bService;
|
||
|
|
||
|
public:
|
||
|
CServiceModule();
|
||
|
virtual ~CServiceModule();
|
||
|
|
||
|
HRESULT RegisterServer ( BOOL bRegTypeLib, BOOL bService, LPCWSTR szSvcHostGroup );
|
||
|
HRESULT UnregisterServer( LPCWSTR szSvcHostGroup );
|
||
|
|
||
|
void Init( _ATL_OBJMAP_ENTRY* p, HINSTANCE h, LPCWSTR szServiceName, UINT iDisplayName, UINT iDescription, const GUID* plibid = NULL );
|
||
|
|
||
|
BOOL Start( BOOL bService );
|
||
|
HRESULT Run ( );
|
||
|
|
||
|
BOOL IsInstalled( );
|
||
|
BOOL Install ( LPCWSTR szSvcHostGroup );
|
||
|
BOOL Uninstall ( LPCWSTR szSvcHostGroup );
|
||
|
LONG Lock ( );
|
||
|
LONG Unlock ( );
|
||
|
|
||
|
void ServiceMain ( DWORD dwArgc, LPWSTR* lpszArgv );
|
||
|
void Handler ( DWORD dwOpcode );
|
||
|
void SetServiceStatus( DWORD dwState );
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
static void ReadDebugSettings();
|
||
|
#endif
|
||
|
|
||
|
void ForceShutdown();
|
||
|
|
||
|
//Implementation
|
||
|
private:
|
||
|
void MonitorShutdown();
|
||
|
BOOL StartMonitor ();
|
||
|
|
||
|
static void WINAPI _ServiceMain( DWORD dwArgc, LPWSTR* lpszArgv );
|
||
|
static void WINAPI _Handler ( DWORD dwOpcode );
|
||
|
static DWORD WINAPI _Monitor ( void* pv );
|
||
|
};
|
||
|
|
||
|
extern CServiceModule _Module;
|
||
|
|
||
|
|
||
|
#include <atlcom.h>
|
||
|
|
||
|
#include <ProjectConstants.h>
|
||
|
|
||
|
#include <locres.h>
|
||
|
#include <HCAppRes.h>
|
||
|
|
||
|
#include <MPC_logging.h>
|
||
|
|
||
|
#include <Debug.h>
|
||
|
|
||
|
extern MPC::NTEvent g_NTEvents;
|
||
|
extern MPC::FileLog g_ApplicationLog;
|
||
|
|
||
|
#endif // !defined(__INCLUDED___PCH___MODULE_H___)
|