#pragma once class AbstractHookEngine { private: const char* name_; public: AbstractHookEngine(const char* name) : name_(name) { } virtual bool hook_all() = 0; virtual bool unhook_all() = 0; virtual bool all_hooked() = 0; const char* name() { return name_; } };