65,209
社区成员
发帖
与我相关
我的任务
分享#include "stdafx.h"
#include <Windows.h>
#include <atlstr.h>
#define SERVCE_NAME L"myservice1"
VOID WINAPI Handler(__in DWORD fdwControl)
{
switch (fdwControl)
{
case SERVICE_CONTROL_CONTINUE:
::MessageBoxW(NULL, L"我是继续", L"提示", MB_OK);
break;
case SERVICE_CONTROL_PAUSE:
::MessageBoxW(NULL, L"我是暂停", L"提示", MB_OK);
break;
case SERVICE_CONTROL_SHUTDOWN:
::MessageBoxW(NULL, L"我是关机", L"提示", MB_OK);
break;
case SERVICE_CONTROL_STOP:
::MessageBoxW(NULL, L"我是停止", L"提示", MB_OK);
break;
default:
{
CStringW strMsg;
strMsg.Format(L"我是 %d", fdwControl);
::MessageBoxW(NULL, strMsg.GetString(), L"提示", MB_OK);
}
break;
}
}
void WINAPI ServiceMain(__in DWORD dwArgc, __in LPTSTR* lpszArgv)
{
::MessageBoxW(NULL, L"进入入口函数", L"提示", MB_OK);
::RegisterServiceCtrlHandlerW(SERVCE_NAME, Handler);
}
int main()
{
SERVICE_TABLE_ENTRYW stew[] =
{
{SERVCE_NAME, ServiceMain},
{NULL, NULL}
};
::MessageBoxW(NULL, L"初始化入口函数", L"提示", MB_OK);
if (!::StartServiceCtrlDispatcherW(stew))
{
::MessageBoxW(NULL, L"入口函数初始化失败", L"提示", MB_OK);
}
return 0;
}