// TimeSyncServer.h : PROJECT_NAME 应用程序的主头文件 // #pragma once #ifndef __AFXWIN_H__ #error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件" #endif #include "resource.h" // 主符号 #include #include #pragma comment(lib, "dbghelp.lib") extern SERVICE_STATUS m_ServiceStatus; extern SERVICE_STATUS_HANDLE m_ServiceStatusHandle; //函数声明 void WINAPI ServiceMain(DWORD argc, LPTSTR *argv); void WINAPI ServiceCtrlHandler(DWORD Opcode); BOOL InstallService(CString &strPath); BOOL DeleteService(); class CDumpCatch { public: CDumpCatch(); ~CDumpCatch(); private: static LPTOP_LEVEL_EXCEPTION_FILTER WINAPI TempSetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter); static BOOL ReleaseDumpFile(const std::string& strPath, EXCEPTION_POINTERS* pException); static LONG WINAPI UnhandledExceptionFilterEx(struct _EXCEPTION_POINTERS* pException); static void MyPureCallHandler(void); static void MyInvalidParameterHandler(const wchar_t* expression, const wchar_t* function, const wchar_t* file, unsigned int line, uintptr_t pReserved); BOOL AddExceptionHandle(); BOOL RemoveExceptionHandle(); BOOL PreventSetUnhandledExceptionFilter(); void SetInvalidHandle(); void UnSetInvalidHandle(); private: LPTOP_LEVEL_EXCEPTION_FILTER m_preFilter; _invalid_parameter_handler m_preIph; _purecall_handler m_prePch; }; // CTimeSyncServerApp: // 有关此类的实现,请参阅 TimeSyncServer.cpp // class CTimeSyncServerApp : public CWinApp { public: CTimeSyncServerApp(); // 重写 public: virtual BOOL InitInstance(); static void StartTheAppServices(WORD); // 实现 DECLARE_MESSAGE_MAP() }; extern CTimeSyncServerApp theApp;