Commits

Ryan Stecker committed 9a13c55

Organized the enums.
Removed the old deprecated items interfaces.

  • Participants
  • Parent commits 91db1f5

Comments (0)

Files changed (27)

File Open Steamworks/AppsCommon.h

 #define STEAMAPPS_INTERFACE_VERSION_004 "STEAMAPPS_INTERFACE_VERSION004"
 
 
-typedef enum EAppState
+enum EAppState
 {
 	k_EAppStateInvalid			= 0,
 	k_EAppStateUninstalled		= 1,
 	k_EAppStateUninstalling		= 2048,
 	k_EAppStatePreallocating	= 32768,
 	k_EAppStateValidating		= 8192,
-} EAppState;
+};
 
-typedef enum EAppEvent
+enum EAppEvent
 {
 	k_EAppEventDownloadComplete = 2,
-} EAppEvent;
+};
 
-typedef enum EAppInfoSection
+enum EAppInfoSection
 {
 	k_EAppInfoSectionUnknown = 0,
 	k_EAppInfoSectionAll,
 	k_EAppInfoSectionPolicies,
 	k_EAppInfoSectionSysreqs,
 	k_EAppInfoSectionCommunity
-} EAppInfoSection;
+};
+
 
 #pragma pack( push, 8 )
 //-----------------------------------------------------------------------------
 {
 	enum { k_iCallback = k_iSteamAppsCallbacks + 1 };
 
-	uint32 m_nAppID;
+	AppId_t m_nAppID;
 
 	bool m_bBySteamUI;
 	bool m_bCDDBUpdate;
 };
 
+
 struct RequestAppCallbacksComplete_t
 {
 	enum { k_iCallback = k_iSteamAppsCallbacks + 2 };
 {
 	enum { k_iCallback = k_iSteamAppsCallbacks + 5 };
 
-	uint32 m_nAppID;		// AppID of the DLC
+	AppId_t m_nAppID;		// AppID of the DLC
 };
 
 struct OptionalDLCInstallation_t

File Open Steamworks/CSteamID.h

 #endif //NO_CSTEAMID_STL
 #endif
 
+
+
+enum EAccountType
+{
+	k_EAccountTypeInvalid = 0,			
+	k_EAccountTypeIndividual = 1,		// single user account
+	k_EAccountTypeMultiseat = 2,		// multiseat (e.g. cybercafe) account
+	k_EAccountTypeGameServer = 3,		// game server account
+	k_EAccountTypeAnonGameServer = 4,	// anonymous game server account
+	k_EAccountTypePending = 5,			// pending
+	k_EAccountTypeContentServer = 6,	// content server
+	k_EAccountTypeClan = 7,
+	k_EAccountTypeChat = 8,
+	k_EAccountTypeConsoleUser = 9,		// Fake SteamID for local PSN account on PS3 or Live account on 360, etc.
+	k_EAccountTypeAnonUser = 10,
+
+	// Max of 16 items in this field
+	k_EAccountTypeMax
+};
+
 #pragma pack( push, 1 )
 
 // Steam ID structure (64 bits total)

File Open Steamworks/EAccountType.h

-//==========================  Open Steamworks  ================================
-//
-// This file is part of the Open Steamworks project. All individuals associated
-// with this project do not claim ownership of the contents
-// 
-// The code, comments, and all related files, projects, resources,
-// redistributables included with this project are Copyright Valve Corporation.
-// Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the
-// Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo,
-// Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the
-// Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition
-// Zero are trademarks and or registered trademarks of Valve Corporation.
-// All other trademarks are property of their respective owners.
-//
-//=============================================================================
-
-#ifndef EACCOUNTTYPE_H
-#define EACCOUNTTYPE_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-
-// Steam account types
-typedef enum EAccountType
-{
-	k_EAccountTypeInvalid = 0,			
-	k_EAccountTypeIndividual = 1,		// single user account
-	k_EAccountTypeMultiseat = 2,		// multiseat (e.g. cybercafe) account
-	k_EAccountTypeGameServer = 3,		// game server account
-	k_EAccountTypeAnonGameServer = 4,	// anonymous game server account
-	k_EAccountTypePending = 5,			// pending
-	k_EAccountTypeContentServer = 6,	// content server
-	k_EAccountTypeClan = 7,
-	k_EAccountTypeChat = 8,
-	k_EAccountTypeConsoleUser = 9,		// Fake SteamID for local PSN account on PS3 or Live account on 360, etc.
-	k_EAccountTypeAnonUser = 10,
-
-	// Max of 16 items in this field
-	k_EAccountTypeMax
-} EAccountType;
-
-
-#endif // EACCOUNTTYPE_H

File Open Steamworks/EChatMemberStateChange.h

-//==========================  Open Steamworks  ================================
-//
-// This file is part of the Open Steamworks project. All individuals associated
-// with this project do not claim ownership of the contents
-// 
-// The code, comments, and all related files, projects, resources,
-// redistributables included with this project are Copyright Valve Corporation.
-// Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the
-// Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo,
-// Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the
-// Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition
-// Zero are trademarks and or registered trademarks of Valve Corporation.
-// All other trademarks are property of their respective owners.
-//
-//=============================================================================
-
-#ifndef ECHATMEMBERSTATECHANGE_H
-#define ECHATMEMBERSTATECHANGE_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-
-//-----------------------------------------------------------------------------
-// Purpose: Used in ChatInfo messages - fields specific to a chat member - must fit in a uint32
-//-----------------------------------------------------------------------------
-typedef enum EChatMemberStateChange
-{
-	// Specific to joining / leaving the chatroom
-	k_EChatMemberStateChangeEntered			= 0x0001,		// This user has joined or is joining the chat room
-	k_EChatMemberStateChangeLeft			= 0x0002,		// This user has left or is leaving the chat room
-	k_EChatMemberStateChangeDisconnected	= 0x0004,		// User disconnected without leaving the chat first
-	k_EChatMemberStateChangeKicked			= 0x0008,		// User kicked
-	k_EChatMemberStateChangeBanned			= 0x0010,		// User kicked and banned
-} EChatMemberStateChange;
-
-#endif // ECHATMEMBERSTATECHANGE_H

File Open Steamworks/ELobbyType.h

-//==========================  Open Steamworks  ================================
-//
-// This file is part of the Open Steamworks project. All individuals associated
-// with this project do not claim ownership of the contents
-// 
-// The code, comments, and all related files, projects, resources,
-// redistributables included with this project are Copyright Valve Corporation.
-// Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the
-// Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo,
-// Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the
-// Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition
-// Zero are trademarks and or registered trademarks of Valve Corporation.
-// All other trademarks are property of their respective owners.
-//
-//=============================================================================
-
-#ifndef ELOBBYTYPE_H
-#define ELOBBYTYPE_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-//-----------------------------------------------------------------------------
-// Purpose: Functions for match making services for clients to get to favorites
-//-----------------------------------------------------------------------------
-typedef enum ELobbyType
-{
-	k_ELobbyTypeFriendsOnly = 1,	// shows for friends or invitees, but not in lobby list
-	k_ELobbyTypePublic = 2,			// visible for friends and in lobby list
-	k_ELobbyTypeInvisible = 3,		// returned by search, but not visible to other friends 
-	//    useful if you want a user in two lobbies, for example matching groups together
-	//	  a user can be in only one regular lobby, and up to two invisible lobbies
-} ELobbyType;
-
-
-
-#endif // ELOBBYTYPE_H

File Open Steamworks/ENotificationPosition.h

-//==========================  Open Steamworks  ================================
-//
-// This file is part of the Open Steamworks project. All individuals associated
-// with this project do not claim ownership of the contents
-// 
-// The code, comments, and all related files, projects, resources,
-// redistributables included with this project are Copyright Valve Corporation.
-// Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the
-// Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo,
-// Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the
-// Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition
-// Zero are trademarks and or registered trademarks of Valve Corporation.
-// All other trademarks are property of their respective owners.
-//
-//=============================================================================
-
-#ifndef ENOTIFICATIONPOSITION_H
-#define ENOTIFICATIONPOSITION_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-//-----------------------------------------------------------------------------
-// Purpose: Possible positions to tell the overlay to show notifications in
-//-----------------------------------------------------------------------------
-typedef enum ENotificationPosition
-{
-	k_EPositionTopLeft = 0,
-	k_EPositionTopRight = 1,
-	k_EPositionBottomLeft = 2,
-	k_EPositionBottomRight = 3,
-} ENotificationPosition;
-
-
-#endif // ENOTIFICATIONPOSITION_H

File Open Steamworks/EPersonalQuestion.h

-//==========================  Open Steamworks  ================================
-//
-// This file is part of the Open Steamworks project. All individuals associated
-// with this project do not claim ownership of the contents
-// 
-// The code, comments, and all related files, projects, resources,
-// redistributables included with this project are Copyright Valve Corporation.
-// Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the
-// Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo,
-// Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the
-// Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition
-// Zero are trademarks and or registered trademarks of Valve Corporation.
-// All other trademarks are property of their respective owners.
-//
-//=============================================================================
-
-#ifndef EPERSONALQUESTION_H
-#define EPERSONALQUESTION_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-typedef enum EPersonalQuestion
-{
-	// Never ever change these after initial release.
-	k_EPSMsgNameOfSchool = 0,			// Question: What is the name of your school?
-	k_EPSMsgFavoriteTeam = 1,			// Question: What is your favorite team?
-	k_EPSMsgMothersName = 2,			// Question: What is your mother's maiden name?
-	k_EPSMsgNameOfPet = 3,				// Question: What is the name of your pet?
-	k_EPSMsgChildhoodHero = 4,			// Question: Who was your childhood hero?
-	k_EPSMsgCityBornIn = 5,				// Question: What city were you born in?
-
-	k_EPSMaxPersonalQuestion,
-
-} EPersonalQuestion;
-
-#endif // EPERSONALQUESTION_H

File Open Steamworks/EServerMode.h

-//==========================  Open Steamworks  ================================
-//
-// This file is part of the Open Steamworks project. All individuals associated
-// with this project do not claim ownership of the contents
-// 
-// The code, comments, and all related files, projects, resources,
-// redistributables included with this project are Copyright Valve Corporation.
-// Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the
-// Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo,
-// Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the
-// Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition
-// Zero are trademarks and or registered trademarks of Valve Corporation.
-// All other trademarks are property of their respective owners.
-//
-//=============================================================================
-
-#ifndef ESERVERMODE_H
-#define ESERVERMODE_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-
-typedef enum EServerMode
-{
-	eServerModeInvalid = 0, // DO NOT USE		
-	eServerModeNoAuthentication = 1, // Don't authenticate user logins and don't list on the server list
-	eServerModeAuthentication = 2, // Authenticate users, list on the server list, don't run VAC on clients that connect
-	eServerModeAuthenticationAndSecure = 3, // Authenticate users, list on the server list and VAC protect clients
-} EServerMode;
-
-
-#endif // ESERVERMODE_H

File Open Steamworks/EUniverse.h

-//==========================  Open Steamworks  ================================
-//
-// This file is part of the Open Steamworks project. All individuals associated
-// with this project do not claim ownership of the contents
-// 
-// The code, comments, and all related files, projects, resources,
-// redistributables included with this project are Copyright Valve Corporation.
-// Additionally, Valve, the Valve logo, Half-Life, the Half-Life logo, the
-// Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo,
-// Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the
-// Counter-Strike logo, Source, the Source logo, and Counter-Strike Condition
-// Zero are trademarks and or registered trademarks of Valve Corporation.
-// All other trademarks are property of their respective owners.
-//
-//=============================================================================
-
-#ifndef EUNIVERSE_H
-#define EUNIVERSE_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-// Steam universes.  Each universe is a self-contained Steam instance.
-typedef enum EUniverse
-{
-	k_EUniverseInvalid = 0,
-	k_EUniversePublic = 1,
-	k_EUniverseBeta = 2,
-	k_EUniverseInternal = 3,
-	k_EUniverseDev = 4,
-	k_EUniverseRC = 5,
-
-	k_EUniverseMax
-} EUniverse;
-
-#endif // EUNIVERSE_H

File Open Steamworks/FriendGameInfo.h

 #pragma once
 #endif
 
+#pragma pack( push, 8 )
 
 // friend game played information
 struct FriendGameInfo_t
 	CSteamID m_steamIDLobby;
 };
 
+#pragma pack( pop )
+
 
 #endif // FRIENDGAMEINFO_H

File Open Steamworks/FriendsCommon.h

 //-----------------------------------------------------------------------------
 // Purpose: avatar sizes, used in ISteamFriends::GetFriendAvatar()
 //-----------------------------------------------------------------------------
-typedef enum EAvatarSize
+enum EAvatarSize
 {
 	k_EAvatarSize32x32 = 0,
 	k_EAvatarSize64x64 = 1,
-} EAvatarSize;
+};
 
-typedef enum ECallState
+enum ECallState
 {
 	k_ECallStateUnknown = 0,
 	k_ECallStateWaiting = 1,
 	k_ECallStateDialing = 2,
 	k_ECallStateRinging = 3,
 	k_ECallStateInCall = 4,
-} ECallState;
+};
 
 //-----------------------------------------------------------------------------
 // Purpose: Chat Entry Types (previously was only friend-to-friend message types)
 //-----------------------------------------------------------------------------
-typedef enum EChatEntryType
+enum EChatEntryType
 {
 	k_EChatEntryTypeInvalid = 0, 
 	k_EChatEntryTypeChatMsg = 1,		// Normal text message from another user
 	k_EChatEntryTypeLobbyGameStart = 5,	// lobby game is starting
 	k_EChatEntryTypeLeftConversation = 6, // user has left the conversation ( closed chat window )
 	// Above are previous FriendMsgType entries, now merged into more generic chat entry types
-} EChatEntryType;
+};
 
 //-----------------------------------------------------------------------------
 // Purpose: set of relationships to other users
 //-----------------------------------------------------------------------------
-typedef enum EFriendRelationship
+enum EFriendRelationship
 {
 	k_EFriendRelationshipNone = 0,
 	k_EFriendRelationshipBlocked = 1,
 	k_EFriendRelationshipRequestInitiator = 4,
 	k_EFriendRelationshipIgnored = 5,
 	k_EFriendRelationshipIgnoredFriend = 6,
-	k_EFriendRelationshipSuggestedFriend = 7,
-} EFriendRelationship;
+	k_EFriendRelationshipSuggested = 7,
+};
 
-typedef enum EChatRoomType
+enum EChatRoomType
 {
 	k_EChatRoomTypeFriend = 1,
 	k_EChatRoomTypeMUC = 2,
 	k_EChatRoomTypeLobby = 3,
-} EChatRoomType;
+};
 
-typedef enum EChatRoomVoiceStatus
+enum EChatRoomVoiceStatus
 {
 	eChatRoomVoiceStatusBad = 0,
 	eChatRoomVoiceStatusUnknownRoom = 1,
 	eChatRoomVoiceStatusUnreachable = 8,
 	eChatRoomVoiceStatusDisconnected = 9,
 	eChatRoomVoiceStatusCount = 10,
-} EChatRoomVoiceStatus;
+};
 
-typedef enum EClanRank
+enum EClanRank
 {
 	k_EClanRankNone = 0,
 	k_EClanRankOwner = 1,
 	k_EClanRankOfficer = 2,
 	k_EClanRankMember = 3,
-} EClanRank;
+};
 
-typedef enum EClanRelationship
+enum EClanRelationship
 {
 	eClanRelationshipNone = 0,
 	eClanRelationshipBlocked = 1,
 	eClanRelationshipInvited = 2,
 	eClanRelationshipMember = 3,
 	eClanRelationshipKicked = 4,
-} EClanRelationship;
+};
 
 // for enumerating friends list
-typedef enum EFriendFlags
+enum EFriendFlags
 {
 	k_EFriendFlagNone			= 0x00,
 	k_EFriendFlagBlocked		= 0x01,
 	k_EFriendFlagRequestingInfo = 0x100,
 	k_EFriendFlagIgnored		= 0x200,
 	k_EFriendFlagIgnoredFriend	= 0x400,
+	k_EFriendFlagSuggested		= 0x800,
 	k_EFriendFlagAll			= 0xFFFF,
-} EFriendFlags;
+};
+
 // for backwards compat
 typedef EFriendFlags k_EFriendFlags;
 
-//-----------------------------------------------------------------------------
-// Purpose: friend-to-friend message types
-//-----------------------------------------------------------------------------
-typedef enum EFriendMsgType
-{
-	k_EFriendMsgTypeChat = 1,			// chat test message
-	k_EFriendMsgTypeTyping = 2,			// lets the friend know the other user has starting typing a chat message
-	k_EFriendMsgTypeInvite = 3,			// invites the friend into the users current game
-	k_EFriendMsgTypeChatSent = 4,		// chat that the user has sent to a friend
-} EFriendMsgType;
 
 //-----------------------------------------------------------------------------
 // Purpose: list of states a friend can be in
 //-----------------------------------------------------------------------------
-typedef enum EPersonaState
+enum EPersonaState
 {
 	k_EPersonaStateOffline = 0,			// friend is not currently logged on
 	k_EPersonaStateOnline = 1,			// friend is logged on
 	k_EPersonaStateLookingToTrade = 5,	// Looking to Trade
 	k_EPersonaStateLookingToPlay = 6,	// Looking to Play
 	k_EPersonaStateMax,
-} EPersonaState;
+};
 
 // used in PersonaStateChange_t::m_nChangeFlags to describe what's changed about a user
 // these flags describe what the client has learned has changed recently, so on startup you'll see a name, avatar & relationship change for every friend
-typedef enum EPersonaChange
+enum EPersonaChange
 {
 	k_EPersonaChangeName		= 0x001,
 	k_EPersonaChangeStatus		= 0x002,
 	k_EPersonaChangeLeftSource	= 0x100,
 	k_EPersonaChangeRelationshipChanged = 0x200,
 	k_EPersonaChangeNameFirstSet = 0x400,
-} EPersonaChange;
+	k_EPersonaChangeFacebookInfo = 0x800,
+};
 
-typedef enum EChatPermission
+enum EChatPermission
 {
 	k_EChatPermissionClose = 1,
 	k_EChatPermissionInvite = 2,
 	k_EChatPermissionOfficerDefault = 282,
 	k_EChatPermissionOwnerDefault = 891,
 	k_EChatPermissionMask = 1019,
-} EChatPermission;
+};
 
 //-----------------------------------------------------------------------------
 // Purpose: Chat Room Enter Responses
 //-----------------------------------------------------------------------------
-typedef enum EChatRoomEnterResponse
+enum EChatRoomEnterResponse
 {
 	k_EChatRoomEnterResponseSuccess = 1,		// Success
 	k_EChatRoomEnterResponseDoesntExist = 2,	// Chat doesn't exist (probably closed)
 	k_EChatRoomEnterResponseFull = 4,			// Chat room has reached its maximum size
 	k_EChatRoomEnterResponseError = 5,			// Unexpected Error
 	k_EChatRoomEnterResponseBanned = 6,			// You are banned from this chat room and may not join
-} EChatRoomEnterResponse;
+};
 
-typedef enum EChatAction
+enum EChatAction
 {
 	k_EChatActionInviteChat = 1,
 	k_EChatActionKick = 2,
 	k_EChatActionSetVisibleToFriends = 14,
 	k_EChatActionSetModerated = 15,
 	k_EChatActionSetUnmoderated = 16,
-} EChatAction;
+};
 
-typedef enum EChatActionResult
+enum EChatActionResult
 {
 	k_EChatActionResultSuccess = 1,
 	k_EChatActionResultError = 2,
 	k_EChatActionResultChatDoesntExist = 8,
 	k_EChatActionResultChatFull = 9,
 	k_EChatActionResultVoiceSlotsFull = 10,
-} EChatActionResult;
+};
 
 //-----------------------------------------------------------------------------
 // Purpose: user restriction flags
 //-----------------------------------------------------------------------------
-typedef enum EUserRestriction
+enum EUserRestriction
 {
 	k_nUserRestrictionNone		= 0,	// no known chat/content restriction
 	k_nUserRestrictionUnknown	= 1,	// we don't know yet (user offline)
 	k_nUserRestrictionVoiceChat	= 4,	// user is not allowed to (or can't) send/recv voice chat
 	k_nUserRestrictionGroupChat	= 8,	// user is not allowed to (or can't) send/recv group chat
 	k_nUserRestrictionRating	= 16,	// user is too young according to rating in current region
-} EUserRestriction;
+};
 
 
 // size limits on Rich Presence data
 enum { k_cchMaxRichPresenceValueLength = 256 };
 
 
+// maximum length of friend group name (not including terminating nul!)
+const int k_cchMaxFriendGroupName = 64;
+
+// maximum number of groups a single user is allowed
+const int k_cFriendGroupLimit = 100;
+
+
+
 #pragma pack( push, 8 )
 
 
-
 // k_iSteamFriendsCallbacks callbacks
 
 
 
 
 //-----------------------------------------------------------------------------
+// Purpose: called when an avatar is loaded in from a previous GetLargeFriendAvatar() call
+//			if the image wasn't already available
+//-----------------------------------------------------------------------------
+struct AvatarImageLoaded_t
+{
+	enum { k_iCallback = k_iSteamFriendsCallbacks + 34 };
+
+	CSteamID m_steamID; // steamid the avatar has been loaded for
+	int m_iImage; // the image index of the now loaded image
+	int m_iWide; // width of the loaded image
+	int m_iTall; // height of the loaded image
+};
+
+
+//-----------------------------------------------------------------------------
 // Purpose: marks the return of a request officer list call
 //-----------------------------------------------------------------------------
 struct ClanOfficerListResponse_t
 };
 
 
+//-----------------------------------------------------------------------------
+// Purpose: called when the user requests the history of player names on a given account
+//-----------------------------------------------------------------------------
+struct NameHistoryResponse_t
+{
+	enum { k_iCallback = k_iSteamFriendsCallbacks + 38 };
+	int m_cSuccessfulLookups;		// number of lookups that were successful
+	int m_cFailedLookups;			// number of lookups that failed for one reason or another
+};
+
 
 
 // k_iClientFriendsCallbacks callbacks

File Open Steamworks/GameCoordinatorCommon.h

 
 
 
-typedef enum EGCMsgResponse
+enum EGCMsgResponse
 {
 	k_EGCMsgResponseOK,
 	k_EGCMsgResponseDenied,
 	k_EGCMsgResponseNoMatch,
 	k_EGCMsgResponseUnknownError,
 	k_EGCMsgResponseNotLoggedOn,
-} EGCMsgResponse;
+};
 
 // list of possible return values from the ISteamGameCoordinator API
-typedef enum EGCResults
+enum EGCResults
 {
 	k_EGCResultOK = 0,
 	k_EGCResultNoMessage = 1,			// There is no message in the queue
 	k_EGCResultBufferTooSmall = 2,		// The buffer is too small for the requested message
 	k_EGCResultNotLoggedOn = 3,			// The client is not logged onto Steam
 	k_EGCResultInvalidMessage = 4,		// Something was wrong with the message being sent with SendMessage
-} EGCResults;
+};
 
 /**
  * Valve moved a lot of messages to the protobuf format.

File Open Steamworks/GameServerCommon.h

 
 
 // Result codes to GSHandleClientDeny/Kick
-typedef enum EDenyReason
+enum EDenyReason
 {
 	k_EDenyInvalidVersion = 1,
 	k_EDenyGeneric = 2,
 	k_EDenySteamResponseTimedOut = 13,
 	k_EDenySteamValidationStalled = 14,
 	k_EDenySteamOwnerLeftGuestUser = 15,
-} EDenyReason;
+};
 
 
 #pragma pack( push, 8 )

File Open Steamworks/GameStatsCommon.h

 //-----------------------------------------------------------------------------
 // Purpose: nAccountType for GetNewSession
 //-----------------------------------------------------------------------------
-typedef enum EGameStatsAccountType
+enum EGameStatsAccountType
 {
 	k_EGameStatsAccountType_Steam = 1,				// ullAccountID is a 64-bit SteamID for a player
 	k_EGameStatsAccountType_Xbox = 2,				// ullAccountID is a 64-bit XUID
 	k_EGameStatsAccountType_SteamGameServer = 3,	// ullAccountID is a 64-bit SteamID for a game server
-} EGameStatsAccountType;
+};
 
 
 

File Open Steamworks/HTTPCommon.h

 
 
 // This enum is used in client API methods, do not re-number existing values.
-typedef enum EHTTPMethod
+enum EHTTPMethod
 {
 	k_EHTTPMethodInvalid = 0,
 	k_EHTTPMethodGET,
 	// k_EHTTPMethodDELETE,
 	// k_EHTTPMethodTRACE,
 	// k_EHTTPMethodCONNECT
-} EHTTPMethod;
+};
 
 
 // HTTP Status codes that the server can send in response to a request, see rfc2616 section 10.3 for descriptions

File Open Steamworks/IClientScreenshots.h

 	virtual const char *GetShortcutDisplayName( CGameID gameID ) = 0;
 	virtual void SetShortcutDisplayName( CGameID, const char *cszName ) = 0;
 
-	virtual HScreenshot WriteScreenshot( CGameID, const uint8 *pubRGBData, uint32 uRGBDataSize, int32 iWidth, int32 iHeight ) = 0;
-	virtual HScreenshot AddScreenshotToLibrary( CGameID, const char *cszScreenshotPath, const char *cszThumbnailPath, int32 iWidth, int32 iHeight ) = 0;
+	virtual ScreenshotHandle WriteScreenshot( CGameID, const uint8 *pubRGBData, uint32 uRGBDataSize, int32 iWidth, int32 iHeight ) = 0;
+	virtual ScreenshotHandle AddScreenshotToLibrary( CGameID, const char *cszScreenshotPath, const char *cszThumbnailPath, int32 iWidth, int32 iHeight ) = 0;
 
 	virtual void TriggerScreenshot( CGameID gameID ) = 0;
 	virtual void RequestScreenshotFromGame( AppId_t nAppId ) = 0;
 
-	virtual bool SetLocation( CGameID gameID, HScreenshot hScreenshot, const char *cszLocation ) = 0;
-	virtual bool TagUser( CGameID gameID, HScreenshot hScreenshot, CSteamID userID ) = 0;
+	virtual bool SetLocation( CGameID gameID, ScreenshotHandle hScreenshot, const char *cszLocation ) = 0;
+	virtual bool TagUser( CGameID gameID, ScreenshotHandle hScreenshot, CSteamID userID ) = 0;
 
-	virtual bool ResolvePath( CGameID gameID, HScreenshot hScreenshot, bool bUnk, char *szResolvedPath, uint32 cubResolvedPath ) = 0;
-	virtual uint32 GetSizeOnDisk( CGameID gameID, HScreenshot hScreenshot ) = 0;
-	virtual uint32 GetSizeInCloud( CGameID gameID, HScreenshot hScreenshot ) = 0;
-	virtual bool IsPersisted( CGameID gameID, HScreenshot hScreenshot ) = 0;
+	virtual bool ResolvePath( CGameID gameID, ScreenshotHandle hScreenshot, bool bUnk, char *szResolvedPath, uint32 cubResolvedPath ) = 0;
+	virtual uint32 GetSizeOnDisk( CGameID gameID, ScreenshotHandle hScreenshot ) = 0;
+	virtual uint32 GetSizeInCloud( CGameID gameID, ScreenshotHandle hScreenshot ) = 0;
+	virtual bool IsPersisted( CGameID gameID, ScreenshotHandle hScreenshot ) = 0;
 
 	virtual int32 GetNumGamesWithLocalScreenshots() = 0;
 	virtual CGameID GetGameWithLocalScreenshots( int32 iGameIndex ) = 0;
 
 	virtual int32 GetLocalScreenshotCount( CGameID gameID ) = 0;
-	virtual bool GetLocalScreenshot( CGameID gameID, int32 iScreenshotIndex, HScreenshot* phScreenshot, int32 *piWidth, int32 *piHeight, uint32 *puTimestamp, EUCMFilePrivacyState *pePrivacy, uint64* pullFileID, char *pchCaption, uint32 cubCaption ) = 0;
-	virtual bool SetLocalScreenshotCaption( CGameID gameID, HScreenshot hScreenshot, const char *cszCaption ) = 0;
-	virtual bool SetLocalScreenshotPrivacy( CGameID gameID, HScreenshot hScreenshot, EUCMFilePrivacyState ePrivacy ) = 0;
+	virtual bool GetLocalScreenshot( CGameID gameID, int32 iScreenshotIndex, ScreenshotHandle* phScreenshot, int32 *piWidth, int32 *piHeight, uint32 *puTimestamp, EUCMFilePrivacyState *pePrivacy, uint64* pullFileID, char *pchCaption, uint32 cubCaption ) = 0;
+	virtual bool SetLocalScreenshotCaption( CGameID gameID, ScreenshotHandle hScreenshot, const char *cszCaption ) = 0;
+	virtual bool SetLocalScreenshotPrivacy( CGameID gameID, ScreenshotHandle hScreenshot, EUCMFilePrivacyState ePrivacy ) = 0;
 
 	virtual bool StartBatch( CGameID gameID ) = 0;
-	virtual bool AddToBatch( HScreenshot hScreenshot ) = 0;
+	virtual bool AddToBatch( ScreenshotHandle hScreenshot ) = 0;
 	virtual SteamAPICall_t UploadBatch( EUCMFilePrivacyState ePrivacy ) = 0;
 	virtual SteamAPICall_t DeleteBatch( bool bDeleteFromCloud ) = 0;
 	virtual bool CancelBatch() = 0;
 
 	virtual void RecoverOldScreenshots() = 0;
-	virtual int32 GetTaggedUserCount( CGameID gameID, HScreenshot hScreenshot ) = 0;
-	virtual CSteamID GetTaggedUser( CGameID gameID, HScreenshot hScreenshot, int32 iUserIndex ) = 0;
-	virtual bool GetLocation( CGameID gameID, HScreenshot hScreenshot, char *pchLocation, uint32 cubLocation ) = 0;
+	virtual int32 GetTaggedUserCount( CGameID gameID, ScreenshotHandle hScreenshot ) = 0;
+	virtual CSteamID GetTaggedUser( CGameID gameID, ScreenshotHandle hScreenshot, int32 iUserIndex ) = 0;
+	virtual bool GetLocation( CGameID gameID, ScreenshotHandle hScreenshot, char *pchLocation, uint32 cubLocation ) = 0;
 };
 
 #endif // ICLIENTSCREENSHOTS_H

File Open Steamworks/ISteamClient011.h

 	// Trigger global shutdown for the DLL
 	virtual bool BShutdownIfAllPipesClosed() = 0;
 
+	// Expose HTTP interface
 	virtual ISteamHTTP* GetISteamHTTP( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0;
 };
 

File Open Steamworks/ISteamHTTP001.h

 	// zero for the duration of the request as the size is unknown until the connection closes.
 	virtual bool GetHTTPDownloadProgressPct( HTTPRequestHandle hRequest, float *pflPercentOut ) = 0;
 	
-	virtual bool SetHTTPRequestRawPostBody( HTTPRequestHandle hRequest, const char *pchContentType, uint8 *pubBodyData, uint32 cubBodyData ) = 0;
+	// Sets the body for an HTTP Post request.  Will fail and return false on a GET request, and will fail if POST params
+	// have already been set for the request.  Setting this raw body makes it the only contents for the post, the pchContentType
+	// parameter will set the content-type header for the request so the server may know how to interpret the body.
+	virtual bool SetHTTPRequestRawPostBody( HTTPRequestHandle hRequest, const char *pchContentType, uint8 *pubBody, uint32 unBodyLen ) = 0;
 };
 
 #endif // ISTEAMHTTP001_H

File Open Steamworks/ISteamScreenshots001.h

 #include "SteamTypes.h"
 #include "ScreenshotsCommon.h"
 
-
+//-----------------------------------------------------------------------------
+// Purpose: Functions for adding screenshots to the user's screenshot library
+//-----------------------------------------------------------------------------
 abstract_class ISteamScreenshots001
 {
 
 public:
-	virtual HScreenshot WriteScreenshot( const uint8 *pubRGBData, uint32 uRGBDataSize, int32 iWidth, int32 iHeight ) = 0;
-	virtual HScreenshot AddScreenshotToLibrary( const char* cszScreenshotPath, const char* cszThumbnailPath, int32 iWidth, int32 iHeight ) = 0;
+	// Writes a screenshot to the user's screenshot library given the raw image data, which must be in RGB format.
+	// The return value is a handle that is valid for the duration of the game process and can be used to apply tags.
+	virtual ScreenshotHandle WriteScreenshot( void *pubRGB, uint32 cubRGB, int nWidth, int nHeight ) = 0;
 
+	// Adds a screenshot to the user's screenshot library from disk.  If a thumbnail is provided, it must be 200 pixels wide and the same aspect ratio
+	// as the screenshot, otherwise a thumbnail will be generated if the user uploads the screenshot.  The screenshots must be in either JPEG or TGA format.
+	// The return value is a handle that is valid for the duration of the game process and can be used to apply tags.
+	virtual ScreenshotHandle AddScreenshotToLibrary( const char *pchJpegOrTGAFilename, const char *pchJpegOrTGAThumbFilename, int nWidth, int nHeight ) = 0;
+
+	// Causes the Steam overlay to take a screenshot.  If screenshots are being hooked by the game then a ScreenshotRequested_t callback is sent back to the game instead. 
 	virtual void TriggerScreenshot() = 0;
-	virtual void HookScreenshots( bool ) = 0;
 
-	virtual bool SetLocation( HScreenshot hScreenshot, const char * cszLocation ) = 0;
-	virtual bool TagUser( HScreenshot hScreenshot, CSteamID steamIDUser ) = 0;
+	// Toggles whether the overlay handles screenshots when the user presses the screenshot hotkey, or the game handles them.  If the game is hooking screenshots,
+	// then the ScreenshotRequested_t callback will be sent if the user presses the hotkey, and the game is expected to call WriteScreenshot or AddScreenshotToLibrary
+	// in response.
+	virtual void HookScreenshots( bool bHook ) = 0;
 
+	// Sets metadata about a screenshot's location (for example, the name of the map)
+	virtual bool SetLocation( ScreenshotHandle hScreenshot, const char *pchLocation ) = 0;
+
+	// Tags a user as being visible in the screenshot
+	virtual bool TagUser( ScreenshotHandle hScreenshot, CSteamID steamID ) = 0;
 };
 
 

File Open Steamworks/MatchmakingCommon.h

 
 
 // lobby search filter tools
-typedef enum ELobbyComparison
+enum ELobbyComparison
 {
 	k_ELobbyComparisonEqualToOrLessThan = -2,
 	k_ELobbyComparisonLessThan = -1,
 	k_ELobbyComparisonGreaterThan = 1,
 	k_ELobbyComparisonEqualToOrGreaterThan = 2,
 	k_ELobbyComparisonNotEqual = 3,
-} ELobbyComparison;
+};
 
 
 // lobby search distance
-typedef enum ELobbyDistanceFilter
+enum ELobbyDistanceFilter
 {
 	k_ELobbyDistanceFilterClose,		// only lobbies in the same immediate region will be returned
 	k_ELobbyDistanceFilterDefault,		// only lobbies in the same region or close, but looking further if the current region has infrequent lobby activity (the default)
 	k_ELobbyDistanceFilterFar,			// for games that don't have many latency requirements, will return lobbies about half-way around the globe
 	k_ELobbyDistanceFilterWorldwide,	// no filtering, will match lobbies as far as India to NY (not recommended, expect multiple seconds of latency between the clients)
-} ELobbyDistanceFilter;
+};
 
+// maximum number of characters a lobby metadata key can be
+#define k_nMaxLobbyKeyLength 255
 
 
 #pragma pack( push, 8 )

File Open Steamworks/NetworkingCommon.h

 
 // SendP2PPacket() send types
 // Typically k_EP2PSendUnreliable is what you want for UDP-like packets, k_EP2PSendReliable for TCP-like packets
-typedef enum EP2PSend
+enum EP2PSend
 {
 	// Basic UDP send. Packets can't be bigger than 1200 bytes (your typical MTU size). Can be lost, or arrive out of order (rare).
 	// The sending API does have some knowledge of the underlying connection, so if there is no NAT-traversal accomplished or
 	// do a normal k_EP2PSendReliable to force all the buffered data to be sent.
 	k_EP2PSendReliableWithBuffering = 3,
 
-} EP2PSend;
+};
 
 // list of possible errors returned by SendP2PPacket() API
 // these will be posted in the P2PSessionConnectFail_t callback
-typedef enum EP2PSessionError
+enum EP2PSessionError
 {
 	k_EP2PSessionErrorNone = 0,
 	k_EP2PSessionErrorNotRunningApp = 1,			// target is not running the same game
 	// corporate firewalls can also block this (NAT traversal is not firewall traversal)
 	// make sure that UDP ports 3478, 4379, and 4380 are open in an outbound direction
 	k_EP2PSessionErrorMax = 5
-} EP2PSessionError;
+};
 
 // describes how the socket is currently connected
-typedef enum ESNetSocketConnectionType
+enum ESNetSocketConnectionType
 {
 	k_ESNetSocketConnectionTypeNotConnected = 0,
 	k_ESNetSocketConnectionTypeUDP = 1,
 	k_ESNetSocketConnectionTypeUDPRelay = 2,
-} ESNetSocketConnectionType;
+};
 
 // connection progress indicators
-typedef enum ESNetSocketState
+enum ESNetSocketState
 {
 	k_ESNetSocketStateInvalid = 0,						
 
 	k_ESNetSocketStateRemoteEndDisconnected = 24,	// the remote end has disconnected from us
 	k_ESNetSocketStateConnectionBroken = 25,		// connection has been broken; either the other end has disappeared or our local network connection has broke
 
-} ESNetSocketState;
+};
 
 
 
 
 
 // callback notification - status of a socket has changed
+// used as part of the CreateListenSocket() / CreateP2PConnectionSocket() 
 struct SocketStatusCallback_t
 { 
 	enum { k_iCallback = k_iSteamNetworkingCallbacks + 1 };

File Open Steamworks/Open Steamworks.vcproj

 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
 	ProjectType="Visual C++"
-	Version="9,00"
+	Version="9.00"
 	Name="Open Steamworks"
 	ProjectGUID="{A0C16874-A8AD-48C4-AE6E-DECF5C70D7FB}"
 	RootNamespace="SteamclientAPI"
 					>
 				</File>
 				<File
+					RelativePath=".\EResult.h"
+					>
+				</File>
+				<File
 					RelativePath=".\FriendGameInfo.h"
 					>
 				</File>
 					RelativePath=".\servernetadr.h"
 					>
 				</File>
-				<Filter
-					Name="Enums"
-					>
-					<File
-						RelativePath=".\EAccountType.h"
-						>
-					</File>
-					<File
-						RelativePath=".\EChatMemberStateChange.h"
-						>
-					</File>
-					<File
-						RelativePath=".\ELobbyType.h"
-						>
-					</File>
-					<File
-						RelativePath=".\ENotificationPosition.h"
-						>
-					</File>
-					<File
-						RelativePath=".\EPersonalQuestion.h"
-						>
-					</File>
-					<File
-						RelativePath=".\EResult.h"
-						>
-					</File>
-					<File
-						RelativePath=".\EServerMode.h"
-						>
-					</File>
-					<File
-						RelativePath=".\EUniverse.h"
-						>
-					</File>
-				</Filter>
 			</Filter>
 			<Filter
 				Name="Client Interfaces"
 					</File>
 				</Filter>
 				<Filter
-					Name="ISteamGameServerItems"
-					>
-					<File
-						RelativePath=".\GameServerItemsCommon.h"
-						>
-					</File>
-					<File
-						RelativePath=".\ISteamGameServerItems002.h"
-						>
-					</File>
-					<File
-						RelativePath=".\ISteamGameServerItems003.h"
-						>
-					</File>
-					<File
-						RelativePath=".\ISteamGameServerItems004.h"
-						>
-					</File>
-				</Filter>
-				<Filter
 					Name="ISteamMasterServerUpdater"
 					>
 					<File
 					</File>
 				</Filter>
 				<Filter
-					Name="ISteamUserItems"
-					>
-					<File
-						RelativePath=".\ISteamUserItems001.h"
-						>
-					</File>
-					<File
-						RelativePath=".\ISteamUserItems002.h"
-						>
-					</File>
-					<File
-						RelativePath=".\ISteamUserItems003.h"
-						>
-					</File>
-					<File
-						RelativePath=".\ISteamUserItems004.h"
-						>
-					</File>
-					<File
-						RelativePath=".\UserItemsCommon.h"
-						>
-					</File>
-				</Filter>
-				<Filter
 					Name="ISteamUserStats"
 					>
 					<File
 				</File>
 			</Filter>
 		</Filter>
-		<File
-			RelativePath=".\Interface_OSW.h"
+		<Filter
+			Name="Loader"
 			>
-		</File>
-		<File
-			RelativePath=".\POSIXLibrary.h"
-			>
-		</File>
+			<File
+				RelativePath=".\Interface_OSW.h"
+				>
+			</File>
+			<File
+				RelativePath=".\POSIXLibrary.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Win32Library.h"
+				>
+			</File>
+		</Filter>
 		<File
 			RelativePath=".\SteamTypes.h"
 			>
 			RelativePath=".\Steamworks.h"
 			>
 		</File>
-		<File
-			RelativePath=".\Win32Library.h"
-			>
-		</File>
 	</Files>
 	<Globals>
 	</Globals>

File Open Steamworks/RemoteStorageCommon.h

 
 
 
-typedef enum ERemoteStorageFileRoot
+enum ERemoteStorageFileRoot
 {
 	k_ERemoteStorageFileRootInvalid = 0,
 	k_ERemoteStorageFileRootDefault,
 	k_ERemoteStorageFileRootMacAppSupport,
 	k_ERemoteStorageFileRootMacDocuments,
 	k_ERemoteStorageFileRootMax
-} ERemoteStorageFileRoot;
+};
 
-typedef enum ERemoteStorageSyncState
+enum ERemoteStorageSyncState
 {
 	k_ERemoteSyncStateUnknown = 0,
 	k_ERemoteSyncStateSynchronized = 1,
 	k_ERemoteSyncStatePendingChangesInCloud = 3,
 	k_ERemoteSyncStatePendingChangesLocally = 4,
 	k_ERemoteSyncStatePendingChangesInCloudAndLocally = 5,
-} ERemoteStorageSyncState;
+};
 
-typedef enum EUCMFilePrivacyState
+enum EUCMFilePrivacyState
 {
 	k_EUCMFilePrivacyStatePrivate = 2,
 	k_EUCMFilePrivacyStateFriendsOnly = 4,
 	k_EUCMFilePrivacyStatePublic = 8,
-} EUCMFilePrivacyState;
+};
 
-typedef enum ERemoteStoragePlatform
+enum ERemoteStoragePlatform
 {
 	k_ERemoteStoragePlatformNone		= 0,
 	k_ERemoteStoragePlatformWindows		= (1 << 0),
 	k_ERemoteStoragePlatformReserved2	= (1 << 4),
 
 	k_ERemoteStoragePlatformAll = 0xffffffff
-} ERemoteStoragePlatform;
+};
 
 // Ways to handle a synchronization conflict
-typedef enum EResolveConflict
+enum EResolveConflict
 {
 	k_EResolveConflictKeepClient = 1,		// The local version of each file will be used to overwrite the server version
 	k_EResolveConflictKeepServer = 2,		// The server version of each file will be used to overwrite the local version
-} EResolveConflict;
+};
 
 
 struct RemoteStorageUpdatePublishedFileRequest_t;
 	bool m_bUploading;							// if false, downloading
 };
 
+//-----------------------------------------------------------------------------
+// Purpose: Sent after we've determined the list of files that are out of sync
+//          with the server.
+//-----------------------------------------------------------------------------
+struct RemoteStorageAppSyncStatusCheck_t
+{
+	enum { k_iCallback = k_iClientRemoteStorageCallbacks + 5 };
+	AppId_t m_nAppID;
+	EResult m_eResult;
+};
+
+
 
 //-----------------------------------------------------------------------------
 // Purpose: Sent after a conflict resolution attempt.

File Open Steamworks/ScreenshotsCommon.h

 #define CLIENTSCREENSHOTS_INTERFACE_VERSION "CLIENTSCREENSHOTS_INTERFACE_VERSION001"
 #define STEAMSCREENSHOTS_INTERFACE_VERSION_001 "STEAMSCREENSHOTS_INTERFACE_VERSION001"
 
-// types
-typedef uint32 HScreenshot;
+// Handle is valid for the lifetime of your process and no longer
+typedef uint32 ScreenshotHandle;
+#define INVALID_SCREENSHOT_HANDLE 0
+
+const uint32 k_nScreenshotMaxTaggedUsers = 32;
+const int k_cubUFSTagTypeMax = 255;
+const int k_cubUFSTagValueMax = 255;
+
 
 // callbacks
 #pragma pack( push, 8 )
 
+//-----------------------------------------------------------------------------
+// Purpose: Screenshot successfully written or otherwise added to the library
+// and can now be tagged
+//-----------------------------------------------------------------------------
+struct ScreenshotReady_t
+{
+	enum { k_iCallback = k_iSteamScreenshotsCallbacks + 1 };
+	ScreenshotHandle m_hLocal;
+	EResult m_eResult;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: Screenshot has been requested by the user.  Only sent if
+// HookScreenshots() has been called, in which case Steam will not take
+// the screenshot itself.
+//-----------------------------------------------------------------------------
+struct ScreenshotRequested_t
+{
+	enum { k_iCallback = k_iSteamScreenshotsCallbacks + 2 };
+};
+
 #pragma pack( pop )
 
 

File Open Steamworks/SteamTypes.h

 #endif
 
 // steamclient/api
-#include "EAccountType.h"
-#include "EChatMemberStateChange.h"
-#include "ELobbyType.h"
-#include "ENotificationPosition.h"
-#include "EPersonalQuestion.h"
+
 #include "EResult.h"
-#include "EUniverse.h"
-#include "EServerMode.h"
+
+
+// lobby type description
+enum ELobbyType
+{
+	k_ELobbyTypeFriendsOnly = 1,	// shows for friends or invitees, but not in lobby list
+	k_ELobbyTypePublic = 2,			// visible for friends and in lobby list
+	k_ELobbyTypeInvisible = 3,		// returned by search, but not visible to other friends 
+	//    useful if you want a user in two lobbies, for example matching groups together
+	//	  a user can be in only one regular lobby, and up to two invisible lobbies
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: Possible positions to tell the overlay to show notifications in
+//-----------------------------------------------------------------------------
+enum ENotificationPosition
+{
+	k_EPositionTopLeft = 0,
+	k_EPositionTopRight = 1,
+	k_EPositionBottomLeft = 2,
+	k_EPositionBottomRight = 3,
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: Used in ChatInfo messages - fields specific to a chat member - must fit in a uint32
+//-----------------------------------------------------------------------------
+enum EChatMemberStateChange
+{
+	// Specific to joining / leaving the chatroom
+	k_EChatMemberStateChangeEntered			= 0x0001,		// This user has joined or is joining the chat room
+	k_EChatMemberStateChangeLeft			= 0x0002,		// This user has left or is leaving the chat room
+	k_EChatMemberStateChangeDisconnected	= 0x0004,		// User disconnected without leaving the chat first
+	k_EChatMemberStateChangeKicked			= 0x0008,		// User kicked
+	k_EChatMemberStateChangeBanned			= 0x0010,		// User kicked and banned
+};
+
+
+enum EServerMode
+{
+	eServerModeInvalid = 0, // DO NOT USE		
+	eServerModeNoAuthentication = 1, // Don't authenticate user logins and don't list on the server list
+	eServerModeAuthentication = 2, // Authenticate users, list on the server list, don't run VAC on clients that connect
+	eServerModeAuthenticationAndSecure = 3, // Authenticate users, list on the server list and VAC protect clients
+};
+
+// Steam universes.  Each universe is a self-contained Steam instance.
+enum EUniverse
+{
+	k_EUniverseInvalid = 0,
+	k_EUniversePublic = 1,
+	k_EUniverseBeta = 2,
+	k_EUniverseInternal = 3,
+	k_EUniverseDev = 4,
+	k_EUniverseRC = 5,
+
+	k_EUniverseMax
+};
+
+
 
 // these is outside NO_STEAM because external things use it
 #include "ESteamError.h"
 	k_iSteamGameServerStatsCallbacks = 1800,
 	k_iSteam2AsyncCallbacks = 1900,
 	k_iSteamGameStatsCallbacks = 2000,
-	k_iClientHTTPCallbacks = 2100
+	k_iClientHTTPCallbacks = 2100,
+	k_iClientScreenshotsCallbacks = 2200,
+	k_iSteamScreenshotsCallbacks = 2300,
+	k_iClientAudioCallbacks = 2400,
 };
 
 
 	int m_cubParam;
 };
 
+
+
 #endif // STEAMTYPES_H
 

File Open Steamworks/Steamclient.h

 #include "ISteamUser015.h"
 #include "ISteamUser016.h"
 
-// user items
-#include "ISteamUserItems001.h"
-#include "ISteamUserItems002.h"
-#include "ISteamUserItems003.h"
-#include "ISteamUserItems004.h"
-
 // apps
 #include "ISteamApps001.h"
 #include "ISteamApps002.h"
 #include "ISteam2Bridge001.h"
 #include "ISteam2Bridge002.h"
 
-// game server items
-#include "ISteamGameServerItems002.h"
-#include "ISteamGameServerItems003.h"
-#include "ISteamGameServerItems004.h"
-
 // game coordinator
 #include "ISteamGameCoordinator001.h"
 

File Open Steamworks/UserStatsCommon.h

 // types of user game stats fields
 // WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
 //-----------------------------------------------------------------------------
-typedef enum ESteamUserStatType
+enum ESteamUserStatType
 {
 	k_ESteamUserStatTypeINVALID = 0,
 	k_ESteamUserStatTypeINT = 1,
 	k_ESteamUserStatTypeAVGRATE = 3,
 	k_ESteamUserStatTypeACHIEVEMENTS = 4,
 	k_ESteamUserStatTypeGROUPACHIEVEMENTS = 5,
-} ESteamUserStatType;
+};
 
 // type of data request, when downloading leaderboard entries
-typedef enum ELeaderboardDataRequest
+enum ELeaderboardDataRequest
 {
 	k_ELeaderboardDataRequestGlobal = 0,
 	k_ELeaderboardDataRequestGlobalAroundUser = 1,
 	k_ELeaderboardDataRequestFriends = 2,
-} ELeaderboardDataRequest;
+};
 
 // the display type (used by the Steam Community web site) for a leaderboard
-typedef enum ELeaderboardDisplayType
+enum ELeaderboardDisplayType
 {
 	k_ELeaderboardDisplayTypeNone = 0, 
 	k_ELeaderboardDisplayTypeNumeric = 1,			// simple numerical score
 	k_ELeaderboardDisplayTypeTimeSeconds = 2,		// the score represents a time, in seconds
 	k_ELeaderboardDisplayTypeTimeMilliSeconds = 3,	// the score represents a time, in milliseconds
-} ELeaderboardDisplayType;
+};
 
-typedef enum ELeaderboardUploadScoreMethod
+enum ELeaderboardUploadScoreMethod
 {
 	k_ELeaderboardUploadScoreMethodNone = 0,
 	k_ELeaderboardUploadScoreMethodKeepBest = 1,	// Leaderboard will keep user's best score
 	k_ELeaderboardUploadScoreMethodForceUpdate = 2,	// Leaderboard will always replace score with specified
-} ELeaderboardUploadScoreMethod;
+};
 
 // the sort order of a leaderboard
-typedef enum ELeaderboardSortMethod
+enum ELeaderboardSortMethod
 {
 	k_ELeaderboardSortMethodNone = 0,
 	k_ELeaderboardSortMethodAscending = 1,	// top-score is lowest number
 	k_ELeaderboardSortMethodDescending = 2,	// top-score is highest number
-} ELeaderboardSortMethod;
+};
 
-typedef enum EGetAchievementIcon
+enum EGetAchievementIcon
 {
 	// TODO : Reverse this enum, default value seems to be 0
-} EGetAchievementIcon;
+};
 
 #pragma pack( push, 8 )