TSteamFriends
Interface to access information about individual users and interact with the Steam Overlay.
Methods
Method SetListener(listener:ISteamFriendsListener)
Sets the steam utils callback listener.
Once installed, the listener will receive utils events via the callback methods.
Method ActivateGameOverlay(dialog:String)
Activates the Steam Overlay to a specific dialog.
This is equivalent to calling ActivateGameOverlayToUser with steamID set to ISteamUser::GetSteamID. Valid options are: "friends", "community", "players", "settings", "officialgamegroup", "stats", "achievements".
Method ActivateGameOverlayInviteDialog(steamIDLobby:ULong)
Activates the Steam Overlay to open the invite dialog.
Invitations sent from this dialog will be for the provided lobby.
Method ActivateGameOverlayToStore(appID:UInt, flag:EOverlayToStoreFlag )
Activates the Steam Overlay to the Steam store page for the provided app.
Using k_uAppIdInvalid brings the user to the front page of the Steam store.
Method ActivateGameOverlayToUser(dialog:String, steamID:ULong)
Activates Steam Overlay to a specific dialog.
Valid dialog options are:
- "steamid" - Opens the overlay web browser to the specified user or groups profile.
- "chat" - Opens a chat window to the specified user, or joins the group chat.
- "jointrade" - Opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API.
- "stats" - Opens the overlay web browser to the specified user's stats.
- "achievements" - Opens the overlay web browser to the specified user's achievements.
- "friendadd" - Opens the overlay in minimal mode prompting the user to add the target user as a friend.
- "friendremove" - Opens the overlay in minimal mode prompting the user to remove the target friend.
- "friendrequestaccept" - Opens the overlay in minimal mode prompting the user to accept an incoming friend invite.
- "friendrequestignore" - Opens the overlay in minimal mode prompting the user to ignore an incoming friend invite.
Method ActivateGameOverlayToWebPage(url:String)
Activates Steam Overlay web browser directly to the specified URL.
A fully qualified address with the protocol is required, e.g. "http://www.steampowered.com"
Method ClearRichPresence()
Clears all of the current user's Rich Presence key/values.
Method CloseClanChatWindowInSteam:Int(steamIDClanChat:ULong)
Closes the specified Steam group chat room in the Steam UI.
See Also: IsClanChatWindowOpenInSteam, OpenClanChatWindowInSteam
Returns
True if the user successfully left the Steam group chat room, otherwise False if the user is not in the provided Steam group chat room.
Method DownloadClanActivityCounts(steamIDClans:ULong Ptr, clansToRequest:Int)
Refreshes the Steam Group activity data or get the data from groups other than one that the current user is a member.
After receiving the callback you can then use GetClanActivityCounts to get the up to date user counts.
Method EnumerateFollowingList(startIndex:UInt)
Gets the list of users that the current user is following.
You can be following people that are not your friends. Following allows you to receive updates when the person does things like post a new piece of content to the Steam Workshop.
NOTE: This returns up to k_cEnumerateFollowersMax users at once. If the current user is following more than that, you will need to call this repeatedly, with unStartIndex set to the total number of followers that you have received so far. i.e. If you have received 50 followers, and the user is following 105, you will need to call this again with unStartIndex = 50 to get the next 50, and then again with unStartIndex = 100 to get the remaining 5 users.
Method GetChatMemberByIndex:ULong(steamIDClan:ULong, user:Int)
Gets the Steam ID at the given index in a Steam group chat.
NOTE: You must call GetClanChatMemberCount before calling this.
Method GetClanActivityCounts:Int(steamIDClan:ULong, online:Int Var, inGame:Int Var, chatting:Int Var)
Gets the most recent information we have about what the users in a Steam Group are doing.
This can only retrieve data that the local client knows about. To refresh the data or get data from a group other than one that the current user is a member of you must call DownloadClanActivityCounts.
Returns
True if the data was successfully returned, otherwise False if the provided Steam ID is invalid or the local client does not have info about the Steam group and sets all the other parameters to 0.
Method GetClanByIndex:ULong(clan:Int)
Gets the Steam group's Steam ID at the given index.
NOTE: You must call GetClanCount before calling this.
Method GetClanChatMemberCount:Int(steamIDClan:ULong)
Gets the number of users in a Steam group chat.
NOTE: Large steam groups cannot be iterated by the local user.
NOTE: The current user must be in a lobby to retrieve the Steam IDs of other users in that lobby.
This is used for iteration, after calling this then GetChatMemberByIndex can be used to get the Steam ID of each person in the chat.
Returns
0 if the Steam ID provided is invalid or if the local user doesn't have the data available.
Method GetClanChatMessage:Int(steamIDClanChat:ULong, message:Int, txt:String Var, chatEntryType:EChatEntryType Var, steamidChatter:ULong Var)
Gets the data from a Steam group chat room message.
This should only ever be called in response to an OnGameConnectedClanChatMsg callback.
Returns
The number of bytes copied into txt. Returns 0 and sets chatEntryType to k_EChatEntryTypeInvalid if the current user is not in the specified Steam group chat room or if the index provided in iMessage is invalid.
Method GetClanCount:Int()
Gets the number of Steam groups that the current user is a member of.
This is used for iteration, after calling this then GetClanByIndex can be used to get the Steam ID of each Steam group.
Returns
The number of Steam groups that the user is a member of.
Method GetClanName:String(steamIDClan:ULong)
Gets the display name for the specified Steam group; if the local client knows about it.
See Also: DownloadClanActivityCounts
Returns
The Steam groups name. Returns an empty string ("") if the provided Steam ID is invalid or the user does not know about the group.
Method GetClanOfficerByIndex:ULong(steamIDClan:ULong, officer:Int)
Gets the Steam ID of the officer at the given index in a Steam group.
NOTE: You must call GetClanOfficerCount before calling this.
Method GetClanOfficerCount:Int(steamIDClan:ULong)
Gets the number of officers (administrators and moderators) in a specified Steam group.
This also includes the owner of the Steam group.
This is used for iteration, after calling this then GetClanOfficerByIndex can be used to get the Steam ID of each officer.
NOTE: You must call RequestClanOfficerList before this to get the required data!
Returns
The number of officers in the Steam group. Returns 0 if steamIDClan is invalid or if RequestClanOfficerList has not been called for it.
Method GetClanOwner:ULong(steamIDClan:ULong)
Gets the owner of a Steam Group.
NOTE: You must call RequestClanOfficerList before this to get the required data!
Returns
Returns k_steamIDNil if steamIDClan is invalid or if RequestClanOfficerList has not been called for it.
Method GetClanTag:String(steamIDClan:ULong)
Gets the unique tag (abbreviation) for the specified Steam group; If the local client knows about it.
The Steam group abbreviation is a unique way for people to identify the group and is limited to 12 characters. In some games this will appear next to the name of group members.
Returns
The Steam groups tag, or an empty string ("") if the provided Steam ID is invalid or the user does not know about the group.
Method GetCoplayFriend:ULong(coplayFriend:Int)
Gets the Steam ID of the recently played with user at the given index.
NOTE: You must call GetCoplayFriendCount before calling this.
Method GetCoplayFriendCount:Int()
Gets the number of players that the current users has recently played with, across all games.
This is used for iteration, after calling this then GetCoplayFriend can be used to get the Steam ID of each player.
These players are have been set with previous calls to SetPlayedWith.
Returns
The number of users that the current user has recently played with.
Method GetFollowerCount(steamID:ULong)
Gets the number of users following the specified user.
Triggers an OnFriendsGetFollowerCount callback.
Method GetFriendByIndex:ULong(friend:Int, friendFlags:Int)
Gets the Steam ID of the user at the given index.
NOTE: You must call GetFriendCount before calling this.
Method GetFriendCoplayGame:UInt(steamIDFriend:ULong)
Gets the app ID of the game that user played with someone on their recently-played-with list.
Method GetFriendCoplayTime:Int(steamIDFriend:ULong)
Gets the timestamp of when the user played with someone on their recently-played-with list.
Returns
The time is provided in Unix epoch format (seconds since Jan 1st 1970). Steam IDs not in the recently-played-with list return 0.
Method GetFriendCount:Int(friendFlags:Int)
Gets the number of users the client knows about who meet a specified criteria. (Friends, blocked, users on the same server, etc)
This can be used to iterate over all of the users by calling GetFriendByIndex to get the Steam IDs of each user.
NOTE: Returns -1 if the current user is not logged on.
Returns
The number of users that meet the specified criteria.
Method GetFriendCountFromSource:Int(steamIDSource:ULong)
Get the number of users in a source (Steam group, chat room, lobby, or game server).
NOTE: Large Steam groups cannot be iterated by the local user.
NOTE: If you're getting the number of lobby members then you should use ISteamMatchmaking::GetNumLobbyMembers instead.
This is used for iteration, after calling this then GetFriendFromSourceByIndex can be used to get the Steam ID of each person in the source.
Returns
0 if the Steam ID provided is invalid or if the local user doesn't have the data available.
Method GetFriendFromSourceByIndex:ULong(steamIDSource:ULong, friend:Int)
Gets the Steam ID at the given index from a source (Steam group, chat room, lobby, or game server).
NOTE: You must call GetFriendCountFromSource before calling this.
Method GetFriendGamePlayed:Int(steamIDFriend:ULong, gameID:ULong Var, gameIP:UInt Var, gamePort:Short Var, queryPort:Short Var, steamIDLobby:ULong Var)
Checks if the specified friend is in a game, and gets info about the game if they are.
Returns
True if the user is a friend and is in a game, otherwise False.
Method GetFriendMessage:Int(steamIDFriend:ULong, messageID:Int, txt:String Var, chatEntryType:EChatEntryType Var)
Gets the data from a Steam friends message.
This should only ever be called in response to an OGameConnectedFriendChatMsg callback.
Returns
The number of bytes copied into txt. Returns 0 and sets chatEntryType to k_EChatEntryTypeInvalid if the current user is chat restricted, if the provided Steam ID is not a friend, or if the index provided in messageID is invalid.
Method GetFriendPersonaName:String(steamIDFriend:ULong)
Gets the specified user's persona (display) name.
This will only be known to the current user if the other user is in their friends list, on the same game server, in a chat room or lobby, or in a small Steam group with the local user.
NOTE: Upon on first joining a lobby, chat room, or game server the current user will not known the name of the other users automatically; that information will arrive asynchronously via OnPersonaStateChanged callbacks.
To get the persona name of the current user use GetPersonaName.
Returns
The current users persona name, or an empty string (""), or "[unknown]" if the Steam ID is invalid or not known to the caller.
Method GetFriendPersonaNameHistory:String(steamIDFriend:ULong, personaName:Int)
Gets one of the previous display names for the specified user.
This only works for display names that the current user has seen on the local computer.
Returns
The players old persona name at the given index. Returns an empty string when there are no further items in the history.
Method GetFriendPersonaState:EPersonaState(steamIDFriend:ULong)
Gets the current status of the specified user.
This will only be known to the current user if the other user is in their friends list, on the same game server, in a chat room or lobby, or in a small Steam group with the local user.
To get the state of the current user use GetPersonaState.
Returns
The friend state of the specified user. (Online, Offline, In-Game, etc)
Method GetFriendRelationship:EFriendRelationship(steamIDFriend:ULong)
Gets a relationship to a specified user.
Returns
How the users know each other.
Method GetFriendRichPresence:String(steamIDFriend:ULong, key:String)
Gets a Rich Presence value from a specified friend.
See Also: RequestFriendRichPresence, SetRichPresence
Returns
An empty string ("") if the specified key is not set.
Method GetFriendRichPresenceKeyByIndex:String(steamIDFriend:ULong, key:Int)
Gets a Rich Presence value from a specified friend for the given key index.
See Also: RequestFriendRichPresence, SetRichPresence
Returns
An empty string ("") if the index is invalid or the specified user has no Rich Presence data available.
Method GetFriendRichPresenceKeyCount:Int(steamIDFriend:ULong)
Gets the number of Rich Presence keys that are set on the specified user.
This is used for iteration, after calling this then GetFriendRichPresenceKeyByIndex to get the rich presence keys.
This is typically only ever used for debugging purposes.
Returns
0 if there is no Rich Presence information for the specified user.
Method GetFriendsGroupCount:Int()
Gets the number of friends groups (tags) the user has created.
This is used for iteration, after calling this then GetFriendsGroupIDByIndex can be used to get the ID of each friend group.
This is not to be confused with Steam groups. Those can be obtained with GetClanCount.
Returns
The number of friends groups the current user has.
Method GetFriendsGroupIDByIndex:Short(fg:Int)
Gets the friends group ID for the given index.
NOTE: You must call GetFriendsGroupCount before calling this.
Method GetFriendsGroupMembersCount:Int(friendsGroupID:Short)
Gets the number of friends in a given friends group.
This should be called before getting the list of friends with GetFriendsGroupMembersList.
See Also: GetFriendsGroupCount
Returns
The number of friends in the specified friends group.
Method GetFriendsGroupMembersList(friendsGroupID:Short, outSteamIDMembers:ULong Ptr, membersCount:Int)
Gets the number of friends in the given friends group.
If fewer friends exist than requested those positions' Steam IDs will be invalid.
You must call GetFriendsGroupMembersCount before calling this to set up the outSteamIDMembers array with an appropriate size!
See Also: GetFriendsGroupCount
Method GetFriendsGroupName:String(friendsGroupID:Short)
Gets the name for the given friends group.
See Also: GetFriendsGroupCount
Returns
The friend groups name or Null if the group ID is invalid.
Method GetFriendSteamLevel:Int(steamIDFriend:ULong)
Gets the Steam level of the specified user.
You can use the local users Steam ID (ISteamUser::GetSteamID) to get their level.
If the Steam level is not immediately available for the specified user then this returns 0 and queues it to be downloaded from the Steam servers. When it gets downloaded an OnPersonaStateChanged callback will be posted with changeFlags including k_EPersonaChangeSteamLevel.
Returns
The Steam level if it's available.
Method GetLargeFriendAvatar:Int(steamIDFriend:ULong)
Gets a handle to the large (128*128px) avatar for the specified user.
You can pass in ISteamUser::GetSteamID to get the current users avatar.
Triggers an OnAvatarImageLoaded callback.
NOTE: This only works for users that the local user knows about. They will automatically know about their friends, people on leaderboards they've requested, or people in the same source as them (Steam group, chat room, lobby, or game server). If they don't know about them then you must call RequestUserInformation to cache the avatar locally.
See Also: GetMediumFriendAvatar, GetSmallFriendAvatar
Returns
A Steam image handle which is used with ISteamUtils::GetImageSize and ISteamUtils::GetImageRGBA. Returns 0 if no avatar is set for the user. Returns -1 if the avatar image data has not been loaded yet and requests that it gets download. In this case wait for an OnAvatarImageLoaded callback and then call this again.
Method GetMediumFriendAvatar:Int(steamIDFriend:ULong)
Gets a handle to the medium (64*64px) avatar for the specified user.
You can pass in ISteamUser::GetSteamID to get the current users avatar.
NOTE: This only works for users that the local user knows about. They will automatically know about their friends, people on leaderboards they've requested, or people in the same source as them (Steam group, chat room, lobby, or game server). If they don't know about them then you must call RequestUserInformation to cache the avatar locally.
See Also: GetLargeFriendAvatar, GetSmallFriendAvatar
Returns
A Steam image handle which is used with ISteamUtils::GetImageSize and ISteamUtils::GetImageRGBA, or 0 if no avatar is set for the user.
Method GetPersonaName:String()
Gets the current users persona (display) name.
This is the same name that is displayed the users community profile page.
To get the persona name of other users use GetFriendPersonaName.
Returns
The current users persona name.
Method GetPersonaState:EPersonaState()
Gets the friend status of the current user.
To get the state of other users use GetFriendPersonaState.
Returns
The friend state of the current user. (Online, Offline, In-Game, etc)
Method GetPlayerNickname:String(steamIDPlayer:ULong)
Gets the nickname that the current user has set for the specified user.
Returns
Null if the no nickname has been set for that user.
Method GetSmallFriendAvatar:Int(steamIDFriend:ULong)
Gets a handle to the small (32*32px) avatar for the specified user.
You can pass in ISteamUser::GetSteamID to get the current users avatar.
NOTE: This only works for users that the local user knows about. They will automatically know about their friends, people on leaderboards they've requested, or people in the same source as them (Steam group, chat room, lobby, or game server). If they don't know about them then you must call RequestUserInformation to cache the avatar locally.
See Also: GetLargeFriendAvatar, GetMediumFriendAvatar
Returns
A Steam image handle which is used with ISteamUtils::GetImageSize and ISteamUtils::GetImageRGBA, or 0 if no avatar is set for the user.
Method GetUserRestrictions:UInt()
Checks if current user is chat restricted.
If they are restricted, then they can't send or receive any text/voice chat messages, can't see custom avatars. A chat restricted user can't add friends or join any groups. Restricted users can still be online and send/receive game invites.
Method HasFriend:Int(steamIDFriend:ULong, friendFlags:Int)
Checks if the user meets the specified criteria. (Friends, blocked, users on the same server, etc)
Returns
True if the specified user meets any of the criteria specified in friendFlags; otherwise, False.
Method InviteUserToGame:Int(steamIDFriend:ULong, connectString:String)
Invites a friend or clan member to the current game using a special invite string.
If the target user accepts the invite then the connectString gets added to the command-line when launching the game.
If the game is already running for that user, then they will receive an OnGameRichPresenceJoinRequested callback with the connect string.
See Also: ISteamMatchmaking::InviteUserToLobby
Method IsClanChatAdmin:Int(steamIDClanChat:ULong, steamIDUser:ULong)
Checks if a user in the Steam group chat room is an admin.
Returns
True if the specified user is an admin, otherwise False if the user is not an admin, if the current user is not in the chat room specified, or the specified user is not in the chat room.
Method IsClanPublic:Int(steamIDClan:ULong)
Checks if the Steam group is public.
Returns
True if the specified group is public, otherwise False if the specified group is not public.
Method IsClanOfficialGameGroup:Int(steamIDClan:ULong)
Checks if the Steam group is an official game group/community hub.
Returns
True if the specified group is an official game group/community hub, False if the specified group is not an official game group/community hub.
Method IsClanChatWindowOpenInSteam:Int(steamIDClanChat:ULong)
Checks if the Steam Group chat room is open in the Steam UI.
See Also: OpenClanChatWindowInSteam, CloseClanChatWindowInSteam
Returns
True if the specified Steam group chat room is opened, otherwise, False. This also returns False if the specified Steam group chat room is unknown.
Method IsFollowing(steamID:ULong)
Checks if the current user is following the specified user.
Triggers the OnFriendsIsFollowing callback.
Method IsUserInSource:Int(steamIDUser:ULong, steamIDSource:ULong)
Checks if a specified user is in a source (Steam group, chat room, lobby, or game server).
Returns
True if the local user can see that steamIDUser is a member or in steamIDSource, otherwise, False.
Method JoinClanChatRoom(steamIDClan:ULong)
Allows the user to join Steam group (clan) chats right within the game.
The behavior is somewhat complicated, because the user may or may not be already in the group chat from outside the game or in the overlay.
You can use ActivateGameOverlayToUser to open the in-game overlay version of the chat.
If you have joined a Steam group chat then you should be watching for the following callbacks:
- OnGameConnectedClanChatMsg
- OnGameConnectedChatJoin
- OnGameConnectedChatLeave
See Also: LeaveClanChatRoom, GetClanChatMemberCount, GetChatMemberByIndex, SendClanChatMessage, GetClanChatMessage, IsClanChatAdmin, IsClanChatWindowOpenInSteam
Method LeaveClanChatRoom:Int(steamIDClan:ULong)
Leaves a Steam group chat that the user has previously entered with JoinClanChatRoom.
Triggers an OnGameConnectedChatLeave callback.
Returns
True if user is in the specified chat room, otherwise False.
Method OpenClanChatWindowInSteam:Int(steamIDClanChat:ULong)
Opens the specified Steam group chat room in the Steam UI.
Returns False in one of the following situations:
- The provided Steam group chat room does not exist or the user does not have access to join it.
- The current user is currently rate limited.
- The current user is chat restricted.
See Also: IsClanChatWindowOpenInSteam, CloseClanChatWindowInSteam
Returns
True if the user successfully entered the Steam group chat room.
Method ReplyToFriendMessage:Int(steamIDFriend:ULong, msgToSend:String)
Sends a message to a Steam friend.
Returns
True if the message was successfully sent, otherwise False if the current user is rate limited or chat restricted.
Method RequestClanOfficerList(steamIDClan:ULong)
Requests information about a Steam group officers (administrators and moderators).
Triggers an OnClanOfficerListResponse callback.
NOTE: You can only ask about Steam groups that a user is a member of.
NOTE: This won't download avatars for the officers automatically. If no avatar image is available for an officer, then call RequestUserInformation to download the avatar.
See Also: GetClanOwner, GetClanOfficerCount, GetClanOfficerByIndex
Method RequestFriendRichPresence(steamIDFriend:ULong)
Requests Rich Presence data from a specific user.
This is used to get the Rich Presence information from a user that is not a friend of the current user, like someone in the same lobby or game server.
This method is rate limited, if you call this too frequently for a particular user then it will just immediately post a callback without requesting new data from the server.
Triggers an OnFriendRichPresenceUpdated callback.
See Also: GetFriendRichPresence, SetRichPresence
Method RequestUserInformation:Int(steamIDUser:ULong, requireNameOnly:Int)
Requests the persona name and optionally the avatar of a specified user.
Triggers an OnPersonaStateChanged callback.
NOTE: It's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them.
Returns
True means that the data has being requested, and an OnPersonaStateChanged callback will be posted when it's retrieved. False means that we already have all the details about that user, and functions that require this information can be used immediately.
Method SendClanChatMessage:Int(steamIDClanChat:ULong, txt:String)
Sends a message to a Steam group chat room.
Returns False under one of the following circumstances:
- The current user is not in the specified group chat.
- The current user is not connected to Steam.
- The current user is rate limited.
- The current user is chat restricted.
- The message in txt exceeds 2048 characters.
Returns
True if the message was successfully sent.
Method SetInGameVoiceSpeaking(steamIDUser:ULong, speaking:Int)
Lets Steam know that the user is currently using voice chat in game.
This will suppress the microphone for all voice communication in the Steam UI.
Method SetListenForFriendsMessages:Int(interceptEnabled:Int)
Listens for Steam friends chat messages.
You can then show these chats inline in the game. For example with a Blizzard style chat message system or the chat system in Dota 2. After enabling this you will receive OnGameConnectedFriendChatMsg callbacks when ever the user receives a chat message. You can get the actual message data from this callback with GetFriendMessage. You can send messages with ReplyToFriendMessage.
Triggers an OnGameConnectedFriendChatMsg callback.
Returns
Always returns True.
Method SetPersonaName(personaName:String)
Sets the current users persona name, stores it on the server and publishes the changes to all friends who are online.
Changes take place locally immediately, and an OnPersonaStateChanged callback is posted, presuming success.
If the name change fails to happen on the server, then an additional OnPersonaStateChanged callback will be posted to change the name back, in addition to the final result available in the call result.
Method SetPlayedWith(steamIDUserPlayedWith:ULong)
Marks a target user as 'played with'.
NOTE: The current user must be in game with the other player for the association to work.
You can view the players you have recently played with here on the Steam community and in the Steam Overlay.
Method SetRichPresence:Int(key:String, value:String)
Sets a Rich Presence key/value for the current user that is automatically shared to all friends playing the same game.
Each user can have up to 20 keys set as defined by k_cchMaxRichPresenceKeys.
There are two special keys used for viewing/joining games:
- "status" - A String that will show up in the 'view game info' dialog in the Steam friends list.
- "connect" - A String that contains the command-line for how a friend can connect to a game. This enables the 'join game' button in the 'view game info' dialog, in the steam friends list right click menu, and on the players Steam community profile.
There are three additional special keys used by the new Steam Chat:
- "steam_display" - Names a rich presence localization token that will be displayed in the viewing user's selected language in the Steam client UI. See Rich Presence Localization for more info, including a link to a page for testing this rich presence data. If steam_display is not set to a valid localization tag, then rich presence will not be displayed in the Steam client.
- "steam_player_group" - When set, indicates to the Steam client that the player is a member of a particular group. Players in the same group may be organized together in various places in the Steam UI. This string could identify a party, a server, or whatever grouping is relevant for your game. The string itself is not displayed to users.
- "steam_player_group_size" - When set, indicates the total number of players in the steam_player_group. The Steam client may use this number to display additional information about a group when all of the members are not part of a user's friends list. (For example, "Bob, Pete, and 4 more".)
You can clear all of the keys for the current user with ClearRichPresence.
To get rich presence keys for friends see: GetFriendRichPresence.
Returns False under the following conditions:
- key was longer than k_cchMaxRichPresenceKeyLength or had a length of 0.
- value was longer than k_cchMaxRichPresenceValueLength.
- The user has reached the maximum amount of rich presence keys as defined by k_cchMaxRichPresenceKeys.
Returns
True if the rich presence was set successfully.