@@ -129,31 +129,31 @@ namespace RC
129129 void * HookedLoadLibraryA (const char * dll_name)
130130 {
131131 UE4SSProgram& program = UE4SSProgram::get_program ();
132- HMODULE lib = PLH::FnCast ( program.m_hook_trampoline_load_library_a , &LoadLibraryA) (dll_name);
132+ HMODULE lib = program.m_load_library_a_hook . call <HMODULE> (dll_name);
133133 program.fire_dll_load_for_cpp_mods (to_wstring (dll_name));
134134 return lib;
135135 }
136136
137137 void * HookedLoadLibraryExA (const char * dll_name, void * file, int32_t flags)
138138 {
139139 UE4SSProgram& program = UE4SSProgram::get_program ();
140- HMODULE lib = PLH::FnCast ( program.m_hook_trampoline_load_library_ex_a , &LoadLibraryExA) (dll_name, file, flags);
140+ HMODULE lib = program.m_load_library_ex_a_hook . call <HMODULE> (dll_name, file, flags);
141141 program.fire_dll_load_for_cpp_mods (to_wstring (dll_name));
142142 return lib;
143143 }
144144
145145 void * HookedLoadLibraryW (const wchar_t * dll_name)
146146 {
147147 UE4SSProgram& program = UE4SSProgram::get_program ();
148- HMODULE lib = PLH::FnCast ( program.m_hook_trampoline_load_library_w , &LoadLibraryW) (dll_name);
148+ HMODULE lib = program.m_load_library_w_hook . call <HMODULE> (dll_name);
149149 program.fire_dll_load_for_cpp_mods (dll_name);
150150 return lib;
151151 }
152152
153153 void * HookedLoadLibraryExW (const wchar_t * dll_name, void * file, int32_t flags)
154154 {
155155 UE4SSProgram& program = UE4SSProgram::get_program ();
156- HMODULE lib = PLH::FnCast ( program.m_hook_trampoline_load_library_ex_w , &LoadLibraryExW) (dll_name, file, flags);
156+ HMODULE lib = program.m_load_library_ex_w_hook . call <HMODULE> (dll_name, file, flags);
157157 program.fire_dll_load_for_cpp_mods (dll_name);
158158 return lib;
159159 }
@@ -229,33 +229,10 @@ namespace RC
229229 Output::send (STR (" WITH_CASE_PRESERVING_NAME: No\n\n " ));
230230#endif
231231
232- m_load_library_a_hook = std::make_unique<PLH::IatHook>(" kernel32.dll" ,
233- " LoadLibraryA" ,
234- std::bit_cast<uint64_t >(&HookedLoadLibraryA),
235- &m_hook_trampoline_load_library_a,
236- L" " );
237- m_load_library_a_hook->hook ();
238-
239- m_load_library_ex_a_hook = std::make_unique<PLH::IatHook>(" kernel32.dll" ,
240- " LoadLibraryExA" ,
241- std::bit_cast<uint64_t >(&HookedLoadLibraryExA),
242- &m_hook_trampoline_load_library_ex_a,
243- L" " );
244- m_load_library_ex_a_hook->hook ();
245-
246- m_load_library_w_hook = std::make_unique<PLH::IatHook>(" kernel32.dll" ,
247- " LoadLibraryW" ,
248- std::bit_cast<uint64_t >(&HookedLoadLibraryW),
249- &m_hook_trampoline_load_library_w,
250- L" " );
251- m_load_library_w_hook->hook ();
252-
253- m_load_library_ex_w_hook = std::make_unique<PLH::IatHook>(" kernel32.dll" ,
254- " LoadLibraryExW" ,
255- std::bit_cast<uint64_t >(&HookedLoadLibraryExW),
256- &m_hook_trampoline_load_library_ex_w,
257- L" " );
258- m_load_library_ex_w_hook->hook ();
232+ m_load_library_a_hook = safetyhook::create_inline (LoadLibraryA, HookedLoadLibraryA);
233+ m_load_library_ex_a_hook = safetyhook::create_inline (LoadLibraryExA, HookedLoadLibraryExA);
234+ m_load_library_w_hook = safetyhook::create_inline (LoadLibraryW, HookedLoadLibraryW);
235+ m_load_library_ex_w_hook = safetyhook::create_inline (LoadLibraryExW, HookedLoadLibraryExW);
259236
260237 Unreal::UnrealInitializer::SetupUnrealModules ();
261238
0 commit comments