[ACGENRAL] Implement the DisableThemes shim. CORE-11927
authorMark Jansen <mark.jansen@reactos.org>
Fri, 16 Dec 2016 22:05:58 +0000 (22:05 +0000)
committerMark Jansen <mark.jansen@reactos.org>
Fri, 16 Dec 2016 22:05:58 +0000 (22:05 +0000)
svn path=/trunk/; revision=73463

reactos/dll/appcompat/shims/CMakeLists.txt
reactos/dll/appcompat/shims/genral/CMakeLists.txt [new file with mode: 0644]
reactos/dll/appcompat/shims/genral/genral.spec [new file with mode: 0644]
reactos/dll/appcompat/shims/genral/main.c [new file with mode: 0644]
reactos/dll/appcompat/shims/genral/themes.c [new file with mode: 0644]

index 354ff57..86b4326 100644 (file)
@@ -1,4 +1,5 @@
 
 add_subdirectory(shimlib)
+add_subdirectory(genral)
 add_subdirectory(layer)
 
diff --git a/reactos/dll/appcompat/shims/genral/CMakeLists.txt b/reactos/dll/appcompat/shims/genral/CMakeLists.txt
new file mode 100644 (file)
index 0000000..196488f
--- /dev/null
@@ -0,0 +1,18 @@
+
+include_directories(${SHIMLIB_DIR})
+
+spec2def(acgenral.dll genral.spec)
+
+list(APPEND SOURCE
+    main.c
+    themes.c
+    genral.spec)
+
+add_library(acgenral SHARED
+    ${SOURCE}
+    ${CMAKE_CURRENT_BINARY_DIR}/acgenral.def)
+
+set_module_type(acgenral win32dll)
+target_link_libraries(acgenral shimlib)
+add_importlibs(acgenral uxtheme msvcrt kernel32 ntdll)
+add_cd_file(TARGET acgenral DESTINATION reactos/AppPatch FOR all)
diff --git a/reactos/dll/appcompat/shims/genral/genral.spec b/reactos/dll/appcompat/shims/genral/genral.spec
new file mode 100644 (file)
index 0000000..6399d72
--- /dev/null
@@ -0,0 +1,3 @@
+
+@ stdcall GetHookAPIs(str wstr ptr)
+@ stdcall NotifyShims(long ptr)
diff --git a/reactos/dll/appcompat/shims/genral/main.c b/reactos/dll/appcompat/shims/genral/main.c
new file mode 100644 (file)
index 0000000..37bd125
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS Shim library
+ * FILE:            dll/appcompat/shims/genral/main.c
+ * PURPOSE:         Shim entrypoint
+ * PROGRAMMER:      Mark Jansen
+ */
+
+#include <windows.h>
+#include <strsafe.h>
+#include <shimlib.h>
+
+/* Forward to the generic implementation */
+PHOOKAPI WINAPI GetHookAPIs(IN LPCSTR szCommandLine, IN LPCWSTR wszShimName, OUT PDWORD pdwHookCount)
+{
+    return ShimLib_GetHookAPIs(szCommandLine, wszShimName, pdwHookCount);
+}
+
+/* Forward to the generic implementation */
+BOOL WINAPI NotifyShims(DWORD fdwReason, PVOID ptr)
+{
+    return ShimLib_NotifyShims(fdwReason, ptr);
+}
+
+BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
+{
+    switch(dwReason)
+    {
+    case DLL_PROCESS_ATTACH:
+        ShimLib_Init(hInstance);
+        break;
+    case DLL_PROCESS_DETACH:
+        ShimLib_Deinit();
+        break;
+    }
+    return TRUE;
+}
diff --git a/reactos/dll/appcompat/shims/genral/themes.c b/reactos/dll/appcompat/shims/genral/themes.c
new file mode 100644 (file)
index 0000000..73d2587
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS Shim library
+ * FILE:            dll/appcompat/shims/genral/themes.c
+ * PURPOSE:         Theme related shims
+ * PROGRAMMER:      Mark Jansen
+ */
+
+#include <windows.h>
+#include <shimlib.h>
+#include <strsafe.h>
+#include <uxtheme.h>
+
+
+#define SHIM_NS         DisableThemes
+#include <setup_shim.inl>
+
+#define SHIM_NUM_HOOKS  0
+#define SHIM_NOTIFY_FN SHIM_OBJ_NAME(Notify)
+
+BOOL WINAPI SHIM_OBJ_NAME(Notify)(DWORD fdwReason, PVOID ptr)
+{
+    if (fdwReason == SHIM_REASON_INIT)
+    {
+        SetThemeAppProperties(0);
+    }
+    return TRUE;
+}
+
+#include <implement_shim.inl>
+