ATL建立Windows服务程序中socket的通信解决方法

ATL建立Windows服务程序中socket的通信
想做一个开机启动的Windows服务程序,开机就运行,然后初始化socket等工作并与一个客服端(已经在wait中的)建立连接,然后能够简单的通信,相当于客服端可以接受到其发送的信息,相当于客服端监控这个服务端,当然该本地的Windows服务程序时没有界面的,可以在服务中看到,不能再进程中看到,是不是可以用ATL创建一个Windows服务程序,大家能不能给我说说这方面的思路……
public:
HRESULT RegisterServer(BOOL bRegTypeLib, BOOL bService);
HRESULT UnregisterServer();
void Init(_ATL_OBJMAP_ENTRY* p, HINSTANCE h, UINT nServiceNameID, const GUID* plibid = NULL);
void Start();
void ServiceMain(DWORD dwArgc, LPTSTR* lpszArgv);
void Handler(DWORD dwOpcode);
void Run();
BOOL IsInstalled();
BOOL Install();
BOOL Uninstall();
LONG Unlock();
void LogEvent(LPCTSTR pszFormat, ...);
void SetServiceStatus(DWORD dwState);
void SetupAsLocalServer();
void Adder();
//Implementation
private:
static void WINAPI _ServiceMain(DWORD dwArgc, LPTSTR* lpszArgv);
static void WINAPI _Handler(DWORD dwOpcode);

// data members
public:
TCHAR m_szServiceName[256];
SERVICE_STATUS_HANDLE m_hServiceStatus;
SERVICE_STATUS m_status;
DWORD dwThreadID;
BOOL m_bService;

在ATL建立的这个CServiceModule类中,在哪里来添加socket等相关初始化,建立连接,接受客服端接受的命令等的信息呢……
非常的感谢……

------解决方案--------------------
ServiceMain() 服务主代码中进行socket操作等..