Author: gadamopoulos
Date: Mon Sep 19 13:31:39 2011
New Revision: 53755
URL:
http://svn.reactos.org/svn/reactos?rev=53755&view=rev
Log:
[thmsvc]
- Add the themes service from the themes branch
Added:
trunk/reactos/base/services/thmsvc/ (with props)
trunk/reactos/base/services/thmsvc/CMakeLists.txt (with props)
trunk/reactos/base/services/thmsvc/thmsvc.c (with props)
trunk/reactos/base/services/thmsvc/thmsvc.rbuild (with props)
trunk/reactos/base/services/thmsvc/thmsvc.rc (with props)
Modified:
trunk/reactos/base/services/CMakeLists.txt
trunk/reactos/base/services/services.rbuild
Modified: trunk/reactos/base/services/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/services/CMakeLists.t…
==============================================================================
--- trunk/reactos/base/services/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/base/services/CMakeLists.txt [iso-8859-1] Mon Sep 19 13:31:39 2011
@@ -7,5 +7,6 @@
add_subdirectory(tcpsvcs)
add_subdirectory(telnetd)
#add_subdirectory(tftpd)
+add_subdirectory(thmsvc)
add_subdirectory(umpnpmgr)
add_subdirectory(wlansvc)
Modified: trunk/reactos/base/services/services.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/services/services.rbu…
==============================================================================
--- trunk/reactos/base/services/services.rbuild [iso-8859-1] (original)
+++ trunk/reactos/base/services/services.rbuild [iso-8859-1] Mon Sep 19 13:31:39 2011
@@ -25,6 +25,9 @@
<directory name="tftpd">
<xi:include href="tftpd/tftpd.rbuild" />
</directory>
+ <directory name="thmsvc">
+ <xi:include href="thmsvc/thmsvc.rbuild" />
+ </directory>
<directory name="umpnpmgr">
<xi:include href="umpnpmgr/umpnpmgr.rbuild" />
</directory>
Propchange: trunk/reactos/base/services/thmsvc/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Mon Sep 19 13:31:39 2011
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)
Propchange: trunk/reactos/base/services/thmsvc/
------------------------------------------------------------------------------
bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/reactos/base/services/thmsvc/
------------------------------------------------------------------------------
bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/reactos/base/services/thmsvc/
------------------------------------------------------------------------------
tsvn:logminsize = 10
Propchange: trunk/reactos/base/services/thmsvc/
------------------------------------------------------------------------------
--- tsvn:logrevregex (added)
+++ tsvn:logrevregex Mon Sep 19 13:31:39 2011
@@ -1,0 +1,1 @@
+\b(r\d+)|\b(revisions?(\(s\))?\s#?\d+([, ]+(and\s?)?\d+)*)|\b(revs?\.?\s?\d+([,
]+(and\s?)?\d+)*)
Added: trunk/reactos/base/services/thmsvc/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/services/thmsvc/CMake…
==============================================================================
--- trunk/reactos/base/services/thmsvc/CMakeLists.txt (added)
+++ trunk/reactos/base/services/thmsvc/CMakeLists.txt [iso-8859-1] Mon Sep 19 13:31:39
2011
@@ -1,0 +1,10 @@
+
+set_unicode()
+
+add_executable(thmsvc thmsvc.c thmsvc.rc)
+
+target_link_libraries(thmsvc wine)
+
+set_module_type(thmsvc win32cui)
+add_importlibs(thmsvc uxtheme advapi32 msvcrt kernel32 ntdll)
+add_cd_file(TARGET thmsvc DESTINATION reactos/system32 FOR all)
Propchange: trunk/reactos/base/services/thmsvc/CMakeLists.txt
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/base/services/thmsvc/thmsvc.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/services/thmsvc/thmsv…
==============================================================================
--- trunk/reactos/base/services/thmsvc/thmsvc.c (added)
+++ trunk/reactos/base/services/thmsvc/thmsvc.c [iso-8859-1] Mon Sep 19 13:31:39 2011
@@ -1,0 +1,146 @@
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS kernel
+ * FILE: services/thmsvc/thmsvc.c
+ * PURPOSE: Themes service
+ * PROGRAMMER: Giannis Adamopoulos
+ */
+
+/* INCLUDES *****************************************************************/
+
+#define WIN32_NO_STATUS
+#include <windows.h>
+#include <uxundoc.h>
+
+#include "wine/debug.h"
+WINE_DEFAULT_DEBUG_CHANNEL(thmsvc);
+
+
+/* GLOBALS ******************************************************************/
+
+static VOID CALLBACK ServiceMain(DWORD argc, LPWSTR *argv);
+static WCHAR ServiceName[] = L"Themes";
+static SERVICE_TABLE_ENTRYW ServiceTable[] =
+{
+ {ServiceName, ServiceMain},
+ {NULL, NULL}
+};
+
+SERVICE_STATUS_HANDLE ServiceStatusHandle;
+SERVICE_STATUS ServiceStatus;
+
+
+/* FUNCTIONS *****************************************************************/
+
+static VOID
+UpdateServiceStatus(DWORD dwState)
+{
+ ServiceStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
+ ServiceStatus.dwCurrentState = dwState;
+
+ if (dwState == SERVICE_RUNNING)
+ ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_PAUSE_CONTINUE |
SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;
+ else if (dwState == SERVICE_PAUSED)
+ ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_PAUSE_CONTINUE;
+ else
+ ServiceStatus.dwControlsAccepted = 0;
+
+ ServiceStatus.dwWin32ExitCode = 0;
+ ServiceStatus.dwServiceSpecificExitCode = 0;
+ ServiceStatus.dwCheckPoint = 0;
+
+ if (dwState == SERVICE_START_PENDING ||
+ dwState == SERVICE_STOP_PENDING ||
+ dwState == SERVICE_PAUSE_PENDING ||
+ dwState == SERVICE_CONTINUE_PENDING)
+ ServiceStatus.dwWaitHint = 10000;
+ else
+ ServiceStatus.dwWaitHint = 0;
+
+ SetServiceStatus(ServiceStatusHandle,
+ &ServiceStatus);
+}
+
+
+static DWORD WINAPI
+ServiceControlHandler(DWORD dwControl,
+ DWORD dwEventType,
+ LPVOID lpEventData,
+ LPVOID lpContext)
+{
+ TRACE("ServiceControlHandler() called\n");
+
+ switch (dwControl)
+ {
+ case SERVICE_CONTROL_STOP:
+ TRACE(" SERVICE_CONTROL_STOP received\n");
+ UpdateServiceStatus(SERVICE_STOPPED);
+ ThemeHooksRemove();
+ return ERROR_SUCCESS;
+
+ case SERVICE_CONTROL_PAUSE:
+ TRACE(" SERVICE_CONTROL_PAUSE received\n");
+ UpdateServiceStatus(SERVICE_PAUSED);
+ return ERROR_SUCCESS;
+
+ case SERVICE_CONTROL_CONTINUE:
+ TRACE(" SERVICE_CONTROL_CONTINUE received\n");
+ UpdateServiceStatus(SERVICE_RUNNING);
+ return ERROR_SUCCESS;
+
+ case SERVICE_CONTROL_INTERROGATE:
+ TRACE(" SERVICE_CONTROL_INTERROGATE received\n");
+ SetServiceStatus(ServiceStatusHandle,
+ &ServiceStatus);
+ return ERROR_SUCCESS;
+
+ case SERVICE_CONTROL_SHUTDOWN:
+ TRACE(" SERVICE_CONTROL_SHUTDOWN received\n");
+ UpdateServiceStatus(SERVICE_STOPPED);
+ return ERROR_SUCCESS;
+
+ default :
+ TRACE(" Control %lu received\n");
+ return ERROR_CALL_NOT_IMPLEMENTED;
+ }
+}
+
+
+static VOID CALLBACK
+ServiceMain(DWORD argc, LPWSTR *argv)
+{
+ UNREFERENCED_PARAMETER(argc);
+ UNREFERENCED_PARAMETER(argv);
+
+ TRACE("ServiceMain() called\n");
+
+ ServiceStatusHandle = RegisterServiceCtrlHandlerExW(ServiceName,
+ ServiceControlHandler,
+ NULL);
+
+ TRACE("Calling SetServiceStatus()\n");
+ UpdateServiceStatus(SERVICE_RUNNING);
+ TRACE("SetServiceStatus() called\n");
+
+ ThemeHooksInstall();
+
+ TRACE("ServiceMain() done\n");
+}
+
+
+int
+wmain(int argc, WCHAR *argv[])
+{
+ UNREFERENCED_PARAMETER(argc);
+ UNREFERENCED_PARAMETER(argv);
+
+ TRACE("thmsvc: main() started\n");
+
+ StartServiceCtrlDispatcher(ServiceTable);
+
+ TRACE("thmsvc: main() done\n");
+
+ return 0;
+}
+
+/* EOF */
Propchange: trunk/reactos/base/services/thmsvc/thmsvc.c
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/base/services/thmsvc/thmsvc.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/services/thmsvc/thmsv…
==============================================================================
--- trunk/reactos/base/services/thmsvc/thmsvc.rbuild (added)
+++ trunk/reactos/base/services/thmsvc/thmsvc.rbuild [iso-8859-1] Mon Sep 19 13:31:39
2011
@@ -1,0 +1,11 @@
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
+<module name="thmsvc" type="win32cui"
installbase="system32" installname="thmsvc.exe"
unicode="yes">
+ <include base="thmsvc">.</include>
+ <library>uxtheme</library>
+ <library>wine</library>
+ <library>ntdll</library>
+ <library>advapi32</library>
+ <file>thmsvc.c</file>
+ <file>thmsvc.rc</file>
+</module>
Propchange: trunk/reactos/base/services/thmsvc/thmsvc.rbuild
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/base/services/thmsvc/thmsvc.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/services/thmsvc/thmsv…
==============================================================================
--- trunk/reactos/base/services/thmsvc/thmsvc.rc (added)
+++ trunk/reactos/base/services/thmsvc/thmsvc.rc [iso-8859-1] Mon Sep 19 13:31:39 2011
@@ -1,0 +1,4 @@
+#define REACTOS_STR_FILE_DESCRIPTION "Themes-Service\0"
+#define REACTOS_STR_INTERNAL_NAME "thmsvc\0"
+#define REACTOS_STR_ORIGINAL_FILENAME "thmsvc.exe\0"
+#include <reactos/version.rc>
Propchange: trunk/reactos/base/services/thmsvc/thmsvc.rc
------------------------------------------------------------------------------
svn:eol-style = native