unit NamedPipeServerMain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, uROClient, uROClientIntf, uROServer, uROBinMessage, uRONamedPipeServer; type TNamedPipeServerService = class(TService) ROMessage: TROBinMessage; ROServer: TRONamedPipeServer; procedure ServiceStart(Sender: TService; var Started: Boolean); procedure ServiceStop(Sender: TService; var Stopped: Boolean); procedure ServicePause(Sender: TService; var Paused: Boolean); procedure ServiceContinue(Sender: TService; var Continued: Boolean); private { Private declarations } public function GetServiceController: TServiceController; override; { Public declarations } end; var NamedPipeServerService: TNamedPipeServerService; implementation {$R *.dfm} procedure ServiceController(CtrlCode: DWord); stdcall; begin NamedPipeServerService.Controller(CtrlCode); end; function TNamedPipeServerService.GetServiceController: TServiceController; begin Result := ServiceController; end; procedure TNamedPipeServerService.ServiceStart(Sender:TService; var Started:Boolean); begin RoServer.Active := true; end; procedure TNamedPipeServerService.ServiceStop(Sender:TService; var Stopped:Boolean); begin RoServer.Active := false; end; procedure TNamedPipeServerService.ServicePause(Sender:TService; var Paused:Boolean); begin RoServer.Active := false; end; procedure TNamedPipeServerService.ServiceContinue(Sender:TService; var Continued:Boolean); begin RoServer.Active := true; end; end.