+
+#ifdef WINDOWS
+typedef struct _Args
+{
+ char **argv;
+ int argc;
+} Args;
+
+static Args ArgDetails;
+
+/* name of the executable */
+#define SZAPPNAME "server"
+
+/* list of service dependencies - "dep1\0dep2\0\0" */
+#define SZDEPENDENCIES ""
+
+int statserv_main(int argc, char **argv)
+{
+ statserv_options_block *cb = statserv_getcontrol();
+
+ /* Lets setup the Arg structure */
+ ArgDetails.argc = argc;
+ ArgDetails.argv = argv;
+
+ /* Now setup the service with the service controller */
+ SetupService(argc, argv, &ArgDetails, SZAPPNAME,
+ cb->service_name, /* internal service name */
+ cb->service_name, /* displayed name of the service */
+ SZDEPENDENCIES);
+ return 0;
+}
+
+int StartAppService(void *pHandle, int argc, char **argv)
+{
+ /* Initializes the App */
+ return 1;
+}
+
+void RunAppService(void *pHandle)
+{
+ Args *pArgs = (Args *)pHandle;
+
+ /* Starts the app running */
+ statserv_start(pArgs->argc, pArgs->argv);
+}
+
+void StopAppService(void *pHandle)
+{
+ /* Stops the app */
+ statserv_closedown();
+}
+#else
+int statserv_main(int argc, char **argv)
+{
+ int ret = statserv_start (argc, argv);
+ statserv_closedown ();
+ return ret;
+}
+#endif