int do_hook(char *hook_type, int hook_type_sz) { char *ptr, app_exe[1024], hook_method[1024]; int resolution[2]; // if(CoInitializeEx(NULL, COINIT_MULTITHREADED) != S_OK) { ga_error("*** CoInitializeEx failed.\n"); } // if(ga_hook_init() < 0) return -1; // handle ga-hook specific configurations if((ptr = ga_conf_readv("game-exe", app_exe, sizeof(app_exe))) == NULL) { ga_error("*** no game executable specified.\n"); return -1; } if((ptr = ga_conf_readv("hook-type", hook_type, hook_type_sz)) == NULL) { ga_error("*** no hook type specified.\n"); return -1; } if((ptr = ga_conf_readv("hook-method", hook_method, sizeof(hook_method))) != NULL) { ga_error("*** hook method specified: %s\n", hook_method); } // ga_error("[start-hook] exe=%s; type=%s\n", app_exe, hook_type); // if(hook_input() < 0) return -1; // --- if(strcasecmp(hook_type, "sdl") == 0) { return hook_sdl12(hook_type, hook_method); } // d9? if(strcasecmp(hook_type, "d9") == 0) { return hook_d9(hook_type, hook_method); } // dxgi? if(strcasecmp(hook_type, "dxgi") == 0) { //if(strstr(hook_method, "GetDXGIFactoryAddress") != NULL) return hook_dxgi(hook_type, hook_method); } // d10? if(strcasecmp(hook_type, "d10") == 0) { return hook_d10(hook_type, hook_method); } // d10.1? if(strcasecmp(hook_type, "d10.1") == 0) { return hook_d10_1(hook_type, hook_method); } // d11? if(strcasecmp(hook_type, "d11") == 0) { return hook_d11(hook_type, hook_method); } // ga_error("Unsupported hook type (%s)\n", hook_type); return -1; }
int main(int arg_c, char **arg_v, char **env_p) { t_hook_input hook; char *input; if (hook_open(&hook)) exit(EXIT_FAILURE); input = hook_input(&hook); ft_printf("[%s]\n", input); if (hook_close(&hook)) exit(EXIT_FAILURE); return (0); (void)arg_c; (void)arg_v; (void)env_p; }