BOOL APIENTRY DllMain(HMODULE hInstance, DWORD reason, LPVOID lpReserved) { Logger logger(LOGFILE); // ReSharper disable once CppDefaultCaseNotHandledInSwitchStatement switch (reason) { case DLL_PROCESS_ATTACH: { scriptRegister(hInstance, ScriptMain); keyboardHandlerRegister(OnKeyboardMessage); logger.Clear(); logger.Write("GTAVManualTransmission v4.1.3"); logger.Write(eGameVersionToString(getGameVersion())); logger.Write("Script loaded"); break; } case DLL_PROCESS_DETACH: { logger.Write("Init shutdown"); bool successI = MemoryPatcher::RestoreInstructions(); if (successI) { logger.Write("Shut down script successfully"); } else { if (!successI) logger.Write("Shut down script with instructions not restored"); } scriptUnregister(hInstance); keyboardHandlerUnregister(OnKeyboardMessage); break; } } return TRUE; }
BOOL APIENTRY DllMain(HMODULE hInstance, DWORD reason, LPVOID lpReserved){ switch (reason) { case DLL_PROCESS_ATTACH: scriptRegister(hInstance, ScriptMain); keyboardHandlerRegister(OnKeyboardMessage); break; case DLL_PROCESS_DETACH: scriptUnregister(ScriptMain); keyboardHandlerUnregister(OnKeyboardMessage); break; } return TRUE; }
BOOL WINAPI DllMain(HMODULE hModule, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(hModule); scriptRegister(hModule, &ScriptMainLoop); keyboardHandlerRegister(&ScriptKeyboardMessage); break; case DLL_PROCESS_DETACH: scriptUnregister(&ScriptMainLoop); keyboardHandlerUnregister(&ScriptKeyboardMessage); break; } return TRUE; }