#ifndef INCLUDED_STEAM2_USERID_STRUCTS #define INCLUDED_STEAM2_USERID_STRUCTS #if defined(_MSC_VER) && (_MSC_VER > 1000) #pragma once #endif #ifdef __cplusplus extern "C" { #endif #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); #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) #define STEAM_MAX_PATH (255) #define STEAM_QUESTION_MAXLEN (255) #define STEAM_SALT_SIZE (8) #define STEAM_PROGRESS_PERCENT_SCALE (0x00001000) #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) #define STEAM_BILLING_TRANS_TIME_SIZE (9) 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 { eSteamFindLocalOnly, eSteamFindRemoteOnly, eSteamFindAll } ESteamFindFilter; typedef struct { ESteamError eSteamError; EDetailedPlatformErrorType eDetailedErrorType; int nDetailedErrorCode; char szDesc[STEAM_MAX_PATH]; } TSteamError; typedef struct { int bIsDir; unsigned int uSizeOrCount; int bIsLocal; char cszName[STEAM_MAX_PATH]; long lLastAccessTime; long lLastModificationTime; long lCreationTime; } 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; unsigned int uPercentDone; char szProgress[STEAM_MAX_PATH]; } 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; 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]; 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, ePaymentCardReceipt = 5, ePrepurchaseReceipt = 6, eEmptyReceipt = 7 } ESteamSubscriptionBillingInfoType; typedef struct { ESteamSubscriptionBillingInfoType eBillingInfoType; union { TSteamPaymentCardInfo PaymentCardInfo; TSteamPrepurchaseInfo PrepurchaseInfo; TSteamExternalBillingInfo ExternalBillingInfo; char bUseAccountBillingInfo; }; } TSteamSubscriptionBillingInfo; typedef enum { eSteamSubscriptionOK = 0, eSteamSubscriptionPending = 1, eSteamSubscriptionPreorder = 2, eSteamSubscriptionPrepurchaseTransferred = 3, eSteamSubscriptionPrepurchaseInvalid = 4, eSteamSubscriptionPrepurchaseRejected = 5, eSteamSubscriptionPrepurchaseRevoked = 6, eSteamSubscriptionPaymentCardDeclined = 7, eSteamSubscriptionCancelledByUser = 8, eSteamSubscriptionCancelledByVendor = 9, eSteamSubscriptionPaymentCardUseLimit = 10, eSteamSubscriptionPaymentCardAlert = 11, eSteamSubscriptionFailed = 12, eSteamSubscriptionPaymentCardAVSFailure = 13, eSteamSubscriptionPaymentCardInsufficientFunds = 14, eSteamSubscriptionRestrictedCountry = 15 } 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]; char szCardApprovalCode[STEAM_BILLING_CARD_APPROVAL_CODE_SIZE + 1]; char szTransDate[STEAM_BILLING_TRANS_DATE_SIZE + 1]; char szTransTime[STEAM_BILLING_TRANS_TIME_SIZE + 1]; 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, eSteamUserDeveloper = 0x00000002, eSteamUserCyberCafe = 0x00000004 } ESteamUserTypeFlags; typedef enum { eSteamAccountStatusDefault = 0x00000000, eSteamAccountStatusEmailVerified = 0x00000001, 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; #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 typedef unsigned short SteamInstanceID_t; #if defined ( _WIN32 ) typedef unsigned __int64 SteamLocalUserID_t; #else typedef unsigned long long SteamLocalUserID_t; #endif 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