LunaHook-mirror/LunaHost/host.h

32 lines
1.5 KiB
C
Raw Normal View History

2024-02-07 20:59:24 +08:00
#pragma once
#include "textthread.h"
namespace Host
{
using ConsoleHandler =std::function<void(const std::wstring&)>;
2024-02-07 20:59:24 +08:00
using ProcessEventHandler = std::function<void(DWORD)>;
using ThreadEventHandler = std::function<void(TextThread&)>;
using HookEventHandler = std::function<void(const HookParam&,const std::wstring& text)>;
using HookInsertHandler= std::function<void(uint64_t,const std::wstring&)>;
using EmbedCallback= std::function<void(const std::wstring&,const ThreadParam&)>;
2024-02-07 20:59:24 +08:00
void Start(ProcessEventHandler Connect, ProcessEventHandler Disconnect, ThreadEventHandler Create, ThreadEventHandler Destroy, TextThread::OutputCallback Output,bool createconsole=true);
void StartEx(ProcessEventHandler Connect, ProcessEventHandler Disconnect, ThreadEventHandler Create, ThreadEventHandler Destroy, TextThread::OutputCallback Output,ConsoleHandler console,HookInsertHandler hookinsert,EmbedCallback embed);
void InjectProcess(DWORD processId,const std::wstring locationX=L"");
bool CreatePipeAndCheck(DWORD processId);
void DetachProcess(DWORD processId);
void InsertHook(DWORD processId, HookParam hp);
void RemoveHook(DWORD processId, uint64_t address);
void FindHooks(DWORD processId, SearchParam sp, HookEventHandler HookFound = {});
EmbedSharedMem* GetEmbedSharedMem(DWORD pid);
TextThread* GetThread(int64_t handle);
TextThread& GetThread(ThreadParam tp);
void AddConsoleOutput(std::wstring text);
inline int defaultCodepage = SHIFT_JIS;
2024-04-18 16:19:52 +08:00
constexpr ThreadParam console{ 0, 0, 0, 0 };
2024-02-07 20:59:24 +08:00
}