6#include "safetyhook/common.hpp"
9#include "safetyhook/utility.hpp"
26template <
typename T,
typename U>
28 return create_inline(
reinterpret_cast<void*
>(target),
reinterpret_cast<void*
>(destination), flags);
46 return create_mid(
reinterpret_cast<void*
>(target), destination, flags);
60 if (
auto hook = vmt.
hook_method(index, destination)) {
61 return std::move(*hook);
An inline hook.
Definition inline_hook.hpp:23
Flags
Flags for InlineHook.
Definition inline_hook.hpp:116
@ Default
Default flags.
Definition inline_hook.hpp:117
A mid function hook.
Definition mid_hook.hpp:25
Flags
Flags for MidHook.
Definition mid_hook.hpp:63
@ Default
Default flags.
Definition mid_hook.hpp:64
A hook class that allows for hooking a single method in a VMT.
Definition vmt_hook.hpp:20
A hook class that copies an entire VMT for a given object and replaces it.
Definition vmt_hook.hpp:95
std::expected< VmHook, Error > hook_method(size_t index, T new_function)
Hooks a method in the VMT.
Definition vmt_hook.hpp:147
VmtHook SAFETYHOOK_API create_vmt(void *object)
Easy to use API for creating a VmtHook.
InlineHook SAFETYHOOK_API create_inline(void *target, void *destination, InlineHook::Flags flags=InlineHook::Default)
Easy to use API for creating an InlineHook.
MidHook SAFETYHOOK_API create_mid(void *target, MidHookFn destination, MidHook::Flags flags=MidHook::Default)
Easy to use API for creating a MidHook.
VmHook create_vm(VmtHook &vmt, size_t index, T destination)
Easy to use API for creating a VmHook.
Definition easy.hpp:59
Mid function hooking class.
void(*)(Context &ctx) MidHookFn
A MidHook destination function.
Definition mid_hook.hpp:22