/************ (C) Copyright 2004 Valve Corporation, All rights reserved. *********** ** ** The copyright to the contents herein is the property of Valve Corporation. ** The contents may be used and/or copied only with the written permission of ** Valve, or in accordance with the terms and conditions stipulated in ** the agreement/contract under which the contents have been supplied. ** ******************************************************************************* ** ** Contents: ** ** This file provides an obfuscated interface to the Steam service. This ** interface is described in the SDK documentation. ** ******************************************************************************/ #ifndef INCLUDED_STEAM_INTERFACE_H #define INCLUDED_STEAM_INTERFACE_H #if defined(_MSC_VER) && (_MSC_VER > 1000) #pragma once #endif #ifndef INCLUDED_STEAM2_USERID_STRUCTS #include "SteamCommon.h" #endif // IAppSystem interface. Returns an IAppSystem implementation; use QueryInterface on // that to get the ISteamInterface (same as the older _f function). #define STEAMDLL_APPSYSTEM_VERSION "SteamDLLAppsystem001" // extern "C" STEAM_API void * STEAM_CALL CreateInterface( const char *pName, int *pReturncode ); // create interface #define STEAM_INTERFACE_VERSION "Steam006" extern "C" STEAM_API void * STEAM_CALL _f(const char *szInterfaceVersionRequested); // current abstract interface class ISteamInterface { public: virtual ~ISteamInterface() {}; virtual SteamCallHandle_t ChangePassword( const char *cszCurrentPassphrase, const char *cszNewPassphrase, TSteamError *pError ) = 0; virtual int GetCurrentEmailAddress( char *szEmailAddress, unsigned int uBufSize, unsigned int *puEmailChars, TSteamError *pError ) = 0; virtual SteamCallHandle_t ChangePersonalQA( const char *cszCurrentPassphrase, const char *cszNewPersonalQuestion, const char *cszNewAnswerToQuestion, TSteamError *pError ) = 0; virtual SteamCallHandle_t ChangeEmailAddress( const char *cszNewEmailAddress, TSteamError *pError ) = 0; virtual SteamCallHandle_t VerifyEmailAddress( const char *cszEmailVerificationKey, TSteamError *pError ) = 0; virtual SteamCallHandle_t RequestEmailAddressVerificationEmail( TSteamError *pError ) = 0; virtual SteamCallHandle_t ChangeAccountName( const char *cszCurrentPassphrase, const char *cszNewAccountName, TSteamError *pError ) = 0; virtual int MountAppFilesystem( TSteamError *pError ) = 0; virtual int UnmountAppFilesystem( TSteamError *pError ) = 0; virtual SteamHandle_t MountFilesystem( unsigned int uAppId, const char *szMountPath, TSteamError *pError ) = 0; virtual int UnmountFilesystem( SteamHandle_t hFs, TSteamError *pError ) = 0; virtual int Stat( const char *cszName, TSteamElemInfo *pInfo, TSteamError *pError ) = 0; virtual int SetvBuf( SteamHandle_t hFile, void* pBuf, ESteamBufferMethod eMethod, unsigned int uBytes, TSteamError *pError ) = 0; virtual int FlushFile( SteamHandle_t hFile, TSteamError *pError ) = 0; virtual SteamHandle_t OpenFile( const char *cszName, const char *cszMode, TSteamError *pError ) = 0; virtual SteamHandle_t OpenFileEx( const char *cszName, const char *cszMode, int nFlags, unsigned int *puFileSize, int *pbLocal, TSteamError *pError ) = 0; virtual SteamHandle_t OpenTmpFile( TSteamError *pError ) = 0; virtual void ClearError( TSteamError *pError ) = 0; virtual int GetVersion( char *szVersion, unsigned int uVersionBufSize ) = 0; virtual int GetOfflineStatus( TSteamOfflineStatus *pStatus, TSteamError *pError ) = 0; virtual int ChangeOfflineStatus( TSteamOfflineStatus *pStatus, TSteamError *pError ) = 0; virtual int ProcessCall( SteamCallHandle_t handle, TSteamProgress *pProgress, TSteamError *pError ) = 0; virtual int AbortCall( SteamCallHandle_t handle, TSteamError *pError ) = 0; virtual int BlockingCall( SteamCallHandle_t handle, unsigned int uiProcessTickMS, TSteamError *pError ) = 0; virtual int SetMaxStallCount( unsigned int uNumStalls, TSteamError *pError ) = 0; virtual int CloseFile( SteamHandle_t hFile, TSteamError *pError ) = 0; virtual unsigned int ReadFile( void *pBuf, unsigned int uSize, unsigned int uCount, SteamHandle_t hFile, TSteamError *pError ) = 0; virtual unsigned int WriteFile( const void *pBuf, unsigned int uSize, unsigned int uCount, SteamHandle_t hFile, TSteamError *pError ) = 0; virtual int Getc( SteamHandle_t hFile, TSteamError *pError ) = 0; virtual int Putc( int cChar, SteamHandle_t hFile, TSteamError *pError ) = 0; //virtual int PrintFile( SteamHandle_t hFile, TSteamError *pError, const char *cszFormat, ... ) = 0; virtual int SeekFile( SteamHandle_t hFile, long lOffset, ESteamSeekMethod, TSteamError *pError ) = 0; virtual long TellFile( SteamHandle_t hFile, TSteamError *pError ) = 0; virtual long SizeFile( SteamHandle_t hFile, TSteamError *pError ) = 0; virtual SteamHandle_t FindFirst( const char *cszPattern, ESteamFindFilter eFilter, TSteamElemInfo *pFindInfo, TSteamError *pError ) = 0; virtual int FindNext( SteamHandle_t hDirectory, TSteamElemInfo *pFindInfo, TSteamError *pError ) = 0; #if !defined( _X360 ) // X360TBD: Macro defined in winbase.h virtual int FindClose( SteamHandle_t hDirectory, TSteamError *pError ) = 0; #endif virtual int GetLocalFileCopy( const char *cszName, TSteamError *pError ) = 0; virtual int IsFileImmediatelyAvailable( const char *cszName, TSteamError *pError ) = 0; virtual int HintResourceNeed( const char *cszMasterList, int bForgetEverything, TSteamError *pError ) = 0; virtual int ForgetAllHints( TSteamError *pError ) = 0; virtual int PauseCachePreloading( TSteamError *pError ) = 0; virtual int ResumeCachePreloading( TSteamError *pError ) = 0; virtual SteamCallHandle_t WaitForResources( const char *cszMasterList, TSteamError *pError ) = 0; virtual int StartEngine(TSteamError *pError) = 0; virtual int ShutdownEngine(TSteamError *pError) = 0; virtual int Startup( unsigned int uUsingMask, TSteamError *pError ) = 0; virtual int Cleanup( TSteamError *pError ) = 0; virtual unsigned int NumAppsRunning( TSteamError *pError ) = 0; virtual SteamCallHandle_t CreateAccount( const char *cszUser, const char *cszEmailAddress, const char *cszPassphrase, const char *cszCreationKey, const char *cszPersonalQuestion, const char *cszAnswerToQuestion, int *pbCreated, TSteamError *pError ) = 0; virtual SteamCallHandle_t GenerateSuggestedAccountNames( const char *cszAccountNameToSelectMasterAS, const char *cszGenerateNamesLikeAccountName, char *pSuggestedNamesBuf, unsigned int uBufSize, unsigned int *puNumSuggestedChars, TSteamError *pError) = 0; virtual int IsLoggedIn( int *pbIsLoggedIn, TSteamError *pError ) = 0; virtual SteamCallHandle_t Logout( TSteamError *pError ) = 0; virtual int IsSecureComputer( int *pbIsSecure, TSteamError *pError ) = 0; virtual SteamHandle_t CreateLogContext( const char *cszName ) = 0; virtual int Log( SteamHandle_t hContext, const char *cszMsg ) = 0; virtual void LogResourceLoadStarted( const char *cszMsg ) = 0; virtual void LogResourceLoadFinished( const char *cszMsg ) = 0; virtual SteamCallHandle_t RefreshLogin( const char *cszPassphrase, int bIsSecureComputer, TSteamError * pError ) = 0; virtual int VerifyPassword( const char *cszPassphrase, int *pbCorrect, TSteamError *pError ) = 0; virtual int GetUserType( unsigned int *puUserTypeFlags, TSteamError *pError ) = 0; virtual int GetAppStats( TSteamAppStats *pAppStats, TSteamError *pError ) = 0; virtual SteamCallHandle_t IsAccountNameInUse( const char *cszAccountName, int *pbIsUsed, TSteamError *pError) = 0; virtual int GetAppIds( unsigned int *puIds, unsigned int uMaxIds, TSteamError *pError ) = 0; virtual int GetSubscriptionStats( TSteamSubscriptionStats *pSubscriptionStats, TSteamError *pError ) = 0; virtual SteamCallHandle_t RefreshAccountInfo( int bContentDescriptionOnly, TSteamError *pError ) = 0; virtual SteamCallHandle_t Subscribe( unsigned int uSubscriptionId, const TSteamSubscriptionBillingInfo *pSubscriptionBillingInfo, TSteamError *pError ) = 0; virtual SteamCallHandle_t Unsubscribe( unsigned int uSubscriptionId, TSteamError *pError ) = 0; virtual int GetSubscriptionReceipt( unsigned int uSubscriptionId, TSteamSubscriptionReceipt *pSubscriptionReceipt, TSteamError *pError ) = 0; virtual int GetAccountStatus( unsigned int *puAccountStatusFlags, TSteamError *pError ) = 0; virtual SteamCallHandle_t SetUser( const char *cszUser, int *pbUserSet, TSteamError *pError ) = 0; virtual int GetUser( char *szUser, unsigned int uBufSize, unsigned int *puUserChars, TSteamGlobalUserID *pOptionalReceiveUserID, TSteamError *pError ) = 0; virtual SteamCallHandle_t Login( const char *cszUser, const char *cszPassphrase, int bIsSecureComputer, TSteamError *pError ) = 0; virtual SteamCallHandle_t AckSubscriptionReceipt( unsigned int uSubscriptionId, TSteamError *pError ) = 0; virtual int IsAppSubscribed( unsigned int uAppId, int *pbIsAppSubscribed, int *pbIsSubscriptionPending, TSteamError *pError ) = 0; virtual int GetSubscriptionIds( unsigned int *puIds, unsigned int uMaxIds, TSteamError *pError ) = 0; virtual int EnumerateSubscription( unsigned int uId, TSteamSubscription *pSubscription, TSteamError *pError ) = 0; virtual int EnumerateSubscriptionDiscount( unsigned int uSubscriptionId, unsigned int uDiscountIndex, TSteamSubscriptionDiscount *pDiscount, TSteamError *pError ) = 0; virtual int EnumerateSubscriptionDiscountQualifier( unsigned int uSubscriptionId, unsigned int uDiscountIndex, unsigned int uQualifierIndex, TSteamDiscountQualifier *pDiscountQualifier, TSteamError *pError ) = 0; virtual int EnumerateApp( unsigned int uId, TSteamApp *pApp, TSteamError *pError ) = 0; virtual int EnumerateAppLaunchOption( unsigned int uAppId, unsigned int uLaunchOptionIndex, TSteamAppLaunchOption *pLaunchOption, TSteamError *pError ) = 0; virtual SteamCallHandle_t DeleteAccount( TSteamError *pError ) = 0; virtual int EnumerateAppIcon( unsigned int uAppId, unsigned int uIconIndex, unsigned char *pIconData, unsigned int uIconDataBufSize, unsigned int *puSizeOfIconData, TSteamError *pError ) = 0; virtual SteamCallHandle_t LaunchApp( unsigned int uAppId, unsigned int uLaunchOption, const char *cszArgs, TSteamError *pError ) = 0; virtual int GetCacheFilePath( unsigned int uCacheId, char *szPathBuf, unsigned int uBufSize, unsigned int *puPathChars, TSteamError *pError ) = 0; virtual int EnumerateAppVersion( unsigned int uAppId, unsigned int uVersionIndex, TSteamAppVersion *pAppVersion, TSteamError *pError ) = 0; virtual int EnumerateAppDependency( unsigned int uAppId, unsigned int uIndex, TSteamAppDependencyInfo *pDependencyInfo, TSteamError *pError ) = 0; virtual SteamCallHandle_t StartLoadingCache( unsigned int uAppId, TSteamError *pError ) = 0; virtual int InsertAppDependency( unsigned int uAppId, unsigned int uIndex, TSteamAppDependencyInfo *pDependencyInfo, TSteamError *pError ) = 0; virtual int RemoveAppDependency( unsigned int uAppId, unsigned int uIndex, TSteamError *pError ) = 0; virtual int FindApp( const char *cszAppName, unsigned int *puAppId, TSteamError *pError ) = 0; virtual int GetAppDependencies( unsigned int uAppId, unsigned int *puCacheIds, unsigned int uMaxIds, TSteamError *pError ) = 0; virtual int IsSubscribed( unsigned int uSubscriptionId, int *pbIsSubscribed, int *pbIsSubscriptionPending, TSteamError *pError ) = 0; virtual int GetAppUserDefinedInfo( unsigned int uAppId, const char *cszKey, char *szValueBuf, unsigned int uValueBufLen, unsigned int *puValueLen, TSteamError *pError ) = 0; virtual SteamCallHandle_t WaitForAppReadyToLaunch( unsigned int uAppId, TSteamError *pError ) = 0; virtual int IsCacheLoadingEnabled( unsigned int uAppId, int *pbIsLoading, TSteamError *pError ) = 0; virtual SteamCallHandle_t StopLoadingCache( unsigned int uAppId, TSteamError *pError ) = 0; virtual ESteamError GetEncryptedUserIDTicket ( const void * pEncryptionKey, unsigned int uKeyLength, void * pOutputBuffer, unsigned int uSizeOfOutputBuffer, unsigned int * pReceiveSizeOfEncryptedTicket, TSteamError * pReceiveErrorCode ) = 0; virtual SteamCallHandle_t FlushCache( unsigned int uCacheId, TSteamError *pError ) = 0; virtual SteamCallHandle_t RepairOrDecryptCaches( unsigned int uAppId, int bForceValidation, TSteamError *pError ) = 0; virtual SteamCallHandle_t LoadCacheFromDir( unsigned int uAppId, const char *szPath, TSteamError *pError ) = 0; virtual int GetCacheDefaultDirectory( char *szPath, TSteamError *pError ) = 0; virtual int SetCacheDefaultDirectory( const char *szPath, TSteamError *pError ) = 0; virtual int GetAppDir( unsigned int uAppId, char *szPath, TSteamError *pError ) = 0; virtual SteamCallHandle_t MoveApp( unsigned int uAppId, const char *szPath, TSteamError *pError ) = 0; virtual SteamCallHandle_t GetAppCacheSize( unsigned int uCacheId, unsigned int *pCacheSizeInMb, TSteamError *pError ) = 0; virtual SteamCallHandle_t SetAppCacheSize( unsigned int uCacheId, unsigned int nCacheSizeInMb, TSteamError *pError ) = 0; virtual SteamCallHandle_t SetAppVersion( unsigned int uAppId, unsigned int uAppVersionId, TSteamError *pError ) = 0; virtual SteamCallHandle_t Uninstall( TSteamError *pError ) = 0; virtual int SetNotificationCallback( SteamNotificationCallback_t pCallbackFunction, TSteamError *pError ) = 0; virtual SteamCallHandle_t ChangeForgottenPassword( const char *cszUser, const char *cszAnswerToQuestion, const char *cszEmailVerificationKey, const char *cszNewPassphrase, int *pbChanged, TSteamError *pError ) = 0; virtual SteamCallHandle_t RequestForgottenPasswordEmail( const char *cszUser, SteamPersonalQuestion_t ReceivePersonalQuestion, TSteamError *pError ) = 0; virtual SteamCallHandle_t RequestAccountsByEmailAddressEmail( const char *cszEmailAddress, TSteamError *pError ) = 0; virtual SteamCallHandle_t RequestAccountsByCdKeyEmail( const char *cszCdKey, TSteamError *pError ) = 0; virtual SteamCallHandle_t GetNumAccountsWithEmailAddress( const char *cszEmailAddress, unsigned int *puNumAccounts, TSteamError *pError ) = 0; virtual SteamCallHandle_t UpdateAccountBillingInfo( const TSteamPaymentCardInfo *pPaymentCardInfo, TSteamError *pError ) = 0; virtual SteamCallHandle_t UpdateSubscriptionBillingInfo( unsigned int uSubscriptionId, const TSteamSubscriptionBillingInfo *pSubscriptionBillingInfo, TSteamError *pError ) = 0; virtual int GetSponsorUrl( unsigned int uAppId, char *szUrl, unsigned int uBufSize, unsigned int *pUrlChars, TSteamError *pError ) = 0; virtual int GetContentServerInfo( unsigned int uAppId, unsigned int *puServerId, unsigned int *puServerIpAddress, TSteamError *pError ) = 0; virtual SteamCallHandle_t GetAppUpdateStats( unsigned int uAppOrCacheId, ESteamAppUpdateStatsQueryType eQueryType, TSteamUpdateStats *pUpdateStats, TSteamError *pError ) = 0; virtual int GetTotalUpdateStats( TSteamUpdateStats *pUpdateStats, TSteamError *pError ) = 0; virtual SteamCallHandle_t CreateCachePreloaders( TSteamError *pError ) = 0; virtual void Win32SetMiniDumpComment( const char *comment ) = 0; virtual void Win32SetMiniDumpSourceControlId( unsigned int SourcecontrolID ) = 0; virtual void Win32SetMiniDumpEnableFullMemory() = 0; virtual void Win32WriteMiniDump( const char * szErrorOrAssertType, const char * szDescriptionOrAssertName, const char * szAssertExpr, const char * szAssertFilename, unsigned int uAssertLineNumber ) = 0; virtual int GetCurrentAppId( unsigned int *puAppId, TSteamError *pError ) = 0; virtual int GetAppPurchaseCountry( unsigned int uAppId, char *szCountry, unsigned int uBufSize, int * pPurchaseTime, TSteamError *pError ) = 0; virtual int GetLocalClientVersion( unsigned int *puBootstrapperVersion, unsigned int *puClientVersion, TSteamError *pError ) = 0; virtual int IsFileNeededByCache( unsigned int uCacheId, const char *pchFileName, unsigned int uFileSize, TSteamError *pError ) = 0; virtual int LoadFileToCache( unsigned int uCacheId, const char *pchFileName, const void *pubDataChunk, unsigned int cubDataChunk, unsigned int cubDataOffset, TSteamError *pError ) = 0; virtual int GetCacheDecryptionKey( unsigned int uCacheId, char *pchKeyBuffer, unsigned int cubBuff, unsigned int *pcubKey, TSteamError *pError ) = 0; virtual int GetSubscriptionExtendedInfo( unsigned int uSubscriptionId, const char *cszKey, char *szValueBuf, unsigned int uValueBufLen, unsigned *puValueLen, TSteamError *pError ) = 0; virtual int GetSubscriptionPurchaseCountry( unsigned int uSubscriptionId, char *szCountry, unsigned int uBufSize, int * pPurchaseTime, TSteamError *pError ) = 0; virtual int GetAppUserDefinedRecord( unsigned int uAppid, KeyValueIteratorCallback_t pIterationCallback, void *pvParam, TSteamError *pError ) = 0; virtual int FindServersNumServers(ESteamServerType eServerType) = 0; // Get nth ipaddr:port for this server type // buffer needs to be 22 chars long: aaa.bbb.ccc.ddd:12345 plus null // // returns 0 if succsessful, negative is error virtual int FindServersIterateServer(ESteamServerType eServerType, unsigned int nServer, char *szIpAddrPort, int szIpAddrPortLen) = 0; virtual const char * FindServersGetErrorString() = 0; }; #endif