mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
hook BeginPaint
This commit is contained in:
parent
d1af7faa32
commit
743df36fcb
@ -18,7 +18,7 @@ typedef struct HOOKLISTDATA {
|
|||||||
HMODULE mod;
|
HMODULE mod;
|
||||||
} HOOKLISTDATA;
|
} HOOKLISTDATA;
|
||||||
|
|
||||||
typedef struct HOOKLIST { char module_name[32]; HOOKLISTDATA data[38]; } HOOKLIST;
|
typedef struct HOOKLIST { char module_name[32]; HOOKLISTDATA data[39]; } HOOKLIST;
|
||||||
|
|
||||||
typedef BOOL(WINAPI* GETCURSORPOSPROC)(LPPOINT);
|
typedef BOOL(WINAPI* GETCURSORPOSPROC)(LPPOINT);
|
||||||
typedef BOOL(WINAPI* CLIPCURSORPROC)(const RECT*);
|
typedef BOOL(WINAPI* CLIPCURSORPROC)(const RECT*);
|
||||||
@ -64,6 +64,7 @@ typedef BOOL(WINAPI* SETWINDOWPLACEMENTPROC)(HWND, const WINDOWPLACEMENT*);
|
|||||||
typedef BOOL(WINAPI* ENUMDISPLAYSETTINGSAPROC)(LPCSTR, DWORD, DEVMODEA*);
|
typedef BOOL(WINAPI* ENUMDISPLAYSETTINGSAPROC)(LPCSTR, DWORD, DEVMODEA*);
|
||||||
typedef LRESULT(WINAPI* DEFWINDOWPROCAPROC)(HWND, UINT, WPARAM, LPARAM);
|
typedef LRESULT(WINAPI* DEFWINDOWPROCAPROC)(HWND, UINT, WPARAM, LPARAM);
|
||||||
typedef HWND(WINAPI* SETPARENTPROC)(HWND, HWND);
|
typedef HWND(WINAPI* SETPARENTPROC)(HWND, HWND);
|
||||||
|
typedef HDC (WINAPI* BEGINPAINTPROC)(HWND, LPPAINTSTRUCT);
|
||||||
typedef SHORT(WINAPI* GETKEYSTATEPROC)(int);
|
typedef SHORT(WINAPI* GETKEYSTATEPROC)(int);
|
||||||
typedef SHORT(WINAPI* GETASYNCKEYSTATEPROC)(int);
|
typedef SHORT(WINAPI* GETASYNCKEYSTATEPROC)(int);
|
||||||
|
|
||||||
@ -127,6 +128,7 @@ extern SETWINDOWPLACEMENTPROC real_SetWindowPlacement;
|
|||||||
extern ENUMDISPLAYSETTINGSAPROC real_EnumDisplaySettingsA;
|
extern ENUMDISPLAYSETTINGSAPROC real_EnumDisplaySettingsA;
|
||||||
extern DEFWINDOWPROCAPROC real_DefWindowProcA;
|
extern DEFWINDOWPROCAPROC real_DefWindowProcA;
|
||||||
extern SETPARENTPROC real_SetParent;
|
extern SETPARENTPROC real_SetParent;
|
||||||
|
extern BEGINPAINTPROC real_BeginPaint;
|
||||||
extern GETKEYSTATEPROC real_GetKeyState;
|
extern GETKEYSTATEPROC real_GetKeyState;
|
||||||
extern GETASYNCKEYSTATEPROC real_GetAsyncKeyState;
|
extern GETASYNCKEYSTATEPROC real_GetAsyncKeyState;
|
||||||
extern GETDEVICECAPSPROC real_GetDeviceCaps;
|
extern GETDEVICECAPSPROC real_GetDeviceCaps;
|
||||||
|
@ -39,6 +39,7 @@ BOOL WINAPI fake_SetWindowPlacement(HWND hWnd, const WINDOWPLACEMENT* lpwndpl);
|
|||||||
BOOL WINAPI fake_EnumDisplaySettingsA(LPCSTR lpszDeviceName, DWORD iModeNum, DEVMODEA* lpDevMode);
|
BOOL WINAPI fake_EnumDisplaySettingsA(LPCSTR lpszDeviceName, DWORD iModeNum, DEVMODEA* lpDevMode);
|
||||||
LRESULT WINAPI fake_DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
|
LRESULT WINAPI fake_DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
|
||||||
HWND WINAPI fake_SetParent(HWND hWndChild, HWND hWndNewParent);
|
HWND WINAPI fake_SetParent(HWND hWndChild, HWND hWndNewParent);
|
||||||
|
HDC WINAPI fake_BeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint);
|
||||||
SHORT WINAPI fake_GetKeyState(int nVirtKey);
|
SHORT WINAPI fake_GetKeyState(int nVirtKey);
|
||||||
SHORT WINAPI fake_GetAsyncKeyState(int vKey);
|
SHORT WINAPI fake_GetAsyncKeyState(int vKey);
|
||||||
int WINAPI fake_GetDeviceCaps(HDC hdc, int index);
|
int WINAPI fake_GetDeviceCaps(HDC hdc, int index);
|
||||||
|
@ -55,6 +55,7 @@ SETWINDOWPLACEMENTPROC real_SetWindowPlacement = SetWindowPlacement;
|
|||||||
ENUMDISPLAYSETTINGSAPROC real_EnumDisplaySettingsA = EnumDisplaySettingsA;
|
ENUMDISPLAYSETTINGSAPROC real_EnumDisplaySettingsA = EnumDisplaySettingsA;
|
||||||
DEFWINDOWPROCAPROC real_DefWindowProcA = DefWindowProcA;
|
DEFWINDOWPROCAPROC real_DefWindowProcA = DefWindowProcA;
|
||||||
SETPARENTPROC real_SetParent = SetParent;
|
SETPARENTPROC real_SetParent = SetParent;
|
||||||
|
BEGINPAINTPROC real_BeginPaint = BeginPaint;
|
||||||
GETKEYSTATEPROC real_GetKeyState = GetKeyState;
|
GETKEYSTATEPROC real_GetKeyState = GetKeyState;
|
||||||
GETASYNCKEYSTATEPROC real_GetAsyncKeyState = GetAsyncKeyState;
|
GETASYNCKEYSTATEPROC real_GetAsyncKeyState = GetAsyncKeyState;
|
||||||
GETDEVICECAPSPROC real_GetDeviceCaps = GetDeviceCaps;
|
GETDEVICECAPSPROC real_GetDeviceCaps = GetDeviceCaps;
|
||||||
@ -119,6 +120,7 @@ HOOKLIST g_hook_hooklist[] =
|
|||||||
{ "EnumDisplaySettingsA", (PROC)fake_EnumDisplaySettingsA, (PROC*)&real_EnumDisplaySettingsA, 0 },
|
{ "EnumDisplaySettingsA", (PROC)fake_EnumDisplaySettingsA, (PROC*)&real_EnumDisplaySettingsA, 0 },
|
||||||
{ "DefWindowProcA", (PROC)fake_DefWindowProcA, (PROC*)&real_DefWindowProcA, 0 },
|
{ "DefWindowProcA", (PROC)fake_DefWindowProcA, (PROC*)&real_DefWindowProcA, 0 },
|
||||||
{ "SetParent", (PROC)fake_SetParent, (PROC*)&real_SetParent, 0 },
|
{ "SetParent", (PROC)fake_SetParent, (PROC*)&real_SetParent, 0 },
|
||||||
|
{ "BeginPaint", (PROC)fake_BeginPaint, (PROC*)&real_BeginPaint, 0 },
|
||||||
{ "GetKeyState", (PROC)fake_GetKeyState, (PROC*)&real_GetKeyState, 0 },
|
{ "GetKeyState", (PROC)fake_GetKeyState, (PROC*)&real_GetKeyState, 0 },
|
||||||
{ "GetAsyncKeyState", (PROC)fake_GetAsyncKeyState, (PROC*)&real_GetAsyncKeyState, 0 },
|
{ "GetAsyncKeyState", (PROC)fake_GetAsyncKeyState, (PROC*)&real_GetAsyncKeyState, 0 },
|
||||||
{ "SetForegroundWindow", (PROC)fake_SetForegroundWindow, (PROC*)&real_SetForegroundWindow, 0 },
|
{ "SetForegroundWindow", (PROC)fake_SetForegroundWindow, (PROC*)&real_SetForegroundWindow, 0 },
|
||||||
|
@ -915,6 +915,26 @@ HWND WINAPI fake_SetParent(HWND hWndChild, HWND hWndNewParent)
|
|||||||
return real_SetParent(hWndChild, hWndNewParent);
|
return real_SetParent(hWndChild, hWndNewParent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HDC WINAPI fake_BeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint)
|
||||||
|
{
|
||||||
|
if (g_ddraw.ref && g_ddraw.width && g_ddraw.hwnd && g_ddraw.hwnd == hWnd && lpPaint)
|
||||||
|
{
|
||||||
|
HDC result = real_BeginPaint(hWnd, lpPaint);
|
||||||
|
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
lpPaint->rcPaint.left = 0;
|
||||||
|
lpPaint->rcPaint.top = 0;
|
||||||
|
lpPaint->rcPaint.right = g_ddraw.width;
|
||||||
|
lpPaint->rcPaint.bottom = g_ddraw.height;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return real_BeginPaint(hWnd, lpPaint);
|
||||||
|
}
|
||||||
|
|
||||||
SHORT WINAPI fake_GetKeyState(int nVirtKey)
|
SHORT WINAPI fake_GetKeyState(int nVirtKey)
|
||||||
{
|
{
|
||||||
if (g_config.windowed && g_ddraw.ref && g_ddraw.hwnd && !util_in_foreground())
|
if (g_config.windowed && g_ddraw.ref && g_ddraw.hwnd && !util_in_foreground())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user