[LineEndings] Fix crlf lineendings

- added gitattributes file to force crlf for hpp/cpp/lua
This commit is contained in:
/dev/root
2017-01-16 17:42:50 +01:00
parent 7606685fce
commit 6c9e28ff42
164 changed files with 32585 additions and 32582 deletions

View File

@ -1,197 +1,197 @@
#include "STDInclude.hpp"
STEAM_IGNORE_WARNINGS_START
namespace Steam
{
int Matchmaking::GetFavoriteGameCount()
{
return 0;
}
bool Matchmaking::GetFavoriteGame(int iGame, unsigned int *pnAppID, unsigned int *pnIP, unsigned short *pnConnPort, unsigned short *pnQueryPort, unsigned int *punFlags, unsigned int *pRTime32LastPlayedOnServer)
{
return false;
}
int Matchmaking::AddFavoriteGame(unsigned int nAppID, unsigned int nIP, unsigned short nConnPort, unsigned short nQueryPort, unsigned int unFlags, unsigned int rTime32LastPlayedOnServer)
{
return 0;
}
bool Matchmaking::RemoveFavoriteGame(unsigned int nAppID, unsigned int nIP, unsigned short nConnPort, unsigned short nQueryPort, unsigned int unFlags)
{
return false;
}
unsigned __int64 Matchmaking::RequestLobbyList()
{
return 0;
}
void Matchmaking::AddRequestLobbyListStringFilter(const char *pchKeyToMatch, const char *pchValueToMatch, int eComparisonType)
{
}
void Matchmaking::AddRequestLobbyListNumericalFilter(const char *pchKeyToMatch, int nValueToMatch, int eComparisonType)
{
}
void Matchmaking::AddRequestLobbyListNearValueFilter(const char *pchKeyToMatch, int nValueToBeCloseTo)
{
}
void Matchmaking::AddRequestLobbyListFilterSlotsAvailable(int nSlotsAvailable)
{
}
SteamID Matchmaking::GetLobbyByIndex(int iLobby)
{
return SteamID();
}
unsigned __int64 Matchmaking::CreateLobby(int eLobbyType, int cMaxMembers)
{
uint64_t result = Callbacks::RegisterCall();
LobbyCreated* retvals = ::Utils::Memory::Allocate<LobbyCreated>();
SteamID id;
id.AccountID = 1337132;
id.Universe = 1;
id.AccountType = 8;
id.AccountInstance = 0x40000;
retvals->m_eResult = 1;
retvals->m_ulSteamIDLobby = id;
Callbacks::ReturnCall(retvals, sizeof(LobbyCreated), LobbyCreated::CallbackID, result);
Matchmaking::JoinLobby(id);
return result;
}
unsigned __int64 Matchmaking::JoinLobby(SteamID steamIDLobby)
{
uint64_t result = Callbacks::RegisterCall();
LobbyEnter* retvals = ::Utils::Memory::Allocate<LobbyEnter>();
retvals->m_bLocked = false;
retvals->m_EChatRoomEnterResponse = 1;
retvals->m_rgfChatPermissions = 0xFFFFFFFF;
retvals->m_ulSteamIDLobby = steamIDLobby;
Callbacks::ReturnCall(retvals, sizeof(LobbyEnter), LobbyEnter::CallbackID, result);
return result;
}
void Matchmaking::LeaveLobby(SteamID steamIDLobby)
{
Components::Party::RemoveLobby(steamIDLobby);
}
bool Matchmaking::InviteUserToLobby(SteamID steamIDLobby, SteamID steamIDInvitee)
{
return true;
}
int Matchmaking::GetNumLobbyMembers(SteamID steamIDLobby)
{
return 1;
}
SteamID Matchmaking::GetLobbyMemberByIndex(SteamID steamIDLobby, int iMember)
{
return SteamUser()->GetSteamID();
}
const char *Matchmaking::GetLobbyData(SteamID steamIDLobby, const char *pchKey)
{
return Components::Party::GetLobbyInfo(steamIDLobby, pchKey);
}
bool Matchmaking::SetLobbyData(SteamID steamIDLobby, const char *pchKey, const char *pchValue)
{
return true;
}
int Matchmaking::GetLobbyDataCount(SteamID steamIDLobby)
{
return 0;
}
bool Matchmaking::GetLobbyDataByIndex(SteamID steamIDLobby, int iLobbyData, char *pchKey, int cchKeyBufferSize, char *pchValue, int cchValueBufferSize)
{
return false;
}
bool Matchmaking::DeleteLobbyData(SteamID steamIDLobby, const char *pchKey)
{
return false;
}
const char *Matchmaking::GetLobbyMemberData(SteamID steamIDLobby, SteamID steamIDUser, const char *pchKey)
{
return "";
}
void Matchmaking::SetLobbyMemberData(SteamID steamIDLobby, const char *pchKey, const char *pchValue)
{
}
bool Matchmaking::SendLobbyChatMsg(SteamID steamIDLobby, const void *pvMsgBody, int cubMsgBody)
{
return true;
}
int Matchmaking::GetLobbyChatEntry(SteamID steamIDLobby, int iChatID, SteamID *pSteamIDUser, void *pvData, int cubData, int *peChatEntryType)
{
return 0;
}
bool Matchmaking::RequestLobbyData(SteamID steamIDLobby)
{
return false;
}
void Matchmaking::SetLobbyGameServer(SteamID steamIDLobby, unsigned int unGameServerIP, unsigned short unGameServerPort, SteamID steamIDGameServer)
{
}
bool Matchmaking::GetLobbyGameServer(SteamID steamIDLobby, unsigned int *punGameServerIP, unsigned short *punGameServerPort, SteamID *psteamIDGameServer)
{
return false;
}
bool Matchmaking::SetLobbyMemberLimit(SteamID steamIDLobby, int cMaxMembers)
{
return true;
}
int Matchmaking::GetLobbyMemberLimit(SteamID steamIDLobby)
{
return 0;
}
bool Matchmaking::SetLobbyType(SteamID steamIDLobby, int eLobbyType)
{
return true;
}
bool Matchmaking::SetLobbyJoinable(SteamID steamIDLobby, bool bLobbyJoinable)
{
return true;
}
SteamID Matchmaking::GetLobbyOwner(SteamID steamIDLobby)
{
return SteamUser()->GetSteamID();
}
bool Matchmaking::SetLobbyOwner(SteamID steamIDLobby, SteamID steamIDNewOwner)
{
return true;
}
}
STEAM_IGNORE_WARNINGS_END
#include "STDInclude.hpp"
STEAM_IGNORE_WARNINGS_START
namespace Steam
{
int Matchmaking::GetFavoriteGameCount()
{
return 0;
}
bool Matchmaking::GetFavoriteGame(int iGame, unsigned int *pnAppID, unsigned int *pnIP, unsigned short *pnConnPort, unsigned short *pnQueryPort, unsigned int *punFlags, unsigned int *pRTime32LastPlayedOnServer)
{
return false;
}
int Matchmaking::AddFavoriteGame(unsigned int nAppID, unsigned int nIP, unsigned short nConnPort, unsigned short nQueryPort, unsigned int unFlags, unsigned int rTime32LastPlayedOnServer)
{
return 0;
}
bool Matchmaking::RemoveFavoriteGame(unsigned int nAppID, unsigned int nIP, unsigned short nConnPort, unsigned short nQueryPort, unsigned int unFlags)
{
return false;
}
unsigned __int64 Matchmaking::RequestLobbyList()
{
return 0;
}
void Matchmaking::AddRequestLobbyListStringFilter(const char *pchKeyToMatch, const char *pchValueToMatch, int eComparisonType)
{
}
void Matchmaking::AddRequestLobbyListNumericalFilter(const char *pchKeyToMatch, int nValueToMatch, int eComparisonType)
{
}
void Matchmaking::AddRequestLobbyListNearValueFilter(const char *pchKeyToMatch, int nValueToBeCloseTo)
{
}
void Matchmaking::AddRequestLobbyListFilterSlotsAvailable(int nSlotsAvailable)
{
}
SteamID Matchmaking::GetLobbyByIndex(int iLobby)
{
return SteamID();
}
unsigned __int64 Matchmaking::CreateLobby(int eLobbyType, int cMaxMembers)
{
uint64_t result = Callbacks::RegisterCall();
LobbyCreated* retvals = ::Utils::Memory::Allocate<LobbyCreated>();
SteamID id;
id.AccountID = 1337132;
id.Universe = 1;
id.AccountType = 8;
id.AccountInstance = 0x40000;
retvals->m_eResult = 1;
retvals->m_ulSteamIDLobby = id;
Callbacks::ReturnCall(retvals, sizeof(LobbyCreated), LobbyCreated::CallbackID, result);
Matchmaking::JoinLobby(id);
return result;
}
unsigned __int64 Matchmaking::JoinLobby(SteamID steamIDLobby)
{
uint64_t result = Callbacks::RegisterCall();
LobbyEnter* retvals = ::Utils::Memory::Allocate<LobbyEnter>();
retvals->m_bLocked = false;
retvals->m_EChatRoomEnterResponse = 1;
retvals->m_rgfChatPermissions = 0xFFFFFFFF;
retvals->m_ulSteamIDLobby = steamIDLobby;
Callbacks::ReturnCall(retvals, sizeof(LobbyEnter), LobbyEnter::CallbackID, result);
return result;
}
void Matchmaking::LeaveLobby(SteamID steamIDLobby)
{
Components::Party::RemoveLobby(steamIDLobby);
}
bool Matchmaking::InviteUserToLobby(SteamID steamIDLobby, SteamID steamIDInvitee)
{
return true;
}
int Matchmaking::GetNumLobbyMembers(SteamID steamIDLobby)
{
return 1;
}
SteamID Matchmaking::GetLobbyMemberByIndex(SteamID steamIDLobby, int iMember)
{
return SteamUser()->GetSteamID();
}
const char *Matchmaking::GetLobbyData(SteamID steamIDLobby, const char *pchKey)
{
return Components::Party::GetLobbyInfo(steamIDLobby, pchKey);
}
bool Matchmaking::SetLobbyData(SteamID steamIDLobby, const char *pchKey, const char *pchValue)
{
return true;
}
int Matchmaking::GetLobbyDataCount(SteamID steamIDLobby)
{
return 0;
}
bool Matchmaking::GetLobbyDataByIndex(SteamID steamIDLobby, int iLobbyData, char *pchKey, int cchKeyBufferSize, char *pchValue, int cchValueBufferSize)
{
return false;
}
bool Matchmaking::DeleteLobbyData(SteamID steamIDLobby, const char *pchKey)
{
return false;
}
const char *Matchmaking::GetLobbyMemberData(SteamID steamIDLobby, SteamID steamIDUser, const char *pchKey)
{
return "";
}
void Matchmaking::SetLobbyMemberData(SteamID steamIDLobby, const char *pchKey, const char *pchValue)
{
}
bool Matchmaking::SendLobbyChatMsg(SteamID steamIDLobby, const void *pvMsgBody, int cubMsgBody)
{
return true;
}
int Matchmaking::GetLobbyChatEntry(SteamID steamIDLobby, int iChatID, SteamID *pSteamIDUser, void *pvData, int cubData, int *peChatEntryType)
{
return 0;
}
bool Matchmaking::RequestLobbyData(SteamID steamIDLobby)
{
return false;
}
void Matchmaking::SetLobbyGameServer(SteamID steamIDLobby, unsigned int unGameServerIP, unsigned short unGameServerPort, SteamID steamIDGameServer)
{
}
bool Matchmaking::GetLobbyGameServer(SteamID steamIDLobby, unsigned int *punGameServerIP, unsigned short *punGameServerPort, SteamID *psteamIDGameServer)
{
return false;
}
bool Matchmaking::SetLobbyMemberLimit(SteamID steamIDLobby, int cMaxMembers)
{
return true;
}
int Matchmaking::GetLobbyMemberLimit(SteamID steamIDLobby)
{
return 0;
}
bool Matchmaking::SetLobbyType(SteamID steamIDLobby, int eLobbyType)
{
return true;
}
bool Matchmaking::SetLobbyJoinable(SteamID steamIDLobby, bool bLobbyJoinable)
{
return true;
}
SteamID Matchmaking::GetLobbyOwner(SteamID steamIDLobby)
{
return SteamUser()->GetSteamID();
}
bool Matchmaking::SetLobbyOwner(SteamID steamIDLobby, SteamID steamIDNewOwner)
{
return true;
}
}
STEAM_IGNORE_WARNINGS_END

View File

@ -1,104 +1,104 @@
#include "STDInclude.hpp"
STEAM_IGNORE_WARNINGS_START
namespace Steam
{
int User::GetHSteamUser()
{
return NULL;
}
bool User::LoggedOn()
{
return true;
}
SteamID User::GetSteamID()
{
static unsigned __int64 idBits = 0;
SteamID id;
if (!idBits)
{
if (Components::Dedicated::IsEnabled() || Components::ZoneBuilder::IsEnabled()) // Dedi guid
{
idBits = *reinterpret_cast<unsigned __int64*>("DEDICATE");
}
else if (Components::Singleton::IsFirstInstance()) // ECDSA guid
{
idBits = Components::Auth::GetKeyHash();
}
else // Random guid
{
idBits = (static_cast<unsigned __int64>(Game::Sys_Milliseconds()) << 32) | timeGetTime();
}
}
id.Bits = idBits;
return id;
}
int User::InitiateGameConnection(void *pAuthBlob, int cbMaxAuthBlob, SteamID steamIDGameServer, unsigned int unIPServer, unsigned short usPortServer, bool bSecure)
{
Components::Logger::Print("%s\n", __FUNCTION__);
return 0;
}
void User::TerminateGameConnection(unsigned int unIPServer, unsigned short usPortServer)
{
}
void User::TrackAppUsageEvent(SteamID gameID, int eAppUsageEvent, const char *pchExtraInfo)
{
}
bool User::GetUserDataFolder(char *pchBuffer, int cubBuffer)
{
return false;
}
void User::StartVoiceRecording()
{
}
void User::StopVoiceRecording()
{
}
int User::GetCompressedVoice(void *pDestBuffer, unsigned int cbDestBufferSize, unsigned int *nBytesWritten)
{
return 0;
}
int User::DecompressVoice(void *pCompressed, unsigned int cbCompressed, void *pDestBuffer, unsigned int cbDestBufferSize, unsigned int *nBytesWritten)
{
return 0;
}
unsigned int User::GetAuthSessionTicket(void *pTicket, int cbMaxTicket, unsigned int *pcbTicket)
{
return 0;
}
int User::BeginAuthSession(const void *pAuthTicket, int cbAuthTicket, SteamID steamID)
{
return 0;
}
void User::EndAuthSession(SteamID steamID)
{
}
void User::CancelAuthTicket(unsigned int hAuthTicket)
{
}
unsigned int User::UserHasLicenseForApp(SteamID steamID, unsigned int appID)
{
return 0;
}
}
STEAM_IGNORE_WARNINGS_END
#include "STDInclude.hpp"
STEAM_IGNORE_WARNINGS_START
namespace Steam
{
int User::GetHSteamUser()
{
return NULL;
}
bool User::LoggedOn()
{
return true;
}
SteamID User::GetSteamID()
{
static unsigned __int64 idBits = 0;
SteamID id;
if (!idBits)
{
if (Components::Dedicated::IsEnabled() || Components::ZoneBuilder::IsEnabled()) // Dedi guid
{
idBits = *reinterpret_cast<unsigned __int64*>("DEDICATE");
}
else if (Components::Singleton::IsFirstInstance()) // ECDSA guid
{
idBits = Components::Auth::GetKeyHash();
}
else // Random guid
{
idBits = (static_cast<unsigned __int64>(Game::Sys_Milliseconds()) << 32) | timeGetTime();
}
}
id.Bits = idBits;
return id;
}
int User::InitiateGameConnection(void *pAuthBlob, int cbMaxAuthBlob, SteamID steamIDGameServer, unsigned int unIPServer, unsigned short usPortServer, bool bSecure)
{
Components::Logger::Print("%s\n", __FUNCTION__);
return 0;
}
void User::TerminateGameConnection(unsigned int unIPServer, unsigned short usPortServer)
{
}
void User::TrackAppUsageEvent(SteamID gameID, int eAppUsageEvent, const char *pchExtraInfo)
{
}
bool User::GetUserDataFolder(char *pchBuffer, int cubBuffer)
{
return false;
}
void User::StartVoiceRecording()
{
}
void User::StopVoiceRecording()
{
}
int User::GetCompressedVoice(void *pDestBuffer, unsigned int cbDestBufferSize, unsigned int *nBytesWritten)
{
return 0;
}
int User::DecompressVoice(void *pCompressed, unsigned int cbCompressed, void *pDestBuffer, unsigned int cbDestBufferSize, unsigned int *nBytesWritten)
{
return 0;
}
unsigned int User::GetAuthSessionTicket(void *pTicket, int cbMaxTicket, unsigned int *pcbTicket)
{
return 0;
}
int User::BeginAuthSession(const void *pAuthTicket, int cbAuthTicket, SteamID steamID)
{
return 0;
}
void User::EndAuthSession(SteamID steamID)
{
}
void User::CancelAuthTicket(unsigned int hAuthTicket)
{
}
unsigned int User::UserHasLicenseForApp(SteamID steamID, unsigned int appID)
{
return 0;
}
}
STEAM_IGNORE_WARNINGS_END

View File

@ -1,101 +1,101 @@
#include "STDInclude.hpp"
STEAM_IGNORE_WARNINGS_START
namespace Steam
{
unsigned int Utils::GetSecondsSinceAppActive()
{
return 0;
}
unsigned int Utils::GetSecondsSinceComputerActive()
{
return 0;
}
int Utils::GetConnectedUniverse()
{
return 1;
}
unsigned int Utils::GetServerRealTime()
{
return 0;
}
const char* Utils::GetIPCountry()
{
return "US";
}
bool Utils::GetImageSize(int iImage, unsigned int *pnWidth, unsigned int *pnHeight)
{
return false;
}
bool Utils::GetImageRGBA(int iImage, unsigned char *pubDest, int nDestBufferSize)
{
return false;
}
bool Utils::GetCSERIPPort(unsigned int *unIP, unsigned short *usPort)
{
return false;
}
unsigned char Utils::GetCurrentBatteryPower()
{
return 255;
}
unsigned int Utils::GetAppID()
{
return 10190;
}
void Utils::SetOverlayNotificationPosition(int eNotificationPosition)
{
Proxy::SetOverlayNotificationPosition(eNotificationPosition);
}
bool Utils::IsAPICallCompleted(unsigned __int64 hSteamAPICall, bool *pbFailed)
{
return false;
}
int Utils::GetAPICallFailureReason(unsigned __int64 hSteamAPICall)
{
return -1;
}
bool Utils::GetAPICallResult(unsigned __int64 hSteamAPICall, void *pCallback, int cubCallback, int iCallbackExpected, bool *pbFailed)
{
return false;
}
void Utils::RunFrame()
{
}
unsigned int Utils::GetIPCCallCount()
{
return 0;
}
void Utils::SetWarningMessageHook(void(*pFunction)(int hpipe, const char *message))
{
}
bool Utils::IsOverlayEnabled()
{
return false;
}
bool Utils::BOverlayNeedsPresent()
{
return false;
}
}
STEAM_IGNORE_WARNINGS_END
#include "STDInclude.hpp"
STEAM_IGNORE_WARNINGS_START
namespace Steam
{
unsigned int Utils::GetSecondsSinceAppActive()
{
return 0;
}
unsigned int Utils::GetSecondsSinceComputerActive()
{
return 0;
}
int Utils::GetConnectedUniverse()
{
return 1;
}
unsigned int Utils::GetServerRealTime()
{
return 0;
}
const char* Utils::GetIPCountry()
{
return "US";
}
bool Utils::GetImageSize(int iImage, unsigned int *pnWidth, unsigned int *pnHeight)
{
return false;
}
bool Utils::GetImageRGBA(int iImage, unsigned char *pubDest, int nDestBufferSize)
{
return false;
}
bool Utils::GetCSERIPPort(unsigned int *unIP, unsigned short *usPort)
{
return false;
}
unsigned char Utils::GetCurrentBatteryPower()
{
return 255;
}
unsigned int Utils::GetAppID()
{
return 10190;
}
void Utils::SetOverlayNotificationPosition(int eNotificationPosition)
{
Proxy::SetOverlayNotificationPosition(eNotificationPosition);
}
bool Utils::IsAPICallCompleted(unsigned __int64 hSteamAPICall, bool *pbFailed)
{
return false;
}
int Utils::GetAPICallFailureReason(unsigned __int64 hSteamAPICall)
{
return -1;
}
bool Utils::GetAPICallResult(unsigned __int64 hSteamAPICall, void *pCallback, int cubCallback, int iCallbackExpected, bool *pbFailed)
{
return false;
}
void Utils::RunFrame()
{
}
unsigned int Utils::GetIPCCallCount()
{
return 0;
}
void Utils::SetWarningMessageHook(void(*pFunction)(int hpipe, const char *message))
{
}
bool Utils::IsOverlayEnabled()
{
return false;
}
bool Utils::BOverlayNeedsPresent()
{
return false;
}
}
STEAM_IGNORE_WARNINGS_END

View File

@ -1,170 +1,170 @@
#include "STDInclude.hpp"
namespace Steam
{
::Utils::Library Proxy::Client;
::Utils::Library Proxy::Overlay;
ISteamClient008* Proxy::SteamClient;
IClientEngine* Proxy::ClientEngine;
IClientUser* Proxy::ClientUser;
void* Proxy::SteamPipe;
void* Proxy::SteamUser;
Friends* Proxy::SteamFriends;
Utils* Proxy::SteamUtils;
uint32_t Proxy::AppId;
void Proxy::SetGame(uint32_t appId)
{
Proxy::AppId = appId;
SetEnvironmentVariableA("SteamAppId", ::Utils::String::VA("%lu", appId));
SetEnvironmentVariableA("SteamGameId", ::Utils::String::VA("%llu", appId & 0xFFFFFF));
::Utils::IO::WriteFile("steam_appid.txt", ::Utils::String::VA("%lu", appId), false);
}
void Proxy::SetMod(std::string mod)
{
#if 0
if (!Proxy::ClientUser) return;
GameID_t gameID;
gameID.m_nType = 1; // k_EGameIDTypeGameMod
gameID.m_nAppID = Proxy::AppId & 0xFFFFFF;
gameID.m_nModID = 0x01010101;
char ourPath[MAX_PATH] = { 0 };
GetModuleFileNameA(GetModuleHandle(NULL), ourPath, sizeof(ourPath));
char ourDirectory[MAX_PATH] = { 0 };
GetCurrentDirectoryA(sizeof(ourDirectory), ourDirectory);
char blob[1] = { 0 };
std::string cmdline = ::Utils::String::VA("\"%s\" -parentProc %d", ourPath, GetCurrentProcessId());
Proxy::ClientUser->SpawnProcess(blob, 0, ourPath, cmdline.data(), 0, ourDirectory, gameID, Proxy::AppId, mod.data(), 0);
#endif
}
void Proxy::RunMod()
{
char* command = "-parentProc ";
char* parentProc = strstr(GetCommandLineA(), command);
OutputDebugStringA(GetCommandLineA());
if (parentProc)
{
parentProc += strlen(command);
int pid = atoi(parentProc);
HANDLE processHandle = OpenProcess(SYNCHRONIZE, FALSE, pid);
if (processHandle && processHandle != INVALID_HANDLE_VALUE)
{
WaitForSingleObject(processHandle, INFINITE);
CloseHandle(processHandle);
}
TerminateProcess(GetCurrentProcess(), 0);
}
}
bool Proxy::Inititalize()
{
std::string directoy = Proxy::GetSteamDirectory();
if (directoy.empty()) return false;
SetDllDirectoryA(Proxy::GetSteamDirectory().data());
Proxy::Client = ::Utils::Library(STEAMCLIENT_LIB, false);
Proxy::Overlay = ::Utils::Library(GAMEOVERLAY_LIB, false);
if (!Proxy::Client.valid() || !Proxy::Overlay.valid()) return false;
Proxy::SteamClient = Proxy::Client.get<ISteamClient008*(const char*, int*)>("CreateInterface")("SteamClient008", nullptr);
if(!Proxy::SteamClient) return false;
Proxy::SteamPipe = Proxy::SteamClient->CreateSteamPipe();
if (!Proxy::SteamPipe) return false;
Proxy::SteamUser = Proxy::SteamClient->ConnectToGlobalUser(Proxy::SteamPipe);
if (!Proxy::SteamUser) return false;
Proxy::ClientEngine = Proxy::Client.get<IClientEngine*(const char*, int*)>("CreateInterface")("CLIENTENGINE_INTERFACE_VERSION004", nullptr);
if (!Proxy::ClientEngine) return false;
Proxy::ClientUser = Proxy::ClientEngine->GetIClientUser(Proxy::SteamUser, Proxy::SteamPipe, "CLIENTUSER_INTERFACE_VERSION001");
if (!Proxy::ClientUser) return false;
Proxy::SteamFriends = reinterpret_cast<Friends*>(Proxy::SteamClient->GetISteamFriends(Proxy::SteamUser, Proxy::SteamPipe, "SteamFriends005"));
if (!Proxy::SteamFriends) return false;
Proxy::SteamUtils = reinterpret_cast<Utils*>(Proxy::SteamClient->GetISteamFriends(Proxy::SteamUser, Proxy::SteamPipe, "SteamUtils005"));
if (!Proxy::SteamUtils) return false;
return true;
}
void Proxy::Uninititalize()
{
if (Proxy::SteamClient && Proxy::SteamPipe)
{
if (Proxy::SteamUser)
{
//Proxy::SteamClient->ReleaseUser(Proxy::SteamPipe, Proxy::SteamUser);
}
//Proxy::SteamClient->ReleaseSteamPipe(Proxy::SteamPipe);
}
Proxy::Client = ::Utils::Library();
Proxy::Overlay = ::Utils::Library();
}
std::string Proxy::GetSteamDirectory()
{
HKEY hRegKey;
char SteamPath[MAX_PATH];
if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, STEAM_REGISTRY_PATH, 0, KEY_QUERY_VALUE, &hRegKey) == ERROR_SUCCESS)
{
DWORD dwLength = sizeof(SteamPath);
RegQueryValueExA(hRegKey, "InstallPath", NULL, NULL, reinterpret_cast<BYTE*>(SteamPath), &dwLength);
RegCloseKey(hRegKey);
return SteamPath;
}
return "";
}
void Proxy::SetOverlayNotificationPosition(uint32_t eNotificationPosition)
{
if (Proxy::Overlay.valid())
{
Proxy::Overlay.get<void(uint32_t)>("SetNotificationPosition")(eNotificationPosition);
}
}
bool Proxy::IsOverlayEnabled()
{
if (Proxy::Overlay.valid())
{
return Proxy::Overlay.get<bool()>("IsOverlayEnabled")();
}
return false;
}
bool Proxy::BOverlayNeedsPresent()
{
if (Proxy::Overlay.valid())
{
return Proxy::Overlay.get<bool()>("BOverlayNeedsPresent")();
}
return false;
}
}
#include "STDInclude.hpp"
namespace Steam
{
::Utils::Library Proxy::Client;
::Utils::Library Proxy::Overlay;
ISteamClient008* Proxy::SteamClient;
IClientEngine* Proxy::ClientEngine;
IClientUser* Proxy::ClientUser;
void* Proxy::SteamPipe;
void* Proxy::SteamUser;
Friends* Proxy::SteamFriends;
Utils* Proxy::SteamUtils;
uint32_t Proxy::AppId;
void Proxy::SetGame(uint32_t appId)
{
Proxy::AppId = appId;
SetEnvironmentVariableA("SteamAppId", ::Utils::String::VA("%lu", appId));
SetEnvironmentVariableA("SteamGameId", ::Utils::String::VA("%llu", appId & 0xFFFFFF));
::Utils::IO::WriteFile("steam_appid.txt", ::Utils::String::VA("%lu", appId), false);
}
void Proxy::SetMod(std::string mod)
{
#if 0
if (!Proxy::ClientUser) return;
GameID_t gameID;
gameID.m_nType = 1; // k_EGameIDTypeGameMod
gameID.m_nAppID = Proxy::AppId & 0xFFFFFF;
gameID.m_nModID = 0x01010101;
char ourPath[MAX_PATH] = { 0 };
GetModuleFileNameA(GetModuleHandle(NULL), ourPath, sizeof(ourPath));
char ourDirectory[MAX_PATH] = { 0 };
GetCurrentDirectoryA(sizeof(ourDirectory), ourDirectory);
char blob[1] = { 0 };
std::string cmdline = ::Utils::String::VA("\"%s\" -parentProc %d", ourPath, GetCurrentProcessId());
Proxy::ClientUser->SpawnProcess(blob, 0, ourPath, cmdline.data(), 0, ourDirectory, gameID, Proxy::AppId, mod.data(), 0);
#endif
}
void Proxy::RunMod()
{
char* command = "-parentProc ";
char* parentProc = strstr(GetCommandLineA(), command);
OutputDebugStringA(GetCommandLineA());
if (parentProc)
{
parentProc += strlen(command);
int pid = atoi(parentProc);
HANDLE processHandle = OpenProcess(SYNCHRONIZE, FALSE, pid);
if (processHandle && processHandle != INVALID_HANDLE_VALUE)
{
WaitForSingleObject(processHandle, INFINITE);
CloseHandle(processHandle);
}
TerminateProcess(GetCurrentProcess(), 0);
}
}
bool Proxy::Inititalize()
{
std::string directoy = Proxy::GetSteamDirectory();
if (directoy.empty()) return false;
SetDllDirectoryA(Proxy::GetSteamDirectory().data());
Proxy::Client = ::Utils::Library(STEAMCLIENT_LIB, false);
Proxy::Overlay = ::Utils::Library(GAMEOVERLAY_LIB, false);
if (!Proxy::Client.valid() || !Proxy::Overlay.valid()) return false;
Proxy::SteamClient = Proxy::Client.get<ISteamClient008*(const char*, int*)>("CreateInterface")("SteamClient008", nullptr);
if(!Proxy::SteamClient) return false;
Proxy::SteamPipe = Proxy::SteamClient->CreateSteamPipe();
if (!Proxy::SteamPipe) return false;
Proxy::SteamUser = Proxy::SteamClient->ConnectToGlobalUser(Proxy::SteamPipe);
if (!Proxy::SteamUser) return false;
Proxy::ClientEngine = Proxy::Client.get<IClientEngine*(const char*, int*)>("CreateInterface")("CLIENTENGINE_INTERFACE_VERSION004", nullptr);
if (!Proxy::ClientEngine) return false;
Proxy::ClientUser = Proxy::ClientEngine->GetIClientUser(Proxy::SteamUser, Proxy::SteamPipe, "CLIENTUSER_INTERFACE_VERSION001");
if (!Proxy::ClientUser) return false;
Proxy::SteamFriends = reinterpret_cast<Friends*>(Proxy::SteamClient->GetISteamFriends(Proxy::SteamUser, Proxy::SteamPipe, "SteamFriends005"));
if (!Proxy::SteamFriends) return false;
Proxy::SteamUtils = reinterpret_cast<Utils*>(Proxy::SteamClient->GetISteamFriends(Proxy::SteamUser, Proxy::SteamPipe, "SteamUtils005"));
if (!Proxy::SteamUtils) return false;
return true;
}
void Proxy::Uninititalize()
{
if (Proxy::SteamClient && Proxy::SteamPipe)
{
if (Proxy::SteamUser)
{
//Proxy::SteamClient->ReleaseUser(Proxy::SteamPipe, Proxy::SteamUser);
}
//Proxy::SteamClient->ReleaseSteamPipe(Proxy::SteamPipe);
}
Proxy::Client = ::Utils::Library();
Proxy::Overlay = ::Utils::Library();
}
std::string Proxy::GetSteamDirectory()
{
HKEY hRegKey;
char SteamPath[MAX_PATH];
if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, STEAM_REGISTRY_PATH, 0, KEY_QUERY_VALUE, &hRegKey) == ERROR_SUCCESS)
{
DWORD dwLength = sizeof(SteamPath);
RegQueryValueExA(hRegKey, "InstallPath", NULL, NULL, reinterpret_cast<BYTE*>(SteamPath), &dwLength);
RegCloseKey(hRegKey);
return SteamPath;
}
return "";
}
void Proxy::SetOverlayNotificationPosition(uint32_t eNotificationPosition)
{
if (Proxy::Overlay.valid())
{
Proxy::Overlay.get<void(uint32_t)>("SetNotificationPosition")(eNotificationPosition);
}
}
bool Proxy::IsOverlayEnabled()
{
if (Proxy::Overlay.valid())
{
return Proxy::Overlay.get<bool()>("IsOverlayEnabled")();
}
return false;
}
bool Proxy::BOverlayNeedsPresent()
{
if (Proxy::Overlay.valid())
{
return Proxy::Overlay.get<bool()>("BOverlayNeedsPresent")();
}
return false;
}
}

View File

@ -1,356 +1,356 @@
#ifdef _WIN64
#define GAMEOVERLAY_LIB "gameoverlayrenderer64.dll"
#define STEAMCLIENT_LIB "steamclient64.dll"
#define STEAM_REGISTRY_PATH "Software\\Wow6432Node\\Valve\\Steam"
#else
#define GAMEOVERLAY_LIB "gameoverlayrenderer.dll"
#define STEAMCLIENT_LIB "steamclient.dll"
#define STEAM_REGISTRY_PATH "Software\\Valve\\Steam"
#endif
namespace Steam
{
class ISteamClient008
{
public:
virtual void* CreateSteamPipe() = 0;
virtual bool ReleaseSteamPipe(void* hSteamPipe) = 0;
virtual void* ConnectToGlobalUser(void* hSteamPipe) = 0;
virtual void* CreateLocalUser(void* *phSteamPipe, int eAccountType) = 0;
virtual void ReleaseUser(void* hSteamPipe, void* hUser) = 0;
virtual void *GetISteamUser(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamGameServer(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void SetLocalIPBinding(uint32_t unIP, uint16_t usPort) = 0;
virtual void *GetISteamFriends(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamUtils(void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamMatchmaking(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamMasterServerUpdater(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamMatchmakingServers(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamGenericInterface(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamUserStats(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamApps(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamNetworking(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void*GetISteamRemoteStorage(void* hSteamuser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void RunFrame() = 0;
virtual uint32_t GetIPCCallCount() = 0;
virtual void SetWarningMessageHook(void* pFunction) = 0;
};
class IClientUser
{
public:
virtual int32_t GetHSteamUser() = 0;
virtual void LogOn(bool bInteractive, SteamID steamID) = 0;
virtual void LogOnWithPassword(bool bInteractive, const char * pchLogin, const char * pchPassword) = 0;
virtual void LogOnAndCreateNewSteamAccountIfNeeded(bool bInteractive) = 0;
virtual int LogOnConnectionless() = 0;
virtual void LogOff() = 0;
virtual bool BLoggedOn() = 0;
virtual int GetLogonState() = 0;
virtual bool BConnected() = 0;
virtual bool BTryingToLogin() = 0;
virtual SteamID GetSteamID() = 0;
virtual SteamID GetConsoleSteamID() = 0;
virtual bool IsVACBanned(uint32_t nGameID) = 0;
virtual bool RequireShowVACBannedMessage(uint32_t nAppID) = 0;
virtual void AcknowledgeVACBanning(uint32_t nAppID) = 0;
virtual void SetSteam2Ticket(uint8_t* pubTicket, int32_t cubTicket) = 0;
virtual bool BExistsSteam2Ticket() = 0;
virtual bool SetEmail(const char *pchEmail) = 0;
virtual bool SetConfigString(int eRegistrySubTree, const char *pchKey, const char *pchValue) = 0;
virtual bool GetConfigString(int eRegistrySubTree, const char *pchKey, char *pchValue, int32_t cbValue) = 0;
virtual bool SetConfigInt(int eRegistrySubTree, const char *pchKey, int32_t iValue) = 0;
virtual bool GetConfigInt(int eRegistrySubTree, const char *pchKey, int32_t *pValue) = 0;
virtual bool GetConfigStoreKeyName(int eRegistrySubTree, const char *pchKey, char *pchStoreName, int32_t cbStoreName) = 0;
virtual int32_t InitiateGameConnection(void *pOutputBlob, int32_t cbBlobMax, SteamID steamIDGS, uint64_t gameID, uint32_t unIPServer, uint16_t usPortServer, bool bSecure) = 0;
virtual int32_t InitiateGameConnectionOld(void *pOutputBlob, int32_t cbBlobMax, SteamID steamIDGS, uint64_t gameID, uint32_t unIPServer, uint16_t usPortServer, bool bSecure, void *pvSteam2GetEncryptionKey, int32_t cbSteam2GetEncryptionKey) = 0;
virtual void TerminateGameConnection(uint32_t unIPServer, uint16_t usPortServer) = 0;
virtual bool TerminateAppMultiStep(uint32_t, uint32_t) = 0;
virtual void SetSelfAsPrimaryChatDestination() = 0;
virtual bool IsPrimaryChatDestination() = 0;
virtual void RequestLegacyCDKey(uint32_t iAppID) = 0;
virtual bool AckGuestPass(const char *pchGuestPassCode) = 0;
virtual bool RedeemGuestPass(const char *pchGuestPassCode) = 0;
virtual uint32_t GetGuestPassToGiveCount() = 0;
virtual uint32_t GetGuestPassToRedeemCount() = 0;
virtual bool GetGuestPassToGiveInfo(uint32_t nPassIndex, uint64_t *pgidGuestPassID, uint32_t* pnPackageID, uint32_t* pRTime32Created, uint32_t* pRTime32Expiration, uint32_t* pRTime32Sent, uint32_t* pRTime32Redeemed, char* pchRecipientAddress, int32_t cRecipientAddressSize) = 0;
virtual bool GetGuestPassToRedeemInfo(uint32_t nPassIndex, uint64_t *pgidGuestPassID, uint32_t* pnPackageID, uint32_t* pRTime32Created, uint32_t* pRTime32Expiration, uint32_t* pRTime32Sent, uint32_t* pRTime32Redeemed) = 0;
virtual bool GetGuestPassToRedeemSenderName(uint32_t nPassIndex, char* pchSenderName, int32_t cSenderNameSize) = 0;
virtual void AcknowledgeMessageByGID(const char *pchMessageGID) = 0;
virtual bool SetLanguage(const char *pchLanguage) = 0;
virtual void TrackAppUsageEvent(uint64_t gameID, int32_t eAppUsageEvent, const char *pchExtraInfo = "") = 0;
virtual int32_t RaiseConnectionPriority(int eConnectionPriority) = 0;
virtual void ResetConnectionPriority(int32_t hRaiseConnectionPriorityPrev) = 0;
virtual void SetAccountNameFromSteam2(const char *pchAccountName) = 0;
virtual bool SetPasswordFromSteam2(const char *pchPassword) = 0;
virtual bool BHasCachedCredentials(const char * pchUnk) = 0;
virtual bool SetAccountNameForCachedCredentialLogin(const char *pchAccountName, bool bUnk) = 0;
virtual void SetLoginInformation(const char *pchAccountName, const char *pchPassword, bool bRememberPassword) = 0;
virtual void ClearAllLoginInformation() = 0;
virtual void SetAccountCreationTime(uint32_t rtime32Time) = 0;
virtual uint64_t RequestWebAuthToken() = 0;
virtual bool GetCurrentWebAuthToken(char *pchBuffer, int32_t cubBuffer) = 0;
virtual bool GetLanguage(char* pchLanguage, int32_t cbLanguage) = 0;
virtual bool BIsCyberCafe() = 0;
virtual bool BIsAcademicAccount() = 0;
virtual void CreateAccount(const char *pchAccountName, const char *pchNewPassword, const char *pchNewEmail, int32_t iQuestion, const char *pchNewQuestion, const char *pchNewAnswer) = 0;
virtual uint64_t ResetPassword(const char *pchAccountName, const char *pchOldPassword, const char *pchNewPassword, const char *pchValidationCode, const char *pchAnswer) = 0;
virtual void TrackNatTraversalStat(const void *pNatStat) = 0;
virtual void TrackSteamUsageEvent(int eSteamUsageEvent, const uint8_t *pubKV, uint32_t cubKV) = 0;
virtual void TrackSteamGUIUsage(const char *) = 0;
virtual void SetComputerInUse() = 0;
virtual bool BIsGameRunning(uint64_t gameID) = 0;
virtual uint64_t GetCurrentSessionToken() = 0;
virtual bool BUpdateAppOwnershipTicket(uint32_t nAppID, bool bOnlyUpdateIfStale, bool bIsDepot) = 0;
virtual bool RequestCustomBinary(const char *pszAbsolutePath, uint32_t nAppID, bool bForceUpdate, bool bAppLaunchRequest) = 0;
virtual int GetCustomBinariesState(uint32_t unAppID, uint32_t *punProgress) = 0;
virtual int RequestCustomBinaries(uint32_t unAppID, bool, bool, uint32_t *) = 0;
virtual void SetCellID(uint32_t cellID) = 0;
virtual void SetWinningPingTimeForCellID(uint32_t uPing) = 0;
virtual const char *GetUserBaseFolder() = 0;
virtual bool GetUserDataFolder(uint64_t gameID, char* pchBuffer, int32_t cubBuffer) = 0;
virtual bool GetUserConfigFolder(char *pchBuffer, int32_t cubBuffer) = 0;
virtual bool GetAccountName(char* pchAccountName, uint32_t cb) = 0;
virtual bool GetAccountName(SteamID userID, char * pchAccountName, uint32_t cb) = 0;
virtual bool IsPasswordRemembered() = 0;
virtual bool RequiresLegacyCDKey(uint32_t nAppID, bool * pbUnk) = 0;
virtual bool GetLegacyCDKey(uint32_t nAppID, char* pchKeyData, int32_t cbKeyData) = 0;
virtual bool SetLegacyCDKey(uint32_t nAppID, const char* pchKeyData) = 0;
virtual bool WriteLegacyCDKey(uint32_t nAppID) = 0;
virtual void RemoveLegacyCDKey(uint32_t nAppID) = 0;
virtual void RequestLegacyCDKeyFromApp(uint32_t nMainAppID, uint32_t nDLCAppID) = 0;
virtual bool BIsAnyGameRunning() = 0;
virtual void TestAvailablePassword(const uint8_t *pubDigestPassword, int32_t cubDigestPassword) = 0;
virtual void GetSteamGuardDetails() = 0;
virtual void ChangePassword(const char *pchOldPassword, const char *pchNewPassword) = 0;
virtual void ChangeEmail(const char *, const char *pchEmail) = 0;
virtual void ChangeSecretQuestionAndAnswer(const char *, int32_t iQuestion, const char *pchNewQuestion, const char *pchNewAnswer) = 0;
virtual void SetSteam2FullASTicket(uint8_t* pubTicket, int32_t cubTicket) = 0;
virtual int32_t GetSteam2FullASTicket(uint8_t* pubTicket, int32_t cubTicket) = 0;
virtual bool GetEmail(char* pchEmail, int32_t cchEmail, bool* pbValidated) = 0;
virtual void RequestForgottenPasswordEmail(const char *pchAccountName, const char *pchTriedPassword) = 0;
virtual void FindAccountsByEmailAddress(const char *pchEmailAddress) = 0;
virtual void FindAccountsByCdKey(const char *pchCdKey) = 0;
virtual void GetNumAccountsWithEmailAddress(const char * pchEmailAddress) = 0;
virtual void IsAccountNameInUse(const char * pchAccountName) = 0;
virtual void Test_FakeConnectionTimeout() = 0;
virtual bool RunInstallScript(uint32_t *pAppIDs, int32_t cAppIDs, const char *pchInstallPath, const char *pchLanguage, bool bUninstall) = 0;
virtual uint32_t IsInstallScriptRunning() = 0;
virtual bool GetInstallScriptState(char* pchDescription, uint32_t cchDescription, uint32_t* punNumSteps, uint32_t* punCurrStep) = 0;
virtual void Test1() = 0;
virtual void Test2() = 0;
virtual bool SpawnProcess(void *lpVACBlob, uint32_t cbBlobSize, const char *lpApplicationName, const char *lpCommandLine, uint32_t dwCreationFlags, const char *lpCurrentDirectory, GameID_t gameID, uint32_t nAppID, const char *pchGameName, uint32_t uUnk) = 0;
virtual uint32_t GetAppOwnershipTicketLength(uint32_t nAppID) = 0;
virtual uint32_t GetAppOwnershipTicketData(uint32_t nAppID, void *pvBuffer, uint32_t cbBufferLength) = 0;
virtual uint32_t GetAppOwnershipTicketExtendedData(uint32_t nAppID, void *pvBuffer, uint32_t cbBufferLength, uint32_t* piAppId, uint32_t* piSteamId, uint32_t* piSignature, uint32_t* pcbSignature) = 0;
virtual int32_t GetMarketingMessageCount() = 0;
virtual bool GetMarketingMessage(int32_t cMarketingMessage, uint64_t* gidMarketingMessageID, char* pubMsgUrl, int32_t cubMessageUrl, int *eMarketingMssageFlags) = 0;
virtual uint32_t GetAuthSessionTicket(void *pMyAuthTicket, int32_t cbMaxMyAuthTicket, uint32_t* pcbAuthTicket) = 0;
virtual int BeginAuthSession(void const* pTheirAuthTicket, int32_t cbTicket, SteamID steamID) = 0;
virtual void EndAuthSession(SteamID steamID) = 0;
virtual void CancelAuthTicket(uint32_t hAuthTicket) = 0;
virtual int IsUserSubscribedAppInTicket(SteamID steamID, uint32_t appID) = 0;
virtual void AdvertiseGame(uint64_t gameID, SteamID steamIDGameServer, uint32_t unIPServer, uint16_t usPortServer) = 0;
virtual uint64_t RequestEncryptedAppTicket(const void *pUserData, int32_t cbUserData) = 0;
virtual bool GetEncryptedAppTicket(void *pTicket, int32_t cbMaxTicket, uint32_t *pcbTicket) = 0;
virtual int32_t GetGameBadgeLevel(int32_t nSeries, bool bFoil) = 0;
virtual int32_t GetPlayerSteamLevel() = 0;
virtual void SetAccountLimited(bool bAccountLimited) = 0;
virtual bool BIsAccountLimited() = 0;
virtual void SetAccountCommunityBanned(bool bBanned) = 0;
virtual bool BIsAccountCommunityBanned() = 0;
virtual void SetLimitedAccountCanInviteFriends(bool bCanInviteFriends) = 0;
virtual bool BLimitedAccountCanInviteFriends() = 0;
virtual void SendValidationEmail() = 0;
virtual bool BGameConnectTokensAvailable() = 0;
virtual int32_t NumGamesRunning() = 0;
virtual uint64_t GetRunningGameID(int32_t iGame) = 0;
virtual uint32_t GetAccountSecurityPolicyFlags() = 0;
virtual void RequestChangeEmail(const char *pchPassword, int32_t eRequestType) = 0;
virtual void ChangePasswordWithCode(const char *pchOldPassword, const char *pchCode, const char *pchNewPassword) = 0;
virtual void ChangeEmailWithCode(const char *pchPassword, const char *pchCode, const char *pchEmail, bool bFinal) = 0;
virtual void ChangeSecretQuestionAndAnswerWithCode(const char *pchPassword, const char *pchCode, const char *pchNewQuestion, const char *pchNewAnswer) = 0;
virtual void SetClientStat(int eStat, int64_t llValue, uint32_t nAppID, uint32_t nDepotID, uint32_t nCellID) = 0;
virtual void VerifyPassword(const char *pchPassword) = 0;
virtual bool BSupportUser() = 0;
virtual bool BNeedsSSANextSteamLogon() = 0;
virtual void ClearNeedsSSANextSteamLogon() = 0;
virtual bool BIsAppOverlayEnabled(uint64_t gameID) = 0;
virtual bool BIsBehindNAT() = 0;
virtual uint32_t GetMicroTxnAppID(uint64_t gidTransID) = 0;
virtual uint64_t GetMicroTxnOrderID(uint64_t gidTransID) = 0;
virtual bool BGetMicroTxnPrice(uint64_t gidTransID, uint64_t *pamtTotal, uint64_t *pamtTax, bool *pbVat, uint64_t * pUnk) = 0;
virtual int32_t GetMicroTxnLineItemCount(uint64_t gidTransID) = 0;
virtual bool BGetMicroTxnLineItem(uint64_t gidTransID, uint32_t unLineItem, uint64_t *pamt, uint32_t *punQuantity, char *pchDescription, uint32_t cubDescriptionLength, int32_t *pRecurringTimeUnit, uint8_t *pRecurringFrequency, uint64_t *pRecurringAmount, bool * pbUnk) = 0;
virtual bool BIsSandboxMicroTxn(uint64_t gidTransID, bool* pbSandbox) = 0;
virtual bool BMicroTxnRequiresCachedPmtMethod(uint64_t gidTransID, bool *pbRequired) = 0;
virtual uint64_t AuthorizeMicroTxn(uint64_t gidTransID, int eMicroTxnAuthResponse) = 0;
virtual bool BGetWalletBalance(bool *pbHasWallet, uint64_t *pamtBalance) = 0;
virtual uint64_t RequestMicroTxnInfo(uint64_t gidTransID) = 0;
virtual bool BGetAppMinutesPlayed(uint32_t nAppId, int32_t *pnForever, int32_t *pnLastTwoWeeks) = 0;
virtual uint32_t GetAppLastPlayedTime(uint32_t nAppId) = 0;
virtual bool BGetGuideURL(uint32_t uAppID, char *pchURL, uint32_t cchURL) = 0;
virtual void PostUIResultToClientJob(uint64_t ulJobID, int eResult) = 0;
virtual bool BPromptToVerifyEmail() = 0;
virtual bool BPromptToChangePassword() = 0;
virtual bool BAccountLocked() = 0;
virtual bool BAccountShouldShowLockUI() = 0;
virtual bool BAccountLockedByIPT() = 0;
virtual int32_t GetCountAuthedComputers() = 0;
virtual int GetSteamGuardProvider() = 0;
virtual bool GetSteamGuardRequireCodeByDefault() = 0;
virtual bool ShowSteamGuardProviderOptions() = 0;
virtual bool SteamGuardProviderMobileIsOption() = 0;
virtual bool BSteamGuardNewMachineNotification() = 0;
virtual uint32_t GetSteamGuardEnabledTime() = 0;
virtual bool GetSteamGuardHistoryEntry(int32_t iEntryIndex, uint32_t *puTimestamp, uint32_t *puIP, bool *pbIsRemembered, char *pchGeolocInfo, int32_t cchGeolocInfo, char * pchUnk, int32_t cbUnk) = 0;
virtual void SetSteamGuardNewMachineDialogResponse(bool bIsApproved, bool bIsWizardComplete) = 0;
virtual void RequestSteamGuardCodeForOtherLogin() = 0;
virtual bool BAccountCanUseIPT() = 0;
virtual void ChangeTwoFactorAuthOptions(int32_t eOption) = 0;
virtual void ChangeSteamGuardOptions(const char * pchUnk, int eProvider, bool bRequireCode) = 0;
virtual void Set2ndFactorAuthCode(const char* pchAuthCode, bool bDontRememberComputer) = 0;
virtual void SetUserMachineName(const char * pchMachineName) = 0;
virtual bool GetUserMachineName(char * pchMachineName, int32_t cbMachineName) = 0;
virtual bool BAccountHasIPTConfig() = 0;
virtual bool GetEmailDomainFromLogonFailure(char * pchEmailDomain, int32_t cbEmailDomain) = 0;
virtual bool BIsSubscribedApp(uint32_t nAppId) = 0;
virtual uint64_t RegisterActivationCode(const char * pchActivationCode) = 0;
virtual void OptionalDLCInstallation(uint32_t nAppID, uint32_t uUnk, bool bInstall) = 0;
virtual void AckSystemIM(uint64_t) = 0;
virtual uint64_t RequestSpecialSurvey(uint32_t uSurveyId) = 0;
virtual uint64_t SendSpecialSurveyResponse(uint32_t uSurveyId, const uint8_t * pubData, uint32_t cubData) = 0;
virtual void RequestNotifications() = 0;
virtual bool GetAppOwnershipInfo(uint32_t unAppId, uint32_t* pRTime32Created, char* pchCountry) = 0;
virtual void SendGameWebCallback(uint32_t unAppId, const char *szData) = 0;
virtual bool BIsCurrentlyStreaming() = 0;
virtual void RequestStopStreaming() = 0;
virtual void OnBigPictureStreamingResult(bool, void *) = 0;
virtual void OnBigPictureStreamingDone() = 0;
virtual void OnBigPictureStreamRestarting() = 0;
virtual void LockParentalLock() = 0;
virtual bool UnlockParentalLock(const char * pchUnk) = 0;
virtual bool BIsParentalLockEnabled() = 0;
virtual bool BIsParentalLockLocked() = 0;
virtual void BlockApp(uint32_t unAppID) = 0;
virtual void UnblockApp(uint32_t unAppID) = 0;
virtual bool BIsAppBlocked(uint32_t unAppID) = 0;
virtual bool BIsAppInBlockList(uint32_t unAppID) = 0;
virtual void BlockFeature(int eParentalFeature) = 0;
virtual void UnblockFeature(int eParentalFeature) = 0;
virtual bool BIsFeatureBlocked(int eParentalFeature) = 0;
virtual bool BIsFeatureInBlockList(int eParentalFeature) = 0;
virtual uint32_t GetParentalUnlockTime() = 0;
virtual bool BGetSerializedParentalSettings(void * pBuffer) = 0;
virtual bool BSetParentalSettings(void * pBuffer) = 0;
virtual bool BDisableParentalSettings() = 0;
virtual bool BGetParentalWebToken(void *, void *) = 0;
virtual bool BCanLogonOfflineMode() = 0;
virtual int LogOnOfflineMode() = 0;
virtual int ValidateOfflineLogonTicket(const char * pchUnk) = 0;
virtual bool BGetOfflineLogonTicket(const char * pchUnk, void * pTicket) = 0;
virtual void UploadLocalClientLogs() = 0;
virtual void SetAsyncNotificationEnabled(uint32_t, bool) = 0;
virtual bool BIsOtherSessionPlaying(uint32_t *) = 0;
virtual bool BKickOtherPlayingSession() = 0;
virtual uint32_t GetStreamPortForGame(uint64_t gameID) = 0;
};
class IClientEngine
{
public:
virtual void* CreateSteamPipe() = 0;
virtual bool BReleaseSteamPipe(void* hSteamPipe) = 0;
virtual void* CreateGlobalUser(void** phSteamPipe) = 0;
virtual void* ConnectToGlobalUser(void* hSteamPipe) = 0;
virtual void* CreateLocalUser(void** phSteamPipe, int eAccountType) = 0;
virtual void CreatePipeToLocalUser(void* hSteamUser, void** phSteamPipe) = 0;
virtual void ReleaseUser(void* hSteamPipe, void* hUser) = 0;
virtual bool IsValidHSteamUserPipe(void* hSteamPipe, void* hUser) = 0;
virtual IClientUser *GetIClientUser(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientGameServer(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void SetLocalIPBinding(uint32_t unIP, uint16_t usPort) = 0;
virtual char const *GetUniverseName(int eUniverse) = 0;
virtual void *GetIClientFriends(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientUtils(void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientBilling(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientMatchmaking(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientApps(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientMatchmakingServers(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void RunFrame() = 0;
virtual uint32_t GetIPCCallCount() = 0;
virtual void *GetIClientUserStats(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientGameServerStats(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientNetworking(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientRemoteStorage(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientScreenshots(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void SetWarningMessageHook(void* pFunction) = 0;
virtual void *GetIClientGameCoordinator(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void SetOverlayNotificationPosition(int eNotificationPosition) = 0;
virtual void SetOverlayNotificationInsert(int32_t, int32_t) = 0;
virtual bool HookScreenshots(bool bHook) = 0;
virtual bool IsOverlayEnabled() = 0;
virtual bool GetAPICallResult(void* hSteamPipe, uint64_t hSteamAPICall, void* pCallback, int cubCallback, int iCallbackExpected, bool* pbFailed) = 0;
virtual void *GetIClientProductBuilder(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientDepotBuilder(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientNetworkDeviceManager(void* hSteamPipe, char const* pchVersion) = 0;
virtual void ConCommandInit(void *pAccessor) = 0;
virtual void *GetIClientAppManager(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientConfigStore(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual bool BOverlayNeedsPresent() = 0;
virtual void *GetIClientGameStats(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientHTTP(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual bool BShutdownIfAllPipesClosed() = 0;
virtual void *GetIClientAudio(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientMusic(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientUnifiedMessages(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientController(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientParentalSettings(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientStreamLauncher(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientDeviceAuth(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientRemoteClientManager(void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientStreamClient(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientShortcuts(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientRemoteControlManager(void* hSteamPipe, char const* pchVersion) = 0;
virtual void Set_ClientAPI_CPostAPIResultInProcess(void(*)(uint64_t ulUnk, void * pUnk, uint32_t uUnk, int32_t iUnk)) = 0;
virtual void Remove_ClientAPI_CPostAPIResultInProcess(void(*)(uint64_t ulUnk, void * pUnk, uint32_t uUnk, int32_t iUnk)) = 0;
virtual void *GetIClientUGC(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientVR(char const * pchVersion) = 0;
};
class Proxy
{
public:
static bool Inititalize();
static void Uninititalize();
static void SetGame(uint32_t appId);
static void SetMod(std::string mod);
static void RunMod();
//Overlay related proxies
static void SetOverlayNotificationPosition(uint32_t eNotificationPosition);
static bool IsOverlayEnabled();
static bool BOverlayNeedsPresent();
static Friends* SteamFriends;
static Utils* SteamUtils;
private:
static ::Utils::Library Client;
static ::Utils::Library Overlay;
static ISteamClient008* SteamClient;
static IClientEngine* ClientEngine;
static IClientUser* ClientUser;
static void* SteamPipe;
static void* SteamUser;
static uint32_t AppId;
static std::string GetSteamDirectory();
};
}
#ifdef _WIN64
#define GAMEOVERLAY_LIB "gameoverlayrenderer64.dll"
#define STEAMCLIENT_LIB "steamclient64.dll"
#define STEAM_REGISTRY_PATH "Software\\Wow6432Node\\Valve\\Steam"
#else
#define GAMEOVERLAY_LIB "gameoverlayrenderer.dll"
#define STEAMCLIENT_LIB "steamclient.dll"
#define STEAM_REGISTRY_PATH "Software\\Valve\\Steam"
#endif
namespace Steam
{
class ISteamClient008
{
public:
virtual void* CreateSteamPipe() = 0;
virtual bool ReleaseSteamPipe(void* hSteamPipe) = 0;
virtual void* ConnectToGlobalUser(void* hSteamPipe) = 0;
virtual void* CreateLocalUser(void* *phSteamPipe, int eAccountType) = 0;
virtual void ReleaseUser(void* hSteamPipe, void* hUser) = 0;
virtual void *GetISteamUser(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamGameServer(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void SetLocalIPBinding(uint32_t unIP, uint16_t usPort) = 0;
virtual void *GetISteamFriends(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamUtils(void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamMatchmaking(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamMasterServerUpdater(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamMatchmakingServers(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamGenericInterface(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamUserStats(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamApps(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void *GetISteamNetworking(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void*GetISteamRemoteStorage(void* hSteamuser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void RunFrame() = 0;
virtual uint32_t GetIPCCallCount() = 0;
virtual void SetWarningMessageHook(void* pFunction) = 0;
};
class IClientUser
{
public:
virtual int32_t GetHSteamUser() = 0;
virtual void LogOn(bool bInteractive, SteamID steamID) = 0;
virtual void LogOnWithPassword(bool bInteractive, const char * pchLogin, const char * pchPassword) = 0;
virtual void LogOnAndCreateNewSteamAccountIfNeeded(bool bInteractive) = 0;
virtual int LogOnConnectionless() = 0;
virtual void LogOff() = 0;
virtual bool BLoggedOn() = 0;
virtual int GetLogonState() = 0;
virtual bool BConnected() = 0;
virtual bool BTryingToLogin() = 0;
virtual SteamID GetSteamID() = 0;
virtual SteamID GetConsoleSteamID() = 0;
virtual bool IsVACBanned(uint32_t nGameID) = 0;
virtual bool RequireShowVACBannedMessage(uint32_t nAppID) = 0;
virtual void AcknowledgeVACBanning(uint32_t nAppID) = 0;
virtual void SetSteam2Ticket(uint8_t* pubTicket, int32_t cubTicket) = 0;
virtual bool BExistsSteam2Ticket() = 0;
virtual bool SetEmail(const char *pchEmail) = 0;
virtual bool SetConfigString(int eRegistrySubTree, const char *pchKey, const char *pchValue) = 0;
virtual bool GetConfigString(int eRegistrySubTree, const char *pchKey, char *pchValue, int32_t cbValue) = 0;
virtual bool SetConfigInt(int eRegistrySubTree, const char *pchKey, int32_t iValue) = 0;
virtual bool GetConfigInt(int eRegistrySubTree, const char *pchKey, int32_t *pValue) = 0;
virtual bool GetConfigStoreKeyName(int eRegistrySubTree, const char *pchKey, char *pchStoreName, int32_t cbStoreName) = 0;
virtual int32_t InitiateGameConnection(void *pOutputBlob, int32_t cbBlobMax, SteamID steamIDGS, uint64_t gameID, uint32_t unIPServer, uint16_t usPortServer, bool bSecure) = 0;
virtual int32_t InitiateGameConnectionOld(void *pOutputBlob, int32_t cbBlobMax, SteamID steamIDGS, uint64_t gameID, uint32_t unIPServer, uint16_t usPortServer, bool bSecure, void *pvSteam2GetEncryptionKey, int32_t cbSteam2GetEncryptionKey) = 0;
virtual void TerminateGameConnection(uint32_t unIPServer, uint16_t usPortServer) = 0;
virtual bool TerminateAppMultiStep(uint32_t, uint32_t) = 0;
virtual void SetSelfAsPrimaryChatDestination() = 0;
virtual bool IsPrimaryChatDestination() = 0;
virtual void RequestLegacyCDKey(uint32_t iAppID) = 0;
virtual bool AckGuestPass(const char *pchGuestPassCode) = 0;
virtual bool RedeemGuestPass(const char *pchGuestPassCode) = 0;
virtual uint32_t GetGuestPassToGiveCount() = 0;
virtual uint32_t GetGuestPassToRedeemCount() = 0;
virtual bool GetGuestPassToGiveInfo(uint32_t nPassIndex, uint64_t *pgidGuestPassID, uint32_t* pnPackageID, uint32_t* pRTime32Created, uint32_t* pRTime32Expiration, uint32_t* pRTime32Sent, uint32_t* pRTime32Redeemed, char* pchRecipientAddress, int32_t cRecipientAddressSize) = 0;
virtual bool GetGuestPassToRedeemInfo(uint32_t nPassIndex, uint64_t *pgidGuestPassID, uint32_t* pnPackageID, uint32_t* pRTime32Created, uint32_t* pRTime32Expiration, uint32_t* pRTime32Sent, uint32_t* pRTime32Redeemed) = 0;
virtual bool GetGuestPassToRedeemSenderName(uint32_t nPassIndex, char* pchSenderName, int32_t cSenderNameSize) = 0;
virtual void AcknowledgeMessageByGID(const char *pchMessageGID) = 0;
virtual bool SetLanguage(const char *pchLanguage) = 0;
virtual void TrackAppUsageEvent(uint64_t gameID, int32_t eAppUsageEvent, const char *pchExtraInfo = "") = 0;
virtual int32_t RaiseConnectionPriority(int eConnectionPriority) = 0;
virtual void ResetConnectionPriority(int32_t hRaiseConnectionPriorityPrev) = 0;
virtual void SetAccountNameFromSteam2(const char *pchAccountName) = 0;
virtual bool SetPasswordFromSteam2(const char *pchPassword) = 0;
virtual bool BHasCachedCredentials(const char * pchUnk) = 0;
virtual bool SetAccountNameForCachedCredentialLogin(const char *pchAccountName, bool bUnk) = 0;
virtual void SetLoginInformation(const char *pchAccountName, const char *pchPassword, bool bRememberPassword) = 0;
virtual void ClearAllLoginInformation() = 0;
virtual void SetAccountCreationTime(uint32_t rtime32Time) = 0;
virtual uint64_t RequestWebAuthToken() = 0;
virtual bool GetCurrentWebAuthToken(char *pchBuffer, int32_t cubBuffer) = 0;
virtual bool GetLanguage(char* pchLanguage, int32_t cbLanguage) = 0;
virtual bool BIsCyberCafe() = 0;
virtual bool BIsAcademicAccount() = 0;
virtual void CreateAccount(const char *pchAccountName, const char *pchNewPassword, const char *pchNewEmail, int32_t iQuestion, const char *pchNewQuestion, const char *pchNewAnswer) = 0;
virtual uint64_t ResetPassword(const char *pchAccountName, const char *pchOldPassword, const char *pchNewPassword, const char *pchValidationCode, const char *pchAnswer) = 0;
virtual void TrackNatTraversalStat(const void *pNatStat) = 0;
virtual void TrackSteamUsageEvent(int eSteamUsageEvent, const uint8_t *pubKV, uint32_t cubKV) = 0;
virtual void TrackSteamGUIUsage(const char *) = 0;
virtual void SetComputerInUse() = 0;
virtual bool BIsGameRunning(uint64_t gameID) = 0;
virtual uint64_t GetCurrentSessionToken() = 0;
virtual bool BUpdateAppOwnershipTicket(uint32_t nAppID, bool bOnlyUpdateIfStale, bool bIsDepot) = 0;
virtual bool RequestCustomBinary(const char *pszAbsolutePath, uint32_t nAppID, bool bForceUpdate, bool bAppLaunchRequest) = 0;
virtual int GetCustomBinariesState(uint32_t unAppID, uint32_t *punProgress) = 0;
virtual int RequestCustomBinaries(uint32_t unAppID, bool, bool, uint32_t *) = 0;
virtual void SetCellID(uint32_t cellID) = 0;
virtual void SetWinningPingTimeForCellID(uint32_t uPing) = 0;
virtual const char *GetUserBaseFolder() = 0;
virtual bool GetUserDataFolder(uint64_t gameID, char* pchBuffer, int32_t cubBuffer) = 0;
virtual bool GetUserConfigFolder(char *pchBuffer, int32_t cubBuffer) = 0;
virtual bool GetAccountName(char* pchAccountName, uint32_t cb) = 0;
virtual bool GetAccountName(SteamID userID, char * pchAccountName, uint32_t cb) = 0;
virtual bool IsPasswordRemembered() = 0;
virtual bool RequiresLegacyCDKey(uint32_t nAppID, bool * pbUnk) = 0;
virtual bool GetLegacyCDKey(uint32_t nAppID, char* pchKeyData, int32_t cbKeyData) = 0;
virtual bool SetLegacyCDKey(uint32_t nAppID, const char* pchKeyData) = 0;
virtual bool WriteLegacyCDKey(uint32_t nAppID) = 0;
virtual void RemoveLegacyCDKey(uint32_t nAppID) = 0;
virtual void RequestLegacyCDKeyFromApp(uint32_t nMainAppID, uint32_t nDLCAppID) = 0;
virtual bool BIsAnyGameRunning() = 0;
virtual void TestAvailablePassword(const uint8_t *pubDigestPassword, int32_t cubDigestPassword) = 0;
virtual void GetSteamGuardDetails() = 0;
virtual void ChangePassword(const char *pchOldPassword, const char *pchNewPassword) = 0;
virtual void ChangeEmail(const char *, const char *pchEmail) = 0;
virtual void ChangeSecretQuestionAndAnswer(const char *, int32_t iQuestion, const char *pchNewQuestion, const char *pchNewAnswer) = 0;
virtual void SetSteam2FullASTicket(uint8_t* pubTicket, int32_t cubTicket) = 0;
virtual int32_t GetSteam2FullASTicket(uint8_t* pubTicket, int32_t cubTicket) = 0;
virtual bool GetEmail(char* pchEmail, int32_t cchEmail, bool* pbValidated) = 0;
virtual void RequestForgottenPasswordEmail(const char *pchAccountName, const char *pchTriedPassword) = 0;
virtual void FindAccountsByEmailAddress(const char *pchEmailAddress) = 0;
virtual void FindAccountsByCdKey(const char *pchCdKey) = 0;
virtual void GetNumAccountsWithEmailAddress(const char * pchEmailAddress) = 0;
virtual void IsAccountNameInUse(const char * pchAccountName) = 0;
virtual void Test_FakeConnectionTimeout() = 0;
virtual bool RunInstallScript(uint32_t *pAppIDs, int32_t cAppIDs, const char *pchInstallPath, const char *pchLanguage, bool bUninstall) = 0;
virtual uint32_t IsInstallScriptRunning() = 0;
virtual bool GetInstallScriptState(char* pchDescription, uint32_t cchDescription, uint32_t* punNumSteps, uint32_t* punCurrStep) = 0;
virtual void Test1() = 0;
virtual void Test2() = 0;
virtual bool SpawnProcess(void *lpVACBlob, uint32_t cbBlobSize, const char *lpApplicationName, const char *lpCommandLine, uint32_t dwCreationFlags, const char *lpCurrentDirectory, GameID_t gameID, uint32_t nAppID, const char *pchGameName, uint32_t uUnk) = 0;
virtual uint32_t GetAppOwnershipTicketLength(uint32_t nAppID) = 0;
virtual uint32_t GetAppOwnershipTicketData(uint32_t nAppID, void *pvBuffer, uint32_t cbBufferLength) = 0;
virtual uint32_t GetAppOwnershipTicketExtendedData(uint32_t nAppID, void *pvBuffer, uint32_t cbBufferLength, uint32_t* piAppId, uint32_t* piSteamId, uint32_t* piSignature, uint32_t* pcbSignature) = 0;
virtual int32_t GetMarketingMessageCount() = 0;
virtual bool GetMarketingMessage(int32_t cMarketingMessage, uint64_t* gidMarketingMessageID, char* pubMsgUrl, int32_t cubMessageUrl, int *eMarketingMssageFlags) = 0;
virtual uint32_t GetAuthSessionTicket(void *pMyAuthTicket, int32_t cbMaxMyAuthTicket, uint32_t* pcbAuthTicket) = 0;
virtual int BeginAuthSession(void const* pTheirAuthTicket, int32_t cbTicket, SteamID steamID) = 0;
virtual void EndAuthSession(SteamID steamID) = 0;
virtual void CancelAuthTicket(uint32_t hAuthTicket) = 0;
virtual int IsUserSubscribedAppInTicket(SteamID steamID, uint32_t appID) = 0;
virtual void AdvertiseGame(uint64_t gameID, SteamID steamIDGameServer, uint32_t unIPServer, uint16_t usPortServer) = 0;
virtual uint64_t RequestEncryptedAppTicket(const void *pUserData, int32_t cbUserData) = 0;
virtual bool GetEncryptedAppTicket(void *pTicket, int32_t cbMaxTicket, uint32_t *pcbTicket) = 0;
virtual int32_t GetGameBadgeLevel(int32_t nSeries, bool bFoil) = 0;
virtual int32_t GetPlayerSteamLevel() = 0;
virtual void SetAccountLimited(bool bAccountLimited) = 0;
virtual bool BIsAccountLimited() = 0;
virtual void SetAccountCommunityBanned(bool bBanned) = 0;
virtual bool BIsAccountCommunityBanned() = 0;
virtual void SetLimitedAccountCanInviteFriends(bool bCanInviteFriends) = 0;
virtual bool BLimitedAccountCanInviteFriends() = 0;
virtual void SendValidationEmail() = 0;
virtual bool BGameConnectTokensAvailable() = 0;
virtual int32_t NumGamesRunning() = 0;
virtual uint64_t GetRunningGameID(int32_t iGame) = 0;
virtual uint32_t GetAccountSecurityPolicyFlags() = 0;
virtual void RequestChangeEmail(const char *pchPassword, int32_t eRequestType) = 0;
virtual void ChangePasswordWithCode(const char *pchOldPassword, const char *pchCode, const char *pchNewPassword) = 0;
virtual void ChangeEmailWithCode(const char *pchPassword, const char *pchCode, const char *pchEmail, bool bFinal) = 0;
virtual void ChangeSecretQuestionAndAnswerWithCode(const char *pchPassword, const char *pchCode, const char *pchNewQuestion, const char *pchNewAnswer) = 0;
virtual void SetClientStat(int eStat, int64_t llValue, uint32_t nAppID, uint32_t nDepotID, uint32_t nCellID) = 0;
virtual void VerifyPassword(const char *pchPassword) = 0;
virtual bool BSupportUser() = 0;
virtual bool BNeedsSSANextSteamLogon() = 0;
virtual void ClearNeedsSSANextSteamLogon() = 0;
virtual bool BIsAppOverlayEnabled(uint64_t gameID) = 0;
virtual bool BIsBehindNAT() = 0;
virtual uint32_t GetMicroTxnAppID(uint64_t gidTransID) = 0;
virtual uint64_t GetMicroTxnOrderID(uint64_t gidTransID) = 0;
virtual bool BGetMicroTxnPrice(uint64_t gidTransID, uint64_t *pamtTotal, uint64_t *pamtTax, bool *pbVat, uint64_t * pUnk) = 0;
virtual int32_t GetMicroTxnLineItemCount(uint64_t gidTransID) = 0;
virtual bool BGetMicroTxnLineItem(uint64_t gidTransID, uint32_t unLineItem, uint64_t *pamt, uint32_t *punQuantity, char *pchDescription, uint32_t cubDescriptionLength, int32_t *pRecurringTimeUnit, uint8_t *pRecurringFrequency, uint64_t *pRecurringAmount, bool * pbUnk) = 0;
virtual bool BIsSandboxMicroTxn(uint64_t gidTransID, bool* pbSandbox) = 0;
virtual bool BMicroTxnRequiresCachedPmtMethod(uint64_t gidTransID, bool *pbRequired) = 0;
virtual uint64_t AuthorizeMicroTxn(uint64_t gidTransID, int eMicroTxnAuthResponse) = 0;
virtual bool BGetWalletBalance(bool *pbHasWallet, uint64_t *pamtBalance) = 0;
virtual uint64_t RequestMicroTxnInfo(uint64_t gidTransID) = 0;
virtual bool BGetAppMinutesPlayed(uint32_t nAppId, int32_t *pnForever, int32_t *pnLastTwoWeeks) = 0;
virtual uint32_t GetAppLastPlayedTime(uint32_t nAppId) = 0;
virtual bool BGetGuideURL(uint32_t uAppID, char *pchURL, uint32_t cchURL) = 0;
virtual void PostUIResultToClientJob(uint64_t ulJobID, int eResult) = 0;
virtual bool BPromptToVerifyEmail() = 0;
virtual bool BPromptToChangePassword() = 0;
virtual bool BAccountLocked() = 0;
virtual bool BAccountShouldShowLockUI() = 0;
virtual bool BAccountLockedByIPT() = 0;
virtual int32_t GetCountAuthedComputers() = 0;
virtual int GetSteamGuardProvider() = 0;
virtual bool GetSteamGuardRequireCodeByDefault() = 0;
virtual bool ShowSteamGuardProviderOptions() = 0;
virtual bool SteamGuardProviderMobileIsOption() = 0;
virtual bool BSteamGuardNewMachineNotification() = 0;
virtual uint32_t GetSteamGuardEnabledTime() = 0;
virtual bool GetSteamGuardHistoryEntry(int32_t iEntryIndex, uint32_t *puTimestamp, uint32_t *puIP, bool *pbIsRemembered, char *pchGeolocInfo, int32_t cchGeolocInfo, char * pchUnk, int32_t cbUnk) = 0;
virtual void SetSteamGuardNewMachineDialogResponse(bool bIsApproved, bool bIsWizardComplete) = 0;
virtual void RequestSteamGuardCodeForOtherLogin() = 0;
virtual bool BAccountCanUseIPT() = 0;
virtual void ChangeTwoFactorAuthOptions(int32_t eOption) = 0;
virtual void ChangeSteamGuardOptions(const char * pchUnk, int eProvider, bool bRequireCode) = 0;
virtual void Set2ndFactorAuthCode(const char* pchAuthCode, bool bDontRememberComputer) = 0;
virtual void SetUserMachineName(const char * pchMachineName) = 0;
virtual bool GetUserMachineName(char * pchMachineName, int32_t cbMachineName) = 0;
virtual bool BAccountHasIPTConfig() = 0;
virtual bool GetEmailDomainFromLogonFailure(char * pchEmailDomain, int32_t cbEmailDomain) = 0;
virtual bool BIsSubscribedApp(uint32_t nAppId) = 0;
virtual uint64_t RegisterActivationCode(const char * pchActivationCode) = 0;
virtual void OptionalDLCInstallation(uint32_t nAppID, uint32_t uUnk, bool bInstall) = 0;
virtual void AckSystemIM(uint64_t) = 0;
virtual uint64_t RequestSpecialSurvey(uint32_t uSurveyId) = 0;
virtual uint64_t SendSpecialSurveyResponse(uint32_t uSurveyId, const uint8_t * pubData, uint32_t cubData) = 0;
virtual void RequestNotifications() = 0;
virtual bool GetAppOwnershipInfo(uint32_t unAppId, uint32_t* pRTime32Created, char* pchCountry) = 0;
virtual void SendGameWebCallback(uint32_t unAppId, const char *szData) = 0;
virtual bool BIsCurrentlyStreaming() = 0;
virtual void RequestStopStreaming() = 0;
virtual void OnBigPictureStreamingResult(bool, void *) = 0;
virtual void OnBigPictureStreamingDone() = 0;
virtual void OnBigPictureStreamRestarting() = 0;
virtual void LockParentalLock() = 0;
virtual bool UnlockParentalLock(const char * pchUnk) = 0;
virtual bool BIsParentalLockEnabled() = 0;
virtual bool BIsParentalLockLocked() = 0;
virtual void BlockApp(uint32_t unAppID) = 0;
virtual void UnblockApp(uint32_t unAppID) = 0;
virtual bool BIsAppBlocked(uint32_t unAppID) = 0;
virtual bool BIsAppInBlockList(uint32_t unAppID) = 0;
virtual void BlockFeature(int eParentalFeature) = 0;
virtual void UnblockFeature(int eParentalFeature) = 0;
virtual bool BIsFeatureBlocked(int eParentalFeature) = 0;
virtual bool BIsFeatureInBlockList(int eParentalFeature) = 0;
virtual uint32_t GetParentalUnlockTime() = 0;
virtual bool BGetSerializedParentalSettings(void * pBuffer) = 0;
virtual bool BSetParentalSettings(void * pBuffer) = 0;
virtual bool BDisableParentalSettings() = 0;
virtual bool BGetParentalWebToken(void *, void *) = 0;
virtual bool BCanLogonOfflineMode() = 0;
virtual int LogOnOfflineMode() = 0;
virtual int ValidateOfflineLogonTicket(const char * pchUnk) = 0;
virtual bool BGetOfflineLogonTicket(const char * pchUnk, void * pTicket) = 0;
virtual void UploadLocalClientLogs() = 0;
virtual void SetAsyncNotificationEnabled(uint32_t, bool) = 0;
virtual bool BIsOtherSessionPlaying(uint32_t *) = 0;
virtual bool BKickOtherPlayingSession() = 0;
virtual uint32_t GetStreamPortForGame(uint64_t gameID) = 0;
};
class IClientEngine
{
public:
virtual void* CreateSteamPipe() = 0;
virtual bool BReleaseSteamPipe(void* hSteamPipe) = 0;
virtual void* CreateGlobalUser(void** phSteamPipe) = 0;
virtual void* ConnectToGlobalUser(void* hSteamPipe) = 0;
virtual void* CreateLocalUser(void** phSteamPipe, int eAccountType) = 0;
virtual void CreatePipeToLocalUser(void* hSteamUser, void** phSteamPipe) = 0;
virtual void ReleaseUser(void* hSteamPipe, void* hUser) = 0;
virtual bool IsValidHSteamUserPipe(void* hSteamPipe, void* hUser) = 0;
virtual IClientUser *GetIClientUser(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientGameServer(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void SetLocalIPBinding(uint32_t unIP, uint16_t usPort) = 0;
virtual char const *GetUniverseName(int eUniverse) = 0;
virtual void *GetIClientFriends(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientUtils(void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientBilling(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientMatchmaking(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientApps(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientMatchmakingServers(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void RunFrame() = 0;
virtual uint32_t GetIPCCallCount() = 0;
virtual void *GetIClientUserStats(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientGameServerStats(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientNetworking(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientRemoteStorage(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientScreenshots(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void SetWarningMessageHook(void* pFunction) = 0;
virtual void *GetIClientGameCoordinator(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0;
virtual void SetOverlayNotificationPosition(int eNotificationPosition) = 0;
virtual void SetOverlayNotificationInsert(int32_t, int32_t) = 0;
virtual bool HookScreenshots(bool bHook) = 0;
virtual bool IsOverlayEnabled() = 0;
virtual bool GetAPICallResult(void* hSteamPipe, uint64_t hSteamAPICall, void* pCallback, int cubCallback, int iCallbackExpected, bool* pbFailed) = 0;
virtual void *GetIClientProductBuilder(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientDepotBuilder(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientNetworkDeviceManager(void* hSteamPipe, char const* pchVersion) = 0;
virtual void ConCommandInit(void *pAccessor) = 0;
virtual void *GetIClientAppManager(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientConfigStore(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual bool BOverlayNeedsPresent() = 0;
virtual void *GetIClientGameStats(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientHTTP(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual bool BShutdownIfAllPipesClosed() = 0;
virtual void *GetIClientAudio(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientMusic(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientUnifiedMessages(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientController(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientParentalSettings(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientStreamLauncher(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientDeviceAuth(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientRemoteClientManager(void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientStreamClient(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientShortcuts(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientRemoteControlManager(void* hSteamPipe, char const* pchVersion) = 0;
virtual void Set_ClientAPI_CPostAPIResultInProcess(void(*)(uint64_t ulUnk, void * pUnk, uint32_t uUnk, int32_t iUnk)) = 0;
virtual void Remove_ClientAPI_CPostAPIResultInProcess(void(*)(uint64_t ulUnk, void * pUnk, uint32_t uUnk, int32_t iUnk)) = 0;
virtual void *GetIClientUGC(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0;
virtual void *GetIClientVR(char const * pchVersion) = 0;
};
class Proxy
{
public:
static bool Inititalize();
static void Uninititalize();
static void SetGame(uint32_t appId);
static void SetMod(std::string mod);
static void RunMod();
//Overlay related proxies
static void SetOverlayNotificationPosition(uint32_t eNotificationPosition);
static bool IsOverlayEnabled();
static bool BOverlayNeedsPresent();
static Friends* SteamFriends;
static Utils* SteamUtils;
private:
static ::Utils::Library Client;
static ::Utils::Library Overlay;
static ISteamClient008* SteamClient;
static IClientEngine* ClientEngine;
static IClientUser* ClientUser;
static void* SteamPipe;
static void* SteamUser;
static uint32_t AppId;
static std::string GetSteamDirectory();
};
}

View File

@ -1,181 +1,181 @@
#include "STDInclude.hpp"
namespace Steam
{
uint64_t Callbacks::CallID = 0;
std::map<uint64_t, bool> Callbacks::Calls;
std::map<uint64_t, Callbacks::Base*> Callbacks::ResultHandlers;
std::vector<Callbacks::Result> Callbacks::Results;
std::vector<Callbacks::Base*> Callbacks::CallbackList;
uint64_t Callbacks::RegisterCall()
{
Callbacks::Calls[++Callbacks::CallID] = false;
return Callbacks::CallID;
}
void Callbacks::RegisterCallback(Callbacks::Base* handler, int callback)
{
handler->SetICallback(callback);
Callbacks::CallbackList.push_back(handler);
}
void Callbacks::RegisterCallResult(uint64_t call, Callbacks::Base* result)
{
Callbacks::ResultHandlers[call] = result;
}
void Callbacks::ReturnCall(void* data, int size, int type, uint64_t call)
{
Callbacks::Result result;
Callbacks::Calls[call] = true;
result.call = call;
result.data = data;
result.size = size;
result.type = type;
Callbacks::Results.push_back(result);
}
void Callbacks::RunCallbacks()
{
for (auto result : Callbacks::Results)
{
if (Callbacks::ResultHandlers.find(result.call) != Callbacks::ResultHandlers.end())
{
Callbacks::ResultHandlers[result.call]->Run(result.data, false, result.call);
}
for (auto callback : Callbacks::CallbackList)
{
if (callback && callback->GetICallback() == result.type)
{
callback->Run(result.data, false, 0);
}
}
if (result.data)
{
::Utils::Memory::Free(result.data);
}
}
Callbacks::Results.clear();
}
extern "C"
{
bool SteamAPI_Init()
{
#ifndef DISABLE_STEAM_GAME
Proxy::SetGame(10190);
#endif
if (!Proxy::Inititalize())
{
OutputDebugStringA("Steamproxy not initialized properly");
}
else
{
#ifndef DISABLE_STEAM_GAME
Proxy::SetMod("IW4x - Modern Warfare 2");
#endif
}
return true;
}
void SteamAPI_RegisterCallResult(Callbacks::Base* result, uint64_t call)
{
Callbacks::RegisterCallResult(call, result);
}
void SteamAPI_RegisterCallback(Callbacks::Base* handler, int callback)
{
Callbacks::RegisterCallback(handler, callback);
}
void SteamAPI_RunCallbacks()
{
Callbacks::RunCallbacks();
}
void SteamAPI_Shutdown()
{
Proxy::Uninititalize();
}
void SteamAPI_UnregisterCallResult()
{
}
void SteamAPI_UnregisterCallback()
{
}
bool SteamGameServer_Init()
{
return true;
}
void SteamGameServer_RunCallbacks()
{
}
void SteamGameServer_Shutdown()
{
}
Steam::Friends* SteamFriends()
{
static Steam::Friends iFriends;
return &iFriends;
}
Steam::Matchmaking* SteamMatchmaking()
{
static Steam::Matchmaking iMatchmaking;
return &iMatchmaking;
}
Steam::GameServer* SteamGameServer()
{
static Steam::GameServer iGameServer;
return &iGameServer;
}
Steam::MasterServerUpdater* SteamMasterServerUpdater()
{
static Steam::MasterServerUpdater iMasterServerUpdater;
return &iMasterServerUpdater;
}
Steam::Networking* SteamNetworking()
{
static Steam::Networking iNetworking;
return &iNetworking;
}
Steam::RemoteStorage* SteamRemoteStorage()
{
static Steam::RemoteStorage iRemoteStorage;
return &iRemoteStorage;
}
Steam::User* SteamUser()
{
static Steam::User iUser;
return &iUser;
}
Steam::Utils* SteamUtils()
{
static Steam::Utils iUtils;
return &iUtils;
}
}
}
#include "STDInclude.hpp"
namespace Steam
{
uint64_t Callbacks::CallID = 0;
std::map<uint64_t, bool> Callbacks::Calls;
std::map<uint64_t, Callbacks::Base*> Callbacks::ResultHandlers;
std::vector<Callbacks::Result> Callbacks::Results;
std::vector<Callbacks::Base*> Callbacks::CallbackList;
uint64_t Callbacks::RegisterCall()
{
Callbacks::Calls[++Callbacks::CallID] = false;
return Callbacks::CallID;
}
void Callbacks::RegisterCallback(Callbacks::Base* handler, int callback)
{
handler->SetICallback(callback);
Callbacks::CallbackList.push_back(handler);
}
void Callbacks::RegisterCallResult(uint64_t call, Callbacks::Base* result)
{
Callbacks::ResultHandlers[call] = result;
}
void Callbacks::ReturnCall(void* data, int size, int type, uint64_t call)
{
Callbacks::Result result;
Callbacks::Calls[call] = true;
result.call = call;
result.data = data;
result.size = size;
result.type = type;
Callbacks::Results.push_back(result);
}
void Callbacks::RunCallbacks()
{
for (auto result : Callbacks::Results)
{
if (Callbacks::ResultHandlers.find(result.call) != Callbacks::ResultHandlers.end())
{
Callbacks::ResultHandlers[result.call]->Run(result.data, false, result.call);
}
for (auto callback : Callbacks::CallbackList)
{
if (callback && callback->GetICallback() == result.type)
{
callback->Run(result.data, false, 0);
}
}
if (result.data)
{
::Utils::Memory::Free(result.data);
}
}
Callbacks::Results.clear();
}
extern "C"
{
bool SteamAPI_Init()
{
#ifndef DISABLE_STEAM_GAME
Proxy::SetGame(10190);
#endif
if (!Proxy::Inititalize())
{
OutputDebugStringA("Steamproxy not initialized properly");
}
else
{
#ifndef DISABLE_STEAM_GAME
Proxy::SetMod("IW4x - Modern Warfare 2");
#endif
}
return true;
}
void SteamAPI_RegisterCallResult(Callbacks::Base* result, uint64_t call)
{
Callbacks::RegisterCallResult(call, result);
}
void SteamAPI_RegisterCallback(Callbacks::Base* handler, int callback)
{
Callbacks::RegisterCallback(handler, callback);
}
void SteamAPI_RunCallbacks()
{
Callbacks::RunCallbacks();
}
void SteamAPI_Shutdown()
{
Proxy::Uninititalize();
}
void SteamAPI_UnregisterCallResult()
{
}
void SteamAPI_UnregisterCallback()
{
}
bool SteamGameServer_Init()
{
return true;
}
void SteamGameServer_RunCallbacks()
{
}
void SteamGameServer_Shutdown()
{
}
Steam::Friends* SteamFriends()
{
static Steam::Friends iFriends;
return &iFriends;
}
Steam::Matchmaking* SteamMatchmaking()
{
static Steam::Matchmaking iMatchmaking;
return &iMatchmaking;
}
Steam::GameServer* SteamGameServer()
{
static Steam::GameServer iGameServer;
return &iGameServer;
}
Steam::MasterServerUpdater* SteamMasterServerUpdater()
{
static Steam::MasterServerUpdater iMasterServerUpdater;
return &iMasterServerUpdater;
}
Steam::Networking* SteamNetworking()
{
static Steam::Networking iNetworking;
return &iNetworking;
}
Steam::RemoteStorage* SteamRemoteStorage()
{
static Steam::RemoteStorage iRemoteStorage;
return &iRemoteStorage;
}
Steam::User* SteamUser()
{
static Steam::User iUser;
return &iUser;
}
Steam::Utils* SteamUtils()
{
static Steam::Utils iUtils;
return &iUtils;
}
}
}

View File

@ -1,110 +1,110 @@
#pragma once
#define STEAM_EXPORT extern "C" __declspec(dllexport)
#define STEAM_IGNORE_WARNINGS_START __pragma(warning(push)) \
__pragma(warning(disable: 4100))
#define STEAM_IGNORE_WARNINGS_END __pragma(warning(pop))
typedef union
{
struct
{
unsigned int AccountID : 32;
unsigned int AccountInstance : 20;
unsigned int AccountType : 4;
int Universe : 8;
};
unsigned long long Bits;
} SteamID;
#pragma pack( push, 1 )
struct GameID_t
{
unsigned int m_nAppID : 24;
unsigned int m_nType : 8;
unsigned int m_nModID : 32;
};
#pragma pack( pop )
#include "Interfaces\SteamUser.hpp"
#include "Interfaces\SteamUtils.hpp"
#include "Interfaces\SteamFriends.hpp"
#include "Interfaces\SteamGameServer.hpp"
#include "Interfaces\SteamNetworking.hpp"
#include "Interfaces\SteamMatchmaking.hpp"
#include "Interfaces\SteamRemoteStorage.hpp"
#include "Interfaces\SteamMasterServerUpdater.hpp"
#include "Proxy.hpp"
namespace Steam
{
class Callbacks
{
public:
class Base
{
public:
Base() : Flags(0), Callback(0) {};
virtual void Run(void *pvParam) = 0;
virtual void Run(void *pvParam, bool bIOFailure, uint64_t hSteamAPICall) = 0;
virtual int GetCallbackSizeBytes() = 0;
int GetICallback() { return Callback; }
void SetICallback(int iCallback) { Callback = iCallback; }
protected:
unsigned char Flags;
int Callback;
};
struct Result
{
void* data;
int size;
int type;
uint64_t call;
};
static uint64_t RegisterCall();
static void RegisterCallback(Base* handler, int callback);
static void RegisterCallResult(uint64_t call, Base* result);
static void ReturnCall(void* data, int size, int type, uint64_t call);
static void RunCallbacks();
private:
static uint64_t CallID;
static std::map<uint64_t, bool> Calls;
static std::map<uint64_t, Base*> ResultHandlers;
static std::vector<Result> Results;
static std::vector<Base*> CallbackList;
};
STEAM_EXPORT bool SteamAPI_Init();
STEAM_EXPORT void SteamAPI_RegisterCallResult(Callbacks::Base* result, uint64_t call);
STEAM_EXPORT void SteamAPI_RegisterCallback(Callbacks::Base* handler, int callback);
STEAM_EXPORT void SteamAPI_RunCallbacks();
STEAM_EXPORT void SteamAPI_Shutdown();
STEAM_EXPORT void SteamAPI_UnregisterCallResult();
STEAM_EXPORT void SteamAPI_UnregisterCallback();
STEAM_EXPORT bool SteamGameServer_Init();
STEAM_EXPORT void SteamGameServer_RunCallbacks();
STEAM_EXPORT void SteamGameServer_Shutdown();
STEAM_EXPORT Steam::Friends* SteamFriends();
STEAM_EXPORT Steam::Matchmaking* SteamMatchmaking();
STEAM_EXPORT Steam::GameServer* SteamGameServer();
STEAM_EXPORT Steam::MasterServerUpdater* SteamMasterServerUpdater();
STEAM_EXPORT Steam::Networking* SteamNetworking();
STEAM_EXPORT Steam::RemoteStorage* SteamRemoteStorage();
STEAM_EXPORT Steam::User* SteamUser();
STEAM_EXPORT Steam::Utils* SteamUtils();
}
#pragma once
#define STEAM_EXPORT extern "C" __declspec(dllexport)
#define STEAM_IGNORE_WARNINGS_START __pragma(warning(push)) \
__pragma(warning(disable: 4100))
#define STEAM_IGNORE_WARNINGS_END __pragma(warning(pop))
typedef union
{
struct
{
unsigned int AccountID : 32;
unsigned int AccountInstance : 20;
unsigned int AccountType : 4;
int Universe : 8;
};
unsigned long long Bits;
} SteamID;
#pragma pack( push, 1 )
struct GameID_t
{
unsigned int m_nAppID : 24;
unsigned int m_nType : 8;
unsigned int m_nModID : 32;
};
#pragma pack( pop )
#include "Interfaces\SteamUser.hpp"
#include "Interfaces\SteamUtils.hpp"
#include "Interfaces\SteamFriends.hpp"
#include "Interfaces\SteamGameServer.hpp"
#include "Interfaces\SteamNetworking.hpp"
#include "Interfaces\SteamMatchmaking.hpp"
#include "Interfaces\SteamRemoteStorage.hpp"
#include "Interfaces\SteamMasterServerUpdater.hpp"
#include "Proxy.hpp"
namespace Steam
{
class Callbacks
{
public:
class Base
{
public:
Base() : Flags(0), Callback(0) {};
virtual void Run(void *pvParam) = 0;
virtual void Run(void *pvParam, bool bIOFailure, uint64_t hSteamAPICall) = 0;
virtual int GetCallbackSizeBytes() = 0;
int GetICallback() { return Callback; }
void SetICallback(int iCallback) { Callback = iCallback; }
protected:
unsigned char Flags;
int Callback;
};
struct Result
{
void* data;
int size;
int type;
uint64_t call;
};
static uint64_t RegisterCall();
static void RegisterCallback(Base* handler, int callback);
static void RegisterCallResult(uint64_t call, Base* result);
static void ReturnCall(void* data, int size, int type, uint64_t call);
static void RunCallbacks();
private:
static uint64_t CallID;
static std::map<uint64_t, bool> Calls;
static std::map<uint64_t, Base*> ResultHandlers;
static std::vector<Result> Results;
static std::vector<Base*> CallbackList;
};
STEAM_EXPORT bool SteamAPI_Init();
STEAM_EXPORT void SteamAPI_RegisterCallResult(Callbacks::Base* result, uint64_t call);
STEAM_EXPORT void SteamAPI_RegisterCallback(Callbacks::Base* handler, int callback);
STEAM_EXPORT void SteamAPI_RunCallbacks();
STEAM_EXPORT void SteamAPI_Shutdown();
STEAM_EXPORT void SteamAPI_UnregisterCallResult();
STEAM_EXPORT void SteamAPI_UnregisterCallback();
STEAM_EXPORT bool SteamGameServer_Init();
STEAM_EXPORT void SteamGameServer_RunCallbacks();
STEAM_EXPORT void SteamGameServer_Shutdown();
STEAM_EXPORT Steam::Friends* SteamFriends();
STEAM_EXPORT Steam::Matchmaking* SteamMatchmaking();
STEAM_EXPORT Steam::GameServer* SteamGameServer();
STEAM_EXPORT Steam::MasterServerUpdater* SteamMasterServerUpdater();
STEAM_EXPORT Steam::Networking* SteamNetworking();
STEAM_EXPORT Steam::RemoteStorage* SteamRemoteStorage();
STEAM_EXPORT Steam::User* SteamUser();
STEAM_EXPORT Steam::Utils* SteamUtils();
}