namespace axl::spy
namespace spy {
// typedefs
typedef HookAction HookEnterFunc(
void *targetFunc,
void *callbackParam,
size_t frameBase
);
typedef void HookLeaveFunc(
void *targetFunc,
void *callbackParam,
size_t frameBase
);
// enums
enum FrameOffset;
enum HookAction;
// structs
struct ImportWriteProtectionBackup;
struct VaList;
// classes
class HookArena;
class ImportIteratorBase;
// global functions
void
vaStart(
VaList& va,
size_t frameBase
);
template <typename T>
T&
vaArg(VaList& va);
void
vaEnd(VaList& va);
void
setHookTargetFunc(
Hook* hook,
void* targetFunc
);
void
enableHooks();
void
disableHooks();
void
enableCurrentThreadHooks();
void
disableCurrentThreadHooks();
bool
enumerateImports(
ImportIterator* iterator,
void* module = NULL
);
bool
enumerateImports(
ImportIterator* importIterator,
const ModuleIterator& moduleIterator
);
ImportIterator
enumerateImports(void* module = NULL);
ImportIterator
enumerateImports(const ModuleIterator& moduleIterator);
bool
disableImportWriteProtection(
void* module,
ImportWriteProtectionBackup* backup
);
bool
disableImportWriteProtection(
const ModuleIterator& moduleIterator,
ImportWriteProtectionBackup* backup
);
bool
restoreImportWriteProtection(const ImportWriteProtectionBackup* backup);
bool
enumerateModules(ModuleIterator* iterator);
ModuleIterator
enumerateModules();
} // namespace spy