SA-MP/saco/subclass.cpp

60 lines
1.2 KiB
C++
Raw Normal View History

#include "main.h"
extern CGame *pGame;
WNDPROC hOldProc;
LRESULT APIENTRY NewWndProc(HWND,UINT,WPARAM,LPARAM);
//----------------------------------------------------
void InstallNewWindowProcedure()
{
HWND hwndGameWnd = pGame->GetMainWindowHwnd();
if(hwndGameWnd) {
hOldProc = (WNDPROC)GetWindowLong(hwndGameWnd,GWL_WNDPROC);
if(hOldProc != NewWndProc) {
SetWindowLong(hwndGameWnd,GWL_WNDPROC,(LONG)NewWndProc);
}
}
}
//----------------------------------------------------
BOOL SubclassGameWindow()
{
HWND hwndGameWnd = pGame->GetMainWindowHwnd();
2024-07-22 18:27:19 +08:00
if(hwndGameWnd) {
2024-07-22 18:27:19 +08:00
DWORD dwStyle = GetClassLong(hwndGameWnd,GCL_STYLE);
SetClassLong(hwndGameWnd,GCL_STYLE,dwStyle|CS_DBLCLKS);
2024-07-22 18:27:19 +08:00
InstallNewWindowProcedure();
2024-07-22 18:27:19 +08:00
SetWindowText(hwndGameWnd,"GTA:SA:MP");
2024-07-22 18:27:19 +08:00
if(IsWindowUnicode(hwndGameWnd)) {
OutputDebugString("GTA is unicode");
} else {
OutputDebugString("GTA is not unicode");
}
return TRUE;
}
2024-07-22 18:27:19 +08:00
return FALSE;
}
//----------------------------------------------------
LRESULT APIENTRY NewWndProc( HWND hwnd,UINT uMsg,
WPARAM wParam,LPARAM lParam )
{
// TODO: NewWndProc
return CallWindowProc(hOldProc,hwnd,uMsg,wParam,lParam);
}
//----------------------------------------------------