1 module derelict.steamworks.enums;
2 
3 enum EVoiceResult
4 {
5     k_EVoiceResultOK = 0,
6     k_EVoiceResultNotInitialized = 1,
7     k_EVoiceResultNotRecording = 2,
8     k_EVoiceResultNoData = 3,
9     k_EVoiceResultBufferTooSmall = 4,
10     k_EVoiceResultDataCorrupted = 5,
11     k_EVoiceResultRestricted = 6,
12     k_EVoiceResultUnsupportedCodec = 7,
13     k_EVoiceResultReceiverOutOfDate = 8,
14     k_EVoiceResultReceiverDidNotAnswer = 9,  
15 }
16 
17 // results from BeginAuthSession
18 enum EBeginAuthSessionResult
19 {
20     k_EBeginAuthSessionResultOK = 0,                        // Ticket is valid for this game and this steamID.
21     k_EBeginAuthSessionResultInvalidTicket = 1,             // Ticket is not valid.
22     k_EBeginAuthSessionResultDuplicateRequest = 2,          // A ticket has already been submitted for this steamID
23     k_EBeginAuthSessionResultInvalidVersion = 3,            // Ticket is from an incompatible interface version
24     k_EBeginAuthSessionResultGameMismatch = 4,              // Ticket is not for this game
25     k_EBeginAuthSessionResultExpiredTicket = 5,             // Ticket has expired
26 }
27 
28 enum EUserHasLicenseForAppResult
29 {
30     k_EUserHasLicenseResultHasLicense = 0,
31     k_EUserHasLicenseResultDoesNotHaveLicense = 1,
32     k_EUserHasLicenseResultNoAuth = 2,
33 }
34 
35 enum EPersonaState
36 {
37     k_EPersonaStateOffline = 0,         // friend is not currently logged on
38     k_EPersonaStateOnline = 1,          // friend is logged on
39     k_EPersonaStateBusy = 2,            // user is on, but busy
40     k_EPersonaStateAway = 3,            // auto-away feature
41     k_EPersonaStateSnooze = 4,          // auto-away for a long time
42     k_EPersonaStateLookingToTrade = 5,  // Online, trading
43     k_EPersonaStateLookingToPlay = 6,   // Online, wanting to play
44     k_EPersonaStateMax,
45 }
46 
47 enum EChatEntryType
48 {
49     k_EChatEntryTypeInvalid = 0, 
50     k_EChatEntryTypeChatMsg = 1,        // Normal text message from another user
51     k_EChatEntryTypeTyping = 2,         // Another user is typing (not used in multi-user chat)
52     k_EChatEntryTypeInviteGame = 3,     // Invite from other user into that users current game
53     k_EChatEntryTypeEmote = 4,          // text emote message (deprecated, should be treated as ChatMsg)
54     //k_EChatEntryTypeLobbyGameStart = 5,   // lobby game is starting (dead - listen for LobbyGameCreated_t callback instead)
55     k_EChatEntryTypeLeftConversation = 6, // user has left the conversation ( closed chat window )
56     // Above are previous FriendMsgType entries, now merged into more generic chat entry types
57     k_EChatEntryTypeEntered = 7,        // user has entered the conversation (used in multi-user chat and group chat)
58     k_EChatEntryTypeWasKicked = 8,      // user was kicked (data: 64-bit steamid of actor performing the kick)
59     k_EChatEntryTypeWasBanned = 9,      // user was banned (data: 64-bit steamid of actor performing the ban)
60     k_EChatEntryTypeDisconnected = 10,  // user disconnected
61     k_EChatEntryTypeHistoricalChat = 11,    // a chat message from user's chat history or offilne message
62     k_EChatEntryTypeReserved1 = 12,
63     k_EChatEntryTypeReserved2 = 13,
64     k_EChatEntryTypeLinkBlocked = 14, // a link was removed by the chat filter.
65 }
66 
67 enum EFriendRelationship
68 {
69     k_EFriendRelationshipNone = 0,
70     k_EFriendRelationshipBlocked = 1,
71     k_EFriendRelationshipRequestRecipient = 2,
72     k_EFriendRelationshipFriend = 3,
73     k_EFriendRelationshipRequestInitiator = 4,
74     k_EFriendRelationshipIgnored = 5,
75     k_EFriendRelationshipIgnoredFriend = 6,
76     k_EFriendRelationshipSuggested_DEPRECATED = 7,
77     
78     // keep this updated
79     k_EFriendRelationshipMax = 8,
80 }
81 enum EOverlayToStoreFlag
82 {
83     k_EOverlayToStoreFlag_None = 0,
84     k_EOverlayToStoreFlag_AddToCart = 1,
85     k_EOverlayToStoreFlag_AddToCartAndShow = 2,
86 }
87 
88 enum EFriendFlags
89 {
90     k_EFriendFlagNone           = 0x00,
91     k_EFriendFlagBlocked        = 0x01,
92     k_EFriendFlagFriendshipRequested    = 0x02,
93     k_EFriendFlagImmediate      = 0x04,         // "regular" friend
94     k_EFriendFlagClanMember     = 0x08,
95     k_EFriendFlagOnGameServer   = 0x10, 
96     // k_EFriendFlagHasPlayedWith   = 0x20, // not currently used
97     // k_EFriendFlagFriendOfFriend  = 0x40, // not currently used
98     k_EFriendFlagRequestingFriendship = 0x80,
99     k_EFriendFlagRequestingInfo = 0x100,
100     k_EFriendFlagIgnored        = 0x200,
101     k_EFriendFlagIgnoredFriend  = 0x400,
102     // k_EFriendFlagSuggested      = 0x800,
103     k_EFriendFlagChatMember     = 0x1000,
104     k_EFriendFlagAll            = 0xFFFF,
105 }
106 
107 enum EUniverse
108 {
109     k_EUniverseInvalid = 0,
110     k_EUniversePublic = 1,
111     k_EUniverseBeta = 2,
112     k_EUniverseInternal = 3,
113     k_EUniverseDev = 4,
114     // k_EUniverseRC = 5,               // no such universe anymore
115     k_EUniverseMax
116 }
117 
118 enum ENotificationPosition
119 {
120     k_EPositionTopLeft = 0,
121     k_EPositionTopRight = 1,
122     k_EPositionBottomLeft = 2,
123     k_EPositionBottomRight = 3,
124 }
125 
126 enum ESteamAPICallFailure
127 {
128     k_ESteamAPICallFailureNone = -1,
129     k_ESteamAPICallFailureSteamGone = 0,
130     k_ESteamAPICallFailureNetworkFailure = 1,
131     k_ESteamAPICallFailureInvalidHandle = 2,
132     k_ESteamAPICallFailureMismatchedCallback = 3,
133 }
134 
135 enum EGamepadTextInputMode
136 {
137     k_EGamepadTextInputModeNormal = 0,
138     k_EGamepadTextInputModePassword = 1,
139 }
140 
141 enum EGamepadTextInputLineMode
142 {
143     k_EGamepadTextInputLineModeSingleLine = 0,
144     k_EGamepadTextInputLineModeMultipleLines = 1,
145 }
146 
147 enum EAccountType
148 {
149     k_EAccountTypeInvalid = 0,          
150     k_EAccountTypeIndividual = 1,       // single user account
151     k_EAccountTypeMultiseat = 2,        // multiseat (e.g. cybercafe) account
152     k_EAccountTypeGameServer = 3,       // game server account
153     k_EAccountTypeAnonGameServer = 4,   // anonymous game server account
154     k_EAccountTypePending = 5,          // pending
155     k_EAccountTypeContentServer = 6,    // content server
156     k_EAccountTypeClan = 7,
157     k_EAccountTypeChat = 8,
158     k_EAccountTypeConsoleUser = 9,      // Fake SteamID for local PSN account on PS3 or Live account on 360, etc.
159     k_EAccountTypeAnonUser = 10,
160     
161     // Max of 16 items in this field
162     k_EAccountTypeMax
163 }
164 
165 enum ELobbyType
166 {
167     k_ELobbyTypePrivate = 0,        // only way to join the lobby is to invite to someone else
168     k_ELobbyTypeFriendsOnly = 1,    // shows for friends or invitees, but not in lobby list
169     k_ELobbyTypePublic = 2,         // visible for friends and in lobby list
170     k_ELobbyTypeInvisible = 3,      // returned by search, but not visible to other friends 
171     //    useful if you want a user in two lobbies, for example matching groups together
172     //    a user can be in only one regular lobby, and up to two invisible lobbies
173 }
174 
175 enum ELobbyComparison
176 {
177     k_ELobbyComparisonEqualToOrLessThan = -2,
178     k_ELobbyComparisonLessThan = -1,
179     k_ELobbyComparisonEqual = 0,
180     k_ELobbyComparisonGreaterThan = 1,
181     k_ELobbyComparisonEqualToOrGreaterThan = 2,
182     k_ELobbyComparisonNotEqual = 3,
183 }
184 
185 enum ELobbyDistanceFilter
186 {
187     k_ELobbyDistanceFilterClose,        // only lobbies in the same immediate region will be returned
188     k_ELobbyDistanceFilterDefault,      // only lobbies in the same region or near by regions
189     k_ELobbyDistanceFilterFar,          // for games that don't have many latency requirements, will return lobbies about half-way around the globe
190     k_ELobbyDistanceFilterWorldwide,    // no filtering, will match lobbies as far as India to NY (not recommended, expect multiple seconds of latency between the clients)
191 }
192 
193 enum EMatchMakingServerResponse
194 {
195     eServerResponded = 0,
196     eServerFailedToRespond,
197     eNoServersListedOnMasterServer // for the Internet query type, returned in response callback if no servers of this type match
198 }
199 
200 enum ELeaderboardSortMethod
201 {
202     k_ELeaderboardSortMethodNone = 0,
203     k_ELeaderboardSortMethodAscending = 1,  // top-score is lowest number
204     k_ELeaderboardSortMethodDescending = 2, // top-score is highest number
205 }
206 
207 enum ELeaderboardDisplayType
208 {
209     k_ELeaderboardDisplayTypeNone = 0, 
210     k_ELeaderboardDisplayTypeNumeric = 1,           // simple numerical score
211     k_ELeaderboardDisplayTypeTimeSeconds = 2,       // the score represents a time, in seconds
212     k_ELeaderboardDisplayTypeTimeMilliSeconds = 3,  // the score represents a time, in milliseconds
213 }
214 
215 enum ELeaderboardDataRequest
216 {
217     k_ELeaderboardDataRequestGlobal = 0,
218     k_ELeaderboardDataRequestGlobalAroundUser = 1,
219     k_ELeaderboardDataRequestFriends = 2,
220     k_ELeaderboardDataRequestUsers = 3
221 }
222 
223 enum ELeaderboardUploadScoreMethod
224 {
225     k_ELeaderboardUploadScoreMethodNone = 0,
226     k_ELeaderboardUploadScoreMethodKeepBest = 1,    // Leaderboard will keep user's best score
227     k_ELeaderboardUploadScoreMethodForceUpdate = 2, // Leaderboard will always replace score with specified
228 }
229 
230 enum ERemoteStoragePlatform
231 {
232     k_ERemoteStoragePlatformNone        = 0,
233     k_ERemoteStoragePlatformWindows     = (1 << 0),
234     k_ERemoteStoragePlatformOSX         = (1 << 1),
235     k_ERemoteStoragePlatformPS3         = (1 << 2),
236     k_ERemoteStoragePlatformLinux       = (1 << 3),
237     k_ERemoteStoragePlatformReserved2   = (1 << 4),
238     
239     k_ERemoteStoragePlatformAll = 0xffffffff
240 }
241 
242 enum EUGCReadAction
243 {
244     // Keeps the file handle open unless the last byte is read.  You can use this when reading large files (over 100MB) in sequential chunks.
245     // If the last byte is read, this will behave the same as k_EUGCRead_Close.  Otherwise, it behaves the same as k_EUGCRead_ContinueReading.
246     // This value maintains the same behavior as before the EUGCReadAction parameter was introduced.
247     k_EUGCRead_ContinueReadingUntilFinished = 0,
248     
249     // Keeps the file handle open.  Use this when using UGCRead to seek to different parts of the file.
250     // When you are done seeking around the file, make a final call with k_EUGCRead_Close to close it.
251     k_EUGCRead_ContinueReading = 1,
252     
253     // Frees the file handle.  Use this when you're done reading the content.  
254     // To read the file from Steam again you will need to call UGCDownload again. 
255     k_EUGCRead_Close = 2,   
256 }
257 
258 enum ERemoteStoragePublishedFileVisibility
259 {
260     k_ERemoteStoragePublishedFileVisibilityPublic = 0,
261     k_ERemoteStoragePublishedFileVisibilityFriendsOnly = 1,
262     k_ERemoteStoragePublishedFileVisibilityPrivate = 2,
263 }
264 
265 enum EWorkshopFileType
266 {
267     k_EWorkshopFileTypeFirst = 0,
268     
269     k_EWorkshopFileTypeCommunity              = 0,      // normal Workshop item that can be subscribed to
270     k_EWorkshopFileTypeMicrotransaction       = 1,      // Workshop item that is meant to be voted on for the purpose of selling in-game
271     k_EWorkshopFileTypeCollection             = 2,      // a collection of Workshop or Greenlight items
272     k_EWorkshopFileTypeArt                    = 3,      // artwork
273     k_EWorkshopFileTypeVideo                  = 4,      // external video
274     k_EWorkshopFileTypeScreenshot             = 5,      // screenshot
275     k_EWorkshopFileTypeGame                   = 6,      // Greenlight game entry
276     k_EWorkshopFileTypeSoftware               = 7,      // Greenlight software entry
277     k_EWorkshopFileTypeConcept                = 8,      // Greenlight concept
278     k_EWorkshopFileTypeWebGuide               = 9,      // Steam web guide
279     k_EWorkshopFileTypeIntegratedGuide        = 10,     // application integrated guide
280     k_EWorkshopFileTypeMerch                  = 11,     // Workshop merchandise meant to be voted on for the purpose of being sold
281     k_EWorkshopFileTypeControllerBinding      = 12,     // Steam Controller bindings
282     k_EWorkshopFileTypeSteamworksAccessInvite = 13,     // internal
283     k_EWorkshopFileTypeSteamVideo             = 14,     // Steam video
284     k_EWorkshopFileTypeGameManagedItem        = 15,     // managed completely by the game, not the user, and not shown on the web
285     
286     // Update k_EWorkshopFileTypeMax if you add values.
287     k_EWorkshopFileTypeMax = 16
288     
289 }
290 
291 enum EWorkshopVideoProvider
292 {
293     k_EWorkshopVideoProviderNone = 0,
294     k_EWorkshopVideoProviderYoutube = 1
295 }
296 
297 enum EWorkshopFileAction
298 {
299     k_EWorkshopFileActionPlayed = 0,
300     k_EWorkshopFileActionCompleted = 1,
301 }
302 
303 enum EWorkshopEnumerationType
304 {
305     k_EWorkshopEnumerationTypeRankedByVote = 0,
306     k_EWorkshopEnumerationTypeRecent = 1,
307     k_EWorkshopEnumerationTypeTrending = 2,
308     k_EWorkshopEnumerationTypeFavoritesOfFriends = 3,
309     k_EWorkshopEnumerationTypeVotedByFriends = 4,
310     k_EWorkshopEnumerationTypeContentByFriends = 5,
311     k_EWorkshopEnumerationTypeRecentFromFollowedUsers = 6,
312 }
313 
314 enum EP2PSend
315 {
316     // Basic UDP send. Packets can't be bigger than 1200 bytes (your typical MTU size). Can be lost, or arrive out of order (rare).
317     // The sending API does have some knowledge of the underlying connection, so if there is no NAT-traversal accomplished or
318     // there is a recognized adjustment happening on the connection, the packet will be batched until the connection is open again.
319     k_EP2PSendUnreliable = 0,
320     
321     // As above, but if the underlying p2p connection isn't yet established the packet will just be thrown away. Using this on the first
322     // packet sent to a remote host almost guarantees the packet will be dropped.
323     // This is only really useful for kinds of data that should never buffer up, i.e. voice payload packets
324     k_EP2PSendUnreliableNoDelay = 1,
325     
326     // Reliable message send. Can send up to 1MB of data in a single message. 
327     // Does fragmentation/re-assembly of messages under the hood, as well as a sliding window for efficient sends of large chunks of data. 
328     k_EP2PSendReliable = 2,
329     
330     // As above, but applies the Nagle algorithm to the send - sends will accumulate 
331     // until the current MTU size (typically ~1200 bytes, but can change) or ~200ms has passed (Nagle algorithm). 
332     // Useful if you want to send a set of smaller messages but have the coalesced into a single packet
333     // Since the reliable stream is all ordered, you can do several small message sends with k_EP2PSendReliableWithBuffering and then
334     // do a normal k_EP2PSendReliable to force all the buffered data to be sent.
335     k_EP2PSendReliableWithBuffering = 3,
336 }
337 
338 enum ESNetSocketConnectionType
339 {
340     k_ESNetSocketConnectionTypeNotConnected = 0,
341     k_ESNetSocketConnectionTypeUDP = 1,
342     k_ESNetSocketConnectionTypeUDPRelay = 2,
343 }
344 
345 enum AudioPlayback_Status
346 {
347     AudioPlayback_Undefined = 0, 
348     AudioPlayback_Playing = 1,
349     AudioPlayback_Paused = 2,
350     AudioPlayback_Idle = 3
351 }
352 
353 enum ISteamHTMLSurface_EHTMLMouseButton
354 {
355     eHTMLMouseButton_Left = 0,
356     eHTMLMouseButton_Right = 1,
357     eHTMLMouseButton_Middle = 2,
358 }
359 
360 enum ISteamHTMLSurface_EMouseCursor
361 {
362     dc_user = 0,
363     dc_none,
364     dc_arrow,
365     dc_ibeam,
366     dc_hourglass,
367     dc_waitarrow,
368     dc_crosshair,
369     dc_up,
370     dc_sizenw,
371     dc_sizese,
372     dc_sizene,
373     dc_sizesw,
374     dc_sizew,
375     dc_sizee,
376     dc_sizen,
377     dc_sizes,
378     dc_sizewe,
379     dc_sizens,
380     dc_sizeall,
381     dc_no,
382     dc_hand,
383     dc_blank, // don't show any custom cursor, just use your default
384     dc_middle_pan,
385     dc_north_pan,
386     dc_north_east_pan,
387     dc_east_pan,
388     dc_south_east_pan,
389     dc_south_pan,
390     dc_south_west_pan,
391     dc_west_pan,
392     dc_north_west_pan,
393     dc_alias,
394     dc_cell,
395     dc_colresize,
396     dc_copycur,
397     dc_verticaltext,
398     dc_rowresize,
399     dc_zoomin,
400     dc_zoomout,
401     dc_help,
402     dc_custom,
403     
404     dc_last, // custom cursors start from this value and up
405 }
406 
407 enum ISteamHTMLSurface_EHTMLKeyModifiers
408 {
409     k_eHTMLKeyModifier_None = 0,
410     k_eHTMLKeyModifier_AltDown = 1 << 0,
411     k_eHTMLKeyModifier_CtrlDown = 1 << 1,
412     k_eHTMLKeyModifier_ShiftDown = 1 << 2,
413 }
414 
415 enum EHTTPMethod
416 {
417     k_EHTTPMethodInvalid,
418     k_EHTTPMethodGET,
419     k_EHTTPMethodHEAD,
420     k_EHTTPMethodPOST,
421     k_EHTTPMethodPUT,
422     k_EHTTPMethodDELETE,
423     k_EHTTPMethodOPTIONS,
424     k_EHTTPMethodPATCH,
425 }
426 
427 enum EResult
428 {
429     k_EResultOK = 1,                            // success
430     k_EResultFail = 2,                          // generic failure 
431     k_EResultNoConnection = 3,                  // no/failed network connection
432     //  k_EResultNoConnectionRetry = 4,             // OBSOLETE - removed
433     k_EResultInvalidPassword = 5,               // password/ticket is invalid
434     k_EResultLoggedInElsewhere = 6,             // same user logged in elsewhere
435     k_EResultInvalidProtocolVer = 7,            // protocol version is incorrect
436     k_EResultInvalidParam = 8,                  // a parameter is incorrect
437     k_EResultFileNotFound = 9,                  // file was not found
438     k_EResultBusy = 10,                         // called method busy - action not taken
439     k_EResultInvalidState = 11,                 // called object was in an invalid state
440     k_EResultInvalidName = 12,                  // name is invalid
441     k_EResultInvalidEmail = 13,                 // email is invalid
442     k_EResultDuplicateName = 14,                // name is not unique
443     k_EResultAccessDenied = 15,                 // access is denied
444     k_EResultTimeout = 16,                      // operation timed out
445     k_EResultBanned = 17,                       // VAC2 banned
446     k_EResultAccountNotFound = 18,              // account not found
447     k_EResultInvalidSteamID = 19,               // steamID is invalid
448     k_EResultServiceUnavailable = 20,           // The requested service is currently unavailable
449     k_EResultNotLoggedOn = 21,                  // The user is not logged on
450     k_EResultPending = 22,                      // Request is pending (may be in process, or waiting on third party)
451     k_EResultEncryptionFailure = 23,            // Encryption or Decryption failed
452     k_EResultInsufficientPrivilege = 24,        // Insufficient privilege
453     k_EResultLimitExceeded = 25,                // Too much of a good thing
454     k_EResultRevoked = 26,                      // Access has been revoked (used for revoked guest passes)
455     k_EResultExpired = 27,                      // License/Guest pass the user is trying to access is expired
456     k_EResultAlreadyRedeemed = 28,              // Guest pass has already been redeemed by account, cannot be acked again
457     k_EResultDuplicateRequest = 29,             // The request is a duplicate and the action has already occurred in the past, ignored this time
458     k_EResultAlreadyOwned = 30,                 // All the games in this guest pass redemption request are already owned by the user
459     k_EResultIPNotFound = 31,                   // IP address not found
460     k_EResultPersistFailed = 32,                // failed to write change to the data store
461     k_EResultLockingFailed = 33,                // failed to acquire access lock for this operation
462     k_EResultLogonSessionReplaced = 34,
463     k_EResultConnectFailed = 35,
464     k_EResultHandshakeFailed = 36,
465     k_EResultIOFailure = 37,
466     k_EResultRemoteDisconnect = 38,
467     k_EResultShoppingCartNotFound = 39,         // failed to find the shopping cart requested
468     k_EResultBlocked = 40,                      // a user didn't allow it
469     k_EResultIgnored = 41,                      // target is ignoring sender
470     k_EResultNoMatch = 42,                      // nothing matching the request found
471     k_EResultAccountDisabled = 43,
472     k_EResultServiceReadOnly = 44,              // this service is not accepting content changes right now
473     k_EResultAccountNotFeatured = 45,           // account doesn't have value, so this feature isn't available
474     k_EResultAdministratorOK = 46,              // allowed to take this action, but only because requester is admin
475     k_EResultContentVersion = 47,               // A Version mismatch in content transmitted within the Steam protocol.
476     k_EResultTryAnotherCM = 48,                 // The current CM can't service the user making a request, user should try another.
477     k_EResultPasswordRequiredToKickSession = 49,// You are already logged in elsewhere, this cached credential login has failed.
478     k_EResultAlreadyLoggedInElsewhere = 50,     // You are already logged in elsewhere, you must wait
479     k_EResultSuspended = 51,                    // Long running operation (content download) suspended/paused
480     k_EResultCancelled = 52,                    // Operation canceled (typically by user: content download)
481     k_EResultDataCorruption = 53,               // Operation canceled because data is ill formed or unrecoverable
482     k_EResultDiskFull = 54,                     // Operation canceled - not enough disk space.
483     k_EResultRemoteCallFailed = 55,             // an remote call or IPC call failed
484     k_EResultPasswordUnset = 56,                // Password could not be verified as it's unset server side
485     k_EResultExternalAccountUnlinked = 57,      // External account (PSN, Facebook...) is not linked to a Steam account
486     k_EResultPSNTicketInvalid = 58,             // PSN ticket was invalid
487     k_EResultExternalAccountAlreadyLinked = 59, // External account (PSN, Facebook...) is already linked to some other account, must explicitly request to replace/delete the link first
488     k_EResultRemoteFileConflict = 60,           // The sync cannot resume due to a conflict between the local and remote files
489     k_EResultIllegalPassword = 61,              // The requested new password is not legal
490     k_EResultSameAsPreviousValue = 62,          // new value is the same as the old one ( secret question and answer )
491     k_EResultAccountLogonDenied = 63,           // account login denied due to 2nd factor authentication failure
492     k_EResultCannotUseOldPassword = 64,         // The requested new password is not legal
493     k_EResultInvalidLoginAuthCode = 65,         // account login denied due to auth code invalid
494     k_EResultAccountLogonDeniedNoMail = 66,     // account login denied due to 2nd factor auth failure - and no mail has been sent
495     k_EResultHardwareNotCapableOfIPT = 67,      // 
496     k_EResultIPTInitError = 68,                 // 
497     k_EResultParentalControlRestricted = 69,    // operation failed due to parental control restrictions for current user
498     k_EResultFacebookQueryError = 70,           // Facebook query returned an error
499     k_EResultExpiredLoginAuthCode = 71,         // account login denied due to auth code expired
500     k_EResultIPLoginRestrictionFailed = 72,
501     k_EResultAccountLockedDown = 73,
502     k_EResultAccountLogonDeniedVerifiedEmailRequired = 74,
503     k_EResultNoMatchingURL = 75,
504     k_EResultBadResponse = 76,                  // parse failure, missing field, etc.
505     k_EResultRequirePasswordReEntry = 77,       // The user cannot complete the action until they re-enter their password
506     k_EResultValueOutOfRange = 78,              // the value entered is outside the acceptable range
507     k_EResultUnexpectedError = 79,              // something happened that we didn't expect to ever happen
508     k_EResultDisabled = 80,                     // The requested service has been configured to be unavailable
509     k_EResultInvalidCEGSubmission = 81,         // The set of files submitted to the CEG server are not valid !
510     k_EResultRestrictedDevice = 82,             // The device being used is not allowed to perform this action
511     k_EResultRegionLocked = 83,                 // The action could not be complete because it is region restricted
512     k_EResultRateLimitExceeded = 84,            // Temporary rate limit exceeded, try again later, different from k_EResultLimitExceeded which may be permanent
513     k_EResultAccountLoginDeniedNeedTwoFactor = 85,  // Need two-factor code to login
514     k_EResultItemDeleted = 86,                  // The thing we're trying to access has been deleted
515     k_EResultAccountLoginDeniedThrottle = 87,   // login attempt failed, try to throttle response to possible attacker
516     k_EResultTwoFactorCodeMismatch = 88,        // two factor code mismatch
517     k_EResultTwoFactorActivationCodeMismatch = 89,  // activation code for two-factor didn't match
518     k_EResultAccountAssociatedToMultiplePartners = 90,  // account has been associated with multiple partners
519     k_EResultNotModified = 91,                  // data not modified
520     k_EResultNoMobileDevice = 92,               // the account does not have a mobile device associated with it
521     k_EResultTimeNotSynced = 93,                // the time presented is out of range or tolerance
522     k_EResultSmsCodeFailed = 94,                // SMS code failure (no match, none pending, etc.)
523     k_EResultAccountLimitExceeded = 95,         // Too many accounts access this resource
524     k_EResultAccountActivityLimitExceeded = 96, // Too many changes to this account
525     k_EResultPhoneActivityLimitExceeded = 97,   // Too many changes to this phone
526     k_EResultRefundToWallet = 98,               // Cannot refund to payment method, must use wallet
527     k_EResultEmailSendFailure = 99,             // Cannot send an email
528     k_EResultNotSettled = 100,                  // Can't perform operation till payment has settled
529     k_EResultNeedCaptcha = 101,					// Needs to provide a valid captcha
530  	k_EResultGSLTDenied = 102,					// a game server login token owned by this token's owner has been banned
531  	k_EResultGSOwnerDenied = 103,				// game server owner is denied for other reason (account lock, community ban, vac ban, missing phone)
532  	k_EResultInvalidItemType = 104,				// the type of thing we were requested to act on is invalid
533     k_EResultIPBanned = 105,
534 }
535 
536 enum EUGCQuery
537 {
538     k_EUGCQuery_RankedByVote                                  = 0,
539     k_EUGCQuery_RankedByPublicationDate                       = 1,
540     k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate         = 2,
541     k_EUGCQuery_RankedByTrend                                 = 3,
542     k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate     = 4,
543     k_EUGCQuery_CreatedByFriendsRankedByPublicationDate       = 5,
544     k_EUGCQuery_RankedByNumTimesReported                      = 6,
545     k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate = 7,
546     k_EUGCQuery_NotYetRated                                   = 8,
547     k_EUGCQuery_RankedByTotalVotesAsc                         = 9,
548     k_EUGCQuery_RankedByVotesUp                               = 10,
549     k_EUGCQuery_RankedByTextSearch                            = 11,
550     k_EUGCQuery_RankedByTotalUniqueSubscriptions              = 12,
551     k_EUGCQuery_RankedByPlaytimeTrend						  = 13,
552     k_EUGCQuery_RankedByTotalPlaytime						  = 14,
553     k_EUGCQuery_RankedByAveragePlaytimeTrend				  = 15,
554     k_EUGCQuery_RankedByLifetimeAveragePlaytime				  = 16,
555     k_EUGCQuery_RankedByPlaytimeSessionsTrend				  = 17,
556     k_EUGCQuery_RankedByLifetimePlaytimeSessions			  = 18,
557 }
558 
559 enum EUserUGCList
560 {
561     k_EUserUGCList_Published,
562     k_EUserUGCList_VotedOn,
563     k_EUserUGCList_VotedUp,
564     k_EUserUGCList_VotedDown,
565     k_EUserUGCList_WillVoteLater,
566     k_EUserUGCList_Favorited,
567     k_EUserUGCList_Subscribed,
568     k_EUserUGCList_UsedOrPlayed,
569     k_EUserUGCList_Followed,
570 }
571 
572 enum EUserUGCListSortOrder
573 {
574     k_EUserUGCListSortOrder_CreationOrderDesc,
575     k_EUserUGCListSortOrder_CreationOrderAsc,
576     k_EUserUGCListSortOrder_TitleAsc,
577     k_EUserUGCListSortOrder_LastUpdatedDesc,
578     k_EUserUGCListSortOrder_SubscriptionDateDesc,
579     k_EUserUGCListSortOrder_VoteScoreDesc,
580     k_EUserUGCListSortOrder_ForModeration,
581 }
582 
583 enum EUGCMatchingUGCType
584 {
585     k_EUGCMatchingUGCType_Items              = 0,       // both mtx items and ready-to-use items
586     k_EUGCMatchingUGCType_Items_Mtx          = 1,
587     k_EUGCMatchingUGCType_Items_ReadyToUse   = 2,
588     k_EUGCMatchingUGCType_Collections        = 3,
589     k_EUGCMatchingUGCType_Artwork            = 4,
590     k_EUGCMatchingUGCType_Videos             = 5,
591     k_EUGCMatchingUGCType_Screenshots        = 6,
592     k_EUGCMatchingUGCType_AllGuides          = 7,       // both web guides and integrated guides
593     k_EUGCMatchingUGCType_WebGuides          = 8,
594     k_EUGCMatchingUGCType_IntegratedGuides   = 9,
595     k_EUGCMatchingUGCType_UsableInGame       = 10,      // ready-to-use items and integrated guides
596     k_EUGCMatchingUGCType_ControllerBindings = 11,
597     k_EUGCMatchingUGCType_GameManagedItems   = 12,      // game managed items (not managed by users)
598     k_EUGCMatchingUGCType_All                = ~0,      // return everything
599 }
600 
601 enum EItemUpdateStatus
602 {
603     k_EItemUpdateStatusInvalid              = 0, // The item update handle was invalid, job might be finished, listen too SubmitItemUpdateResult_t
604     k_EItemUpdateStatusPreparingConfig      = 1, // The item update is processing configuration data
605     k_EItemUpdateStatusPreparingContent     = 2, // The item update is reading and processing content files
606     k_EItemUpdateStatusUploadingContent     = 3, // The item update is uploading content changes to Steam
607     k_EItemUpdateStatusUploadingPreviewFile = 4, // The item update is uploading new preview file image
608     k_EItemUpdateStatusCommittingChanges    = 5  // The item update is committing all changes
609 }
610 
611 //-----------------------------------------------------------------------------
612 // Purpose: Base values for callback identifiers, each callback must
613 //          have a unique ID.
614 //-----------------------------------------------------------------------------
615 enum k_iSteamUserCallbacks = 100;
616 enum k_iSteamGameServerCallbacks = 200;
617 enum k_iSteamFriendsCallbacks = 300;
618 enum k_iSteamBillingCallbacks = 400;
619 enum k_iSteamMatchmakingCallbacks = 500;
620 enum k_iSteamContentServerCallbacks = 600;
621 enum k_iSteamUtilsCallbacks = 700;
622 enum k_iClientFriendsCallbacks = 800;
623 enum k_iClientUserCallbacks = 900;
624 enum k_iSteamAppsCallbacks = 1000;
625 enum k_iSteamUserStatsCallbacks = 1100;
626 enum k_iSteamNetworkingCallbacks = 1200;
627 enum k_iClientRemoteStorageCallbacks = 1300;
628 enum k_iClientDepotBuilderCallbacks = 1400;
629 enum k_iSteamGameServerItemsCallbacks = 1500;
630 enum k_iClientUtilsCallbacks = 1600;
631 enum k_iSteamGameCoordinatorCallbacks = 1700;
632 enum k_iSteamGameServerStatsCallbacks = 1800;
633 enum k_iSteam2AsyncCallbacks = 1900;
634 enum k_iSteamGameStatsCallbacks = 2000;
635 enum k_iClientHTTPCallbacks = 2100;
636 enum k_iClientScreenshotsCallbacks = 2200;
637 enum k_iSteamScreenshotsCallbacks = 2300;
638 enum k_iClientAudioCallbacks = 2400;
639 enum k_iClientUnifiedMessagesCallbacks = 2500;
640 enum k_iSteamStreamLauncherCallbacks = 2600;
641 enum k_iClientControllerCallbacks = 2700;
642 enum k_iSteamControllerCallbacks = 2800;
643 enum k_iClientParentalSettingsCallbacks = 2900;
644 enum k_iClientDeviceAuthCallbacks = 3000;
645 enum k_iClientNetworkDeviceManagerCallbacks = 3100;
646 enum k_iClientMusicCallbacks = 3200;
647 enum k_iClientRemoteClientManagerCallbacks = 3300;
648 enum k_iClientUGCCallbacks = 3400;
649 enum k_iSteamStreamClientCallbacks = 3500;
650 enum k_IClientProductBuilderCallbacks = 3600;
651 enum k_iClientShortcutsCallbacks = 3700;
652 enum k_iClientRemoteControlManagerCallbacks = 3800;
653 enum k_iSteamAppListCallbacks = 3900;
654 enum k_iSteamMusicCallbacks = 4000;
655 enum k_iSteamMusicRemoteCallbacks = 4100;
656 enum k_iClientVRCallbacks = 4200;
657 enum k_iClientGameNotificationCallbacks = 4300;
658 enum k_iSteamGameNotificationCallbacks = 4400;
659 enum k_iSteamHTMLSurfaceCallbacks = 4500;
660 enum k_iClientVideoCallbacks = 4600;
661 enum k_iClientInventoryCallbacks = 4700;
662 enum k_iClientBluetoothManagerCallbacks = 4800;