From 94a25da90d2bee7e43c83ae3c6a7922575d7484a Mon Sep 17 00:00:00 2001 From: RD42 <42702181+dashr9230@users.noreply.github.com> Date: Sat, 6 Jan 2024 23:36:46 +0800 Subject: [PATCH] [saco] Implement SubclassGameWindow - Adds NewWndProc stub --- saco/saco.vcproj | 3 +++ saco/subclass.cpp | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 saco/subclass.cpp diff --git a/saco/saco.vcproj b/saco/saco.vcproj index ebfc560..2e7c128 100644 --- a/saco/saco.vcproj +++ b/saco/saco.vcproj @@ -344,6 +344,9 @@ + + diff --git a/saco/subclass.cpp b/saco/subclass.cpp new file mode 100644 index 0000000..ae374e8 --- /dev/null +++ b/saco/subclass.cpp @@ -0,0 +1,48 @@ + +#include "main.h" + +extern CGame *pGame; + +WNDPROC hOldProc; +LRESULT APIENTRY NewWndProc(HWND,UINT,WPARAM,LPARAM); + +//---------------------------------------------------- + +BOOL SubclassGameWindow() +{ + HWND hwndGameWnd = pGame->GetMainWindowHwnd(); + + if(!hwndGameWnd) return FALSE; + + DWORD dwStyle = GetClassLong(hwndGameWnd,GCL_STYLE); + SetClassLong(hwndGameWnd,GCL_STYLE,dwStyle|CS_DBLCLKS); + + if(hwndGameWnd) { + hOldProc = (WNDPROC)GetWindowLong(hwndGameWnd,GWL_WNDPROC); + if(hOldProc != NewWndProc) { + SetWindowLong(hwndGameWnd,GWL_WNDPROC,(LONG)NewWndProc); + } + } + + SetWindowText(hwndGameWnd,"GTA:SA:MP"); + + if(IsWindowUnicode(hwndGameWnd)) { + OutputDebugString("GTA is unicode"); + } else { + OutputDebugString("GTA is not unicode"); + } + + return TRUE; +} + +//---------------------------------------------------- + +LRESULT APIENTRY NewWndProc( HWND hwnd,UINT uMsg, + WPARAM wParam,LPARAM lParam ) +{ + // TODO: NewWndProc + + return CallWindowProc(hOldProc,hwnd,uMsg,wParam,lParam); +} + +//----------------------------------------------------