geode/loader/launcher/windows/proxyLoader.c

28 lines
1 KiB
C
Raw Normal View History

2022-07-30 12:24:03 -04:00
#include <Windows.h>
#include <stdio.h>
2022-07-30 12:24:03 -04:00
#pragma comment(linker, "/export:XInputGetState=xinput1_4.XInputGetState")
#pragma comment(linker, "/export:XInputSetState=xinput1_4.XInputSetState")
#pragma comment(linker, "/export:XInputGetCapabilities=xinput1_4.XInputGetCapabilities")
DWORD XInputGetDSoundAudioDeviceGuids(DWORD user, GUID* render, GUID* capture) {
return ERROR_BAD_ARGUMENTS;
}
#pragma comment(linker, "/export:XInputGetDSoundAudioDeviceGuids=_XInputGetDSoundAudioDeviceGuids")
__declspec(dllimport) DWORD WINAPI loadGeode(void*);
2022-07-30 12:24:03 -04:00
BOOL WINAPI DllMain(HINSTANCE module, DWORD reason, LPVOID _) {
if (reason == DLL_PROCESS_ATTACH) {
// Prevents threads from notifying this DLL on creation or destruction.
// Kind of redundant for a game that isn't multi-threaded but will provide
// some slight optimizations if a mod frequently creates and deletes threads.
DisableThreadLibraryCalls(module);
DWORD code = loadGeode(module);
if (code != 0)
2022-07-30 12:24:03 -04:00
return FALSE;
}
return TRUE;
}