12 #include "Raym/Object.h"
\r
17 class Service : public Object
\r
20 LPWSTR _serviceName;
\r
21 SERVICE_STATUS_HANDLE _serviceStatus;
\r
28 static Service *alloc();
\r
29 virtual Service *init(LPWSTR serviceName);
\r
30 void serviceMain(DWORD dwArgc, PTSTR *pszArgv);
\r
31 bool setServiceStatus(SERVICE_STATUS *ss);
\r
32 virtual void start();
\r
33 virtual void stop();
\r
37 void cancelShutdown();
\r
38 bool setWakeSchedule(int year, int month, int day, int hour, int min);
\r
39 void resetWakeSchedule();
\r
41 static const char *GetHomeDirectory();
\r
42 static const char *GetExecutePath();
\r
43 static const char *GetPublicDirectory();
\r
45 // Win32 サービスのエントリポイント
\r
46 static int main(Service *(*allocator)(), LPWSTR serviceName, int argc, char *argv[]);
\r
51 #define ServiceMain(SVCCLASS, SVCNAME, ARGC, ARGV) Raym::Service::main((Raym::Service *(*)())SVCCLASS::alloc, SVCNAME, ARGC, ARGV)
\r