Commits

Didrole committed 6db4fea

Updated enums and IClient* interfaces, added ISteamHTTP002, ISteamRemoteStorage009 and ISteamRemoteStorage010.

Comments (0)

Files changed (25)

Open Steamworks/AppsCommon.h

 	k_EAppErrorTimeout = 7,
 	k_EAppErrorMissingKey = 8,
 	k_EAppErrorMissingConfig = 9,
-	k_EAppErrorMissingContent = 10,
-	k_EAppErrorDiskFailed = 11,
-	k_EAppErrorNotEnoughDiskSpace = 12,
+	k_EAppErrorDiskReadFailure = 10,
+	k_EAppErrorDiskWriteFailure = 11,
 	k_EAppErrorCorruptContent = 13,
 	k_EAppErrorWaitingForDisk = 14,
 	k_EAppErrorInvalidInstallPath = 15,
 	k_EAppErrorMissingManifest = 24,
 	k_EAppErrorNotReleased = 25,
 	k_EAppErrorRegionRestricted = 26,
+	k_EAppErrorCorruptDepotCache = 27,
+	k_EAppErrorMissingExecutable = 28,
+	k_EAppErrorInvalidPlatform = 29,
 };
 
 //-----------------------------------------------------------------------------

Open Steamworks/BillingCommon.h

 	k_EPaymentMethodSofort = 7,
 	k_EPaymentMethodGuestPass = 8,
 	k_EPaymentMethodWebMoney = 9,
+	k_EPaymentMethodMoneyBookers = 10,
+	k_EPaymentMethodAliPay = 11,
+	k_EPaymentMethodYandex = 12,
+	k_EPaymentMethodKiosk = 13,
+	k_EPaymentMethodQIWI = 14,
+	k_EPaymentMethodGameStop = 15,
 	k_EPaymentMethodHardwarePromo = 16,
+	k_EPaymentMethodMopay = 17,
+	k_EPaymentMethodBoletoBancario = 18,
+	k_EPaymentMethodBoaCompraGold = 19,
+	k_EPaymentMethodBancoDoBrasilOnline = 20,
+	k_EPaymentMethodItauOnline = 21,
+	k_EPaymentMethodBradescoOnline = 22,
+	k_EPaymentMethodPagseguro = 23,
+	k_EPaymentMethodVisaBrazil = 24,
+	k_EPaymentMethodAmexBrazil = 25,
+	k_EPaymentMethodAura = 26,
+	k_EPaymentMethodHipercard = 27,
+	k_EPaymentMethodMastercardBrazil = 28,
+	k_EPaymentMethodDinerSCardBrazil = 29,
+	
 	k_EPaymentMethodClickAndBuy = 32,
 	k_EPaymentMethodAutoGrant = 64,
 	k_EPaymentMethodWallet = 128,
+	k_EPaymentMethodValve = 129,
 	k_EPaymentMethodOEMTicket = 256,
 	k_EPaymentMethodSplit = 512,
 	k_EPaymentMethodComplimentary = 1024,

Open Steamworks/ECurrencyCode.h

 	k_ECurrencyCodeRUB = 5,
 	k_ECurrencyCodePLN = 6,
 	k_ECurrencyCodeBRL = 7,
-	k_ECurrencyCodeMax = 8,
+	//k_ECurrencyCodeMax = 8,
+	k_ECurrencyCodeNOK = 9
 } ECurrencyCode;
 
 #endif // ECURRENCYCODE_H

Open Steamworks/EResult.h

 	k_EResultIPLoginRestrictionFailed = 72,		// IP Login Restriction Failed
 	k_EResultAccountLocked = 73,				// Account Locked Down
 	k_EResultVerifiedEmailRequired = 74,		// Account Logon Denied Verified Email Required
+	k_EResultNoMatchingURL = 75,				// No matching URL
+	k_EResultBadResponse = 76,					// Bad response
 } EResult;
 
 #endif // ERESULT_H

Open Steamworks/HTTPCommon.h

 
 #define CLIENTHTTP_INTERFACE_VERSION "CLIENTHTTP_INTERFACE_VERSION001"
 #define STEAMHTTP_INTERFACE_VERSION_001 "STEAMHTTP_INTERFACE_VERSION001"
+#define STEAMHTTP_INTERFACE_VERSION_002 "STEAMHTTP_INTERFACE_VERSION002"
 
 
 typedef uint32 HTTPRequestHandle;
 	k_EHTTPMethodGET,
 	k_EHTTPMethodHEAD,
 	k_EHTTPMethodPOST,
+	k_EHTTPMethodPUT,
+	k_EHTTPMethodDELETE,
 
 	// The remaining HTTP methods are not yet supported, per rfc2616 section 5.1.1 only GET and HEAD are required for 
 	// a compliant general purpose server.  We'll likely add more as we find uses for them.
 
 	// k_EHTTPMethodOPTIONS,
-	// k_EHTTPMethodPUT,
-	// k_EHTTPMethodDELETE,
 	// k_EHTTPMethodTRACE,
 	// k_EHTTPMethodCONNECT
 };

Open Steamworks/IClientAppManager.h

 abstract_class UNSAFE_INTERFACE IClientAppManager
 {
 public:
-	virtual EAppUpdateError InstallApp( AppId_t unAppID, bool ) = 0;
+	virtual EAppUpdateError InstallApp( AppId_t unAppID, const char *cszAppDir, int32 iBaseFolder, bool bLegacy ) = 0;
 	virtual EAppUpdateError ConvertFromSteam2( AppId_t unAppID, const char *cszPath ) = 0;
 	virtual EAppUpdateError UninstallApp( AppId_t unAppID, bool bComplete ) = 0;
 
 	// /!\ IPC is broken for this function
 	virtual bool GetAppSizeOnDisk( AppId_t unAppID, uint64 *pullAppSize, uint64 *pullUnk ) = 0;
 	
-	virtual uint32 GetAppDir( AppId_t unAppID, char *pchPath, uint32 cbPath ) = 0;
+	virtual uint32 GetAppInstallDir( AppId_t unAppID, char *pchPath, uint32 cbPath ) = 0;
+	
+	virtual bool IsAppDlcInstalled( AppId_t unAppID, AppId_t unDLCAppID ) = 0;
+	virtual uint32 GetNumInstalledApps() = 0;
+	virtual uint32 GetInstalledApps( uint32 *punAppIDs, uint32 cAppIDsMax ) = 0;
 
 	virtual uint32 GetAppDependency( AppId_t unAppID ) = 0;
 	virtual uint32 GetDependentApps( AppId_t unAppID, AppId_t *punAppIDs, int32 cAppIDsMax ) = 0;
 
 	virtual bool SetContentLocked( AppId_t unAppID, bool bLockContent ) = 0;
 
-	virtual bool StartValidatingApp( AppId_t unAppID ) = 0;
-
 	virtual bool SetAppConfig( AppId_t unAppID, uint8 *pchBuffer, int32 cbBuffer, bool bSharedKVSymbols ) = 0;
+	virtual int32 GetAppConfigValue( AppId_t unAppID, const char *pchKey, char *pchValue, int32 cchValueMax ) = 0;
 
 	virtual bool BIsAppUpToDate( AppId_t unAppID ) = 0;
 	
+	virtual bool StartValidatingApp( AppId_t unAppID ) = 0;
+	virtual bool MarkContentCorrupt( AppId_t unAppID, bool bCorrupt ) = 0;
+	
 	virtual bool BCacheBetaPassword( AppId_t unAppID, const char *cszBetaKey, const char *cszBetaPassword ) = 0;
 	virtual bool BRequestBetaPasswords( AppId_t unAppID ) = 0;
 	virtual bool BIsCachedBetaPasswordValid( AppId_t unAppID, const char *cszBetaKey ) = 0;
 	virtual bool BuildBackup( AppId_t unAppID, uint64 ullMaxFileSize, const char *cszBackupPath ) = 0;
 	virtual bool BuildInstaller( const char *cszProjectFile, const char *cszBackupPath, const char * ) = 0;
 	virtual bool CancelBackup() = 0;
-	virtual EAppUpdateError RestoreApp( AppId_t unAppID, char const *cszBackupPath ) = 0;
+	virtual EAppUpdateError RestoreApp( AppId_t unAppID, int32 iBaseFolder, char const *cszBackupPath ) = 0;
 	virtual bool BNeedsFile( AppId_t unAppID, char const *cszFilePath, uint64 ullFileSize, uint32 uUnk ) = 0;
 	virtual bool BAddFileOnDisk( AppId_t unAppID, char const *cszFilePath, uint64 ullFileSize, uint32 uUnk, SHADigestWrapper_t ubSha1 ) = 0;
 	virtual uint64 FinishAddingFiles( AppId_t unAppID ) = 0;
 
 	virtual bool GetAppStateInfo( AppId_t unAppID, EAppReleaseState * peReleaseState, EAppOwernshipFlags * peOwernshipFlags ) = 0;
+	
+	virtual int32 GetNumInstallBaseFolders() = 0;
+	virtual int32 GetInstallBaseFolder( int32 iBaseFolder, char *pchPath, int32 cbPath ) = 0;
+	virtual int32 AddInstallBaseFolder( const char *szPath ) = 0;
+	virtual bool RemoveInstallBaseFolder( int32 iBaseFolder ) = 0;
+	virtual uint64 GetFreeDiskSpace( int32 iBaseFolder ) = 0;
+	
+	virtual void ForceInstallDirOverride( const char *cszPath ) = 0;
 };
 
 #endif // ICLIENTAPPMANAGER_H

Open Steamworks/IClientApps.h

 
 	virtual AppId_t GetInternalAppIDFromGameID( CGameID nGameID ) = 0;
 
-	virtual void RequestAppCallbacks( bool bOnlyMultiplayerApps ) = 0;
+	virtual int32 GetAllOwnedMultiplayerApps( uint32 *punAppIDs, int32 cAppIDsMax ) = 0;
 
 	virtual int32 GetAppDataSection( AppId_t unAppID, EAppInfoSection eSection, uint8 *pchBuffer, int32 cbBufferMax, bool bSharedKVSymbols ) = 0;
 	virtual bool RequestAppInfoUpdate( const AppId_t *pAppIDs, int32 nNumAppIDs, bool bForceUpdate ) = 0;

Open Steamworks/IClientFriends.h

 	virtual const char * GetPlayerNickname( CSteamID playerSteamID ) = 0;
 	virtual bool SetPlayerNickname( CSteamID playerSteamID, const char *cszNickname ) = 0;
 
+	 virtual int32 GetChatMessagesCount( CSteamID steamIDFriend ) = 0;
 	// chat message iteration
 	// returns the number of bytes in the message, filling pvData with as many of those bytes as possible
 	// returns 0 if the steamID or iChatID are invalid
 	virtual bool InviteUserToChatRoom( CSteamID steamIDChat, CSteamID steamIDInvitee ) = 0;
 
 	virtual bool SendChatMsg( CSteamID steamIDChat, EChatEntryType eChatEntryType, const void *pvMsgBody, int32 cubMsgBody ) = 0;
+	
+	virtual int32 GetChatRoomMessagesCount( CSteamID steamIDChat ) = 0;
 
 	virtual int32 GetChatRoomEntry( CSteamID steamIDChat, int32 iChatID, CSteamID *steamIDuser, void *pvData, int32 cubData, EChatEntryType *peChatEntryType ) = 0;
 

Open Steamworks/IClientHTTP.h

 	// header and only do a local cache lookup rather than sending any actual remote request.
 	virtual bool SendHTTPRequest( HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle ) = 0;
 
+	virtual bool SendHTTPRequestAndStreamResponse( HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle ) = 0;
+	
 	// Defers a request you have sent, the actual HTTP client code may have many requests queued, and this will move
 	// the specified request to the tail of the queue.  Returns false on invalid handle, or if the request is not yet sent.
 	virtual bool DeferHTTPRequest( HTTPRequestHandle hRequest ) = 0;
 	// the correct buffer size to use.
 	virtual bool GetHTTPResponseBodyData( HTTPRequestHandle hRequest, uint8 *pBodyDataBuffer, uint32 unBufferSize ) = 0;
 	
+	virtual bool GetHTTPStreamingResponseBodyData( HTTPRequestHandle hRequest, uint32, uint8 *pBodyDataBuffer, uint32 unBufferSize ) = 0;
+	
 	// Releases an HTTP response handle, should always be called to free resources after receiving a HTTPRequestCompleted_t
 	// callback and finishing using the response.
 	virtual bool ReleaseHTTPRequest( HTTPRequestHandle hRequest ) = 0;

Open Steamworks/IClientRemoteStorage.h

 	virtual bool IsCloudEnabledForApp( AppId_t nAppId );
 	virtual void SetCloudEnabledForApp( AppId_t nAppId, bool bEnable );
 
-	virtual SteamAPICall_t UGCDownload( UGCHandle_t hContent, bool bUseNewCallback ) = 0; // Old callback id = 1308, new callback id = 1317
+	virtual SteamAPICall_t UGCDownload( UGCHandle_t hContent, bool bUseNewCallback, uint32 uUnk ) = 0; // Old callback id = 1308, new callback id = 1317
 	virtual bool GetUGCDownloadProgress( UGCHandle_t hContent, uint32 *puDownloadedBytes, uint32 *puTotalBytes );
 	virtual bool GetUGCDetails( UGCHandle_t hContent, AppId_t *pnAppID, char **ppchName, int32 *pnFileSizeInBytes, CSteamID *pSteamIDOwner ) = 0;
-	virtual int32 UGCRead( UGCHandle_t hContent, void *pubDest, int32 nDestBufferSize ) = 0;
+	virtual int32 UGCRead( UGCHandle_t hContent, void *pubDest, int32 nDestBufferSize, uint32 uOffset ) = 0;
 	virtual int32 GetCachedUGCCount() = 0;
 	virtual UGCHandle_t GetCachedUGCHandle( int32 iCachedContent ) = 0;
 
-	virtual SteamAPICall_t PublishFile( AppId_t nAppId, ERemoteStorageFileRoot eRemoteStorageFileRoot, const char *cszFileName, const char *cszPreviewFileName, AppId_t nConsumerAppId , const char *cszTitle, const char *cszDescription, ERemoteStoragePublishedFileVisibility eVisibility, bool bOverwrite, SteamParamStringArray_t *pTags, EWorkshopFileType eType ) = 0;
+	virtual SteamAPICall_t PublishFile( AppId_t nAppId, ERemoteStorageFileRoot eRemoteStorageFileRoot, const char *cszFileName, const char *cszPreviewFileName, AppId_t nConsumerAppId , const char *cszTitle, const char *cszDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags, EWorkshopFileType eType ) = 0;
 	virtual SteamAPICall_t PublishVideo( AppId_t nAppId, EWorkshopVideoProvider eVideoProvider, const char *cszVideoAccountName, const char *cszVideoIdentifier, ERemoteStorageFileRoot eRemoteStorageFileRoot, const char *cszFileName, AppId_t nConsumerAppId, const char *cszTitle, const char *cszDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags ) = 0;
 	virtual SteamAPICall_t PublishVideoFromURL( AppId_t nAppId, ERemoteStorageFileRoot eRemoteStorageFileRoot, const char *cszVideoURL, const char *cszFileName, AppId_t nConsumerAppId, const char *cszTitle, const char *cszDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags ) = 0;
 
 	
 	virtual SteamAPICall_t SetUserPublishedFileAction( AppId_t nAppId, PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ) = 0;
 	virtual SteamAPICall_t EnumeratePublishedFilesByUserAction( AppId_t nAppId, EWorkshopFileAction eAction, uint32 uStartIndex ) = 0;
+	virtual SteamAPICall_t EnumerateUserSubscribedFilesWithUpdates( AppId_t nAppId, uint32 uStartIndex, RTime32 uStartTime ) = 0;
 	virtual SteamAPICall_t GetCREItemVoteSummary( PublishedFileId_t unPublishedFileId ) = 0;
 	virtual SteamAPICall_t UpdateUserPublishedItemVote( PublishedFileId_t unPublishedFileId, bool bVoteUp ) = 0;
 	virtual SteamAPICall_t GetUserPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0;
 	virtual bool ResetFileRequestState( AppId_t nAppId ) = 0;
 
 	virtual void ClearPublishFileUpdateRequests( AppId_t nAppId ) = 0;
+	
+	virtual int32 GetSubscribedFileDownloadCount() = 0;
+	virtual bool BGetSubscribedFileDownloadInfo( int32 iFile, PublishedFileId_t* punPublishedFileId, uint32 *puBytesDownloaded, uint32 *puBytesExpected, AppId_t* pnAppId ) = 0;
+	virtual bool BGetSubscribedFileDownloadInfo( PublishedFileId_t unPublishedFileId, uint32 *puBytesDownloaded, uint32 *puBytesExpected, AppId_t* pnAppId ) = 0;
+	virtual void PauseSubscribedFileDownloadsForApp( AppId_t nAppId ) = 0;
+	virtual void ResumeSubscribedFileDownloadsForApp( AppId_t nAppId ) = 0;
+	virtual void PauseAllSubscribedFileDownloads() = 0;
+	virtual void ResumeAllSubscribedFileDownloads() = 0;
 };
 
 #endif // ICLIENTREMOTESTORAGE_H

Open Steamworks/IClientScreenshots.h

 	STEAMWORKS_STRUCT_RETURN_1(CGameID, GetGameWithLocalScreenshots, int32, iGameIndex) /*virtual CGameID GetGameWithLocalScreenshots( int32 iGameIndex ) = 0;*/
 
 	virtual int32 GetLocalScreenshotCount( CGameID gameID ) = 0;
-	virtual bool GetLocalScreenshot( CGameID gameID, int32 iScreenshotIndex, ScreenshotHandle* phScreenshot, int32 *piWidth, int32 *piHeight, uint32 *puTimestamp, EUCMFilePrivacyState *pePrivacy, uint64* pullFileID, char *pchCaption, uint32 cubCaption ) = 0;
+	virtual bool GetLocalScreenshot( CGameID gameID, int32 iScreenshotIndex, ScreenshotHandle* phScreenshot, int32 *piWidth, int32 *piHeight, uint32 *puTimestamp, EUCMFilePrivacyState *pePrivacy, uint64* pullFileID, char *pchCaption, uint32 cubCaption, bool *pbSpoiler ) = 0;
 	virtual bool SetLocalScreenshotCaption( CGameID gameID, ScreenshotHandle hScreenshot, const char *cszCaption ) = 0;
 	virtual bool SetLocalScreenshotPrivacy( CGameID gameID, ScreenshotHandle hScreenshot, EUCMFilePrivacyState ePrivacy ) = 0;
+	virtual bool SetLocalScreenshotSpoiler( CGameID, ScreenshotHandle hScreenshot, bool bSpoiler ) = 0;
 
 	virtual bool StartBatch( CGameID gameID ) = 0;
 	virtual bool AddToBatch( ScreenshotHandle hScreenshot ) = 0;

Open Steamworks/IClientUser.h

 
 	virtual AppId_t IsInstallScriptRunning() = 0;
 
-	virtual bool GetInstallScriptString( AppId_t nAppID, const char *pchInstallPath, const char *pchLanguage, const char *pchKeyname, const char *pchKeyvalue, char* pchValue, int32 cchValue ) = 0;
 	virtual bool GetInstallScriptState( char* pchDescription, uint32 cchDescription, uint32* punNumSteps, uint32* punCurrStep ) = 0;
 
 	virtual bool SpawnProcess( void *lpVACBlob, uint32 cbBlobSize, const char *lpApplicationName, const char *lpCommandLine, uint32 dwCreationFlags, const char *lpCurrentDirectory, CGameID gameID, AppId_t nAppID, const char *pchGameName, bool bAlwaysUseShellExec ) = 0;
 
 	virtual uint32 GetAppOwnershipTicketExtendedData( uint32 nAppID, void *pvBuffer, uint32 cbBufferLength, uint32* piAppId, uint32* piSteamId, uint32* piSignature, uint32* pcbSignature ) = 0;
 
-	virtual bool GetAppDecryptionKey( uint32 nAppID, void *pvBuffer, uint32 cbBufferLength ) = 0;
-
 	virtual int32 GetMarketingMessageCount() = 0;
 	virtual bool GetMarketingMessage( int32 cMarketingMessage, GID_t* gidMarketingMessageID, char* pubMsgUrl, int32 cubMessageUrl, EMarketingMessageFlags *eMarketingMssageFlags ) = 0;
 
 	virtual AppId_t GetMicroTxnAppID( GID_t gidTransID ) = 0;
 	virtual uint64 GetMicroTxnOrderID( GID_t gidTransID ) = 0;
 
-	virtual bool BGetMicroTxnPrice( GID_t gidTransID, CAmount *pamtTotal, CAmount *pamtTax, bool *pbVat ) = 0;
+	virtual bool BGetMicroTxnPrice( GID_t gidTransID, CAmount<int> *pamtTotal, CAmount<int> *pamtTax, bool *pbVat ) = 0;
 
 	virtual int32 GetMicroTxnLineItemCount( GID_t gidTransID ) = 0;
 
-	virtual bool BGetMicroTxnLineItem( GID_t gidTransID, uint32 unLineItem, CAmount *pamt, uint32 *punQuantity, char *pchDescription, uint32 cubDescriptionLength ) = 0;
+	virtual bool BGetMicroTxnLineItem( GID_t gidTransID, uint32 unLineItem, CAmount<int> *pamt, uint32 *punQuantity, char *pchDescription, uint32 cubDescriptionLength ) = 0;
 
 	virtual bool BIsSandboxMicroTxn( GID_t gidTransID, bool* pbSandbox ) = 0;
 
 
 	virtual void NotifyAppMicroTxnAuthResponse( AppId_t unAppID, uint64 ulOrderID, bool bAuthorized ) = 0;
 
-	virtual bool BGetWalletBalance( bool *pbHasWallet, CAmount *pamtBalance ) = 0;
+	virtual bool BGetWalletBalance( bool *pbHasWallet, CAmount<int> *pamtBalance ) = 0;
 
 	virtual SteamAPICall_t RequestMicroTxnInfo( GID_t gidTransID ) = 0;
 
 	virtual void RequestNotifications() = 0;
 	
 	virtual bool GetAppOwnershipInfo( AppId_t unAppId, RTime32* pRTime32Created, char* pchCountry ) = 0; // Use a 3 bytes buffer for the country
+	
+	virtual void SendGameWebCallback( AppId_t unAppId, const char *szData ) = 0;
 };
 
 #endif // ICLIENTUSER_H

Open Steamworks/IClientUtils.h

 #include "SteamTypes.h"
 #include "UtilsCommon.h"
 
-
 abstract_class UNSAFE_INTERFACE IClientUtils
 {
 public:
 	// return the number of seconds since the user 
 	virtual uint32 GetSecondsSinceAppActive() = 0;
 	virtual uint32 GetSecondsSinceComputerActive() = 0;
+	virtual void SetComputerActive() = 0;
 
 	// the universe this client is connecting to
 	virtual EUniverse GetConnectedUniverse() = 0;
 
 	virtual uint64 GetBuildID() = 0;
 
+	virtual void SetCurrentUIMode( EUIMode eUIMode ) = 0;
+	virtual bool ShowGamepadTextInput( EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eInputLineMode, const char *szText, uint32 uMaxLength ) = 0;
+	virtual uint32 GetEnteredGamepadTextLength() = 0;
+	virtual bool GetEnteredGamepadTextInput( char *pchValue, uint32 cchValueMax ) = 0;
+	virtual void GamepadTextInputClosed( HSteamPipe hSteamPipe, bool, const char * ) = 0;
+
 	virtual void SetSpew( ESpewGroup eSpewGroup, int32 iSpewLevel, int32 iLogLevel ) = 0;
 };
 

Open Steamworks/ISteam2Bridge002.h

 	virtual int32 GetSteam2FullASTicket( uint8* pubTicket, int32 cubTicket ) = 0;
 
 	virtual void SetWinningPingTimeForCellID( uint32 uPing ) = 0;
+	
+	virtual void GetSteam2ID( TSteamGlobalUserID *pUserID ) = 0;
 };
 
 #endif // ISTEAM2BRIDGE002_H

Open Steamworks/ISteamApps005.h

 	virtual void UninstallDLC( AppId_t nAppID ) = 0;
 	
 	virtual void RequestAppProofOfPurchaseKey( AppId_t nDLCAppID ) = 0;
+	
+	virtual bool GetCurrentBetaName( char *pchName, int32 cchNameBufferSize ) = 0;
+	virtual bool MarkContentCorrupt( bool bCorrupt ) = 0;
 };
 
 

Open Steamworks/ISteamHTTP002.h

+//==========================  Open Steamworks  ================================
+//
+// This file is part of the Open Steamworks project. All individuals associated
+// with this project do not claim ownership of the contents
+// 
+// The code, comments, and all related files, projects, resources,
+// redistributables included with this project are Copyright Valve Corporation.
+// Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the
+// Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo,
+// Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the
+// Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition
+// Zero are trademarks and or registered trademarks of Valve Corporation.
+// All other trademarks are property of their respective owners.
+//
+//=============================================================================
+
+#ifndef ISTEAMHTTP002_H
+#define ISTEAMHTTP002_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "SteamTypes.h"
+#include "HTTPCommon.h"
+
+abstract_class ISteamHTTP002
+{
+public:
+
+	// Initializes a new HTTP request, returning a handle to use in further operations on it.  Requires
+	// the method (GET or POST) and the absolute URL for the request.  Only http requests (ie, not https) are
+	// currently supported, so this string must start with http:// or https:// and should look like http://store.steampowered.com/app/250/ 
+	// or such.
+	virtual HTTPRequestHandle CreateHTTPRequest( EHTTPMethod eHTTPRequestMethod, const char *pchAbsoluteURL ) = 0;
+
+	// Set a context value for the request, which will be returned in the HTTPRequestCompleted_t callback after
+	// sending the request.  This is just so the caller can easily keep track of which callbacks go with which request data.
+	virtual bool SetHTTPRequestContextValue( HTTPRequestHandle hRequest, uint64 ulContextValue ) = 0;
+
+	// Set a timeout in seconds for the HTTP request, must be called prior to sending the request.  Default
+	// timeout is 60 seconds if you don't call this.  Returns false if the handle is invalid, or the request
+	// has already been sent.
+	virtual bool SetHTTPRequestNetworkActivityTimeout( HTTPRequestHandle hRequest, uint32 unTimeoutSeconds ) = 0;
+
+	// Set a request header value for the request, must be called prior to sending the request.  Will 
+	// return false if the handle is invalid or the request is already sent.
+	virtual bool SetHTTPRequestHeaderValue( HTTPRequestHandle hRequest, const char *pchHeaderName, const char *pchHeaderValue ) = 0;
+
+	// Set a GET or POST parameter value on the request, which is set will depend on the EHTTPMethod specified
+	// when creating the request.  Must be called prior to sending the request.  Will return false if the 
+	// handle is invalid or the request is already sent.
+	virtual bool SetHTTPRequestGetOrPostParameter( HTTPRequestHandle hRequest, const char *pchParamName, const char *pchParamValue ) = 0;
+
+	// Sends the HTTP request, will return false on a bad handle, otherwise use SteamCallHandle to wait on
+	// asyncronous response via callback.
+	//
+	// Note: If the user is in offline mode in Steam, then this will add a only-if-cached cache-control 
+	// header and only do a local cache lookup rather than sending any actual remote request.
+	virtual bool SendHTTPRequest( HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle ) = 0;
+	
+	virtual bool SendHTTPRequestAndStreamResponse( HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle ) = 0;
+
+	// Defers a request you have sent, the actual HTTP client code may have many requests queued, and this will move
+	// the specified request to the tail of the queue.  Returns false on invalid handle, or if the request is not yet sent.
+	virtual bool DeferHTTPRequest( HTTPRequestHandle hRequest ) = 0;
+
+	// Prioritizes a request you have sent, the actual HTTP client code may have many requests queued, and this will move
+	// the specified request to the head of the queue.  Returns false on invalid handle, or if the request is not yet sent.
+	virtual bool PrioritizeHTTPRequest( HTTPRequestHandle hRequest ) = 0;
+
+	// Checks if a response header is present in a HTTP response given a handle from HTTPRequestCompleted_t, also 
+	// returns the size of the header value if present so the caller and allocate a correctly sized buffer for
+	// GetHTTPResponseHeaderValue.
+	virtual bool GetHTTPResponseHeaderSize( HTTPRequestHandle hRequest, const char *pchHeaderName, uint32 *unResponseHeaderSize ) = 0;
+
+	// Gets header values from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the
+	// header is not present or if your buffer is too small to contain it's value.  You should first call 
+	// BGetHTTPResponseHeaderSize to check for the presence of the header and to find out the size buffer needed.
+	virtual bool GetHTTPResponseHeaderValue( HTTPRequestHandle hRequest, const char *pchHeaderName, uint8 *pHeaderValueBuffer, uint32 unBufferSize ) = 0;
+
+	// Gets the size of the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the 
+	// handle is invalid.
+	virtual bool GetHTTPResponseBodySize( HTTPRequestHandle hRequest, uint32 *unBodySize ) = 0;
+
+	// Gets the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the 
+	// handle is invalid or if the provided buffer is not the correct size.  Use BGetHTTPResponseBodySize first to find out
+	// the correct buffer size to use.
+	virtual bool GetHTTPResponseBodyData( HTTPRequestHandle hRequest, uint8 *pBodyDataBuffer, uint32 unBufferSize ) = 0;
+
+	virtual bool GetHTTPStreamingResponseBodyData( HTTPRequestHandle hRequest, uint32, uint8 *pBodyDataBuffer, uint32 unBufferSize ) = 0;
+
+	// Releases an HTTP response handle, should always be called to free resources after receiving a HTTPRequestCompleted_t
+	// callback and finishing using the response.
+	virtual bool ReleaseHTTPRequest( HTTPRequestHandle hRequest ) = 0;
+
+	// Gets progress on downloading the body for the request.  This will be zero unless a response header has already been
+	// received which included a content-length field.  For responses that contain no content-length it will report
+	// zero for the duration of the request as the size is unknown until the connection closes.
+	virtual bool GetHTTPDownloadProgressPct( HTTPRequestHandle hRequest, float *pflPercentOut ) = 0;
+	
+	// Sets the body for an HTTP Post request.  Will fail and return false on a GET request, and will fail if POST params
+	// have already been set for the request.  Setting this raw body makes it the only contents for the post, the pchContentType
+	// parameter will set the content-type header for the request so the server may know how to interpret the body.
+	virtual bool SetHTTPRequestRawPostBody( HTTPRequestHandle hRequest, const char *pchContentType, uint8 *pubBody, uint32 unBodyLen ) = 0;
+};
+
+#endif // ISTEAMHTTP002_H

Open Steamworks/ISteamRemoteStorage008.h

 	virtual bool	SetSyncPlatforms( const char *pchFile, ERemoteStoragePlatform eRemoteStoragePlatform ) = 0;
 
 	virtual GID_t FileWriteStreamOpen( const char *pchFile ) = 0;
-	virtual EResult FileWriteStreamWriteChunk( GID_t hStream, const void *pvData, int32 cubData ) = 0;
 	virtual EResult FileWriteStreamClose( GID_t hStream ) = 0;
 	virtual EResult FileWriteStreamCancel( GID_t hStream ) = 0;
+	virtual EResult FileWriteStreamWriteChunk( GID_t hStream, const void *pvData, int32 cubData ) = 0;
 
 	// file information
 	virtual bool	FileExists( const char *pchFile ) = 0;
 
 	// user generated content iteration
 	virtual int32	GetCachedUGCCount() = 0;
-	virtual	UGCHandle_t GetCachedUGCHandle( int32 iCachedContent ) = 0;
+	virtual UGCHandle_t GetCachedUGCHandle( int32 iCachedContent ) = 0;
 
 	// publishing UGC
 	virtual SteamAPICall_t PublishWorkshopFile( const char *pchFile, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags, EWorkshopFileType eWorkshopFileType ) = 0;

Open Steamworks/ISteamRemoteStorage009.h

+//==========================  Open Steamworks  ================================
+//
+// This file is part of the Open Steamworks project. All individuals associated
+// with this project do not claim ownership of the contents
+// 
+// The code, comments, and all related files, projects, resources,
+// redistributables included with this project are Copyright Valve Corporation.
+// Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the
+// Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo,
+// Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the
+// Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition
+// Zero are trademarks and or registered trademarks of Valve Corporation.
+// All other trademarks are property of their respective owners.
+//
+//=============================================================================
+
+#ifndef ISTEAMREMOTESTORAGE009_H
+#define ISTEAMREMOTESTORAGE009_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "SteamTypes.h"
+#include "RemoteStorageCommon.h"
+
+//-----------------------------------------------------------------------------
+// Purpose: Functions for accessing, reading and writing files stored remotely 
+//			and cached locally
+//-----------------------------------------------------------------------------
+abstract_class ISteamRemoteStorage009
+{
+public:
+	// NOTE
+	//
+	// Filenames are case-insensitive, and will be converted to lowercase automatically.
+	// So "foo.bar" and "Foo.bar" are the same file, and if you write "Foo.bar" then
+	// iterate the files, the filename returned will be "foo.bar".
+	//
+
+	// file operations
+	virtual bool	FileWrite( const char *pchFile, const void *pvData, int32 cubData ) = 0;
+	virtual int32	FileRead( const char *pchFile, void *pvData, int32 cubDataToRead ) = 0;
+	virtual bool	FileForget( const char *pchFile ) = 0;
+	virtual bool	FileDelete( const char *pchFile ) = 0;
+	virtual SteamAPICall_t FileShare( const char *pchFile ) = 0;
+	virtual bool	SetSyncPlatforms( const char *pchFile, ERemoteStoragePlatform eRemoteStoragePlatform ) = 0;
+
+	virtual GID_t FileWriteStreamOpen( const char *pchFile ) = 0;
+	virtual EResult FileWriteStreamClose( GID_t hStream ) = 0;
+	virtual EResult FileWriteStreamCancel( GID_t hStream ) = 0;
+	virtual EResult FileWriteStreamWriteChunk( GID_t hStream, const void *pvData, int32 cubData ) = 0;
+
+	// file information
+	virtual bool	FileExists( const char *pchFile ) = 0;
+	virtual bool	FilePersisted( const char *pchFile ) = 0;
+	virtual int32	GetFileSize( const char *pchFile ) = 0;
+	virtual int64	GetFileTimestamp( const char *pchFile ) = 0;
+	virtual ERemoteStoragePlatform GetSyncPlatforms( const char *pchFile ) = 0;
+
+	// iteration
+	virtual int32 GetFileCount() = 0;
+	virtual const char *GetFileNameAndSize( int iFile, int32 *pnFileSizeInBytes ) = 0;
+
+	// configuration management
+	virtual bool GetQuota( int32 *pnTotalBytes, int32 *puAvailableBytes ) = 0;
+	virtual bool IsCloudEnabledForAccount() = 0;
+	virtual bool IsCloudEnabledForApp() = 0;
+	virtual void SetCloudEnabledForApp( bool bEnabled ) = 0;
+
+	// user generated content
+	virtual SteamAPICall_t UGCDownload( UGCHandle_t hContent ) = 0; // Returns a RemoteStorageDownloadUGCResult_t callback
+	virtual bool GetUGCDownloadProgress( UGCHandle_t hContent, uint32 *puDownloadedBytes, uint32 *puTotalBytes ) = 0;
+	virtual bool	GetUGCDetails( UGCHandle_t hContent, AppId_t *pnAppID, char **ppchName, int32 *pnFileSizeInBytes, CSteamID *pSteamIDOwner ) = 0;
+	virtual int32	UGCRead( UGCHandle_t hContent, void *pvData, int32 cubDataToRead, uint32 uOffset ) = 0;
+
+	// user generated content iteration
+	virtual int32	GetCachedUGCCount() = 0;
+	virtual UGCHandle_t GetCachedUGCHandle( int32 iCachedContent ) = 0;
+
+	// publishing UGC
+	virtual SteamAPICall_t PublishWorkshopFile( const char *pchFile, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags, EWorkshopFileType eWorkshopFileType ) = 0;
+	virtual JobID_t CreatePublishedFileUpdateRequest( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual bool UpdatePublishedFileFile( JobID_t hUpdateRequest, const char *pchFile ) = 0;
+	virtual bool UpdatePublishedFilePreviewFile( JobID_t hUpdateRequest, const char *pchPreviewFile ) = 0;
+	virtual bool UpdatePublishedFileTitle( JobID_t hUpdateRequest, const char *pchTitle ) = 0;
+	virtual bool UpdatePublishedFileDescription( JobID_t hUpdateRequest, const char *pchDescription ) = 0;
+	virtual bool UpdatePublishedFileVisibility( JobID_t hUpdateRequest, ERemoteStoragePublishedFileVisibility eVisibility ) = 0;
+	virtual bool UpdatePublishedFileTags( JobID_t hUpdateRequest, SteamParamStringArray_t *pTags ) = 0;
+	virtual SteamAPICall_t CommitPublishedFileUpdate( JobID_t hUpdateRequest ) = 0;
+
+	virtual SteamAPICall_t GetPublishedFileDetails( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual SteamAPICall_t DeletePublishedFile( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual SteamAPICall_t EnumerateUserPublishedFiles( uint32 uStartIndex ) = 0;
+	virtual SteamAPICall_t SubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual SteamAPICall_t EnumerateUserSubscribedFiles( uint32 uStartIndex ) = 0;
+	virtual SteamAPICall_t UnsubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0;
+	
+	virtual bool UpdatePublishedFileSetChangeDescription( JobID_t hUpdateRequest, const char *cszDescription ) = 0;
+	virtual SteamAPICall_t GetPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual SteamAPICall_t UpdateUserPublishedItemVote( PublishedFileId_t unPublishedFileId, bool bVoteUp ) = 0;
+	virtual SteamAPICall_t GetUserPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual SteamAPICall_t EnumerateUserSharedWorkshopFiles( AppId_t nAppId, CSteamID creatorSteamID, uint32 uStartIndex, SteamParamStringArray_t * pRequiredTags, SteamParamStringArray_t * pExcludedTags ) = 0;
+	virtual SteamAPICall_t PublishVideo( EWorkshopVideoProvider eVideoProvider, const char *cszVideoAccountName, const char *cszVideoIdentifier, const char *cszFileName, AppId_t nConsumerAppId, const char *cszTitle, const char *cszDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags ) = 0;
+	virtual SteamAPICall_t SetUserPublishedFileAction( PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ) = 0;
+	virtual SteamAPICall_t EnumeratePublishedFilesByUserAction( EWorkshopFileAction eAction, uint32 uStartIndex ) = 0;
+	virtual SteamAPICall_t EnumeratePublishedWorkshopFiles( EWorkshopEnumerationType eType, uint32 uStartIndex, uint32 cDays, uint32 cCount, SteamParamStringArray_t *pTags, SteamParamStringArray_t *pUserTags ) = 0;
+};
+
+#endif // ISTEAMREMOTESTORAGE009_H

Open Steamworks/ISteamRemoteStorage010.h

+//==========================  Open Steamworks  ================================
+//
+// This file is part of the Open Steamworks project. All individuals associated
+// with this project do not claim ownership of the contents
+// 
+// The code, comments, and all related files, projects, resources,
+// redistributables included with this project are Copyright Valve Corporation.
+// Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the
+// Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo,
+// Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the
+// Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition
+// Zero are trademarks and or registered trademarks of Valve Corporation.
+// All other trademarks are property of their respective owners.
+//
+//=============================================================================
+
+#ifndef ISTEAMREMOTESTORAGE010_H
+#define ISTEAMREMOTESTORAGE010_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "SteamTypes.h"
+#include "RemoteStorageCommon.h"
+
+//-----------------------------------------------------------------------------
+// Purpose: Functions for accessing, reading and writing files stored remotely 
+//			and cached locally
+//-----------------------------------------------------------------------------
+abstract_class ISteamRemoteStorage010
+{
+public:
+	// NOTE
+	//
+	// Filenames are case-insensitive, and will be converted to lowercase automatically.
+	// So "foo.bar" and "Foo.bar" are the same file, and if you write "Foo.bar" then
+	// iterate the files, the filename returned will be "foo.bar".
+	//
+
+	// file operations
+	virtual bool	FileWrite( const char *pchFile, const void *pvData, int32 cubData ) = 0;
+	virtual int32	FileRead( const char *pchFile, void *pvData, int32 cubDataToRead ) = 0;
+	virtual bool	FileForget( const char *pchFile ) = 0;
+	virtual bool	FileDelete( const char *pchFile ) = 0;
+	virtual SteamAPICall_t FileShare( const char *pchFile ) = 0;
+	virtual bool	SetSyncPlatforms( const char *pchFile, ERemoteStoragePlatform eRemoteStoragePlatform ) = 0;
+
+	virtual GID_t FileWriteStreamOpen( const char *pchFile ) = 0;
+	virtual EResult FileWriteStreamWriteChunk( GID_t hStream, const void *pvData, int32 cubData ) = 0;
+	virtual EResult FileWriteStreamClose( GID_t hStream ) = 0;
+	virtual EResult FileWriteStreamCancel( GID_t hStream ) = 0;
+
+	// file information
+	virtual bool	FileExists( const char *pchFile ) = 0;
+	virtual bool	FilePersisted( const char *pchFile ) = 0;
+	virtual int32	GetFileSize( const char *pchFile ) = 0;
+	virtual int64	GetFileTimestamp( const char *pchFile ) = 0;
+	virtual ERemoteStoragePlatform GetSyncPlatforms( const char *pchFile ) = 0;
+
+	// iteration
+	virtual int32 GetFileCount() = 0;
+	virtual const char *GetFileNameAndSize( int iFile, int32 *pnFileSizeInBytes ) = 0;
+
+	// configuration management
+	virtual bool GetQuota( int32 *pnTotalBytes, int32 *puAvailableBytes ) = 0;
+	virtual bool IsCloudEnabledForAccount() = 0;
+	virtual bool IsCloudEnabledForApp() = 0;
+	virtual void SetCloudEnabledForApp( bool bEnabled ) = 0;
+
+	// user generated content
+	virtual SteamAPICall_t UGCDownload( UGCHandle_t hContent, uint32 uUnk ) = 0; // Returns a RemoteStorageDownloadUGCResult_t callback
+	virtual bool GetUGCDownloadProgress( UGCHandle_t hContent, uint32 *puDownloadedBytes, uint32 *puTotalBytes ) = 0;
+	virtual bool	GetUGCDetails( UGCHandle_t hContent, AppId_t *pnAppID, char **ppchName, int32 *pnFileSizeInBytes, CSteamID *pSteamIDOwner ) = 0;
+	virtual int32	UGCRead( UGCHandle_t hContent, void *pvData, int32 cubDataToRead, uint32 uOffset ) = 0;
+
+	// user generated content iteration
+	virtual int32	GetCachedUGCCount() = 0;
+	virtual UGCHandle_t GetCachedUGCHandle( int32 iCachedContent ) = 0;
+
+	// publishing UGC
+	virtual SteamAPICall_t PublishWorkshopFile( const char *pchFile, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags, EWorkshopFileType eWorkshopFileType ) = 0;
+	virtual JobID_t CreatePublishedFileUpdateRequest( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual bool UpdatePublishedFileFile( JobID_t hUpdateRequest, const char *pchFile ) = 0;
+	virtual bool UpdatePublishedFilePreviewFile( JobID_t hUpdateRequest, const char *pchPreviewFile ) = 0;
+	virtual bool UpdatePublishedFileTitle( JobID_t hUpdateRequest, const char *pchTitle ) = 0;
+	virtual bool UpdatePublishedFileDescription( JobID_t hUpdateRequest, const char *pchDescription ) = 0;
+	virtual bool UpdatePublishedFileVisibility( JobID_t hUpdateRequest, ERemoteStoragePublishedFileVisibility eVisibility ) = 0;
+	virtual bool UpdatePublishedFileTags( JobID_t hUpdateRequest, SteamParamStringArray_t *pTags ) = 0;
+	virtual SteamAPICall_t CommitPublishedFileUpdate( JobID_t hUpdateRequest ) = 0;
+
+	virtual SteamAPICall_t GetPublishedFileDetails( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual SteamAPICall_t DeletePublishedFile( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual SteamAPICall_t EnumerateUserPublishedFiles( uint32 uStartIndex ) = 0;
+	virtual SteamAPICall_t SubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual SteamAPICall_t EnumerateUserSubscribedFiles( uint32 uStartIndex ) = 0;
+	virtual SteamAPICall_t UnsubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0;
+	
+	virtual bool UpdatePublishedFileSetChangeDescription( JobID_t hUpdateRequest, const char *cszDescription ) = 0;
+	virtual SteamAPICall_t GetPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual SteamAPICall_t UpdateUserPublishedItemVote( PublishedFileId_t unPublishedFileId, bool bVoteUp ) = 0;
+	virtual SteamAPICall_t GetUserPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0;
+	virtual SteamAPICall_t EnumerateUserSharedWorkshopFiles( AppId_t nAppId, CSteamID creatorSteamID, uint32 uStartIndex, SteamParamStringArray_t * pRequiredTags, SteamParamStringArray_t * pExcludedTags ) = 0;
+	virtual SteamAPICall_t PublishVideo( EWorkshopVideoProvider eVideoProvider, const char *cszVideoAccountName, const char *cszVideoIdentifier, const char *cszFileName, AppId_t nConsumerAppId, const char *cszTitle, const char *cszDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags ) = 0;
+	virtual SteamAPICall_t SetUserPublishedFileAction( PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ) = 0;
+	virtual SteamAPICall_t EnumeratePublishedFilesByUserAction( EWorkshopFileAction eAction, uint32 uStartIndex ) = 0;
+	virtual SteamAPICall_t EnumeratePublishedWorkshopFiles( EWorkshopEnumerationType eType, uint32 uStartIndex, uint32 cDays, uint32 cCount, SteamParamStringArray_t *pTags, SteamParamStringArray_t *pUserTags ) = 0;
+};
+
+#endif // ISTEAMREMOTESTORAGE010_H

Open Steamworks/ISteamUtils005.h

 	//   k_ECheckFileSignatureInvalidSignature - The file exists, and the signing tab has been set for this file, but the file is either not signed or the signature does not match.
 	//   k_ECheckFileSignatureValidSignature - The file is signed and the signature is valid.
 	virtual SteamAPICall_t CheckFileSignature( const char *szFileName ) = 0;
+	
+	virtual bool ShowGamepadTextInput( EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eInputLineMode, const char *szText, uint32 uMaxLength ) = 0;
+	virtual uint32 GetEnteredGamepadTextLength() = 0;
+	virtual bool GetEnteredGamepadTextInput( char *pchValue, uint32 cchValueMax ) = 0;
 };
 
 #endif // ISTEAMUTILS005_H

Open Steamworks/Open Steamworks.vcproj

 			Name="Link Libraries"
 			>
 			<File
-				RelativePath="..\Resources\steam.lib"
+				RelativePath="..\Resources\Libs\Win32\Steam.lib"
 				>
 			</File>
 			<File
-				RelativePath="..\Resources\steam_api.lib"
-				>
-			</File>
-			<File
-				RelativePath="..\Resources\steamclient.lib"
+				RelativePath="..\Resources\Libs\Win32\steamclient.lib"
 				>
 			</File>
 		</Filter>
 						>
 					</File>
 					<File
+						RelativePath=".\ISteamRemoteStorage009.h"
+						>
+					</File>
+					<File
+						RelativePath=".\ISteamRemoteStorage010.h"
+						>
+					</File>
+					<File
 						RelativePath=".\RemoteStorageCommon.h"
 						>
 					</File>
 						RelativePath=".\ISteamHTTP001.h"
 						>
 					</File>
+					<File
+						RelativePath=".\ISteamHTTP002.h"
+						>
+					</File>
 				</Filter>
 				<Filter
 					Name="ISteamScreenshots"

Open Steamworks/RemoteStorageCommon.h

 #define STEAMREMOTESTORAGE_INTERFACE_VERSION_006 "STEAMREMOTESTORAGE_INTERFACE_VERSION006"
 #define STEAMREMOTESTORAGE_INTERFACE_VERSION_007 "STEAMREMOTESTORAGE_INTERFACE_VERSION007"
 #define STEAMREMOTESTORAGE_INTERFACE_VERSION_008 "STEAMREMOTESTORAGE_INTERFACE_VERSION008"
+#define STEAMREMOTESTORAGE_INTERFACE_VERSION_009 "STEAMREMOTESTORAGE_INTERFACE_VERSION009"
+#define STEAMREMOTESTORAGE_INTERFACE_VERSION_010 "STEAMREMOTESTORAGE_INTERFACE_VERSION010"
 
 #define CLIENTREMOTESTORAGE_INTERFACE_VERSION "CLIENTREMOTESTORAGE_INTERFACE_VERSION001"
 
 	k_ERemoteStorageFileRootWinSavedGames,
 	k_ERemoteStorageFileRootWinProgramData,
 	k_ERemoteStorageFileRootSteamCloudDocuments,
+	k_ERemoteStorageFileRootWinAppDataLocalLow,
+	k_ERemoteStorageFileRootMacCaches,
 	k_ERemoteStorageFileRootMax
 };
 

Open Steamworks/Steamclient.h

 #include "ISteamApps002.h"
 #include "ISteamApps003.h"
 #include "ISteamApps004.h"
+#include "ISteamApps005.h"
 
 // user stats
 #include "ISteamUserStats001.h"
 #include "ISteamRemoteStorage006.h"
 #include "ISteamRemoteStorage007.h"
 #include "ISteamRemoteStorage008.h"
+#include "ISteamRemoteStorage009.h"
+#include "ISteamRemoteStorage010.h"
 
 // content server
 #include "ISteamContentServer001.h"
 
 // http
 #include "ISteamHTTP001.h"
+#include "ISteamHTTP002.h"
 
 #ifndef NO_ICLIENT
 // client interfaces

Open Steamworks/UserCommon.h

 	bool m_bRelay : 1;
 };
 
+template <typename T>
 class CAmount
 {
 public:
-	int m_nAmount;
+	T m_nAmount;
 	ECurrencyCode m_eCurrencyCode;
 };
 

Open Steamworks/UtilsCommon.h

 	k_ESpewGroupHttpserver = 33,
 };
 
+enum EUIMode
+{
+	k_EUIModeNormal = 0,
+	k_EUIModeTenFoot = 1,
+};
+
+enum EGamepadTextInputMode
+{
+	// TODO: Reverse this enum
+};
+
+enum EGamepadTextInputLineMode
+{
+	// TODO: Reverse this enum
+};
+
 #pragma pack( push, 8 )
 //-----------------------------------------------------------------------------
 // Purpose: The country of the user changed