1
0
mirror of https://github.com/narzoul/DDrawCompat synced 2024-12-30 08:55:36 +01:00
DDrawCompat/DDrawCompat/CompatGdiScrollFunctions.cpp

44 lines
1.0 KiB
C++
Raw Normal View History

#include "CompatGdi.h"
#include "CompatGdiScrollFunctions.h"
#include <detours.h>
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();
}
}