#ifndef _LOBBYMODULE_ #define _LOBBYMODULE_ #ifndef STRICT #define STRICT #endif #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0400 #endif #define _ATL_APARTMENT_THREADED #include #include "LobbyAppSite.h" // Declaration of ILobbyAppSite //You may derive a class from CComModule and use it if you want to override //something, but do not change the name of _Module class CServiceModule : public CComModule, public ILobbyAppSite { public: HRESULT RegisterServer(BOOL bRegTypeLib, BOOL bService, char * szAccount, char * szPassword); HRESULT UnregisterServer(); void Init(_ATL_OBJMAP_ENTRY* p, HINSTANCE h, UINT nServiceNameID, UINT nServiceDescID, const GUID * plibid = NULL); void Start(); void ServiceMain(DWORD dwArgc, LPTSTR* lpszArgv); void ExeMain(); void Handler(DWORD dwOpcode); void Run(); const char * GetModulePath(); BOOL IsInstalled(); BOOL InstallService(char * szAccount, char * szPassword); BOOL Install(); BOOL Uninstall(); LONG Unlock(); void SetServiceStatus(DWORD dwState); void SetupAsLocalServer(); bool ReadFromRegistry(HKEY & hk, bool bIsString, const char * szItem, void * pValue, DWORD dwDefault, bool bWarnIfMissing = false); // ILobbyAppSite virtual int LogEvent(WORD wType, int id, ...); //Implementation private: static void WINAPI _ServiceMain(DWORD dwArgc, LPTSTR* lpszArgv); static void WINAPI _Handler(DWORD dwOpcode); // data members public: TCHAR m_szServiceName[256]; TCHAR m_szServiceDesc[256]; SERVICE_STATUS_HANDLE m_hServiceStatus; SERVICE_STATUS m_status; DWORD dwThreadID; BOOL m_bService; }; extern CServiceModule _Module; #include #endif