You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
703 lines
21 KiB
703 lines
21 KiB
|
|
//========= Copyright 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: |
|
** |
|
** Common types used in the Steam DLL interface. |
|
** |
|
** This file is distributed to Steam application developers. |
|
** |
|
** |
|
** |
|
*******************************************************************************/ |
|
|
|
#ifndef INCLUDED_STEAM_COMMON_STEAMCOMMON_H |
|
#define INCLUDED_STEAM_COMMON_STEAMCOMMON_H |
|
|
|
#if defined(_MSC_VER) && (_MSC_VER > 1000) |
|
#pragma once |
|
#endif |
|
|
|
|
|
#ifdef __cplusplus |
|
extern "C" |
|
{ |
|
#endif |
|
|
|
/* Applications should not define STEAM_EXPORTS. */ |
|
|
|
#if defined ( _WIN32 ) |
|
|
|
#ifdef STEAM_EXPORTS |
|
#define STEAM_API __declspec(dllexport) |
|
#else |
|
#define STEAM_API __declspec(dllimport) |
|
#endif |
|
|
|
#define STEAM_CALL __cdecl |
|
|
|
#else |
|
|
|
#define STEAM_API /* */ |
|
#define STEAM_CALL /* */ |
|
|
|
#endif |
|
|
|
typedef void (STEAM_CALL *KeyValueIteratorCallback_t )(const char *Key, const char *Val, void *pvParam); |
|
|
|
|
|
/****************************************************************************** |
|
** |
|
** Exported macros and constants |
|
** |
|
******************************************************************************/ |
|
|
|
/* DEPRECATED -- these are ignored now, all API access is granted on SteamStartup */ |
|
#define STEAM_USING_FILESYSTEM (0x00000001) |
|
#define STEAM_USING_LOGGING (0x00000002) |
|
#define STEAM_USING_USERID (0x00000004) |
|
#define STEAM_USING_ACCOUNT (0x00000008) |
|
#define STEAM_USING_ALL (0x0000000f) |
|
/* END DEPRECATED */ |
|
|
|
#define STEAM_MAX_PATH (255) |
|
#define STEAM_QUESTION_MAXLEN (255) |
|
#define STEAM_SALT_SIZE (8) |
|
#define STEAM_PROGRESS_PERCENT_SCALE (0x00001000) |
|
|
|
/* These are maximum significant string lengths, excluding nul-terminator. */ |
|
#define STEAM_CARD_NUMBER_SIZE (17) |
|
#define STEAM_CARD_HOLDERNAME_SIZE (100) |
|
#define STEAM_CARD_EXPYEAR_SIZE (4) |
|
#define STEAM_CARD_EXPMONTH_SIZE (2) |
|
#define STEAM_CARD_CVV2_SIZE (5) |
|
#define STEAM_BILLING_ADDRESS1_SIZE (128) |
|
#define STEAM_BILLING_ADDRESS2_SIZE (128) |
|
#define STEAM_BILLING_CITY_SIZE (50) |
|
#define STEAM_BILLING_ZIP_SIZE (16) |
|
#define STEAM_BILLING_STATE_SIZE (32) |
|
#define STEAM_BILLING_COUNTRY_SIZE (32) |
|
#define STEAM_BILLING_PHONE_SIZE (20) |
|
#define STEAM_BILLING_EMAIL_ADDRESS_SIZE (100) |
|
#define STEAM_TYPE_OF_PROOF_OF_PURCHASE_SIZE (20) |
|
#define STEAM_PROOF_OF_PURCHASE_TOKEN_SIZE (200) |
|
#define STEAM_EXTERNAL_ACCOUNTNAME_SIZE (100) |
|
#define STEAM_EXTERNAL_ACCOUNTPASSWORD_SIZE (80) |
|
#define STEAM_BILLING_CONFIRMATION_CODE_SIZE (22) |
|
#define STEAM_BILLING_CARD_APPROVAL_CODE_SIZE (100) |
|
#define STEAM_BILLING_TRANS_DATE_SIZE (9) // mm/dd/yy |
|
#define STEAM_BILLING_TRANS_TIME_SIZE (9) // hh:mm:ss |
|
|
|
/****************************************************************************** |
|
** |
|
** Scalar type and enumerated type definitions. |
|
** |
|
******************************************************************************/ |
|
|
|
|
|
typedef unsigned int SteamHandle_t; |
|
|
|
typedef void * SteamUserIDTicketValidationHandle_t; |
|
|
|
typedef unsigned int SteamCallHandle_t; |
|
|
|
#if defined(_MSC_VER) |
|
typedef unsigned __int64 SteamUnsigned64_t; |
|
#else |
|
typedef unsigned long long SteamUnsigned64_t; |
|
#endif |
|
|
|
typedef enum |
|
{ |
|
eSteamSeekMethodSet = 0, |
|
eSteamSeekMethodCur = 1, |
|
eSteamSeekMethodEnd = 2 |
|
} ESteamSeekMethod; |
|
|
|
typedef enum |
|
{ |
|
eSteamBufferMethodFBF = 0, |
|
eSteamBufferMethodNBF = 1 |
|
} ESteamBufferMethod; |
|
|
|
typedef enum |
|
{ |
|
eSteamErrorNone = 0, |
|
eSteamErrorUnknown = 1, |
|
eSteamErrorLibraryNotInitialized = 2, |
|
eSteamErrorLibraryAlreadyInitialized = 3, |
|
eSteamErrorConfig = 4, |
|
eSteamErrorContentServerConnect = 5, |
|
eSteamErrorBadHandle = 6, |
|
eSteamErrorHandlesExhausted = 7, |
|
eSteamErrorBadArg = 8, |
|
eSteamErrorNotFound = 9, |
|
eSteamErrorRead = 10, |
|
eSteamErrorEOF = 11, |
|
eSteamErrorSeek = 12, |
|
eSteamErrorCannotWriteNonUserConfigFile = 13, |
|
eSteamErrorCacheOpen = 14, |
|
eSteamErrorCacheRead = 15, |
|
eSteamErrorCacheCorrupted = 16, |
|
eSteamErrorCacheWrite = 17, |
|
eSteamErrorCacheSession = 18, |
|
eSteamErrorCacheInternal = 19, |
|
eSteamErrorCacheBadApp = 20, |
|
eSteamErrorCacheVersion = 21, |
|
eSteamErrorCacheBadFingerPrint = 22, |
|
|
|
eSteamErrorNotFinishedProcessing = 23, |
|
eSteamErrorNothingToDo = 24, |
|
eSteamErrorCorruptEncryptedUserIDTicket = 25, |
|
eSteamErrorSocketLibraryNotInitialized = 26, |
|
eSteamErrorFailedToConnectToUserIDTicketValidationServer = 27, |
|
eSteamErrorBadProtocolVersion = 28, |
|
eSteamErrorReplayedUserIDTicketFromClient = 29, |
|
eSteamErrorReceiveResultBufferTooSmall = 30, |
|
eSteamErrorSendFailed = 31, |
|
eSteamErrorReceiveFailed = 32, |
|
eSteamErrorReplayedReplyFromUserIDTicketValidationServer = 33, |
|
eSteamErrorBadSignatureFromUserIDTicketValidationServer = 34, |
|
eSteamErrorValidationStalledSoAborted = 35, |
|
eSteamErrorInvalidUserIDTicket = 36, |
|
eSteamErrorClientLoginRateTooHigh = 37, |
|
eSteamErrorClientWasNeverValidated = 38, |
|
eSteamErrorInternalSendBufferTooSmall = 39, |
|
eSteamErrorInternalReceiveBufferTooSmall = 40, |
|
eSteamErrorUserTicketExpired = 41, |
|
eSteamErrorCDKeyAlreadyInUseOnAnotherClient = 42, |
|
|
|
eSteamErrorNotLoggedIn = 101, |
|
eSteamErrorAlreadyExists = 102, |
|
eSteamErrorAlreadySubscribed = 103, |
|
eSteamErrorNotSubscribed = 104, |
|
eSteamErrorAccessDenied = 105, |
|
eSteamErrorFailedToCreateCacheFile = 106, |
|
eSteamErrorCallStalledSoAborted = 107, |
|
eSteamErrorEngineNotRunning = 108, |
|
eSteamErrorEngineConnectionLost = 109, |
|
eSteamErrorLoginFailed = 110, |
|
eSteamErrorAccountPending = 111, |
|
eSteamErrorCacheWasMissingRetry = 112, |
|
eSteamErrorLocalTimeIncorrect = 113, |
|
eSteamErrorCacheNeedsDecryption = 114, |
|
eSteamErrorAccountDisabled = 115, |
|
eSteamErrorCacheNeedsRepair = 116, |
|
eSteamErrorRebootRequired = 117, |
|
|
|
eSteamErrorNetwork = 200, |
|
eSteamErrorOffline = 201 |
|
|
|
|
|
} ESteamError; |
|
|
|
|
|
typedef enum |
|
{ |
|
eNoDetailedErrorAvailable, |
|
eStandardCerrno, |
|
eWin32LastError, |
|
eWinSockLastError, |
|
eDetailedPlatformErrorCount |
|
} EDetailedPlatformErrorType; |
|
|
|
typedef enum /* Filter elements returned by SteamFind{First,Next} */ |
|
{ |
|
eSteamFindLocalOnly, /* limit search to local filesystem */ |
|
eSteamFindRemoteOnly, /* limit search to remote repository */ |
|
eSteamFindAll /* do not limit search (duplicates allowed) */ |
|
} ESteamFindFilter; |
|
|
|
|
|
/****************************************************************************** |
|
** |
|
** Exported structure and complex type definitions. |
|
** |
|
******************************************************************************/ |
|
|
|
|
|
typedef struct |
|
{ |
|
ESteamError eSteamError; |
|
EDetailedPlatformErrorType eDetailedErrorType; |
|
int nDetailedErrorCode; |
|
char szDesc[STEAM_MAX_PATH]; |
|
} TSteamError; |
|
|
|
|
|
|
|
typedef struct |
|
{ |
|
int bIsDir; /* If non-zero, element is a directory; if zero, element is a file */ |
|
unsigned int uSizeOrCount; /* If element is a file, this contains size of file in bytes */ |
|
int bIsLocal; /* If non-zero, reported item is a standalone element on local filesystem */ |
|
char cszName[STEAM_MAX_PATH]; /* Base element name (no path) */ |
|
long lLastAccessTime; /* Seconds since 1/1/1970 (like time_t) when element was last accessed */ |
|
long lLastModificationTime; /* Seconds since 1/1/1970 (like time_t) when element was last modified */ |
|
long lCreationTime; /* Seconds since 1/1/1970 (like time_t) when element was created */ |
|
} TSteamElemInfo; |
|
|
|
|
|
typedef struct |
|
{ |
|
unsigned int uNumSubscriptions; |
|
unsigned int uMaxNameChars; |
|
unsigned int uMaxApps; |
|
|
|
} TSteamSubscriptionStats; |
|
|
|
|
|
typedef struct |
|
{ |
|
unsigned int uNumApps; |
|
unsigned int uMaxNameChars; |
|
unsigned int uMaxInstallDirNameChars; |
|
unsigned int uMaxVersionLabelChars; |
|
unsigned int uMaxLaunchOptions; |
|
unsigned int uMaxLaunchOptionDescChars; |
|
unsigned int uMaxLaunchOptionCmdLineChars; |
|
unsigned int uMaxNumIcons; |
|
unsigned int uMaxIconSize; |
|
unsigned int uMaxDependencies; |
|
|
|
} TSteamAppStats; |
|
|
|
typedef struct |
|
{ |
|
char *szLabel; |
|
unsigned int uMaxLabelChars; |
|
unsigned int uVersionId; |
|
int bIsNotAvailable; |
|
} TSteamAppVersion; |
|
|
|
typedef struct |
|
{ |
|
char *szDesc; |
|
unsigned int uMaxDescChars; |
|
char *szCmdLine; |
|
unsigned int uMaxCmdLineChars; |
|
unsigned int uIndex; |
|
unsigned int uIconIndex; |
|
int bNoDesktopShortcut; |
|
int bNoStartMenuShortcut; |
|
int bIsLongRunningUnattended; |
|
|
|
} TSteamAppLaunchOption; |
|
|
|
|
|
typedef struct |
|
{ |
|
char *szName; |
|
unsigned int uMaxNameChars; |
|
char *szLatestVersionLabel; |
|
unsigned int uMaxLatestVersionLabelChars; |
|
char *szCurrentVersionLabel; |
|
unsigned int uMaxCurrentVersionLabelChars; |
|
char *szInstallDirName; |
|
unsigned int uMaxInstallDirNameChars; |
|
unsigned int uId; |
|
unsigned int uLatestVersionId; |
|
unsigned int uCurrentVersionId; |
|
unsigned int uMinCacheFileSizeMB; |
|
unsigned int uMaxCacheFileSizeMB; |
|
unsigned int uNumLaunchOptions; |
|
unsigned int uNumIcons; |
|
unsigned int uNumVersions; |
|
unsigned int uNumDependencies; |
|
|
|
} TSteamApp; |
|
|
|
typedef enum |
|
{ |
|
eNoCost = 0, |
|
eBillOnceOnly = 1, |
|
eBillMonthly = 2, |
|
eProofOfPrepurchaseOnly = 3, |
|
eGuestPass = 4, |
|
eHardwarePromo = 5, |
|
eNumBillingTypes, |
|
} EBillingType; |
|
|
|
typedef struct |
|
{ |
|
char *szName; |
|
unsigned int uMaxNameChars; |
|
unsigned int *puAppIds; |
|
unsigned int uMaxAppIds; |
|
unsigned int uId; |
|
unsigned int uNumApps; |
|
EBillingType eBillingType; |
|
unsigned int uCostInCents; |
|
unsigned int uNumDiscounts; |
|
int bIsPreorder; |
|
int bRequiresShippingAddress; |
|
unsigned int uDomesticShippingCostInCents; |
|
unsigned int uInternationalShippingCostInCents; |
|
bool bIsCyberCafeSubscription; |
|
unsigned int uGameCode; |
|
char szGameCodeDesc[STEAM_MAX_PATH]; |
|
bool bIsDisabled; |
|
bool bRequiresCD; |
|
unsigned int uTerritoryCode; |
|
bool bIsSteam3Subscription; |
|
|
|
} TSteamSubscription; |
|
|
|
typedef struct |
|
{ |
|
char szName[STEAM_MAX_PATH]; |
|
unsigned int uDiscountInCents; |
|
unsigned int uNumQualifiers; |
|
|
|
} TSteamSubscriptionDiscount; |
|
|
|
typedef struct |
|
{ |
|
char szName[STEAM_MAX_PATH]; |
|
unsigned int uRequiredSubscription; |
|
int bIsDisqualifier; |
|
|
|
} TSteamDiscountQualifier; |
|
|
|
typedef struct TSteamProgress |
|
{ |
|
int bValid; /* non-zero if call provides progress info */ |
|
unsigned int uPercentDone; /* 0 to 100 * STEAM_PROGRESS_PERCENT_SCALE if bValid */ |
|
char szProgress[STEAM_MAX_PATH]; /* additional progress info */ |
|
} TSteamProgress; |
|
|
|
typedef enum |
|
{ |
|
eSteamNotifyTicketsWillExpire, |
|
eSteamNotifyAccountInfoChanged, |
|
eSteamNotifyContentDescriptionChanged, |
|
eSteamNotifyPleaseShutdown, |
|
eSteamNotifyNewContentServer, |
|
eSteamNotifySubscriptionStatusChanged, |
|
eSteamNotifyContentServerConnectionLost, |
|
eSteamNotifyCacheLoadingCompleted, |
|
eSteamNotifyCacheNeedsDecryption, |
|
eSteamNotifyCacheNeedsRepair |
|
} ESteamNotificationCallbackEvent; |
|
|
|
|
|
typedef void(*SteamNotificationCallback_t)(ESteamNotificationCallbackEvent eEvent, unsigned int nData); |
|
|
|
|
|
typedef char SteamPersonalQuestion_t[ STEAM_QUESTION_MAXLEN + 1 ]; |
|
|
|
typedef struct |
|
{ |
|
unsigned char uchSalt[STEAM_SALT_SIZE]; |
|
} SteamSalt_t; |
|
|
|
typedef enum |
|
{ |
|
eVisa = 1, |
|
eMaster = 2, |
|
eAmericanExpress = 3, |
|
eDiscover = 4, |
|
eDinnersClub = 5, |
|
eJCB = 6 |
|
} ESteamPaymentCardType; |
|
|
|
typedef struct |
|
{ |
|
ESteamPaymentCardType eCardType; |
|
char szCardNumber[ STEAM_CARD_NUMBER_SIZE +1 ]; |
|
char szCardHolderName[ STEAM_CARD_HOLDERNAME_SIZE + 1]; |
|
char szCardExpYear[ STEAM_CARD_EXPYEAR_SIZE + 1 ]; |
|
char szCardExpMonth[ STEAM_CARD_EXPMONTH_SIZE+ 1 ]; |
|
char szCardCVV2[ STEAM_CARD_CVV2_SIZE + 1 ]; |
|
char szBillingAddress1[ STEAM_BILLING_ADDRESS1_SIZE + 1 ]; |
|
char szBillingAddress2[ STEAM_BILLING_ADDRESS2_SIZE + 1 ]; |
|
char szBillingCity[ STEAM_BILLING_CITY_SIZE + 1 ]; |
|
char szBillingZip[ STEAM_BILLING_ZIP_SIZE + 1 ]; |
|
char szBillingState[ STEAM_BILLING_STATE_SIZE + 1 ]; |
|
char szBillingCountry[ STEAM_BILLING_COUNTRY_SIZE + 1 ]; |
|
char szBillingPhone[ STEAM_BILLING_PHONE_SIZE + 1 ]; |
|
char szBillingEmailAddress[ STEAM_BILLING_EMAIL_ADDRESS_SIZE + 1 ]; |
|
unsigned int uExpectedCostInCents; |
|
unsigned int uExpectedTaxInCents; |
|
/* If the TSteamSubscription says that shipping info is required, */ |
|
/* then the following fields must be filled out. */ |
|
/* If szShippingName is empty, then assumes so are the rest. */ |
|
char szShippingName[ STEAM_CARD_HOLDERNAME_SIZE + 1]; |
|
char szShippingAddress1[ STEAM_BILLING_ADDRESS1_SIZE + 1 ]; |
|
char szShippingAddress2[ STEAM_BILLING_ADDRESS2_SIZE + 1 ]; |
|
char szShippingCity[ STEAM_BILLING_CITY_SIZE + 1 ]; |
|
char szShippingZip[ STEAM_BILLING_ZIP_SIZE + 1 ]; |
|
char szShippingState[ STEAM_BILLING_STATE_SIZE + 1 ]; |
|
char szShippingCountry[ STEAM_BILLING_COUNTRY_SIZE + 1 ]; |
|
char szShippingPhone[ STEAM_BILLING_PHONE_SIZE + 1 ]; |
|
unsigned int uExpectedShippingCostInCents; |
|
|
|
} TSteamPaymentCardInfo; |
|
|
|
typedef struct |
|
{ |
|
char szTypeOfProofOfPurchase[ STEAM_TYPE_OF_PROOF_OF_PURCHASE_SIZE + 1 ]; |
|
|
|
/* A ProofOfPurchase token is not necessarily a nul-terminated string; it may be binary data |
|
(perhaps encrypted). Hence we need a length and an array of bytes. */ |
|
unsigned int uLengthOfBinaryProofOfPurchaseToken; |
|
char cBinaryProofOfPurchaseToken[ STEAM_PROOF_OF_PURCHASE_TOKEN_SIZE + 1 ]; |
|
} TSteamPrepurchaseInfo; |
|
|
|
typedef struct |
|
{ |
|
char szAccountName[ STEAM_EXTERNAL_ACCOUNTNAME_SIZE + 1 ]; |
|
char szPassword[ STEAM_EXTERNAL_ACCOUNTPASSWORD_SIZE + 1 ]; |
|
} TSteamExternalBillingInfo; |
|
|
|
typedef enum |
|
{ |
|
ePaymentCardInfo = 1, |
|
ePrepurchasedInfo = 2, |
|
eAccountBillingInfo = 3, |
|
eExternalBillingInfo = 4, /* indirect billing via ISP etc (not supported yet) */ |
|
ePaymentCardReceipt = 5, |
|
ePrepurchaseReceipt = 6, |
|
eEmptyReceipt = 7 |
|
} ESteamSubscriptionBillingInfoType; |
|
|
|
typedef struct |
|
{ |
|
ESteamSubscriptionBillingInfoType eBillingInfoType; |
|
union { |
|
TSteamPaymentCardInfo PaymentCardInfo; |
|
TSteamPrepurchaseInfo PrepurchaseInfo; |
|
TSteamExternalBillingInfo ExternalBillingInfo; |
|
char bUseAccountBillingInfo; |
|
}; |
|
|
|
} TSteamSubscriptionBillingInfo; |
|
|
|
typedef enum |
|
{ |
|
/* Subscribed */ |
|
eSteamSubscriptionOK = 0, /* Subscribed */ |
|
eSteamSubscriptionPending = 1, /* Awaiting transaction completion */ |
|
eSteamSubscriptionPreorder = 2, /* Is currently a pre-order */ |
|
eSteamSubscriptionPrepurchaseTransferred = 3, /* hop to this account */ |
|
/* Unusbscribed */ |
|
eSteamSubscriptionPrepurchaseInvalid = 4, /* Invalid cd-key */ |
|
eSteamSubscriptionPrepurchaseRejected = 5, /* hopped out / banned / etc */ |
|
eSteamSubscriptionPrepurchaseRevoked = 6, /* hop away from this account */ |
|
eSteamSubscriptionPaymentCardDeclined = 7, /* CC txn declined */ |
|
eSteamSubscriptionCancelledByUser = 8, /* Cancelled by client */ |
|
eSteamSubscriptionCancelledByVendor = 9, /* Cancelled by us */ |
|
eSteamSubscriptionPaymentCardUseLimit = 10, /* Card used too many times, potential fraud */ |
|
eSteamSubscriptionPaymentCardAlert = 11, /* Got a "pick up card" or the like from bank */ |
|
eSteamSubscriptionFailed = 12, /* Other Error in subscription data or transaction failed/lost */ |
|
eSteamSubscriptionPaymentCardAVSFailure = 13, /* Card failed Address Verification check */ |
|
eSteamSubscriptionPaymentCardInsufficientFunds = 14, /* Card failed due to insufficient funds */ |
|
eSteamSubscriptionRestrictedCountry = 15 /* The subscription is not available in the user's country */ |
|
|
|
} ESteamSubscriptionStatus; |
|
|
|
typedef struct |
|
{ |
|
ESteamPaymentCardType eCardType; |
|
char szCardLastFourDigits[ 4 + 1 ]; |
|
char szCardHolderName[ STEAM_CARD_HOLDERNAME_SIZE + 1]; |
|
char szBillingAddress1[ STEAM_BILLING_ADDRESS1_SIZE + 1 ]; |
|
char szBillingAddress2[ STEAM_BILLING_ADDRESS2_SIZE + 1 ]; |
|
char szBillingCity[ STEAM_BILLING_CITY_SIZE + 1 ]; |
|
char szBillingZip[ STEAM_BILLING_ZIP_SIZE + 1 ]; |
|
char szBillingState[ STEAM_BILLING_STATE_SIZE + 1 ]; |
|
char szBillingCountry[ STEAM_BILLING_COUNTRY_SIZE + 1 ]; |
|
|
|
// The following are only available after the subscription leaves "pending" status |
|
char szCardApprovalCode[ STEAM_BILLING_CARD_APPROVAL_CODE_SIZE + 1]; |
|
char szTransDate[ STEAM_BILLING_TRANS_DATE_SIZE + 1]; /* mm/dd/yy */ |
|
char szTransTime[ STEAM_BILLING_TRANS_TIME_SIZE + 1]; /* hh:mm:ss */ |
|
unsigned int uPriceWithoutTax; |
|
unsigned int uTaxAmount; |
|
unsigned int uShippingCost; |
|
|
|
} TSteamPaymentCardReceiptInfo; |
|
|
|
typedef struct |
|
{ |
|
char szTypeOfProofOfPurchase[ STEAM_TYPE_OF_PROOF_OF_PURCHASE_SIZE + 1 ]; |
|
} TSteamPrepurchaseReceiptInfo; |
|
|
|
typedef struct |
|
{ |
|
ESteamSubscriptionStatus eStatus; |
|
ESteamSubscriptionStatus ePreviousStatus; |
|
ESteamSubscriptionBillingInfoType eReceiptInfoType; |
|
char szConfirmationCode[ STEAM_BILLING_CONFIRMATION_CODE_SIZE + 1]; |
|
union { |
|
TSteamPaymentCardReceiptInfo PaymentCardReceiptInfo; |
|
TSteamPrepurchaseReceiptInfo PrepurchaseReceiptInfo; |
|
}; |
|
|
|
} TSteamSubscriptionReceipt; |
|
|
|
typedef enum |
|
{ |
|
ePhysicalBytesReceivedThisSession = 1, |
|
eAppReadyToLaunchStatus = 2, |
|
eAppPreloadStatus = 3, |
|
eAppEntireDepot = 4, |
|
eCacheBytesPresent = 5 |
|
} ESteamAppUpdateStatsQueryType; |
|
|
|
typedef struct |
|
{ |
|
SteamUnsigned64_t uBytesTotal; |
|
SteamUnsigned64_t uBytesPresent; |
|
} TSteamUpdateStats; |
|
|
|
typedef enum |
|
{ |
|
eSteamUserAdministrator = 0x00000001, /* May subscribe, unsubscribe, etc */ |
|
eSteamUserDeveloper = 0x00000002, /* Steam or App developer */ |
|
eSteamUserCyberCafe = 0x00000004 /* CyberCafe, school, etc -- UI should ask for password */ |
|
/* before allowing logout, unsubscribe, etc */ |
|
} ESteamUserTypeFlags; |
|
|
|
typedef enum |
|
{ |
|
eSteamAccountStatusDefault = 0x00000000, |
|
eSteamAccountStatusEmailVerified = 0x00000001, |
|
/* Note: Mask value 0x2 is reserved for future use. (Some, but not all, public accounts already have this set.) */ |
|
eSteamAccountDisabled = 0x00000004 |
|
} ESteamAccountStatusBitFields ; |
|
|
|
|
|
typedef enum |
|
{ |
|
eSteamBootstrapperError = -1, |
|
eSteamBootstrapperDontCheckForUpdate = 0, |
|
eSteamBootstrapperCheckForUpdateAndRerun = 7 |
|
|
|
} ESteamBootStrapperClientAppResult; |
|
|
|
typedef enum |
|
{ |
|
eSteamOnline = 0, |
|
eSteamOffline = 1, |
|
eSteamNoAuthMode = 2, |
|
eSteamBillingOffline = 3 |
|
} eSteamOfflineStatus; |
|
|
|
typedef struct |
|
{ |
|
int eOfflineNow; |
|
int eOfflineNextSession; |
|
} TSteamOfflineStatus; |
|
|
|
typedef struct |
|
{ |
|
unsigned int uAppId; |
|
int bIsSystemDefined; |
|
char szMountPath[STEAM_MAX_PATH]; |
|
} TSteamAppDependencyInfo; |
|
|
|
typedef enum |
|
{ |
|
eSteamOpenFileRegular = 0x0, |
|
eSteamOpenFileIgnoreLocal = 0x1, |
|
eSteamOpenFileChecksumReads = 0x2 |
|
} ESteamOpenFileFlags; |
|
|
|
typedef enum |
|
{ |
|
eSteamValveCDKeyValidationServer = 0, |
|
eSteamHalfLifeMasterServer = 1, |
|
eSteamFriendsServer = 2, |
|
eSteamCSERServer = 3, |
|
eSteamHalfLife2MasterServer = 4, |
|
eSteamRDKFMasterServer = 5, |
|
eMaxServerTypes = 6 |
|
} ESteamServerType; |
|
|
|
/****************************************************************************** |
|
** |
|
** More exported constants |
|
** |
|
******************************************************************************/ |
|
|
|
|
|
#ifdef __cplusplus |
|
|
|
const SteamHandle_t STEAM_INVALID_HANDLE = 0; |
|
const SteamCallHandle_t STEAM_INVALID_CALL_HANDLE = 0; |
|
const SteamUserIDTicketValidationHandle_t STEAM_INACTIVE_USERIDTICKET_VALIDATION_HANDLE = 0; |
|
const unsigned int STEAM_USE_LATEST_VERSION = 0xFFFFFFFF; |
|
|
|
#else |
|
|
|
#define STEAM_INVALID_HANDLE ((SteamHandle_t)(0)) |
|
#define STEAM_INVALID_CALL_HANDLE ((SteamCallHandle_t)(0)) |
|
#define STEAM_INACTIVE_USERIDTICKET_VALIDATION_HANDLE ((SteamUserIDTicketValidationHandle_t)(0)) |
|
#define STEAM_USE_LATEST_VERSION (0xFFFFFFFFu); |
|
|
|
#endif |
|
|
|
|
|
/****************************************************************************** |
|
** Each Steam instance (licensed Steam Service Provider) has a unique SteamInstanceID_t. |
|
** |
|
** Each Steam instance as its own DB of users. |
|
** Each user in the DB has a unique SteamLocalUserID_t (a serial number, with possible |
|
** rare gaps in the sequence). |
|
** |
|
******************************************************************************/ |
|
|
|
typedef unsigned short SteamInstanceID_t; // MUST be 16 bits |
|
|
|
|
|
#if defined ( _WIN32 ) |
|
typedef unsigned __int64 SteamLocalUserID_t; // MUST be 64 bits |
|
#else |
|
typedef unsigned long long SteamLocalUserID_t; // MUST be 64 bits |
|
#endif |
|
|
|
/****************************************************************************** |
|
** |
|
** Applications need to be able to authenticate Steam users from ANY instance. |
|
** So a SteamIDTicket contains SteamGlobalUserID, which is a unique combination of |
|
** instance and user id. |
|
** |
|
** SteamLocalUserID is an unsigned 64-bit integer. |
|
** For platforms without 64-bit int support, we provide access via a union that splits it into |
|
** high and low unsigned 32-bit ints. Such platforms will only need to compare LocalUserIDs |
|
** for equivalence anyway - not perform arithmetic with them. |
|
** |
|
********************************************************************************/ |
|
typedef struct |
|
{ |
|
unsigned int Low32bits; |
|
unsigned int High32bits; |
|
} TSteamSplitLocalUserID; |
|
|
|
typedef struct |
|
{ |
|
SteamInstanceID_t m_SteamInstanceID; |
|
|
|
union |
|
{ |
|
SteamLocalUserID_t As64bits; |
|
TSteamSplitLocalUserID Split; |
|
} m_SteamLocalUserID; |
|
|
|
} TSteamGlobalUserID; |
|
|
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
|
|
#endif
|
|
|