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);
+}
+
+//----------------------------------------------------