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;
}
Exemple #3
0
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;
}
void ScriptHook::Initialize(HMODULE hModule)
{
	scriptRegister(hModule, InitGameScript);
	keyboardHandlerRegister(OnKeyboardMessage);
}