[Proxy] Update clientengine

Based on http://osw.didrole.com/src/1487812945/CSteamClient.h
This commit is contained in:
momo5502 2017-03-03 09:19:02 +01:00
parent beecdddd4d
commit 4c6694026b
3 changed files with 103 additions and 64 deletions

View File

@ -10,8 +10,8 @@ namespace Steam
Interface Proxy::ClientUser; Interface Proxy::ClientUser;
Interface Proxy::ClientFriends; Interface Proxy::ClientFriends;
void* Proxy::SteamPipe = nullptr; Proxy::Handle Proxy::SteamPipe = nullptr;
void* Proxy::SteamUser = nullptr; Proxy::Handle Proxy::SteamUser = nullptr;
Friends15* Proxy::SteamFriends = nullptr; Friends15* Proxy::SteamFriends = nullptr;
Apps7* Proxy::SteamApps = nullptr; Apps7* Proxy::SteamApps = nullptr;

View File

@ -10,6 +10,7 @@
#define STEAM_REGISTRY_PATH "Software\\Valve\\Steam" #define STEAM_REGISTRY_PATH "Software\\Valve\\Steam"
#define STEAM_REGISTRY_PROCESS_PATH "Software\\Valve\\Steam\\ActiveProcess" #define STEAM_REGISTRY_PROCESS_PATH "Software\\Valve\\Steam\\ActiveProcess"
#endif #endif
#include "STDInclude.hpp"
namespace Steam namespace Steam
{ {
@ -42,64 +43,74 @@ namespace Steam
class IClientEngine class IClientEngine
{ {
public: public:
virtual void* CreateSteamPipe() = 0; virtual unknown_ret CreateSteamPipe() = 0;
virtual bool BReleaseSteamPipe(void* hSteamPipe) = 0; virtual unknown_ret BReleaseSteamPipe(int32) = 0;
virtual void* CreateGlobalUser(void** phSteamPipe) = 0; virtual unknown_ret CreateGlobalUser(int32 *) = 0;
virtual void* ConnectToGlobalUser(void* hSteamPipe) = 0; virtual unknown_ret ConnectToGlobalUser(int32) = 0;
virtual void* CreateLocalUser(void** phSteamPipe, int eAccountType) = 0; virtual unknown_ret CreateLocalUser(int32 *, int) = 0;
virtual void CreatePipeToLocalUser(void* hSteamUser, void** phSteamPipe) = 0; virtual unknown_ret CreatePipeToLocalUser(int32, int32 *) = 0;
virtual void ReleaseUser(void* hSteamPipe, void* hUser) = 0; virtual unknown_ret ReleaseUser(int32, int32) = 0;
virtual bool IsValidHSteamUserPipe(void* hSteamPipe, void* hUser) = 0; virtual unknown_ret IsValidHSteamUserPipe(int32, int32) = 0;
virtual void *GetIClientUser(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientUser(int32, int32, const char *) = 0;
virtual void *GetIClientGameServer(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0; virtual unknown_ret GetIClientGameServer(int32, int32, const char *) = 0;
virtual void SetLocalIPBinding(uint32_t unIP, uint16_t usPort) = 0; virtual unknown_ret SetLocalIPBinding(uint32, uint16) = 0;
virtual char const *GetUniverseName(int eUniverse) = 0; virtual unknown_ret GetUniverseName(int) = 0;
virtual void *GetIClientFriends(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientFriends(int32, int32, const char *) = 0;
virtual void *GetIClientUtils(void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientUtils(int32, const char *) = 0;
virtual void *GetIClientBilling(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientBilling(int32, int32, const char *) = 0;
virtual void *GetIClientMatchmaking(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientMatchmaking(int32, int32, const char *) = 0;
virtual void *GetIClientApps(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientApps(int32, int32, const char *) = 0;
virtual void *GetIClientMatchmakingServers(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientMatchmakingServers(int32, int32, const char *) = 0;
virtual void RunFrame() = 0; virtual unknown_ret RunFrame() = 0;
virtual uint32_t GetIPCCallCount() = 0; virtual unknown_ret GetIPCCallCount() = 0;
virtual void *GetIClientUserStats(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientUserStats(int32, int32, const char *) = 0;
virtual void *GetIClientGameServerStats(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientGameServerStats(int32, int32, const char *) = 0;
virtual void *GetIClientNetworking(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientNetworking(int32, int32, const char *) = 0;
virtual void *GetIClientRemoteStorage(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientRemoteStorage(int32, int32, const char *) = 0;
virtual void *GetIClientScreenshots(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientScreenshots(int32, int32, const char *) = 0;
virtual void SetWarningMessageHook(void* pFunction) = 0; virtual unknown_ret SetWarningMessageHook(void(*)(int32, const char *)) = 0;
virtual void *GetIClientGameCoordinator(void* hSteamUser, void* hSteamPipe, const char *pchVersion) = 0; virtual unknown_ret GetIClientGameCoordinator(int32, int32, const char *) = 0;
virtual void SetOverlayNotificationPosition(int eNotificationPosition) = 0; virtual unknown_ret SetOverlayNotificationPosition(int) = 0;
virtual void SetOverlayNotificationInsert(int32_t, int32_t) = 0; virtual unknown_ret SetOverlayNotificationInset(int32, int32) = 0;
virtual bool HookScreenshots(bool bHook) = 0; virtual unknown_ret HookScreenshots(bool) = 0;
virtual bool IsOverlayEnabled() = 0; virtual unknown_ret IsOverlayEnabled() = 0;
virtual bool GetAPICallResult(void* hSteamPipe, uint64_t hSteamAPICall, void* pCallback, int cubCallback, int iCallbackExpected, bool* pbFailed) = 0; virtual unknown_ret GetAPICallResult(int32, uint64, void *, int32, int32, bool *) = 0;
virtual void *GetIClientProductBuilder(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientProductBuilder(int32, int32, const char *) = 0;
virtual void *GetIClientDepotBuilder(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientDepotBuilder(int32, int32, const char *) = 0;
virtual void *GetIClientNetworkDeviceManager(void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientNetworkDeviceManager(int32, const char *) = 0;
virtual void ConCommandInit(void *pAccessor) = 0; virtual unknown_ret ConCommandInit(void *) = 0;
virtual void *GetIClientAppManager(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientAppManager(int32, int32, const char *) = 0;
virtual void *GetIClientConfigStore(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientConfigStore(int32, int32, const char *) = 0;
virtual bool BOverlayNeedsPresent() = 0; virtual unknown_ret BOverlayNeedsPresent() = 0;
virtual void *GetIClientGameStats(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientGameStats(int32, int32, const char *) = 0;
virtual void *GetIClientHTTP(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientHTTP(int32, int32, const char *) = 0;
virtual bool BShutdownIfAllPipesClosed() = 0; virtual unknown_ret BShutdownIfAllPipesClosed() = 0;
virtual void *GetIClientAudio(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientAudio(int32, int32, const char *) = 0;
virtual void *GetIClientMusic(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientMusic(int32, int32, const char *) = 0;
virtual void *GetIClientUnifiedMessages(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientUnifiedMessages(int32, int32, const char *) = 0;
virtual void *GetIClientController(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientController(int32, int32, const char *) = 0;
virtual void *GetIClientParentalSettings(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientParentalSettings(int32, const char *) = 0;
virtual void *GetIClientStreamLauncher(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientStreamLauncher(int32, int32, const char *) = 0;
virtual void *GetIClientDeviceAuth(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientDeviceAuth(int32, int32, const char *) = 0;
virtual void *GetIClientRemoteClientManager(void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientRemoteClientManager(int32, const char *) = 0;
virtual void test() = 0; // Too lazy to correct the struct virtual unknown_ret GetIClientStreamClient(int32, int32, const char *) = 0;
virtual void *GetIClientStreamClient(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientShortcuts(int32, int32, const char *) = 0;
virtual void *GetIClientShortcuts(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret Set_ClientAPI_CPostAPIResultInProcess(void(*)(uint64, void *, uint32, int32)) = 0;
virtual void *GetIClientRemoteControlManager(void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret Remove_ClientAPI_CPostAPIResultInProcess(void(*)(uint64, void *, uint32, int32)) = 0;
virtual void Set_ClientAPI_CPostAPIResultInProcess(void(*)(uint64_t ulUnk, void * pUnk, uint32_t uUnk, int32_t iUnk)) = 0; virtual unknown_ret GetIClientUGC(int32, int32, const char *) = 0;
virtual void Remove_ClientAPI_CPostAPIResultInProcess(void(*)(uint64_t ulUnk, void * pUnk, uint32_t uUnk, int32_t iUnk)) = 0; virtual unknown_ret GetIClientInventory(int32, int32, const char *) = 0;
virtual void *GetIClientUGC(void* hSteamUser, void* hSteamPipe, char const* pchVersion) = 0; virtual unknown_ret GetIClientVR(int32, const char *) = 0;
virtual void *GetIClientVR(char const * pchVersion) = 0; virtual unknown_ret GetIClientTabletop(int32, int32, const char *) = 0;
virtual unknown_ret GetIClientHTMLSurface(int32, int32, const char *) = 0;
virtual unknown_ret GetIClientVideo(int32, int32, const char *) = 0;
virtual unknown_ret GetIClientControllerSerialized(int32, const char *) = 0;
virtual unknown_ret GetIClientAppDisableUpdate(int32, int32, const char *) = 0;
virtual unknown_ret Set_Client_API_CCheckCallbackRegisteredInProcess(uint32(*)(int32)) = 0;
virtual unknown_ret GetIClientBluetoothManager(int32, const char *) = 0;
//virtual unknown_ret ~CSteamClient() = 0;
//virtual unknown_ret ~CSteamClient() = 0;
virtual unknown_ret GetIPCServerMap() = 0;
virtual unknown_ret OnDebugTextArrived(const char *) = 0;
}; };
class Apps7 class Apps7
@ -276,22 +287,38 @@ namespace Steam
typedef void(SteamFreeLastCallbackFn)(void* hpipe); typedef void(SteamFreeLastCallbackFn)(void* hpipe);
typedef bool(SteamGetAPICallResultFn)(void* hpipe, uint64_t hSteamAPICall, void* pCallback, int cubCallback, int iCallbackExpected, bool* pbFailed); typedef bool(SteamGetAPICallResultFn)(void* hpipe, uint64_t hSteamAPICall, void* pCallback, int cubCallback, int iCallbackExpected, bool* pbFailed);
struct CallContainer class CallContainer
{ {
public:
uint64_t call; uint64_t call;
bool handled; bool handled;
int32_t callId; int32_t callId;
uint32_t dataSize; uint32_t dataSize;
}; };
struct CallbackMsg class CallbackMsg
{ {
public:
int32_t m_hSteamUser; int32_t m_hSteamUser;
int m_iCallback; int m_iCallback;
uint8_t *m_pubParam; uint8_t *m_pubParam;
int m_cubParam; int m_cubParam;
}; };
class Handle
{
public:
Handle(void* _handle) : handle(_handle) {}
Handle(int32_t _handle) : Handle(reinterpret_cast<void*>(_handle)) {}
Handle() : Handle(nullptr) {}
operator int32_t() const { return reinterpret_cast<int32_t>(this->handle); }
operator void*() const { return this->handle; }
private:
void* handle;
};
static ::Utils::Library Client; static ::Utils::Library Client;
static ::Utils::Library Overlay; static ::Utils::Library Overlay;
@ -299,8 +326,8 @@ namespace Steam
static IClientEngine* ClientEngine; static IClientEngine* ClientEngine;
static Interface ClientUser; static Interface ClientUser;
static void* SteamPipe; static Handle SteamPipe;
static void* SteamUser; static Handle SteamUser;
static HANDLE Process; static HANDLE Process;
static HANDLE CancelHandle; static HANDLE CancelHandle;

View File

@ -35,6 +35,18 @@ typedef union
} GameID_t; } GameID_t;
#pragma pack( pop ) #pragma pack( pop )
typedef int8_t int8;
typedef int16_t int16;
typedef int32_t int32;
typedef int64_t int64;
typedef uint8_t uint8;
typedef uint16_t uint16;
typedef uint32_t uint32;
typedef uint64_t uint64;
typedef void* unknown_ret;
#include "Interfaces/SteamUser.hpp" #include "Interfaces/SteamUser.hpp"
#include "Interfaces/SteamUtils.hpp" #include "Interfaces/SteamUtils.hpp"
#include "Interfaces/SteamFriends.hpp" #include "Interfaces/SteamFriends.hpp"