Skip to content

Commit 419bc93

Browse files
committed
Fix the window class and window name to work separately.
1 parent d49fb75 commit 419bc93

2 files changed

Lines changed: 8 additions & 10 deletions

File tree

WinSplitPlusApp/main.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ int wmain(int argc, wchar_t* argv[])
4747
std::wstring gameArgs;
4848
std::wstring baseMutexName;
4949
int playerNumber = 1;
50+
bool changeWindowName = false;
5051

5152
if (argc < 2) {
5253
print_usage();
@@ -72,10 +73,11 @@ int wmain(int argc, wchar_t* argv[])
7273
}
7374
}
7475
else if (lower_arg == L"-winclass") {
75-
injectionInfo.injectionFlags = injectionInfo.injectionFlags | InjectionFlags::HOOK_WND_PROC;
76+
injectionInfo.injectionFlags = injectionInfo.injectionFlags | InjectionFlags::HOOK_WND_PROC | InjectionFlags::HOOK_CREATE_WINDOW;
7677
}
7778
else if (lower_arg == L"-winname") {
7879
injectionInfo.injectionFlags = injectionInfo.injectionFlags | InjectionFlags::HOOK_CREATE_WINDOW;
80+
changeWindowName = true;
7981
}
8082
else if (lower_arg == L"-mutex" && i + 1 < argc) {
8183
injectionInfo.injectionFlags = injectionInfo.injectionFlags | InjectionFlags::HOOK_CREATE_MUTEX;
@@ -120,7 +122,7 @@ int wmain(int argc, wchar_t* argv[])
120122
wcscpy_s(injectionInfo.windowClassName, CLASS_NAME_MAX_LENGTH, finalClassName.c_str());
121123
}
122124

123-
if ((injectionInfo.injectionFlags & InjectionFlags::HOOK_CREATE_WINDOW) == InjectionFlags::HOOK_CREATE_WINDOW) {
125+
if (changeWindowName) {
124126
std::wstring finalWindowName = L"WinSplitPlus " + std::to_wstring(playerNumber);
125127
wcscpy_s(injectionInfo.windowName, WINDOW_NAME_MAX_LENGTH, finalWindowName.c_str());
126128
}
@@ -136,10 +138,6 @@ int wmain(int argc, wchar_t* argv[])
136138
wcscpy_s(injectionInfo.mutexNewName, MUTEX_NAME_MAX_LENGTH, finalMutexName.c_str());
137139
}
138140

139-
if (injectionInfo.windowSizeX > 0 || injectionInfo.windowSizeY > 0 || injectionInfo.windowPosX > 0 || injectionInfo.windowPosY > 0) {
140-
injectionInfo.injectionFlags = injectionInfo.injectionFlags | InjectionFlags::HOOK_SET_WINDOW_POS;
141-
}
142-
143141
// Inject the DLL
144142
WCHAR exePath[MAX_PATH];
145143
GetModuleFileName(NULL, exePath, MAX_PATH);

WinSplitPlusIJ/WinSplitPlusIJ.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,17 +108,17 @@ HWND WINAPI CreateWindowExAHook(
108108
if (gInjectionInfo.windowClassName[0] != L'\0')
109109
{
110110
static char ansiClassName[CLASS_NAME_MAX_LENGTH];
111-
size_t convertedCount;
112-
wcstombs_s(&convertedCount, ansiClassName, CLASS_NAME_MAX_LENGTH, gInjectionInfo.windowClassName, CLASS_NAME_MAX_LENGTH);
111+
//size_t convertedCount;
112+
wcstombs_s(nullptr, ansiClassName, CLASS_NAME_MAX_LENGTH, gInjectionInfo.windowClassName, _TRUNCATE);
113113
finalClassName = ansiClassName;
114114
}
115115

116116
LPCSTR finalWindowName = lpWindowName;
117117
if (gInjectionInfo.windowName[0] != L'\0')
118118
{
119119
static char ansiWindowName[WINDOW_NAME_MAX_LENGTH];
120-
size_t convertedCount;
121-
wcstombs_s(&convertedCount, ansiWindowName, WINDOW_NAME_MAX_LENGTH, gInjectionInfo.windowName, WINDOW_NAME_MAX_LENGTH);
120+
//size_t convertedCount;
121+
wcstombs_s(nullptr, ansiWindowName, WINDOW_NAME_MAX_LENGTH, gInjectionInfo.windowName, _TRUNCATE);
122122
finalWindowName = ansiWindowName;
123123
}
124124

0 commit comments

Comments
 (0)