rendered paste body#pragma once#ifdef WINDOWERHELPER_EXPORTS#define WINDOWERHELPER_API __declspec(dllexport)#else#define WINDOWERHELPER_API __declspec(dllimport)#endif#include <queue>#include <windows.h>using namespace std;/* Text MMF */struct MMFTextCommand{ DWORD Command; char Alias[256]; char Param1[256]; char Param2[256]; char Param3[256]; char Param4[256]; char Text[2048];};struct MMFTextControlMapping{ unsigned long NumberOfCommands; bool Handled; MMFTextCommand Commands[32];};/* Keyboard MMF */struct MMFKeyboardCommand{ DWORD Command; char Param1[8]; char Param2[8]; char Param3[8]; char Param4[8]; char Text[2048];};struct MMFKeyboardControlMapping{ unsigned long NumberOfCommands; bool Handled; MMFKeyboardCommand Commands[32];};/* Console MMF */struct MMFConsoleArg{ char Value[2048];};struct MMFConsoleCommand{ int ArgCount; MMFConsoleArg Args[8];};struct MMFConsoleControlMapping{ unsigned long LastUpdate; MMFConsoleCommand Command;};class WINDOWERHELPER_API CTextHelper { public: CTextHelper(char* name); virtual ~CTextHelper(); void CreateTextObject(char* name); void DeleteTextObject(char* name); void SetText(char* name, char* text); void SetVisibility(char* name, bool visible); void SetFont(char* name, char* font, int height); void SetColor(char* name, unsigned char a, unsigned char r, unsigned char g, unsigned char b); void SetLocation(char* name, float x, float y); void SetBold(char* name, bool bold); void SetItalic(char* name, bool italic); void SetBGColor(char* name, unsigned char a, unsigned char r, unsigned char g, unsigned char b); void SetBGBorderSize(char* name, float pixels); void SetBGVisibility(char* name, bool visible); void SetRightJustified(char* name, bool justified); void FlushCommands(); private: HANDLE m_MapFile; LPVOID m_MapAddress; MMFTextControlMapping* m_TCM; queue<MMFTextCommand> m_QueuedCommands;};class WINDOWERHELPER_API CKeyboardHelper { public: CKeyboardHelper(char* name); virtual ~CKeyboardHelper(); void SetKey(unsigned char key, bool down); void BlockInput(bool block); void SendString(char* string); private: HANDLE m_MapFile; LPVOID m_MapAddress; MMFKeyboardControlMapping* m_KCM;};class WINDOWERHELPER_API CConsoleHelper { public: CConsoleHelper(char* name); virtual ~CConsoleHelper(); bool IsNewCommand(); int GetArgCount(); void GetArg(int index, char* buffer); private: unsigned long m_LastReadCommand; HANDLE m_MapFile; LPVOID m_MapAddress; MMFConsoleControlMapping* m_CCM;};/* TEXT HELPER STATIC FUNCTIONS */void* CreateTextHelper(char* name) { return new CTextHelper(name); }void DeleteTextHelper(void* helper) { delete helper; }void CTHCreateTextObject(void* helper, char* name) { ((CTextHelper*)helper)->CreateTextObject(name); }void CTHDeleteTextObject(void* helper, char* name) { ((CTextHelper*)helper)->DeleteTextObject(name); }void CTHSetText(void* helper, char* name, char* text) { ((CTextHelper*)helper)->SetText(name, text); }void CTHSetVisibility(void* helper, char* name, bool visible) { ((CTextHelper*)helper)->SetVisibility(name, visible); }void CTHSetFont(void* helper, char* name, char* font, int height) { ((CTextHelper*)helper)->SetFont(name, font, height); };void CTHSetColor(void* helper, char* name, unsigned char a, unsigned char r, unsigned char g, unsigned char b) { ((CTextHelper*)helper)->SetColor(name, a, r, g, b); }void CTHSetLocation(void* helper, char* name, float x, float y) { ((CTextHelper*)helper)->SetLocation(name, x, y); }void CTHSetBold(void* helper, char* name, bool bold) { ((CTextHelper*)helper)->SetBold(name, bold); }void CTHSetItalic(void* helper, char* name, bool italic) { ((CTextHelper*)helper)->SetBold(name, italic); }void CTHSetBGColor(void* helper, char* name, unsigned char a, unsigned char r, unsigned char g, unsigned char b) { ((CTextHelper*)helper)->SetBGColor(name, a, r, g, b); }void CTHSetBGBorderSize(void* helper, char* name, float pixels) { ((CTextHelper*)helper)->SetBGBorderSize(name, pixels); }void CTHSetBGVisibility(void* helper, char* name, bool visible) { ((CTextHelper*)helper)->SetBGVisibility(name, visible); }void CTHSetRightJustified(void* helper, char* name, bool justified) { ((CTextHelper*)helper)->SetRightJustified(name, justified); }void CTHFlushCommands(void* helper) { ((CTextHelper*)helper)->FlushCommands(); }/* KEYBOARD HELPER STATIC FUNCTIONS */void* CreateKeyboardHelper(char* name) { return new CKeyboardHelper(name); }void DeleteKeyboardHelper(void* helper) { delete helper; }void CKHSetKey(void* helper, unsigned char key, bool down) { ((CKeyboardHelper*)helper)->SetKey(key, down); }void CKHBlockInput(void* helper, bool block) { ((CKeyboardHelper*)helper)->BlockInput(block); }void CKHSendString(void* helper, char* string) { ((CKeyboardHelper*)helper)->SendString(string); }/* CONSOLE HELPER STATIC FUNCTIONS */void* CreateConsoleHelper(char* name) { return new CConsoleHelper(name); }void DeleteConsoleHelper(void* helper) { delete helper; }bool CCHIsNewCommand(void* helper) { return ((CConsoleHelper*)helper)->IsNewCommand(); }int CCHGetArgCount(void* helper) { return ((CConsoleHelper*)helper)->GetArgCount(); }void CCHGetArg(void* helper, int index, char* buffer) { return ((CConsoleHelper*)helper)->GetArg(index, buffer); }