From 53ae753ae037576a202e3332fffb35b85b179fdb Mon Sep 17 00:00:00 2001 From: narzoul Date: Sat, 19 Mar 2016 13:33:07 +0100 Subject: [PATCH] Moved unrelated functions from CompatGdiDcFunctions to a new namespace --- DDrawCompat/CompatGdi.cpp | 2 ++ DDrawCompat/CompatGdiDcFunctions.cpp | 27 --------------- DDrawCompat/CompatGdiScrollFunctions.cpp | 43 ++++++++++++++++++++++++ DDrawCompat/CompatGdiScrollFunctions.h | 6 ++++ DDrawCompat/DDrawCompat.vcxproj | 2 ++ DDrawCompat/DDrawCompat.vcxproj.filters | 6 ++++ 6 files changed, 59 insertions(+), 27 deletions(-) create mode 100644 DDrawCompat/CompatGdiScrollFunctions.cpp create mode 100644 DDrawCompat/CompatGdiScrollFunctions.h diff --git a/DDrawCompat/CompatGdi.cpp b/DDrawCompat/CompatGdi.cpp index f682744..44726e1 100644 --- a/DDrawCompat/CompatGdi.cpp +++ b/DDrawCompat/CompatGdi.cpp @@ -4,6 +4,7 @@ #include "CompatGdiCaret.h" #include "CompatGdiDcCache.h" #include "CompatGdiDcFunctions.h" +#include "CompatGdiScrollFunctions.h" #include "CompatGdiWinProc.h" #include "CompatPrimarySurface.h" #include "DDrawProcs.h" @@ -285,6 +286,7 @@ namespace CompatGdi } CompatGdiDcFunctions::installHooks(); + CompatGdiScrollFunctions::installHooks(); CompatGdiWinProc::installHooks(); CompatGdiCaret::installHooks(); } diff --git a/DDrawCompat/CompatGdiDcFunctions.cpp b/DDrawCompat/CompatGdiDcFunctions.cpp index bd25250..c03e037 100644 --- a/DDrawCompat/CompatGdiDcFunctions.cpp +++ b/DDrawCompat/CompatGdiDcFunctions.cpp @@ -101,31 +101,6 @@ namespace { return &compatGdiDcFunc; } - - BOOL WINAPI scrollWindow( - _In_ HWND hWnd, - _In_ int XAmount, - _In_ int YAmount, - _In_ const RECT *lpRect, - _In_ const RECT *lpClipRect) - { - InvalidateRect(hWnd, nullptr, TRUE); - return CALL_ORIG_GDI(ScrollWindow)(hWnd, XAmount, YAmount, lpRect, lpClipRect); - } - - int WINAPI scrollWindowEx( - _In_ HWND hWnd, - _In_ int dx, - _In_ int dy, - _In_ const RECT *prcScroll, - _In_ const RECT *prcClip, - _In_ HRGN hrgnUpdate, - _Out_ LPRECT prcUpdate, - _In_ UINT flags) - { - InvalidateRect(hWnd, nullptr, TRUE); - return CALL_ORIG_GDI(ScrollWindowEx)(hWnd, dx, dy, prcScroll, prcClip, hrgnUpdate, prcUpdate, flags); - } } #define HOOK_GDI_DC_FUNCTION(module, func) \ @@ -226,8 +201,6 @@ namespace CompatGdiDcFunctions // Scroll bar functions HOOK_GDI_DC_FUNCTION(user32, ScrollDC); - HOOK_GDI_FUNCTION(user32, ScrollWindow, scrollWindow); - HOOK_GDI_FUNCTION(user32, ScrollWindowEx, scrollWindowEx); DetourTransactionCommit(); } diff --git a/DDrawCompat/CompatGdiScrollFunctions.cpp b/DDrawCompat/CompatGdiScrollFunctions.cpp new file mode 100644 index 0000000..e62780d --- /dev/null +++ b/DDrawCompat/CompatGdiScrollFunctions.cpp @@ -0,0 +1,43 @@ +#include "CompatGdi.h" +#include "CompatGdiScrollFunctions.h" + +#include + +namespace +{ + BOOL WINAPI scrollWindow( + _In_ HWND hWnd, + _In_ int XAmount, + _In_ int YAmount, + _In_ const RECT *lpRect, + _In_ const RECT *lpClipRect) + { + InvalidateRect(hWnd, nullptr, TRUE); + return CALL_ORIG_GDI(ScrollWindow)(hWnd, XAmount, YAmount, lpRect, lpClipRect); + } + + int WINAPI scrollWindowEx( + _In_ HWND hWnd, + _In_ int dx, + _In_ int dy, + _In_ const RECT *prcScroll, + _In_ const RECT *prcClip, + _In_ HRGN hrgnUpdate, + _Out_ LPRECT prcUpdate, + _In_ UINT flags) + { + InvalidateRect(hWnd, nullptr, TRUE); + return CALL_ORIG_GDI(ScrollWindowEx)(hWnd, dx, dy, prcScroll, prcClip, hrgnUpdate, prcUpdate, flags); + } +} + +namespace CompatGdiScrollFunctions +{ + void installHooks() + { + DetourTransactionBegin(); + HOOK_GDI_FUNCTION(user32, ScrollWindow, scrollWindow); + HOOK_GDI_FUNCTION(user32, ScrollWindowEx, scrollWindowEx); + DetourTransactionCommit(); + } +} diff --git a/DDrawCompat/CompatGdiScrollFunctions.h b/DDrawCompat/CompatGdiScrollFunctions.h new file mode 100644 index 0000000..7c8e489 --- /dev/null +++ b/DDrawCompat/CompatGdiScrollFunctions.h @@ -0,0 +1,6 @@ +#pragma once + +namespace CompatGdiScrollFunctions +{ + void installHooks(); +}; diff --git a/DDrawCompat/DDrawCompat.vcxproj b/DDrawCompat/DDrawCompat.vcxproj index 949d2b6..05b9c48 100644 --- a/DDrawCompat/DDrawCompat.vcxproj +++ b/DDrawCompat/DDrawCompat.vcxproj @@ -151,6 +151,7 @@ + @@ -178,6 +179,7 @@ + diff --git a/DDrawCompat/DDrawCompat.vcxproj.filters b/DDrawCompat/DDrawCompat.vcxproj.filters index 682b2ec..20a0633 100644 --- a/DDrawCompat/DDrawCompat.vcxproj.filters +++ b/DDrawCompat/DDrawCompat.vcxproj.filters @@ -87,6 +87,9 @@ Header Files + + Header Files + @@ -146,6 +149,9 @@ Source Files + + Source Files +