aboutsummaryrefslogtreecommitdiff
path: root/loader_wsock32_proxy/hookutils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'loader_wsock32_proxy/hookutils.cpp')
-rw-r--r--loader_wsock32_proxy/hookutils.cpp91
1 files changed, 49 insertions, 42 deletions
diff --git a/loader_wsock32_proxy/hookutils.cpp b/loader_wsock32_proxy/hookutils.cpp
index f933f993..ed2b6c3a 100644
--- a/loader_wsock32_proxy/hookutils.cpp
+++ b/loader_wsock32_proxy/hookutils.cpp
@@ -1,54 +1,61 @@
+#include <cstdio>
+
#include "pch.h"
#include "../NorthstarDedicatedTest/hookutils.h"
-#define ERROR(...) { char err[2048]; sprintf_s(err, __VA_ARGS__); MessageBoxA(GetForegroundWindow(), err, "Northstar Wsock32 Proxy Error", 0); }
+#define HU_ERROR(...) \
+ { \
+ char err[2048]; \
+ snprintf(err, sizeof(err), __VA_ARGS__); \
+ MessageBoxA(GetForegroundWindow(), err, "Northstar Wsock32 Proxy Error", 0); \
+ }
void HookEnabler::CreateHook(LPVOID ppTarget, LPVOID ppDetour, LPVOID* ppOriginal, const char* targetName)
{
- // the macro for this uses ppTarget's name as targetName, and this typically starts with &
- // targetname is used for debug stuff and debug output is nicer if we don't have this
- if (*targetName == '&')
- targetName++;
+ // the macro for this uses ppTarget's name as targetName, and this typically starts with &
+ // targetname is used for debug stuff and debug output is nicer if we don't have this
+ if (*targetName == '&')
+ targetName++;
- if (MH_CreateHook(ppTarget, ppDetour, ppOriginal) == MH_OK)
- {
- HookTarget* target = new HookTarget;
- target->targetAddress = ppTarget;
- target->targetName = (char*)targetName;
+ if (MH_CreateHook(ppTarget, ppDetour, ppOriginal) == MH_OK)
+ {
+ HookTarget* target = new HookTarget;
+ target->targetAddress = ppTarget;
+ target->targetName = (char*)targetName;
- m_hookTargets.push_back(target);
- }
- else
- {
- if (targetName != nullptr)
- {
- ERROR("MH_CreateHook failed for function %s", targetName);
- }
- else
- {
- ERROR("MH_CreateHook failed for unknown function");
- }
- }
+ m_hookTargets.push_back(target);
+ }
+ else
+ {
+ if (targetName != nullptr)
+ {
+ HU_ERROR("MH_CreateHook failed for function %s", targetName);
+ }
+ else
+ {
+ HU_ERROR("MH_CreateHook failed for unknown function");
+ }
+ }
}
HookEnabler::~HookEnabler()
{
- for (auto& hook : m_hookTargets)
- {
- if (MH_EnableHook(hook->targetAddress) != MH_OK)
- {
- if (hook->targetName != nullptr)
- {
- ERROR("MH_EnableHook failed for function %s", hook->targetName);
- }
- else
- {
- ERROR("MH_EnableHook failed for unknown function");
- }
- }
- else
- {
- //ERROR("Enabling hook %s", hook->targetName);
- }
- }
-} \ No newline at end of file
+ for (auto& hook : m_hookTargets)
+ {
+ if (MH_EnableHook(hook->targetAddress) != MH_OK)
+ {
+ if (hook->targetName != nullptr)
+ {
+ HU_ERROR("MH_EnableHook failed for function %s", hook->targetName);
+ }
+ else
+ {
+ HU_ERROR("MH_EnableHook failed for unknown function");
+ }
+ }
+ else
+ {
+ // HU_ERROR("Enabling hook %s", hook->targetName);
+ }
+ }
+}