diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /sp/src/common/SteamCommon.h | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'sp/src/common/SteamCommon.h')
| -rw-r--r-- | sp/src/common/SteamCommon.h | 1406 |
1 files changed, 703 insertions, 703 deletions
diff --git a/sp/src/common/SteamCommon.h b/sp/src/common/SteamCommon.h index ac008ff1..fee28878 100644 --- a/sp/src/common/SteamCommon.h +++ b/sp/src/common/SteamCommon.h @@ -1,703 +1,703 @@ -
-//========= 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
+ +//========= 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 |