#pragma once // host.h // 8/23/2013 jichi // Branch: ITH/IHF.h, rev 105 #include "common.h" #include "textthread.h" typedef std::function ProcessEventCallback; typedef std::function ThreadEventCallback; namespace Host { void Start(ProcessEventCallback onAttach, ProcessEventCallback onDetach, ThreadEventCallback onCreate, ThreadEventCallback onRemove); void Close(); bool InjectProcess(DWORD pid, DWORD timeout = 5000); void DetachProcess(DWORD pid); void InsertHook(DWORD pid, HookParam hp, std::string name = ""); void RemoveHook(DWORD pid, uint64_t addr); HookParam GetHookParam(DWORD pid, uint64_t addr); HookParam GetHookParam(ThreadParam tp); std::wstring GetHookName(DWORD pid, uint64_t addr); TextThread* GetThread(ThreadParam tp); void AddConsoleOutput(std::wstring text); } inline std::wstring ToWString(const char* text, UINT encoding) { std::wstring ret(strlen(text), 0); ret.resize(MultiByteToWideChar(encoding, 0, text, -1, ret.data(), ret.size())); return ret; } // EOF