#pragma once #include "Classes.h" #if defined(MFC2010) || defined(MFC2011) // 2010 struct definitions: // 0x47E010: CWorkspace->DoExecScript() // 0x47EC10: CWorkspace->ExecUrlScript() class CWorkspace; const auto CWorkspace__ExecUrlScript = (HRESULT(__stdcall*)(CWorkspace * workspace, LPCWSTR, VARIANTARG, VARIANTARG, VARIANTARG, VARIANTARG, LPVOID))ADDRESS_CWORKSPACE__EXECURLSCRIPT; struct CRobloxDoc { void* padding1[CLASSPADDING_CROBLOXDOC__WORKSPACE]; CWorkspace* workspace; }; struct CApp; // const auto CApp__CreateGame = (CWorkspace * (__thiscall*)(CApp * _this, int, LPCWSTR))ADDRESS_CAPP__CREATEGAME; const auto CApp__RobloxAuthenticate = (void* (__thiscall*)(CApp * _this, LPVOID, LPCWSTR, LPCWSTR))ADDRESS_CAPP__ROBLOXAUTHENTICATE; // 2010 struct definitions: // 0x405D20: CRobloxApp->CreateDocument() // 0x44F6F0: CRobloxApp->ExitInstance() // 0x452900: CRobloxApp->InitInstance() struct CRobloxApp; const auto CRobloxApp__CreateDocument = (CRobloxDoc * (__thiscall*)(CRobloxApp * _this))ADDRESS_CROBLOXAPP__CREATEDOCUMENT; struct CCommandLineInfo { void* padding1[3]; BOOL m_bRunAutomated; }; class CRobloxCommandLineInfo : public CCommandLineInfo {}; const auto CCommandLineInfo__ParseLast = (void(__thiscall*)(CCommandLineInfo * _this, BOOL bLast))ADDRESS_CCOMMANDLINEINFO__PARSELAST; typedef BOOL(__thiscall* CRobloxApp__InitInstance_t)(CRobloxApp* _this); typedef void(__thiscall* CRobloxCommandLineInfo__ParseParam_t)(CRobloxCommandLineInfo* _this, const char* pszParam, BOOL bFlag, BOOL bLast); BOOL __fastcall CRobloxApp__InitInstance_hook(CRobloxApp* _this); void __fastcall CRobloxCommandLineInfo__ParseParam_hook(CRobloxCommandLineInfo* _this, void*, const char* pszParam, BOOL bFlag, BOOL bLast); extern CRobloxApp__InitInstance_t CRobloxApp__InitInstance; extern CRobloxCommandLineInfo__ParseParam_t CRobloxCommandLineInfo__ParseParam; #endif