SteamCallbacks.cs 125 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493
  1. // This file is provided under The MIT License as part of Steamworks.NET.
  2. // Copyright (c) 2013-2019 Riley Labrecque
  3. // Please see the included LICENSE.txt for additional information.
  4. // This file is automatically generated.
  5. // Changes to this file will be reverted when you update Steamworks.NET
  6. #if UNITY_ANDROID || UNITY_IOS || UNITY_TIZEN || UNITY_TVOS || UNITY_WEBGL || UNITY_WSA || UNITY_PS4 || UNITY_WII || UNITY_XBOXONE || UNITY_SWITCH
  7. #define DISABLESTEAMWORKS
  8. #endif
  9. #if !DISABLESTEAMWORKS
  10. using System.Runtime.InteropServices;
  11. using IntPtr = System.IntPtr;
  12. namespace Steamworks {
  13. // callbacks
  14. //---------------------------------------------------------------------------------
  15. // Purpose: Sent when a new app is installed
  16. //---------------------------------------------------------------------------------
  17. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  18. [CallbackIdentity(Constants.k_iSteamAppListCallbacks + 1)]
  19. public struct SteamAppInstalled_t {
  20. public const int k_iCallback = Constants.k_iSteamAppListCallbacks + 1;
  21. public AppId_t m_nAppID; // ID of the app that installs
  22. }
  23. //---------------------------------------------------------------------------------
  24. // Purpose: Sent when an app is uninstalled
  25. //---------------------------------------------------------------------------------
  26. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  27. [CallbackIdentity(Constants.k_iSteamAppListCallbacks + 2)]
  28. public struct SteamAppUninstalled_t {
  29. public const int k_iCallback = Constants.k_iSteamAppListCallbacks + 2;
  30. public AppId_t m_nAppID; // ID of the app that installs
  31. }
  32. // callbacks
  33. //-----------------------------------------------------------------------------
  34. // Purpose: posted after the user gains ownership of DLC & that DLC is installed
  35. //-----------------------------------------------------------------------------
  36. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  37. [CallbackIdentity(Constants.k_iSteamAppsCallbacks + 5)]
  38. public struct DlcInstalled_t {
  39. public const int k_iCallback = Constants.k_iSteamAppsCallbacks + 5;
  40. public AppId_t m_nAppID; // AppID of the DLC
  41. }
  42. //-----------------------------------------------------------------------------
  43. // Purpose: response to RegisterActivationCode()
  44. //-----------------------------------------------------------------------------
  45. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  46. [CallbackIdentity(Constants.k_iSteamAppsCallbacks + 8)]
  47. public struct RegisterActivationCodeResponse_t {
  48. public const int k_iCallback = Constants.k_iSteamAppsCallbacks + 8;
  49. public ERegisterActivationCodeResult m_eResult;
  50. public uint m_unPackageRegistered; // package that was registered. Only set on success
  51. }
  52. //---------------------------------------------------------------------------------
  53. // Purpose: posted after the user gains executes a Steam URL with command line or query parameters
  54. // such as steam://run/<appid>//-commandline/?param1=value1&param2=value2&param3=value3 etc
  55. // while the game is already running. The new params can be queried
  56. // with GetLaunchQueryParam and GetLaunchCommandLine
  57. //---------------------------------------------------------------------------------
  58. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  59. [CallbackIdentity(Constants.k_iSteamAppsCallbacks + 14)]
  60. public struct NewUrlLaunchParameters_t {
  61. public const int k_iCallback = Constants.k_iSteamAppsCallbacks + 14;
  62. }
  63. //-----------------------------------------------------------------------------
  64. // Purpose: response to RequestAppProofOfPurchaseKey/RequestAllProofOfPurchaseKeys
  65. // for supporting third-party CD keys, or other proof-of-purchase systems.
  66. //-----------------------------------------------------------------------------
  67. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  68. [CallbackIdentity(Constants.k_iSteamAppsCallbacks + 21)]
  69. public struct AppProofOfPurchaseKeyResponse_t {
  70. public const int k_iCallback = Constants.k_iSteamAppsCallbacks + 21;
  71. public EResult m_eResult;
  72. public uint m_nAppID;
  73. public uint m_cchKeyLength;
  74. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cubAppProofOfPurchaseKeyMax)]
  75. public string m_rgchKey;
  76. }
  77. //-----------------------------------------------------------------------------
  78. // Purpose: response to GetFileDetails
  79. //-----------------------------------------------------------------------------
  80. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  81. [CallbackIdentity(Constants.k_iSteamAppsCallbacks + 23)]
  82. public struct FileDetailsResult_t {
  83. public const int k_iCallback = Constants.k_iSteamAppsCallbacks + 23;
  84. public EResult m_eResult;
  85. public ulong m_ulFileSize; // original file size in bytes
  86. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
  87. public byte[] m_FileSHA; // original file SHA1 hash
  88. public uint m_unFlags; //
  89. }
  90. // callbacks
  91. //-----------------------------------------------------------------------------
  92. // Purpose: called when a friends' status changes
  93. //-----------------------------------------------------------------------------
  94. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  95. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 4)]
  96. public struct PersonaStateChange_t {
  97. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 4;
  98. public ulong m_ulSteamID; // steamID of the friend who changed
  99. public EPersonaChange m_nChangeFlags; // what's changed
  100. }
  101. //-----------------------------------------------------------------------------
  102. // Purpose: posted when game overlay activates or deactivates
  103. // the game can use this to be pause or resume single player games
  104. //-----------------------------------------------------------------------------
  105. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  106. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 31)]
  107. public struct GameOverlayActivated_t {
  108. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 31;
  109. public byte m_bActive; // true if it's just been activated, false otherwise
  110. }
  111. //-----------------------------------------------------------------------------
  112. // Purpose: called when the user tries to join a different game server from their friends list
  113. // game client should attempt to connect to specified server when this is received
  114. //-----------------------------------------------------------------------------
  115. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  116. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 32)]
  117. public struct GameServerChangeRequested_t {
  118. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 32;
  119. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
  120. public string m_rgchServer; // server address ("127.0.0.1:27015", "tf2.valvesoftware.com")
  121. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
  122. public string m_rgchPassword; // server password, if any
  123. }
  124. //-----------------------------------------------------------------------------
  125. // Purpose: called when the user tries to join a lobby from their friends list
  126. // game client should attempt to connect to specified lobby when this is received
  127. //-----------------------------------------------------------------------------
  128. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  129. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 33)]
  130. public struct GameLobbyJoinRequested_t {
  131. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 33;
  132. public CSteamID m_steamIDLobby;
  133. // The friend they did the join via (will be invalid if not directly via a friend)
  134. //
  135. // On PS3, the friend will be invalid if this was triggered by a PSN invite via the XMB, but
  136. // the account type will be console user so you can tell at least that this was from a PSN friend
  137. // rather than a Steam friend.
  138. public CSteamID m_steamIDFriend;
  139. }
  140. //-----------------------------------------------------------------------------
  141. // Purpose: called when an avatar is loaded in from a previous GetLargeFriendAvatar() call
  142. // if the image wasn't already available
  143. //-----------------------------------------------------------------------------
  144. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  145. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 34)]
  146. public struct AvatarImageLoaded_t {
  147. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 34;
  148. public CSteamID m_steamID; // steamid the avatar has been loaded for
  149. public int m_iImage; // the image index of the now loaded image
  150. public int m_iWide; // width of the loaded image
  151. public int m_iTall; // height of the loaded image
  152. }
  153. //-----------------------------------------------------------------------------
  154. // Purpose: marks the return of a request officer list call
  155. //-----------------------------------------------------------------------------
  156. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  157. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 35)]
  158. public struct ClanOfficerListResponse_t {
  159. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 35;
  160. public CSteamID m_steamIDClan;
  161. public int m_cOfficers;
  162. public byte m_bSuccess;
  163. }
  164. //-----------------------------------------------------------------------------
  165. // Purpose: callback indicating updated data about friends rich presence information
  166. //-----------------------------------------------------------------------------
  167. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  168. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 36)]
  169. public struct FriendRichPresenceUpdate_t {
  170. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 36;
  171. public CSteamID m_steamIDFriend; // friend who's rich presence has changed
  172. public AppId_t m_nAppID; // the appID of the game (should always be the current game)
  173. }
  174. //-----------------------------------------------------------------------------
  175. // Purpose: called when the user tries to join a game from their friends list
  176. // rich presence will have been set with the "connect" key which is set here
  177. //-----------------------------------------------------------------------------
  178. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  179. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 37)]
  180. public struct GameRichPresenceJoinRequested_t {
  181. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 37;
  182. public CSteamID m_steamIDFriend; // the friend they did the join via (will be invalid if not directly via a friend)
  183. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchMaxRichPresenceValueLength)]
  184. public string m_rgchConnect;
  185. }
  186. //-----------------------------------------------------------------------------
  187. // Purpose: a chat message has been received for a clan chat the game has joined
  188. //-----------------------------------------------------------------------------
  189. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  190. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 38)]
  191. public struct GameConnectedClanChatMsg_t {
  192. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 38;
  193. public CSteamID m_steamIDClanChat;
  194. public CSteamID m_steamIDUser;
  195. public int m_iMessageID;
  196. }
  197. //-----------------------------------------------------------------------------
  198. // Purpose: a user has joined a clan chat
  199. //-----------------------------------------------------------------------------
  200. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  201. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 39)]
  202. public struct GameConnectedChatJoin_t {
  203. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 39;
  204. public CSteamID m_steamIDClanChat;
  205. public CSteamID m_steamIDUser;
  206. }
  207. //-----------------------------------------------------------------------------
  208. // Purpose: a user has left the chat we're in
  209. //-----------------------------------------------------------------------------
  210. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  211. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 40)]
  212. public struct GameConnectedChatLeave_t {
  213. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 40;
  214. public CSteamID m_steamIDClanChat;
  215. public CSteamID m_steamIDUser;
  216. [MarshalAs(UnmanagedType.I1)]
  217. public bool m_bKicked; // true if admin kicked
  218. [MarshalAs(UnmanagedType.I1)]
  219. public bool m_bDropped; // true if Steam connection dropped
  220. }
  221. //-----------------------------------------------------------------------------
  222. // Purpose: a DownloadClanActivityCounts() call has finished
  223. //-----------------------------------------------------------------------------
  224. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  225. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 41)]
  226. public struct DownloadClanActivityCountsResult_t {
  227. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 41;
  228. [MarshalAs(UnmanagedType.I1)]
  229. public bool m_bSuccess;
  230. }
  231. //-----------------------------------------------------------------------------
  232. // Purpose: a JoinClanChatRoom() call has finished
  233. //-----------------------------------------------------------------------------
  234. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  235. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 42)]
  236. public struct JoinClanChatRoomCompletionResult_t {
  237. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 42;
  238. public CSteamID m_steamIDClanChat;
  239. public EChatRoomEnterResponse m_eChatRoomEnterResponse;
  240. }
  241. //-----------------------------------------------------------------------------
  242. // Purpose: a chat message has been received from a user
  243. //-----------------------------------------------------------------------------
  244. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  245. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 43)]
  246. public struct GameConnectedFriendChatMsg_t {
  247. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 43;
  248. public CSteamID m_steamIDUser;
  249. public int m_iMessageID;
  250. }
  251. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  252. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 44)]
  253. public struct FriendsGetFollowerCount_t {
  254. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 44;
  255. public EResult m_eResult;
  256. public CSteamID m_steamID;
  257. public int m_nCount;
  258. }
  259. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  260. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 45)]
  261. public struct FriendsIsFollowing_t {
  262. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 45;
  263. public EResult m_eResult;
  264. public CSteamID m_steamID;
  265. [MarshalAs(UnmanagedType.I1)]
  266. public bool m_bIsFollowing;
  267. }
  268. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  269. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 46)]
  270. public struct FriendsEnumerateFollowingList_t {
  271. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 46;
  272. public EResult m_eResult;
  273. [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_cEnumerateFollowersMax)]
  274. public CSteamID[] m_rgSteamID;
  275. public int m_nResultsReturned;
  276. public int m_nTotalResultCount;
  277. }
  278. //-----------------------------------------------------------------------------
  279. // Purpose: reports the result of an attempt to change the user's persona name
  280. //-----------------------------------------------------------------------------
  281. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  282. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 47)]
  283. public struct SetPersonaNameResponse_t {
  284. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 47;
  285. [MarshalAs(UnmanagedType.I1)]
  286. public bool m_bSuccess; // true if name change succeeded completely.
  287. [MarshalAs(UnmanagedType.I1)]
  288. public bool m_bLocalSuccess; // true if name change was retained locally. (We might not have been able to communicate with Steam)
  289. public EResult m_result; // detailed result code
  290. }
  291. //-----------------------------------------------------------------------------
  292. // Purpose: Invoked when the status of unread messages changes
  293. //-----------------------------------------------------------------------------
  294. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  295. [CallbackIdentity(Constants.k_iSteamFriendsCallbacks + 48)]
  296. public struct UnreadChatMessagesChanged_t {
  297. public const int k_iCallback = Constants.k_iSteamFriendsCallbacks + 48;
  298. }
  299. // callbacks
  300. // callback notification - A new message is available for reading from the message queue
  301. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  302. [CallbackIdentity(Constants.k_iSteamGameCoordinatorCallbacks + 1)]
  303. public struct GCMessageAvailable_t {
  304. public const int k_iCallback = Constants.k_iSteamGameCoordinatorCallbacks + 1;
  305. public uint m_nMessageSize;
  306. }
  307. // callback notification - A message failed to make it to the GC. It may be down temporarily
  308. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  309. [CallbackIdentity(Constants.k_iSteamGameCoordinatorCallbacks + 2)]
  310. public struct GCMessageFailed_t {
  311. public const int k_iCallback = Constants.k_iSteamGameCoordinatorCallbacks + 2;
  312. }
  313. // won't enforce authentication of users that connect to the server.
  314. // Useful when you run a server where the clients may not
  315. // be connected to the internet but you want them to play (i.e LANs)
  316. // callbacks
  317. // client has been approved to connect to this game server
  318. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  319. [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 1)]
  320. public struct GSClientApprove_t {
  321. public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 1;
  322. public CSteamID m_SteamID; // SteamID of approved player
  323. public CSteamID m_OwnerSteamID; // SteamID of original owner for game license
  324. }
  325. // client has been denied to connection to this game server
  326. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  327. [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 2)]
  328. public struct GSClientDeny_t {
  329. public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 2;
  330. public CSteamID m_SteamID;
  331. public EDenyReason m_eDenyReason;
  332. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
  333. public string m_rgchOptionalText;
  334. }
  335. // request the game server should kick the user
  336. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  337. [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 3)]
  338. public struct GSClientKick_t {
  339. public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 3;
  340. public CSteamID m_SteamID;
  341. public EDenyReason m_eDenyReason;
  342. }
  343. // NOTE: callback values 4 and 5 are skipped because they are used for old deprecated callbacks,
  344. // do not reuse them here.
  345. // client achievement info
  346. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  347. [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 6)]
  348. public struct GSClientAchievementStatus_t {
  349. public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 6;
  350. public ulong m_SteamID;
  351. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
  352. public string m_pchAchievement;
  353. [MarshalAs(UnmanagedType.I1)]
  354. public bool m_bUnlocked;
  355. }
  356. // received when the game server requests to be displayed as secure (VAC protected)
  357. // m_bSecure is true if the game server should display itself as secure to users, false otherwise
  358. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  359. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 15)]
  360. public struct GSPolicyResponse_t {
  361. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 15;
  362. public byte m_bSecure;
  363. }
  364. // GS gameplay stats info
  365. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  366. [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 7)]
  367. public struct GSGameplayStats_t {
  368. public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 7;
  369. public EResult m_eResult; // Result of the call
  370. public int m_nRank; // Overall rank of the server (0-based)
  371. public uint m_unTotalConnects; // Total number of clients who have ever connected to the server
  372. public uint m_unTotalMinutesPlayed; // Total number of minutes ever played on the server
  373. }
  374. // send as a reply to RequestUserGroupStatus()
  375. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  376. [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 8)]
  377. public struct GSClientGroupStatus_t {
  378. public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 8;
  379. public CSteamID m_SteamIDUser;
  380. public CSteamID m_SteamIDGroup;
  381. [MarshalAs(UnmanagedType.I1)]
  382. public bool m_bMember;
  383. [MarshalAs(UnmanagedType.I1)]
  384. public bool m_bOfficer;
  385. }
  386. // Sent as a reply to GetServerReputation()
  387. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  388. [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 9)]
  389. public struct GSReputation_t {
  390. public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 9;
  391. public EResult m_eResult; // Result of the call;
  392. public uint m_unReputationScore; // The reputation score for the game server
  393. [MarshalAs(UnmanagedType.I1)]
  394. public bool m_bBanned; // True if the server is banned from the Steam
  395. // master servers
  396. // The following members are only filled out if m_bBanned is true. They will all
  397. // be set to zero otherwise. Master server bans are by IP so it is possible to be
  398. // banned even when the score is good high if there is a bad server on another port.
  399. // This information can be used to determine which server is bad.
  400. public uint m_unBannedIP; // The IP of the banned server
  401. public ushort m_usBannedPort; // The port of the banned server
  402. public ulong m_ulBannedGameID; // The game ID the banned server is serving
  403. public uint m_unBanExpires; // Time the ban expires, expressed in the Unix epoch (seconds since 1/1/1970)
  404. }
  405. // Sent as a reply to AssociateWithClan()
  406. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  407. [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 10)]
  408. public struct AssociateWithClanResult_t {
  409. public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 10;
  410. public EResult m_eResult; // Result of the call;
  411. }
  412. // Sent as a reply to ComputeNewPlayerCompatibility()
  413. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  414. [CallbackIdentity(Constants.k_iSteamGameServerCallbacks + 11)]
  415. public struct ComputeNewPlayerCompatibilityResult_t {
  416. public const int k_iCallback = Constants.k_iSteamGameServerCallbacks + 11;
  417. public EResult m_eResult; // Result of the call;
  418. public int m_cPlayersThatDontLikeCandidate;
  419. public int m_cPlayersThatCandidateDoesntLike;
  420. public int m_cClanPlayersThatDontLikeCandidate;
  421. public CSteamID m_SteamIDCandidate;
  422. }
  423. // callbacks
  424. //-----------------------------------------------------------------------------
  425. // Purpose: called when the latests stats and achievements have been received
  426. // from the server
  427. //-----------------------------------------------------------------------------
  428. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  429. [CallbackIdentity(Constants.k_iSteamGameServerStatsCallbacks)]
  430. public struct GSStatsReceived_t {
  431. public const int k_iCallback = Constants.k_iSteamGameServerStatsCallbacks;
  432. public EResult m_eResult; // Success / error fetching the stats
  433. public CSteamID m_steamIDUser; // The user for whom the stats are retrieved for
  434. }
  435. //-----------------------------------------------------------------------------
  436. // Purpose: result of a request to store the user stats for a game
  437. //-----------------------------------------------------------------------------
  438. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  439. [CallbackIdentity(Constants.k_iSteamGameServerStatsCallbacks + 1)]
  440. public struct GSStatsStored_t {
  441. public const int k_iCallback = Constants.k_iSteamGameServerStatsCallbacks + 1;
  442. public EResult m_eResult; // success / error
  443. public CSteamID m_steamIDUser; // The user for whom the stats were stored
  444. }
  445. //-----------------------------------------------------------------------------
  446. // Purpose: Callback indicating that a user's stats have been unloaded.
  447. // Call RequestUserStats again to access stats for this user
  448. //-----------------------------------------------------------------------------
  449. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  450. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 8)]
  451. public struct GSStatsUnloaded_t {
  452. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 8;
  453. public CSteamID m_steamIDUser; // User whose stats have been unloaded
  454. }
  455. // callbacks
  456. //-----------------------------------------------------------------------------
  457. // Purpose: The browser is ready for use
  458. //-----------------------------------------------------------------------------
  459. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  460. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 1)]
  461. public struct HTML_BrowserReady_t {
  462. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 1;
  463. public HHTMLBrowser unBrowserHandle; // this browser is now fully created and ready to navigate to pages
  464. }
  465. //-----------------------------------------------------------------------------
  466. // Purpose: the browser has a pending paint
  467. //-----------------------------------------------------------------------------
  468. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  469. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 2)]
  470. public struct HTML_NeedsPaint_t {
  471. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 2;
  472. public HHTMLBrowser unBrowserHandle; // the browser that needs the paint
  473. public IntPtr pBGRA; // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called
  474. public uint unWide; // the total width of the pBGRA texture
  475. public uint unTall; // the total height of the pBGRA texture
  476. public uint unUpdateX; // the offset in X for the damage rect for this update
  477. public uint unUpdateY; // the offset in Y for the damage rect for this update
  478. public uint unUpdateWide; // the width of the damage rect for this update
  479. public uint unUpdateTall; // the height of the damage rect for this update
  480. public uint unScrollX; // the page scroll the browser was at when this texture was rendered
  481. public uint unScrollY; // the page scroll the browser was at when this texture was rendered
  482. public float flPageScale; // the page scale factor on this page when rendered
  483. public uint unPageSerial; // incremented on each new page load, you can use this to reject draws while navigating to new pages
  484. }
  485. //-----------------------------------------------------------------------------
  486. // Purpose: The browser wanted to navigate to a new page
  487. // NOTE - you MUST call AllowStartRequest in response to this callback
  488. //-----------------------------------------------------------------------------
  489. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  490. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 3)]
  491. public struct HTML_StartRequest_t {
  492. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 3;
  493. public HHTMLBrowser unBrowserHandle; // the handle of the surface navigating
  494. public string pchURL; // the url they wish to navigate to
  495. public string pchTarget; // the html link target type (i.e _blank, _self, _parent, _top )
  496. public string pchPostData; // any posted data for the request
  497. [MarshalAs(UnmanagedType.I1)]
  498. public bool bIsRedirect; // true if this was a http/html redirect from the last load request
  499. }
  500. //-----------------------------------------------------------------------------
  501. // Purpose: The browser has been requested to close due to user interaction (usually from a javascript window.close() call)
  502. //-----------------------------------------------------------------------------
  503. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  504. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 4)]
  505. public struct HTML_CloseBrowser_t {
  506. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 4;
  507. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  508. }
  509. //-----------------------------------------------------------------------------
  510. // Purpose: the browser is navigating to a new url
  511. //-----------------------------------------------------------------------------
  512. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  513. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 5)]
  514. public struct HTML_URLChanged_t {
  515. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 5;
  516. public HHTMLBrowser unBrowserHandle; // the handle of the surface navigating
  517. public string pchURL; // the url they wish to navigate to
  518. public string pchPostData; // any posted data for the request
  519. [MarshalAs(UnmanagedType.I1)]
  520. public bool bIsRedirect; // true if this was a http/html redirect from the last load request
  521. public string pchPageTitle; // the title of the page
  522. [MarshalAs(UnmanagedType.I1)]
  523. public bool bNewNavigation; // true if this was from a fresh tab and not a click on an existing page
  524. }
  525. //-----------------------------------------------------------------------------
  526. // Purpose: A page is finished loading
  527. //-----------------------------------------------------------------------------
  528. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  529. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 6)]
  530. public struct HTML_FinishedRequest_t {
  531. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 6;
  532. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  533. public string pchURL; //
  534. public string pchPageTitle; //
  535. }
  536. //-----------------------------------------------------------------------------
  537. // Purpose: a request to load this url in a new tab
  538. //-----------------------------------------------------------------------------
  539. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  540. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 7)]
  541. public struct HTML_OpenLinkInNewTab_t {
  542. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 7;
  543. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  544. public string pchURL; //
  545. }
  546. //-----------------------------------------------------------------------------
  547. // Purpose: the page has a new title now
  548. //-----------------------------------------------------------------------------
  549. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  550. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 8)]
  551. public struct HTML_ChangedTitle_t {
  552. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 8;
  553. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  554. public string pchTitle; //
  555. }
  556. //-----------------------------------------------------------------------------
  557. // Purpose: results from a search
  558. //-----------------------------------------------------------------------------
  559. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  560. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 9)]
  561. public struct HTML_SearchResults_t {
  562. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 9;
  563. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  564. public uint unResults; //
  565. public uint unCurrentMatch; //
  566. }
  567. //-----------------------------------------------------------------------------
  568. // Purpose: page history status changed on the ability to go backwards and forward
  569. //-----------------------------------------------------------------------------
  570. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  571. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 10)]
  572. public struct HTML_CanGoBackAndForward_t {
  573. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 10;
  574. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  575. [MarshalAs(UnmanagedType.I1)]
  576. public bool bCanGoBack; //
  577. [MarshalAs(UnmanagedType.I1)]
  578. public bool bCanGoForward; //
  579. }
  580. //-----------------------------------------------------------------------------
  581. // Purpose: details on the visibility and size of the horizontal scrollbar
  582. //-----------------------------------------------------------------------------
  583. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  584. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 11)]
  585. public struct HTML_HorizontalScroll_t {
  586. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 11;
  587. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  588. public uint unScrollMax; //
  589. public uint unScrollCurrent; //
  590. public float flPageScale; //
  591. [MarshalAs(UnmanagedType.I1)]
  592. public bool bVisible; //
  593. public uint unPageSize; //
  594. }
  595. //-----------------------------------------------------------------------------
  596. // Purpose: details on the visibility and size of the vertical scrollbar
  597. //-----------------------------------------------------------------------------
  598. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  599. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 12)]
  600. public struct HTML_VerticalScroll_t {
  601. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 12;
  602. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  603. public uint unScrollMax; //
  604. public uint unScrollCurrent; //
  605. public float flPageScale; //
  606. [MarshalAs(UnmanagedType.I1)]
  607. public bool bVisible; //
  608. public uint unPageSize; //
  609. }
  610. //-----------------------------------------------------------------------------
  611. // Purpose: response to GetLinkAtPosition call
  612. //-----------------------------------------------------------------------------
  613. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  614. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 13)]
  615. public struct HTML_LinkAtPosition_t {
  616. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 13;
  617. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  618. public uint x; // NOTE - Not currently set
  619. public uint y; // NOTE - Not currently set
  620. public string pchURL; //
  621. [MarshalAs(UnmanagedType.I1)]
  622. public bool bInput; //
  623. [MarshalAs(UnmanagedType.I1)]
  624. public bool bLiveLink; //
  625. }
  626. //-----------------------------------------------------------------------------
  627. // Purpose: show a Javascript alert dialog, call JSDialogResponse
  628. // when the user dismisses this dialog (or right away to ignore it)
  629. //-----------------------------------------------------------------------------
  630. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  631. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 14)]
  632. public struct HTML_JSAlert_t {
  633. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 14;
  634. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  635. public string pchMessage; //
  636. }
  637. //-----------------------------------------------------------------------------
  638. // Purpose: show a Javascript confirmation dialog, call JSDialogResponse
  639. // when the user dismisses this dialog (or right away to ignore it)
  640. //-----------------------------------------------------------------------------
  641. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  642. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 15)]
  643. public struct HTML_JSConfirm_t {
  644. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 15;
  645. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  646. public string pchMessage; //
  647. }
  648. //-----------------------------------------------------------------------------
  649. // Purpose: when received show a file open dialog
  650. // then call FileLoadDialogResponse with the file(s) the user selected.
  651. //-----------------------------------------------------------------------------
  652. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  653. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 16)]
  654. public struct HTML_FileOpenDialog_t {
  655. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 16;
  656. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  657. public string pchTitle; //
  658. public string pchInitialFile; //
  659. }
  660. //-----------------------------------------------------------------------------
  661. // Purpose: a new html window is being created.
  662. //
  663. // IMPORTANT NOTE: at this time, the API does not allow you to acknowledge or
  664. // render the contents of this new window, so the new window is always destroyed
  665. // immediately. The URL and other parameters of the new window are passed here
  666. // to give your application the opportunity to call CreateBrowser and set up
  667. // a new browser in response to the attempted popup, if you wish to do so.
  668. //-----------------------------------------------------------------------------
  669. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  670. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 21)]
  671. public struct HTML_NewWindow_t {
  672. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 21;
  673. public HHTMLBrowser unBrowserHandle; // the handle of the current surface
  674. public string pchURL; // the page to load
  675. public uint unX; // the x pos into the page to display the popup
  676. public uint unY; // the y pos into the page to display the popup
  677. public uint unWide; // the total width of the pBGRA texture
  678. public uint unTall; // the total height of the pBGRA texture
  679. public HHTMLBrowser unNewWindow_BrowserHandle_IGNORE;
  680. }
  681. //-----------------------------------------------------------------------------
  682. // Purpose: change the cursor to display
  683. //-----------------------------------------------------------------------------
  684. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  685. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 22)]
  686. public struct HTML_SetCursor_t {
  687. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 22;
  688. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  689. public uint eMouseCursor; // the EMouseCursor to display
  690. }
  691. //-----------------------------------------------------------------------------
  692. // Purpose: informational message from the browser
  693. //-----------------------------------------------------------------------------
  694. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  695. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 23)]
  696. public struct HTML_StatusText_t {
  697. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 23;
  698. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  699. public string pchMsg; // the EMouseCursor to display
  700. }
  701. //-----------------------------------------------------------------------------
  702. // Purpose: show a tooltip
  703. //-----------------------------------------------------------------------------
  704. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  705. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 24)]
  706. public struct HTML_ShowToolTip_t {
  707. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 24;
  708. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  709. public string pchMsg; // the EMouseCursor to display
  710. }
  711. //-----------------------------------------------------------------------------
  712. // Purpose: update the text of an existing tooltip
  713. //-----------------------------------------------------------------------------
  714. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  715. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 25)]
  716. public struct HTML_UpdateToolTip_t {
  717. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 25;
  718. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  719. public string pchMsg; // the EMouseCursor to display
  720. }
  721. //-----------------------------------------------------------------------------
  722. // Purpose: hide the tooltip you are showing
  723. //-----------------------------------------------------------------------------
  724. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  725. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 26)]
  726. public struct HTML_HideToolTip_t {
  727. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 26;
  728. public HHTMLBrowser unBrowserHandle; // the handle of the surface
  729. }
  730. //-----------------------------------------------------------------------------
  731. // Purpose: The browser has restarted due to an internal failure, use this new handle value
  732. //-----------------------------------------------------------------------------
  733. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  734. [CallbackIdentity(Constants.k_iSteamHTMLSurfaceCallbacks + 27)]
  735. public struct HTML_BrowserRestarted_t {
  736. public const int k_iCallback = Constants.k_iSteamHTMLSurfaceCallbacks + 27;
  737. public HHTMLBrowser unBrowserHandle; // this is the new browser handle after the restart
  738. public HHTMLBrowser unOldBrowserHandle; // the handle for the browser before the restart, if your handle was this then switch to using unBrowserHandle for API calls
  739. }
  740. // callbacks
  741. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  742. [CallbackIdentity(Constants.k_iClientHTTPCallbacks + 1)]
  743. public struct HTTPRequestCompleted_t {
  744. public const int k_iCallback = Constants.k_iClientHTTPCallbacks + 1;
  745. // Handle value for the request that has completed.
  746. public HTTPRequestHandle m_hRequest;
  747. // Context value that the user defined on the request that this callback is associated with, 0 if
  748. // no context value was set.
  749. public ulong m_ulContextValue;
  750. // This will be true if we actually got any sort of response from the server (even an error).
  751. // It will be false if we failed due to an internal error or client side network failure.
  752. [MarshalAs(UnmanagedType.I1)]
  753. public bool m_bRequestSuccessful;
  754. // Will be the HTTP status code value returned by the server, k_EHTTPStatusCode200OK is the normal
  755. // OK response, if you get something else you probably need to treat it as a failure.
  756. public EHTTPStatusCode m_eStatusCode;
  757. public uint m_unBodySize; // Same as GetHTTPResponseBodySize()
  758. }
  759. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  760. [CallbackIdentity(Constants.k_iClientHTTPCallbacks + 2)]
  761. public struct HTTPRequestHeadersReceived_t {
  762. public const int k_iCallback = Constants.k_iClientHTTPCallbacks + 2;
  763. // Handle value for the request that has received headers.
  764. public HTTPRequestHandle m_hRequest;
  765. // Context value that the user defined on the request that this callback is associated with, 0 if
  766. // no context value was set.
  767. public ulong m_ulContextValue;
  768. }
  769. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  770. [CallbackIdentity(Constants.k_iClientHTTPCallbacks + 3)]
  771. public struct HTTPRequestDataReceived_t {
  772. public const int k_iCallback = Constants.k_iClientHTTPCallbacks + 3;
  773. // Handle value for the request that has received data.
  774. public HTTPRequestHandle m_hRequest;
  775. // Context value that the user defined on the request that this callback is associated with, 0 if
  776. // no context value was set.
  777. public ulong m_ulContextValue;
  778. // Offset to provide to GetHTTPStreamingResponseBodyData to get this chunk of data
  779. public uint m_cOffset;
  780. // Size to provide to GetHTTPStreamingResponseBodyData to get this chunk of data
  781. public uint m_cBytesReceived;
  782. }
  783. // SteamInventoryResultReady_t callbacks are fired whenever asynchronous
  784. // results transition from "Pending" to "OK" or an error state. There will
  785. // always be exactly one callback per handle.
  786. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  787. [CallbackIdentity(Constants.k_iClientInventoryCallbacks + 0)]
  788. public struct SteamInventoryResultReady_t {
  789. public const int k_iCallback = Constants.k_iClientInventoryCallbacks + 0;
  790. public SteamInventoryResult_t m_handle;
  791. public EResult m_result;
  792. }
  793. // SteamInventoryFullUpdate_t callbacks are triggered when GetAllItems
  794. // successfully returns a result which is newer / fresher than the last
  795. // known result. (It will not trigger if the inventory hasn't changed,
  796. // or if results from two overlapping calls are reversed in flight and
  797. // the earlier result is already known to be stale/out-of-date.)
  798. // The normal ResultReady callback will still be triggered immediately
  799. // afterwards; this is an additional notification for your convenience.
  800. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  801. [CallbackIdentity(Constants.k_iClientInventoryCallbacks + 1)]
  802. public struct SteamInventoryFullUpdate_t {
  803. public const int k_iCallback = Constants.k_iClientInventoryCallbacks + 1;
  804. public SteamInventoryResult_t m_handle;
  805. }
  806. // A SteamInventoryDefinitionUpdate_t callback is triggered whenever
  807. // item definitions have been updated, which could be in response to
  808. // LoadItemDefinitions() or any other async request which required
  809. // a definition update in order to process results from the server.
  810. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  811. [CallbackIdentity(Constants.k_iClientInventoryCallbacks + 2)]
  812. public struct SteamInventoryDefinitionUpdate_t {
  813. public const int k_iCallback = Constants.k_iClientInventoryCallbacks + 2;
  814. }
  815. // Returned
  816. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  817. [CallbackIdentity(Constants.k_iClientInventoryCallbacks + 3)]
  818. public struct SteamInventoryEligiblePromoItemDefIDs_t {
  819. public const int k_iCallback = Constants.k_iClientInventoryCallbacks + 3;
  820. public EResult m_result;
  821. public CSteamID m_steamID;
  822. public int m_numEligiblePromoItemDefs;
  823. [MarshalAs(UnmanagedType.I1)]
  824. public bool m_bCachedData; // indicates that the data was retrieved from the cache and not the server
  825. }
  826. // Triggered from StartPurchase call
  827. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  828. [CallbackIdentity(Constants.k_iClientInventoryCallbacks + 4)]
  829. public struct SteamInventoryStartPurchaseResult_t {
  830. public const int k_iCallback = Constants.k_iClientInventoryCallbacks + 4;
  831. public EResult m_result;
  832. public ulong m_ulOrderID;
  833. public ulong m_ulTransID;
  834. }
  835. // Triggered from RequestPrices
  836. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  837. [CallbackIdentity(Constants.k_iClientInventoryCallbacks + 5)]
  838. public struct SteamInventoryRequestPricesResult_t {
  839. public const int k_iCallback = Constants.k_iClientInventoryCallbacks + 5;
  840. public EResult m_result;
  841. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 4)]
  842. public string m_rgchCurrency;
  843. }
  844. //-----------------------------------------------------------------------------
  845. // Callbacks for ISteamMatchmaking (which go through the regular Steam callback registration system)
  846. //-----------------------------------------------------------------------------
  847. // Purpose: a server was added/removed from the favorites list, you should refresh now
  848. //-----------------------------------------------------------------------------
  849. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  850. [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 2)]
  851. public struct FavoritesListChanged_t {
  852. public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 2;
  853. public uint m_nIP; // an IP of 0 means reload the whole list, any other value means just one server
  854. public uint m_nQueryPort;
  855. public uint m_nConnPort;
  856. public uint m_nAppID;
  857. public uint m_nFlags;
  858. [MarshalAs(UnmanagedType.I1)]
  859. public bool m_bAdd; // true if this is adding the entry, otherwise it is a remove
  860. public AccountID_t m_unAccountId;
  861. }
  862. //-----------------------------------------------------------------------------
  863. // Purpose: Someone has invited you to join a Lobby
  864. // normally you don't need to do anything with this, since
  865. // the Steam UI will also display a '<user> has invited you to the lobby, join?' dialog
  866. //
  867. // if the user outside a game chooses to join, your game will be launched with the parameter "+connect_lobby <64-bit lobby id>",
  868. // or with the callback GameLobbyJoinRequested_t if they're already in-game
  869. //-----------------------------------------------------------------------------
  870. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  871. [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 3)]
  872. public struct LobbyInvite_t {
  873. public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 3;
  874. public ulong m_ulSteamIDUser; // Steam ID of the person making the invite
  875. public ulong m_ulSteamIDLobby; // Steam ID of the Lobby
  876. public ulong m_ulGameID; // GameID of the Lobby
  877. }
  878. //-----------------------------------------------------------------------------
  879. // Purpose: Sent on entering a lobby, or on failing to enter
  880. // m_EChatRoomEnterResponse will be set to k_EChatRoomEnterResponseSuccess on success,
  881. // or a higher value on failure (see enum EChatRoomEnterResponse)
  882. //-----------------------------------------------------------------------------
  883. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  884. [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 4)]
  885. public struct LobbyEnter_t {
  886. public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 4;
  887. public ulong m_ulSteamIDLobby; // SteamID of the Lobby you have entered
  888. public uint m_rgfChatPermissions; // Permissions of the current user
  889. [MarshalAs(UnmanagedType.I1)]
  890. public bool m_bLocked; // If true, then only invited users may join
  891. public uint m_EChatRoomEnterResponse; // EChatRoomEnterResponse
  892. }
  893. //-----------------------------------------------------------------------------
  894. // Purpose: The lobby metadata has changed
  895. // if m_ulSteamIDMember is the steamID of a lobby member, use GetLobbyMemberData() to access per-user details
  896. // if m_ulSteamIDMember == m_ulSteamIDLobby, use GetLobbyData() to access lobby metadata
  897. //-----------------------------------------------------------------------------
  898. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  899. [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 5)]
  900. public struct LobbyDataUpdate_t {
  901. public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 5;
  902. public ulong m_ulSteamIDLobby; // steamID of the Lobby
  903. public ulong m_ulSteamIDMember; // steamID of the member whose data changed, or the room itself
  904. public byte m_bSuccess; // true if we lobby data was successfully changed;
  905. // will only be false if RequestLobbyData() was called on a lobby that no longer exists
  906. }
  907. //-----------------------------------------------------------------------------
  908. // Purpose: The lobby chat room state has changed
  909. // this is usually sent when a user has joined or left the lobby
  910. //-----------------------------------------------------------------------------
  911. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  912. [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 6)]
  913. public struct LobbyChatUpdate_t {
  914. public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 6;
  915. public ulong m_ulSteamIDLobby; // Lobby ID
  916. public ulong m_ulSteamIDUserChanged; // user who's status in the lobby just changed - can be recipient
  917. public ulong m_ulSteamIDMakingChange; // Chat member who made the change (different from SteamIDUserChange if kicking, muting, etc.)
  918. // for example, if one user kicks another from the lobby, this will be set to the id of the user who initiated the kick
  919. public uint m_rgfChatMemberStateChange; // bitfield of EChatMemberStateChange values
  920. }
  921. //-----------------------------------------------------------------------------
  922. // Purpose: A chat message for this lobby has been sent
  923. // use GetLobbyChatEntry( m_iChatID ) to retrieve the contents of this message
  924. //-----------------------------------------------------------------------------
  925. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  926. [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 7)]
  927. public struct LobbyChatMsg_t {
  928. public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 7;
  929. public ulong m_ulSteamIDLobby; // the lobby id this is in
  930. public ulong m_ulSteamIDUser; // steamID of the user who has sent this message
  931. public byte m_eChatEntryType; // type of message
  932. public uint m_iChatID; // index of the chat entry to lookup
  933. }
  934. //-----------------------------------------------------------------------------
  935. // Purpose: A game created a game for all the members of the lobby to join,
  936. // as triggered by a SetLobbyGameServer()
  937. // it's up to the individual clients to take action on this; the usual
  938. // game behavior is to leave the lobby and connect to the specified game server
  939. //-----------------------------------------------------------------------------
  940. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  941. [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 9)]
  942. public struct LobbyGameCreated_t {
  943. public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 9;
  944. public ulong m_ulSteamIDLobby; // the lobby we were in
  945. public ulong m_ulSteamIDGameServer; // the new game server that has been created or found for the lobby members
  946. public uint m_unIP; // IP & Port of the game server (if any)
  947. public ushort m_usPort;
  948. }
  949. //-----------------------------------------------------------------------------
  950. // Purpose: Number of matching lobbies found
  951. // iterate the returned lobbies with GetLobbyByIndex(), from values 0 to m_nLobbiesMatching-1
  952. //-----------------------------------------------------------------------------
  953. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  954. [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 10)]
  955. public struct LobbyMatchList_t {
  956. public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 10;
  957. public uint m_nLobbiesMatching; // Number of lobbies that matched search criteria and we have SteamIDs for
  958. }
  959. //-----------------------------------------------------------------------------
  960. // Purpose: posted if a user is forcefully removed from a lobby
  961. // can occur if a user loses connection to Steam
  962. //-----------------------------------------------------------------------------
  963. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  964. [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 12)]
  965. public struct LobbyKicked_t {
  966. public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 12;
  967. public ulong m_ulSteamIDLobby; // Lobby
  968. public ulong m_ulSteamIDAdmin; // User who kicked you - possibly the ID of the lobby itself
  969. public byte m_bKickedDueToDisconnect; // true if you were kicked from the lobby due to the user losing connection to Steam (currently always true)
  970. }
  971. //-----------------------------------------------------------------------------
  972. // Purpose: Result of our request to create a Lobby
  973. // m_eResult == k_EResultOK on success
  974. // at this point, the lobby has been joined and is ready for use
  975. // a LobbyEnter_t callback will also be received (since the local user is joining their own lobby)
  976. //-----------------------------------------------------------------------------
  977. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  978. [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 13)]
  979. public struct LobbyCreated_t {
  980. public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 13;
  981. public EResult m_eResult; // k_EResultOK - the lobby was successfully created
  982. // k_EResultNoConnection - your Steam client doesn't have a connection to the back-end
  983. // k_EResultTimeout - you the message to the Steam servers, but it didn't respond
  984. // k_EResultFail - the server responded, but with an unknown internal error
  985. // k_EResultAccessDenied - your game isn't set to allow lobbies, or your client does haven't rights to play the game
  986. // k_EResultLimitExceeded - your game client has created too many lobbies
  987. public ulong m_ulSteamIDLobby; // chat room, zero if failed
  988. }
  989. //-----------------------------------------------------------------------------
  990. // Purpose: Result of our request to create a Lobby
  991. // m_eResult == k_EResultOK on success
  992. // at this point, the lobby has been joined and is ready for use
  993. // a LobbyEnter_t callback will also be received (since the local user is joining their own lobby)
  994. //-----------------------------------------------------------------------------
  995. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  996. [CallbackIdentity(Constants.k_iSteamMatchmakingCallbacks + 16)]
  997. public struct FavoritesListAccountsUpdated_t {
  998. public const int k_iCallback = Constants.k_iSteamMatchmakingCallbacks + 16;
  999. public EResult m_eResult;
  1000. }
  1001. //-----------------------------------------------------------------------------
  1002. // Callbacks for ISteamGameSearch (which go through the regular Steam callback registration system)
  1003. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1004. [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 1)]
  1005. public struct SearchForGameProgressCallback_t {
  1006. public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 1;
  1007. public ulong m_ullSearchID; // all future callbacks referencing this search will include this Search ID
  1008. public EResult m_eResult; // if search has started this result will be k_EResultOK, any other value indicates search has failed to start or has terminated
  1009. public CSteamID m_lobbyID; // lobby ID if lobby search, invalid steamID otherwise
  1010. public CSteamID m_steamIDEndedSearch; // if search was terminated, steamID that terminated search
  1011. public int m_nSecondsRemainingEstimate;
  1012. public int m_cPlayersSearching;
  1013. }
  1014. // notification to all players searching that a game has been found
  1015. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1016. [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 2)]
  1017. public struct SearchForGameResultCallback_t {
  1018. public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 2;
  1019. public ulong m_ullSearchID;
  1020. public EResult m_eResult; // if game/host was lost this will be an error value
  1021. // if m_bGameFound is true the following are non-zero
  1022. public int m_nCountPlayersInGame;
  1023. public int m_nCountAcceptedGame;
  1024. // if m_steamIDHost is valid the host has started the game
  1025. public CSteamID m_steamIDHost;
  1026. [MarshalAs(UnmanagedType.I1)]
  1027. public bool m_bFinalCallback;
  1028. }
  1029. //-----------------------------------------------------------------------------
  1030. // ISteamGameSearch : Game Host API callbacks
  1031. // callback from RequestPlayersForGame when the matchmaking service has started or ended search
  1032. // callback will also follow a call from CancelRequestPlayersForGame - m_bSearchInProgress will be false
  1033. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1034. [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 11)]
  1035. public struct RequestPlayersForGameProgressCallback_t {
  1036. public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 11;
  1037. public EResult m_eResult; // m_ullSearchID will be non-zero if this is k_EResultOK
  1038. public ulong m_ullSearchID; // all future callbacks referencing this search will include this Search ID
  1039. }
  1040. // callback from RequestPlayersForGame
  1041. // one of these will be sent per player
  1042. // followed by additional callbacks when players accept or decline the game
  1043. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1044. [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 12)]
  1045. public struct RequestPlayersForGameResultCallback_t {
  1046. public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 12;
  1047. public EResult m_eResult; // m_ullSearchID will be non-zero if this is k_EResultOK
  1048. public ulong m_ullSearchID;
  1049. public CSteamID m_SteamIDPlayerFound; // player steamID
  1050. public CSteamID m_SteamIDLobby; // if the player is in a lobby, the lobby ID
  1051. public PlayerAcceptState_t m_ePlayerAcceptState;
  1052. public int m_nPlayerIndex;
  1053. public int m_nTotalPlayersFound; // expect this many callbacks at minimum
  1054. public int m_nTotalPlayersAcceptedGame;
  1055. public int m_nSuggestedTeamIndex;
  1056. public ulong m_ullUniqueGameID;
  1057. }
  1058. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1059. [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 13)]
  1060. public struct RequestPlayersForGameFinalResultCallback_t {
  1061. public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 13;
  1062. public EResult m_eResult;
  1063. public ulong m_ullSearchID;
  1064. public ulong m_ullUniqueGameID;
  1065. }
  1066. // this callback confirms that results were received by the matchmaking service for this player
  1067. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1068. [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 14)]
  1069. public struct SubmitPlayerResultResultCallback_t {
  1070. public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 14;
  1071. public EResult m_eResult;
  1072. public ulong ullUniqueGameID;
  1073. public CSteamID steamIDPlayer;
  1074. }
  1075. // this callback confirms that the game is recorded as complete on the matchmaking service
  1076. // the next call to RequestPlayersForGame will generate a new unique game ID
  1077. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1078. [CallbackIdentity(Constants.k_iSteamGameSearchCallbacks + 15)]
  1079. public struct EndGameResultCallback_t {
  1080. public const int k_iCallback = Constants.k_iSteamGameSearchCallbacks + 15;
  1081. public EResult m_eResult;
  1082. public ulong ullUniqueGameID;
  1083. }
  1084. // Steam has responded to the user request to join a party via the given Beacon ID.
  1085. // If successful, the connect string contains game-specific instructions to connect
  1086. // to the game with that party.
  1087. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1088. [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 1)]
  1089. public struct JoinPartyCallback_t {
  1090. public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 1;
  1091. public EResult m_eResult;
  1092. public PartyBeaconID_t m_ulBeaconID;
  1093. public CSteamID m_SteamIDBeaconOwner;
  1094. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
  1095. public string m_rgchConnectString;
  1096. }
  1097. // Response to CreateBeacon request. If successful, the beacon ID is provided.
  1098. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1099. [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 2)]
  1100. public struct CreateBeaconCallback_t {
  1101. public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 2;
  1102. public EResult m_eResult;
  1103. public PartyBeaconID_t m_ulBeaconID;
  1104. }
  1105. // Someone has used the beacon to join your party - they are in-flight now
  1106. // and we've reserved one of the open slots for them.
  1107. // You should confirm when they join your party by calling OnReservationCompleted().
  1108. // Otherwise, Steam may timeout their reservation eventually.
  1109. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1110. [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 3)]
  1111. public struct ReservationNotificationCallback_t {
  1112. public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 3;
  1113. public PartyBeaconID_t m_ulBeaconID;
  1114. public CSteamID m_steamIDJoiner;
  1115. }
  1116. // Response to ChangeNumOpenSlots call
  1117. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1118. [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 4)]
  1119. public struct ChangeNumOpenSlotsCallback_t {
  1120. public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 4;
  1121. public EResult m_eResult;
  1122. }
  1123. // The list of possible Party beacon locations has changed
  1124. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1125. [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 5)]
  1126. public struct AvailableBeaconLocationsUpdated_t {
  1127. public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 5;
  1128. }
  1129. // The list of active beacons may have changed
  1130. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1131. [CallbackIdentity(Constants.k_iSteamPartiesCallbacks + 6)]
  1132. public struct ActiveBeaconsUpdated_t {
  1133. public const int k_iCallback = Constants.k_iSteamPartiesCallbacks + 6;
  1134. }
  1135. // callbacks
  1136. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1137. [CallbackIdentity(Constants.k_iSteamMusicCallbacks + 1)]
  1138. public struct PlaybackStatusHasChanged_t {
  1139. public const int k_iCallback = Constants.k_iSteamMusicCallbacks + 1;
  1140. }
  1141. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1142. [CallbackIdentity(Constants.k_iSteamMusicCallbacks + 2)]
  1143. public struct VolumeHasChanged_t {
  1144. public const int k_iCallback = Constants.k_iSteamMusicCallbacks + 2;
  1145. public float m_flNewVolume;
  1146. }
  1147. // callbacks
  1148. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1149. [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 1)]
  1150. public struct MusicPlayerRemoteWillActivate_t {
  1151. public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 1;
  1152. }
  1153. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1154. [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 2)]
  1155. public struct MusicPlayerRemoteWillDeactivate_t {
  1156. public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 2;
  1157. }
  1158. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1159. [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 3)]
  1160. public struct MusicPlayerRemoteToFront_t {
  1161. public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 3;
  1162. }
  1163. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1164. [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 4)]
  1165. public struct MusicPlayerWillQuit_t {
  1166. public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 4;
  1167. }
  1168. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1169. [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 5)]
  1170. public struct MusicPlayerWantsPlay_t {
  1171. public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 5;
  1172. }
  1173. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1174. [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 6)]
  1175. public struct MusicPlayerWantsPause_t {
  1176. public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 6;
  1177. }
  1178. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1179. [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 7)]
  1180. public struct MusicPlayerWantsPlayPrevious_t {
  1181. public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 7;
  1182. }
  1183. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1184. [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 8)]
  1185. public struct MusicPlayerWantsPlayNext_t {
  1186. public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 8;
  1187. }
  1188. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1189. [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 9)]
  1190. public struct MusicPlayerWantsShuffled_t {
  1191. public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 9;
  1192. [MarshalAs(UnmanagedType.I1)]
  1193. public bool m_bShuffled;
  1194. }
  1195. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1196. [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 10)]
  1197. public struct MusicPlayerWantsLooped_t {
  1198. public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 10;
  1199. [MarshalAs(UnmanagedType.I1)]
  1200. public bool m_bLooped;
  1201. }
  1202. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1203. [CallbackIdentity(Constants.k_iSteamMusicCallbacks + 11)]
  1204. public struct MusicPlayerWantsVolume_t {
  1205. public const int k_iCallback = Constants.k_iSteamMusicCallbacks + 11;
  1206. public float m_flNewVolume;
  1207. }
  1208. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1209. [CallbackIdentity(Constants.k_iSteamMusicCallbacks + 12)]
  1210. public struct MusicPlayerSelectsQueueEntry_t {
  1211. public const int k_iCallback = Constants.k_iSteamMusicCallbacks + 12;
  1212. public int nID;
  1213. }
  1214. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1215. [CallbackIdentity(Constants.k_iSteamMusicCallbacks + 13)]
  1216. public struct MusicPlayerSelectsPlaylistEntry_t {
  1217. public const int k_iCallback = Constants.k_iSteamMusicCallbacks + 13;
  1218. public int nID;
  1219. }
  1220. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1221. [CallbackIdentity(Constants.k_iSteamMusicRemoteCallbacks + 14)]
  1222. public struct MusicPlayerWantsPlayingRepeatStatus_t {
  1223. public const int k_iCallback = Constants.k_iSteamMusicRemoteCallbacks + 14;
  1224. public int m_nPlayingRepeatStatus;
  1225. }
  1226. // callbacks
  1227. // callback notification - a user wants to talk to us over the P2P channel via the SendP2PPacket() API
  1228. // in response, a call to AcceptP2PPacketsFromUser() needs to be made, if you want to talk with them
  1229. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1230. [CallbackIdentity(Constants.k_iSteamNetworkingCallbacks + 2)]
  1231. public struct P2PSessionRequest_t {
  1232. public const int k_iCallback = Constants.k_iSteamNetworkingCallbacks + 2;
  1233. public CSteamID m_steamIDRemote; // user who wants to talk to us
  1234. }
  1235. // callback notification - packets can't get through to the specified user via the SendP2PPacket() API
  1236. // all packets queued packets unsent at this point will be dropped
  1237. // further attempts to send will retry making the connection (but will be dropped if we fail again)
  1238. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  1239. [CallbackIdentity(Constants.k_iSteamNetworkingCallbacks + 3)]
  1240. public struct P2PSessionConnectFail_t {
  1241. public const int k_iCallback = Constants.k_iSteamNetworkingCallbacks + 3;
  1242. public CSteamID m_steamIDRemote; // user we were sending packets to
  1243. public byte m_eP2PSessionError; // EP2PSessionError indicating why we're having trouble
  1244. }
  1245. // callback notification - status of a socket has changed
  1246. // used as part of the CreateListenSocket() / CreateP2PConnectionSocket()
  1247. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  1248. [CallbackIdentity(Constants.k_iSteamNetworkingCallbacks + 1)]
  1249. public struct SocketStatusCallback_t {
  1250. public const int k_iCallback = Constants.k_iSteamNetworkingCallbacks + 1;
  1251. public SNetSocket_t m_hSocket; // the socket used to send/receive data to the remote host
  1252. public SNetListenSocket_t m_hListenSocket; // this is the server socket that we were listening on; NULL if this was an outgoing connection
  1253. public CSteamID m_steamIDRemote; // remote steamID we have connected to, if it has one
  1254. public int m_eSNetSocketState; // socket state, ESNetSocketState
  1255. }
  1256. //-----------------------------------------------------------------------------
  1257. // Purpose: Callback for querying UGC
  1258. //-----------------------------------------------------------------------------
  1259. [CallbackIdentity(Constants.k_ISteamParentalSettingsCallbacks + 1)]
  1260. public struct SteamParentalSettingsChanged_t {
  1261. public const int k_iCallback = Constants.k_ISteamParentalSettingsCallbacks + 1;
  1262. }
  1263. // callbacks
  1264. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1265. [CallbackIdentity(Constants.k_iSteamRemotePlayCallbacks + 1)]
  1266. public struct SteamRemotePlaySessionConnected_t {
  1267. public const int k_iCallback = Constants.k_iSteamRemotePlayCallbacks + 1;
  1268. public uint m_unSessionID;
  1269. }
  1270. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1271. [CallbackIdentity(Constants.k_iSteamRemotePlayCallbacks + 2)]
  1272. public struct SteamRemotePlaySessionDisconnected_t {
  1273. public const int k_iCallback = Constants.k_iSteamRemotePlayCallbacks + 2;
  1274. public uint m_unSessionID;
  1275. }
  1276. // callbacks
  1277. //-----------------------------------------------------------------------------
  1278. // Purpose: sent when the local file cache is fully synced with the server for an app
  1279. // That means that an application can be started and has all latest files
  1280. //-----------------------------------------------------------------------------
  1281. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1282. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 1)]
  1283. public struct RemoteStorageAppSyncedClient_t {
  1284. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 1;
  1285. public AppId_t m_nAppID;
  1286. public EResult m_eResult;
  1287. public int m_unNumDownloads;
  1288. }
  1289. //-----------------------------------------------------------------------------
  1290. // Purpose: sent when the server is fully synced with the local file cache for an app
  1291. // That means that we can shutdown Steam and our data is stored on the server
  1292. //-----------------------------------------------------------------------------
  1293. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1294. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 2)]
  1295. public struct RemoteStorageAppSyncedServer_t {
  1296. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 2;
  1297. public AppId_t m_nAppID;
  1298. public EResult m_eResult;
  1299. public int m_unNumUploads;
  1300. }
  1301. //-----------------------------------------------------------------------------
  1302. // Purpose: Status of up and downloads during a sync session
  1303. //
  1304. //-----------------------------------------------------------------------------
  1305. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1306. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 3)]
  1307. public struct RemoteStorageAppSyncProgress_t {
  1308. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 3;
  1309. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchFilenameMax)]
  1310. public string m_rgchCurrentFile; // Current file being transferred
  1311. public AppId_t m_nAppID; // App this info relates to
  1312. public uint m_uBytesTransferredThisChunk; // Bytes transferred this chunk
  1313. public double m_dAppPercentComplete; // Percent complete that this app's transfers are
  1314. [MarshalAs(UnmanagedType.I1)]
  1315. public bool m_bUploading; // if false, downloading
  1316. }
  1317. //
  1318. // IMPORTANT! k_iClientRemoteStorageCallbacks + 4 is used, see iclientremotestorage.h
  1319. //
  1320. //-----------------------------------------------------------------------------
  1321. // Purpose: Sent after we've determined the list of files that are out of sync
  1322. // with the server.
  1323. //-----------------------------------------------------------------------------
  1324. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1325. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 5)]
  1326. public struct RemoteStorageAppSyncStatusCheck_t {
  1327. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 5;
  1328. public AppId_t m_nAppID;
  1329. public EResult m_eResult;
  1330. }
  1331. //-----------------------------------------------------------------------------
  1332. // Purpose: The result of a call to FileShare()
  1333. //-----------------------------------------------------------------------------
  1334. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1335. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 7)]
  1336. public struct RemoteStorageFileShareResult_t {
  1337. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 7;
  1338. public EResult m_eResult; // The result of the operation
  1339. public UGCHandle_t m_hFile; // The handle that can be shared with users and features
  1340. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchFilenameMax)]
  1341. public string m_rgchFilename; // The name of the file that was shared
  1342. }
  1343. // k_iClientRemoteStorageCallbacks + 8 is deprecated! Do not reuse
  1344. //-----------------------------------------------------------------------------
  1345. // Purpose: The result of a call to PublishFile()
  1346. //-----------------------------------------------------------------------------
  1347. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1348. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 9)]
  1349. public struct RemoteStoragePublishFileResult_t {
  1350. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 9;
  1351. public EResult m_eResult; // The result of the operation.
  1352. public PublishedFileId_t m_nPublishedFileId;
  1353. [MarshalAs(UnmanagedType.I1)]
  1354. public bool m_bUserNeedsToAcceptWorkshopLegalAgreement;
  1355. }
  1356. //-----------------------------------------------------------------------------
  1357. // Purpose: The result of a call to DeletePublishedFile()
  1358. //-----------------------------------------------------------------------------
  1359. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1360. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 11)]
  1361. public struct RemoteStorageDeletePublishedFileResult_t {
  1362. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 11;
  1363. public EResult m_eResult; // The result of the operation.
  1364. public PublishedFileId_t m_nPublishedFileId;
  1365. }
  1366. //-----------------------------------------------------------------------------
  1367. // Purpose: The result of a call to EnumerateUserPublishedFiles()
  1368. //-----------------------------------------------------------------------------
  1369. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1370. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 12)]
  1371. public struct RemoteStorageEnumerateUserPublishedFilesResult_t {
  1372. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 12;
  1373. public EResult m_eResult; // The result of the operation.
  1374. public int m_nResultsReturned;
  1375. public int m_nTotalResultCount;
  1376. [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)]
  1377. public PublishedFileId_t[] m_rgPublishedFileId;
  1378. }
  1379. //-----------------------------------------------------------------------------
  1380. // Purpose: The result of a call to SubscribePublishedFile()
  1381. //-----------------------------------------------------------------------------
  1382. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1383. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 13)]
  1384. public struct RemoteStorageSubscribePublishedFileResult_t {
  1385. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 13;
  1386. public EResult m_eResult; // The result of the operation.
  1387. public PublishedFileId_t m_nPublishedFileId;
  1388. }
  1389. //-----------------------------------------------------------------------------
  1390. // Purpose: The result of a call to EnumerateSubscribePublishedFiles()
  1391. //-----------------------------------------------------------------------------
  1392. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1393. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 14)]
  1394. public struct RemoteStorageEnumerateUserSubscribedFilesResult_t {
  1395. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 14;
  1396. public EResult m_eResult; // The result of the operation.
  1397. public int m_nResultsReturned;
  1398. public int m_nTotalResultCount;
  1399. [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)]
  1400. public PublishedFileId_t[] m_rgPublishedFileId;
  1401. [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)]
  1402. public uint[] m_rgRTimeSubscribed;
  1403. }
  1404. //-----------------------------------------------------------------------------
  1405. // Purpose: The result of a call to UnsubscribePublishedFile()
  1406. //-----------------------------------------------------------------------------
  1407. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1408. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 15)]
  1409. public struct RemoteStorageUnsubscribePublishedFileResult_t {
  1410. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 15;
  1411. public EResult m_eResult; // The result of the operation.
  1412. public PublishedFileId_t m_nPublishedFileId;
  1413. }
  1414. //-----------------------------------------------------------------------------
  1415. // Purpose: The result of a call to CommitPublishedFileUpdate()
  1416. //-----------------------------------------------------------------------------
  1417. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1418. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 16)]
  1419. public struct RemoteStorageUpdatePublishedFileResult_t {
  1420. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 16;
  1421. public EResult m_eResult; // The result of the operation.
  1422. public PublishedFileId_t m_nPublishedFileId;
  1423. [MarshalAs(UnmanagedType.I1)]
  1424. public bool m_bUserNeedsToAcceptWorkshopLegalAgreement;
  1425. }
  1426. //-----------------------------------------------------------------------------
  1427. // Purpose: The result of a call to UGCDownload()
  1428. //-----------------------------------------------------------------------------
  1429. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1430. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 17)]
  1431. public struct RemoteStorageDownloadUGCResult_t {
  1432. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 17;
  1433. public EResult m_eResult; // The result of the operation.
  1434. public UGCHandle_t m_hFile; // The handle to the file that was attempted to be downloaded.
  1435. public AppId_t m_nAppID; // ID of the app that created this file.
  1436. public int m_nSizeInBytes; // The size of the file that was downloaded, in bytes.
  1437. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchFilenameMax)]
  1438. public string m_pchFileName; // The name of the file that was downloaded.
  1439. public ulong m_ulSteamIDOwner; // Steam ID of the user who created this content.
  1440. }
  1441. //-----------------------------------------------------------------------------
  1442. // Purpose: The result of a call to GetPublishedFileDetails()
  1443. //-----------------------------------------------------------------------------
  1444. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1445. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 18)]
  1446. public struct RemoteStorageGetPublishedFileDetailsResult_t {
  1447. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 18;
  1448. public EResult m_eResult; // The result of the operation.
  1449. public PublishedFileId_t m_nPublishedFileId;
  1450. public AppId_t m_nCreatorAppID; // ID of the app that created this file.
  1451. public AppId_t m_nConsumerAppID; // ID of the app that will consume this file.
  1452. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchPublishedDocumentTitleMax)]
  1453. public string m_rgchTitle; // title of document
  1454. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchPublishedDocumentDescriptionMax)]
  1455. public string m_rgchDescription; // description of document
  1456. public UGCHandle_t m_hFile; // The handle of the primary file
  1457. public UGCHandle_t m_hPreviewFile; // The handle of the preview file
  1458. public ulong m_ulSteamIDOwner; // Steam ID of the user who created this content.
  1459. public uint m_rtimeCreated; // time when the published file was created
  1460. public uint m_rtimeUpdated; // time when the published file was last updated
  1461. public ERemoteStoragePublishedFileVisibility m_eVisibility;
  1462. [MarshalAs(UnmanagedType.I1)]
  1463. public bool m_bBanned;
  1464. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchTagListMax)]
  1465. public string m_rgchTags; // comma separated list of all tags associated with this file
  1466. [MarshalAs(UnmanagedType.I1)]
  1467. public bool m_bTagsTruncated; // whether the list of tags was too long to be returned in the provided buffer
  1468. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchFilenameMax)]
  1469. public string m_pchFileName; // The name of the primary file
  1470. public int m_nFileSize; // Size of the primary file
  1471. public int m_nPreviewFileSize; // Size of the preview file
  1472. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchPublishedFileURLMax)]
  1473. public string m_rgchURL; // URL (for a video or a website)
  1474. public EWorkshopFileType m_eFileType; // Type of the file
  1475. [MarshalAs(UnmanagedType.I1)]
  1476. public bool m_bAcceptedForUse; // developer has specifically flagged this item as accepted in the Workshop
  1477. }
  1478. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1479. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 19)]
  1480. public struct RemoteStorageEnumerateWorkshopFilesResult_t {
  1481. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 19;
  1482. public EResult m_eResult;
  1483. public int m_nResultsReturned;
  1484. public int m_nTotalResultCount;
  1485. [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)]
  1486. public PublishedFileId_t[] m_rgPublishedFileId;
  1487. [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)]
  1488. public float[] m_rgScore;
  1489. public AppId_t m_nAppId;
  1490. public uint m_unStartIndex;
  1491. }
  1492. //-----------------------------------------------------------------------------
  1493. // Purpose: The result of GetPublishedItemVoteDetails
  1494. //-----------------------------------------------------------------------------
  1495. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1496. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 20)]
  1497. public struct RemoteStorageGetPublishedItemVoteDetailsResult_t {
  1498. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 20;
  1499. public EResult m_eResult;
  1500. public PublishedFileId_t m_unPublishedFileId;
  1501. public int m_nVotesFor;
  1502. public int m_nVotesAgainst;
  1503. public int m_nReports;
  1504. public float m_fScore;
  1505. }
  1506. //-----------------------------------------------------------------------------
  1507. // Purpose: User subscribed to a file for the app (from within the app or on the web)
  1508. //-----------------------------------------------------------------------------
  1509. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1510. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 21)]
  1511. public struct RemoteStoragePublishedFileSubscribed_t {
  1512. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 21;
  1513. public PublishedFileId_t m_nPublishedFileId; // The published file id
  1514. public AppId_t m_nAppID; // ID of the app that will consume this file.
  1515. }
  1516. //-----------------------------------------------------------------------------
  1517. // Purpose: User unsubscribed from a file for the app (from within the app or on the web)
  1518. //-----------------------------------------------------------------------------
  1519. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1520. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 22)]
  1521. public struct RemoteStoragePublishedFileUnsubscribed_t {
  1522. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 22;
  1523. public PublishedFileId_t m_nPublishedFileId; // The published file id
  1524. public AppId_t m_nAppID; // ID of the app that will consume this file.
  1525. }
  1526. //-----------------------------------------------------------------------------
  1527. // Purpose: Published file that a user owns was deleted (from within the app or the web)
  1528. //-----------------------------------------------------------------------------
  1529. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1530. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 23)]
  1531. public struct RemoteStoragePublishedFileDeleted_t {
  1532. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 23;
  1533. public PublishedFileId_t m_nPublishedFileId; // The published file id
  1534. public AppId_t m_nAppID; // ID of the app that will consume this file.
  1535. }
  1536. //-----------------------------------------------------------------------------
  1537. // Purpose: The result of a call to UpdateUserPublishedItemVote()
  1538. //-----------------------------------------------------------------------------
  1539. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1540. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 24)]
  1541. public struct RemoteStorageUpdateUserPublishedItemVoteResult_t {
  1542. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 24;
  1543. public EResult m_eResult; // The result of the operation.
  1544. public PublishedFileId_t m_nPublishedFileId; // The published file id
  1545. }
  1546. //-----------------------------------------------------------------------------
  1547. // Purpose: The result of a call to GetUserPublishedItemVoteDetails()
  1548. //-----------------------------------------------------------------------------
  1549. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1550. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 25)]
  1551. public struct RemoteStorageUserVoteDetails_t {
  1552. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 25;
  1553. public EResult m_eResult; // The result of the operation.
  1554. public PublishedFileId_t m_nPublishedFileId; // The published file id
  1555. public EWorkshopVote m_eVote; // what the user voted
  1556. }
  1557. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1558. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 26)]
  1559. public struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t {
  1560. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 26;
  1561. public EResult m_eResult; // The result of the operation.
  1562. public int m_nResultsReturned;
  1563. public int m_nTotalResultCount;
  1564. [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)]
  1565. public PublishedFileId_t[] m_rgPublishedFileId;
  1566. }
  1567. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1568. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 27)]
  1569. public struct RemoteStorageSetUserPublishedFileActionResult_t {
  1570. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 27;
  1571. public EResult m_eResult; // The result of the operation.
  1572. public PublishedFileId_t m_nPublishedFileId; // The published file id
  1573. public EWorkshopFileAction m_eAction; // the action that was attempted
  1574. }
  1575. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1576. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 28)]
  1577. public struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t {
  1578. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 28;
  1579. public EResult m_eResult; // The result of the operation.
  1580. public EWorkshopFileAction m_eAction; // the action that was filtered on
  1581. public int m_nResultsReturned;
  1582. public int m_nTotalResultCount;
  1583. [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)]
  1584. public PublishedFileId_t[] m_rgPublishedFileId;
  1585. [MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.k_unEnumeratePublishedFilesMaxResults)]
  1586. public uint[] m_rgRTimeUpdated;
  1587. }
  1588. //-----------------------------------------------------------------------------
  1589. // Purpose: Called periodically while a PublishWorkshopFile is in progress
  1590. //-----------------------------------------------------------------------------
  1591. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1592. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 29)]
  1593. public struct RemoteStoragePublishFileProgress_t {
  1594. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 29;
  1595. public double m_dPercentFile;
  1596. [MarshalAs(UnmanagedType.I1)]
  1597. public bool m_bPreview;
  1598. }
  1599. //-----------------------------------------------------------------------------
  1600. // Purpose: Called when the content for a published file is updated
  1601. //-----------------------------------------------------------------------------
  1602. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1603. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 30)]
  1604. public struct RemoteStoragePublishedFileUpdated_t {
  1605. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 30;
  1606. public PublishedFileId_t m_nPublishedFileId; // The published file id
  1607. public AppId_t m_nAppID; // ID of the app that will consume this file.
  1608. public ulong m_ulUnused; // not used anymore
  1609. }
  1610. //-----------------------------------------------------------------------------
  1611. // Purpose: Called when a FileWriteAsync completes
  1612. //-----------------------------------------------------------------------------
  1613. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1614. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 31)]
  1615. public struct RemoteStorageFileWriteAsyncComplete_t {
  1616. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 31;
  1617. public EResult m_eResult; // result
  1618. }
  1619. //-----------------------------------------------------------------------------
  1620. // Purpose: Called when a FileReadAsync completes
  1621. //-----------------------------------------------------------------------------
  1622. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1623. [CallbackIdentity(Constants.k_iClientRemoteStorageCallbacks + 32)]
  1624. public struct RemoteStorageFileReadAsyncComplete_t {
  1625. public const int k_iCallback = Constants.k_iClientRemoteStorageCallbacks + 32;
  1626. public SteamAPICall_t m_hFileReadAsync; // call handle of the async read which was made
  1627. public EResult m_eResult; // result
  1628. public uint m_nOffset; // offset in the file this read was at
  1629. public uint m_cubRead; // amount read - will the <= the amount requested
  1630. }
  1631. // callbacks
  1632. //-----------------------------------------------------------------------------
  1633. // Purpose: Screenshot successfully written or otherwise added to the library
  1634. // and can now be tagged
  1635. //-----------------------------------------------------------------------------
  1636. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1637. [CallbackIdentity(Constants.k_iSteamScreenshotsCallbacks + 1)]
  1638. public struct ScreenshotReady_t {
  1639. public const int k_iCallback = Constants.k_iSteamScreenshotsCallbacks + 1;
  1640. public ScreenshotHandle m_hLocal;
  1641. public EResult m_eResult;
  1642. }
  1643. //-----------------------------------------------------------------------------
  1644. // Purpose: Screenshot has been requested by the user. Only sent if
  1645. // HookScreenshots() has been called, in which case Steam will not take
  1646. // the screenshot itself.
  1647. //-----------------------------------------------------------------------------
  1648. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1649. [CallbackIdentity(Constants.k_iSteamScreenshotsCallbacks + 2)]
  1650. public struct ScreenshotRequested_t {
  1651. public const int k_iCallback = Constants.k_iSteamScreenshotsCallbacks + 2;
  1652. }
  1653. //-----------------------------------------------------------------------------
  1654. // Purpose: Callback for querying UGC
  1655. //-----------------------------------------------------------------------------
  1656. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1657. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 1)]
  1658. public struct SteamUGCQueryCompleted_t {
  1659. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 1;
  1660. public UGCQueryHandle_t m_handle;
  1661. public EResult m_eResult;
  1662. public uint m_unNumResultsReturned;
  1663. public uint m_unTotalMatchingResults;
  1664. [MarshalAs(UnmanagedType.I1)]
  1665. public bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache
  1666. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchPublishedFileURLMax)]
  1667. public string m_rgchNextCursor; // If a paging cursor was used, then this will be the next cursor to get the next result set.
  1668. }
  1669. //-----------------------------------------------------------------------------
  1670. // Purpose: Callback for requesting details on one piece of UGC
  1671. //-----------------------------------------------------------------------------
  1672. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1673. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 2)]
  1674. public struct SteamUGCRequestUGCDetailsResult_t {
  1675. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 2;
  1676. public SteamUGCDetails_t m_details;
  1677. [MarshalAs(UnmanagedType.I1)]
  1678. public bool m_bCachedData; // indicates whether this data was retrieved from the local on-disk cache
  1679. }
  1680. //-----------------------------------------------------------------------------
  1681. // Purpose: result for ISteamUGC::CreateItem()
  1682. //-----------------------------------------------------------------------------
  1683. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1684. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 3)]
  1685. public struct CreateItemResult_t {
  1686. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 3;
  1687. public EResult m_eResult;
  1688. public PublishedFileId_t m_nPublishedFileId; // new item got this UGC PublishFileID
  1689. [MarshalAs(UnmanagedType.I1)]
  1690. public bool m_bUserNeedsToAcceptWorkshopLegalAgreement;
  1691. }
  1692. //-----------------------------------------------------------------------------
  1693. // Purpose: result for ISteamUGC::SubmitItemUpdate()
  1694. //-----------------------------------------------------------------------------
  1695. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1696. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 4)]
  1697. public struct SubmitItemUpdateResult_t {
  1698. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 4;
  1699. public EResult m_eResult;
  1700. [MarshalAs(UnmanagedType.I1)]
  1701. public bool m_bUserNeedsToAcceptWorkshopLegalAgreement;
  1702. public PublishedFileId_t m_nPublishedFileId;
  1703. }
  1704. //-----------------------------------------------------------------------------
  1705. // Purpose: a Workshop item has been installed or updated
  1706. //-----------------------------------------------------------------------------
  1707. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1708. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 5)]
  1709. public struct ItemInstalled_t {
  1710. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 5;
  1711. public AppId_t m_unAppID;
  1712. public PublishedFileId_t m_nPublishedFileId;
  1713. }
  1714. //-----------------------------------------------------------------------------
  1715. // Purpose: result of DownloadItem(), existing item files can be accessed again
  1716. //-----------------------------------------------------------------------------
  1717. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1718. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 6)]
  1719. public struct DownloadItemResult_t {
  1720. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 6;
  1721. public AppId_t m_unAppID;
  1722. public PublishedFileId_t m_nPublishedFileId;
  1723. public EResult m_eResult;
  1724. }
  1725. //-----------------------------------------------------------------------------
  1726. // Purpose: result of AddItemToFavorites() or RemoveItemFromFavorites()
  1727. //-----------------------------------------------------------------------------
  1728. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1729. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 7)]
  1730. public struct UserFavoriteItemsListChanged_t {
  1731. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 7;
  1732. public PublishedFileId_t m_nPublishedFileId;
  1733. public EResult m_eResult;
  1734. [MarshalAs(UnmanagedType.I1)]
  1735. public bool m_bWasAddRequest;
  1736. }
  1737. //-----------------------------------------------------------------------------
  1738. // Purpose: The result of a call to SetUserItemVote()
  1739. //-----------------------------------------------------------------------------
  1740. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1741. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 8)]
  1742. public struct SetUserItemVoteResult_t {
  1743. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 8;
  1744. public PublishedFileId_t m_nPublishedFileId;
  1745. public EResult m_eResult;
  1746. [MarshalAs(UnmanagedType.I1)]
  1747. public bool m_bVoteUp;
  1748. }
  1749. //-----------------------------------------------------------------------------
  1750. // Purpose: The result of a call to GetUserItemVote()
  1751. //-----------------------------------------------------------------------------
  1752. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1753. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 9)]
  1754. public struct GetUserItemVoteResult_t {
  1755. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 9;
  1756. public PublishedFileId_t m_nPublishedFileId;
  1757. public EResult m_eResult;
  1758. [MarshalAs(UnmanagedType.I1)]
  1759. public bool m_bVotedUp;
  1760. [MarshalAs(UnmanagedType.I1)]
  1761. public bool m_bVotedDown;
  1762. [MarshalAs(UnmanagedType.I1)]
  1763. public bool m_bVoteSkipped;
  1764. }
  1765. //-----------------------------------------------------------------------------
  1766. // Purpose: The result of a call to StartPlaytimeTracking()
  1767. //-----------------------------------------------------------------------------
  1768. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1769. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 10)]
  1770. public struct StartPlaytimeTrackingResult_t {
  1771. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 10;
  1772. public EResult m_eResult;
  1773. }
  1774. //-----------------------------------------------------------------------------
  1775. // Purpose: The result of a call to StopPlaytimeTracking()
  1776. //-----------------------------------------------------------------------------
  1777. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1778. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 11)]
  1779. public struct StopPlaytimeTrackingResult_t {
  1780. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 11;
  1781. public EResult m_eResult;
  1782. }
  1783. //-----------------------------------------------------------------------------
  1784. // Purpose: The result of a call to AddDependency
  1785. //-----------------------------------------------------------------------------
  1786. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1787. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 12)]
  1788. public struct AddUGCDependencyResult_t {
  1789. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 12;
  1790. public EResult m_eResult;
  1791. public PublishedFileId_t m_nPublishedFileId;
  1792. public PublishedFileId_t m_nChildPublishedFileId;
  1793. }
  1794. //-----------------------------------------------------------------------------
  1795. // Purpose: The result of a call to RemoveDependency
  1796. //-----------------------------------------------------------------------------
  1797. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1798. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 13)]
  1799. public struct RemoveUGCDependencyResult_t {
  1800. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 13;
  1801. public EResult m_eResult;
  1802. public PublishedFileId_t m_nPublishedFileId;
  1803. public PublishedFileId_t m_nChildPublishedFileId;
  1804. }
  1805. //-----------------------------------------------------------------------------
  1806. // Purpose: The result of a call to AddAppDependency
  1807. //-----------------------------------------------------------------------------
  1808. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1809. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 14)]
  1810. public struct AddAppDependencyResult_t {
  1811. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 14;
  1812. public EResult m_eResult;
  1813. public PublishedFileId_t m_nPublishedFileId;
  1814. public AppId_t m_nAppID;
  1815. }
  1816. //-----------------------------------------------------------------------------
  1817. // Purpose: The result of a call to RemoveAppDependency
  1818. //-----------------------------------------------------------------------------
  1819. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1820. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 15)]
  1821. public struct RemoveAppDependencyResult_t {
  1822. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 15;
  1823. public EResult m_eResult;
  1824. public PublishedFileId_t m_nPublishedFileId;
  1825. public AppId_t m_nAppID;
  1826. }
  1827. //-----------------------------------------------------------------------------
  1828. // Purpose: The result of a call to GetAppDependencies. Callback may be called
  1829. // multiple times until all app dependencies have been returned.
  1830. //-----------------------------------------------------------------------------
  1831. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1832. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 16)]
  1833. public struct GetAppDependenciesResult_t {
  1834. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 16;
  1835. public EResult m_eResult;
  1836. public PublishedFileId_t m_nPublishedFileId;
  1837. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
  1838. public AppId_t[] m_rgAppIDs;
  1839. public uint m_nNumAppDependencies; // number returned in this struct
  1840. public uint m_nTotalNumAppDependencies; // total found
  1841. }
  1842. //-----------------------------------------------------------------------------
  1843. // Purpose: The result of a call to DeleteItem
  1844. //-----------------------------------------------------------------------------
  1845. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1846. [CallbackIdentity(Constants.k_iClientUGCCallbacks + 17)]
  1847. public struct DeleteItemResult_t {
  1848. public const int k_iCallback = Constants.k_iClientUGCCallbacks + 17;
  1849. public EResult m_eResult;
  1850. public PublishedFileId_t m_nPublishedFileId;
  1851. }
  1852. // callbacks
  1853. //-----------------------------------------------------------------------------
  1854. // Purpose: called when a connections to the Steam back-end has been established
  1855. // this means the Steam client now has a working connection to the Steam servers
  1856. // usually this will have occurred before the game has launched, and should
  1857. // only be seen if the user has dropped connection due to a networking issue
  1858. // or a Steam server update
  1859. //-----------------------------------------------------------------------------
  1860. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1861. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 1)]
  1862. public struct SteamServersConnected_t {
  1863. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 1;
  1864. }
  1865. //-----------------------------------------------------------------------------
  1866. // Purpose: called when a connection attempt has failed
  1867. // this will occur periodically if the Steam client is not connected,
  1868. // and has failed in it's retry to establish a connection
  1869. //-----------------------------------------------------------------------------
  1870. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1871. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 2)]
  1872. public struct SteamServerConnectFailure_t {
  1873. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 2;
  1874. public EResult m_eResult;
  1875. [MarshalAs(UnmanagedType.I1)]
  1876. public bool m_bStillRetrying;
  1877. }
  1878. //-----------------------------------------------------------------------------
  1879. // Purpose: called if the client has lost connection to the Steam servers
  1880. // real-time services will be disabled until a matching SteamServersConnected_t has been posted
  1881. //-----------------------------------------------------------------------------
  1882. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1883. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 3)]
  1884. public struct SteamServersDisconnected_t {
  1885. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 3;
  1886. public EResult m_eResult;
  1887. }
  1888. //-----------------------------------------------------------------------------
  1889. // Purpose: Sent by the Steam server to the client telling it to disconnect from the specified game server,
  1890. // which it may be in the process of or already connected to.
  1891. // The game client should immediately disconnect upon receiving this message.
  1892. // This can usually occur if the user doesn't have rights to play on the game server.
  1893. //-----------------------------------------------------------------------------
  1894. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1895. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 13)]
  1896. public struct ClientGameServerDeny_t {
  1897. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 13;
  1898. public uint m_uAppID;
  1899. public uint m_unGameServerIP;
  1900. public ushort m_usGameServerPort;
  1901. public ushort m_bSecure;
  1902. public uint m_uReason;
  1903. }
  1904. //-----------------------------------------------------------------------------
  1905. // Purpose: called when the callback system for this client is in an error state (and has flushed pending callbacks)
  1906. // When getting this message the client should disconnect from Steam, reset any stored Steam state and reconnect.
  1907. // This usually occurs in the rare event the Steam client has some kind of fatal error.
  1908. //-----------------------------------------------------------------------------
  1909. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1910. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 17)]
  1911. public struct IPCFailure_t {
  1912. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 17;
  1913. public byte m_eFailureType;
  1914. }
  1915. //-----------------------------------------------------------------------------
  1916. // Purpose: Signaled whenever licenses change
  1917. //-----------------------------------------------------------------------------
  1918. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  1919. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 25)]
  1920. public struct LicensesUpdated_t {
  1921. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 25;
  1922. }
  1923. //-----------------------------------------------------------------------------
  1924. // callback for BeginAuthSession
  1925. //-----------------------------------------------------------------------------
  1926. [StructLayout(LayoutKind.Sequential, Pack = 4)]
  1927. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 43)]
  1928. public struct ValidateAuthTicketResponse_t {
  1929. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 43;
  1930. public CSteamID m_SteamID;
  1931. public EAuthSessionResponse m_eAuthSessionResponse;
  1932. public CSteamID m_OwnerSteamID; // different from m_SteamID if borrowed
  1933. }
  1934. //-----------------------------------------------------------------------------
  1935. // Purpose: called when a user has responded to a microtransaction authorization request
  1936. //-----------------------------------------------------------------------------
  1937. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1938. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 52)]
  1939. public struct MicroTxnAuthorizationResponse_t {
  1940. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 52;
  1941. public uint m_unAppID; // AppID for this microtransaction
  1942. public ulong m_ulOrderID; // OrderID provided for the microtransaction
  1943. public byte m_bAuthorized; // if user authorized transaction
  1944. }
  1945. //-----------------------------------------------------------------------------
  1946. // Purpose: Result from RequestEncryptedAppTicket
  1947. //-----------------------------------------------------------------------------
  1948. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1949. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 54)]
  1950. public struct EncryptedAppTicketResponse_t {
  1951. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 54;
  1952. public EResult m_eResult;
  1953. }
  1954. //-----------------------------------------------------------------------------
  1955. // callback for GetAuthSessionTicket
  1956. //-----------------------------------------------------------------------------
  1957. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1958. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 63)]
  1959. public struct GetAuthSessionTicketResponse_t {
  1960. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 63;
  1961. public HAuthTicket m_hAuthTicket;
  1962. public EResult m_eResult;
  1963. }
  1964. //-----------------------------------------------------------------------------
  1965. // Purpose: sent to your game in response to a steam://gamewebcallback/ command
  1966. //-----------------------------------------------------------------------------
  1967. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1968. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 64)]
  1969. public struct GameWebCallback_t {
  1970. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 64;
  1971. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
  1972. public string m_szURL;
  1973. }
  1974. //-----------------------------------------------------------------------------
  1975. // Purpose: sent to your game in response to ISteamUser::RequestStoreAuthURL
  1976. //-----------------------------------------------------------------------------
  1977. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1978. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 65)]
  1979. public struct StoreAuthURLResponse_t {
  1980. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 65;
  1981. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)]
  1982. public string m_szURL;
  1983. }
  1984. //-----------------------------------------------------------------------------
  1985. // Purpose: sent in response to ISteamUser::GetMarketEligibility
  1986. //-----------------------------------------------------------------------------
  1987. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  1988. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 66)]
  1989. public struct MarketEligibilityResponse_t {
  1990. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 66;
  1991. [MarshalAs(UnmanagedType.I1)]
  1992. public bool m_bAllowed;
  1993. public EMarketNotAllowedReasonFlags m_eNotAllowedReason;
  1994. public RTime32 m_rtAllowedAtTime;
  1995. public int m_cdaySteamGuardRequiredDays; // The number of days any user is required to have had Steam Guard before they can use the market
  1996. public int m_cdayNewDeviceCooldown; // The number of days after initial device authorization a user must wait before using the market on that device
  1997. }
  1998. //-----------------------------------------------------------------------------
  1999. // Purpose: sent for games with enabled anti indulgence / duration control, for
  2000. // enabled users. Lets the game know whether persistent rewards or XP should be
  2001. // granted at normal rate, half rate, or zero rate.
  2002. //
  2003. // This callback is fired asynchronously in response to timers triggering.
  2004. // It is also fired in response to calls to GetDurationControl().
  2005. //-----------------------------------------------------------------------------
  2006. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2007. [CallbackIdentity(Constants.k_iSteamUserCallbacks + 67)]
  2008. public struct DurationControl_t {
  2009. public const int k_iCallback = Constants.k_iSteamUserCallbacks + 67;
  2010. public EResult m_eResult; // result of call (always k_EResultOK for asynchronous timer-based notifications)
  2011. public AppId_t m_appid; // appid generating playtime
  2012. [MarshalAs(UnmanagedType.I1)]
  2013. public bool m_bApplicable; // is duration control applicable to user + game combination
  2014. public int m_csecsLast5h; // playtime in trailing 5 hour window plus current session, in seconds
  2015. public EDurationControlProgress m_progress; // recommended progress
  2016. public EDurationControlNotification m_notification; // notification to show, if any (always k_EDurationControlNotification_None for API calls)
  2017. }
  2018. // callbacks
  2019. //-----------------------------------------------------------------------------
  2020. // Purpose: called when the latests stats and achievements have been received
  2021. // from the server
  2022. //-----------------------------------------------------------------------------
  2023. [StructLayout(LayoutKind.Explicit, Pack = Packsize.value)]
  2024. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 1)]
  2025. public struct UserStatsReceived_t {
  2026. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 1;
  2027. [FieldOffset(0)]
  2028. public ulong m_nGameID; // Game these stats are for
  2029. [FieldOffset(8)]
  2030. public EResult m_eResult; // Success / error fetching the stats
  2031. [FieldOffset(12)]
  2032. public CSteamID m_steamIDUser; // The user for whom the stats are retrieved for
  2033. }
  2034. //-----------------------------------------------------------------------------
  2035. // Purpose: result of a request to store the user stats for a game
  2036. //-----------------------------------------------------------------------------
  2037. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2038. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 2)]
  2039. public struct UserStatsStored_t {
  2040. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 2;
  2041. public ulong m_nGameID; // Game these stats are for
  2042. public EResult m_eResult; // success / error
  2043. }
  2044. //-----------------------------------------------------------------------------
  2045. // Purpose: result of a request to store the achievements for a game, or an
  2046. // "indicate progress" call. If both m_nCurProgress and m_nMaxProgress
  2047. // are zero, that means the achievement has been fully unlocked.
  2048. //-----------------------------------------------------------------------------
  2049. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2050. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 3)]
  2051. public struct UserAchievementStored_t {
  2052. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 3;
  2053. public ulong m_nGameID; // Game this is for
  2054. [MarshalAs(UnmanagedType.I1)]
  2055. public bool m_bGroupAchievement; // if this is a "group" achievement
  2056. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchStatNameMax)]
  2057. public string m_rgchAchievementName; // name of the achievement
  2058. public uint m_nCurProgress; // current progress towards the achievement
  2059. public uint m_nMaxProgress; // "out of" this many
  2060. }
  2061. //-----------------------------------------------------------------------------
  2062. // Purpose: call result for finding a leaderboard, returned as a result of FindOrCreateLeaderboard() or FindLeaderboard()
  2063. // use CCallResult<> to map this async result to a member function
  2064. //-----------------------------------------------------------------------------
  2065. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2066. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 4)]
  2067. public struct LeaderboardFindResult_t {
  2068. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 4;
  2069. public SteamLeaderboard_t m_hSteamLeaderboard; // handle to the leaderboard serarched for, 0 if no leaderboard found
  2070. public byte m_bLeaderboardFound; // 0 if no leaderboard found
  2071. }
  2072. //-----------------------------------------------------------------------------
  2073. // Purpose: call result indicating scores for a leaderboard have been downloaded and are ready to be retrieved, returned as a result of DownloadLeaderboardEntries()
  2074. // use CCallResult<> to map this async result to a member function
  2075. //-----------------------------------------------------------------------------
  2076. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2077. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 5)]
  2078. public struct LeaderboardScoresDownloaded_t {
  2079. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 5;
  2080. public SteamLeaderboard_t m_hSteamLeaderboard;
  2081. public SteamLeaderboardEntries_t m_hSteamLeaderboardEntries; // the handle to pass into GetDownloadedLeaderboardEntries()
  2082. public int m_cEntryCount; // the number of entries downloaded
  2083. }
  2084. //-----------------------------------------------------------------------------
  2085. // Purpose: call result indicating scores has been uploaded, returned as a result of UploadLeaderboardScore()
  2086. // use CCallResult<> to map this async result to a member function
  2087. //-----------------------------------------------------------------------------
  2088. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2089. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 6)]
  2090. public struct LeaderboardScoreUploaded_t {
  2091. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 6;
  2092. public byte m_bSuccess; // 1 if the call was successful
  2093. public SteamLeaderboard_t m_hSteamLeaderboard; // the leaderboard handle that was
  2094. public int m_nScore; // the score that was attempted to set
  2095. public byte m_bScoreChanged; // true if the score in the leaderboard change, false if the existing score was better
  2096. public int m_nGlobalRankNew; // the new global rank of the user in this leaderboard
  2097. public int m_nGlobalRankPrevious; // the previous global rank of the user in this leaderboard; 0 if the user had no existing entry in the leaderboard
  2098. }
  2099. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2100. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 7)]
  2101. public struct NumberOfCurrentPlayers_t {
  2102. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 7;
  2103. public byte m_bSuccess; // 1 if the call was successful
  2104. public int m_cPlayers; // Number of players currently playing
  2105. }
  2106. //-----------------------------------------------------------------------------
  2107. // Purpose: Callback indicating that a user's stats have been unloaded.
  2108. // Call RequestUserStats again to access stats for this user
  2109. //-----------------------------------------------------------------------------
  2110. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2111. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 8)]
  2112. public struct UserStatsUnloaded_t {
  2113. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 8;
  2114. public CSteamID m_steamIDUser; // User whose stats have been unloaded
  2115. }
  2116. //-----------------------------------------------------------------------------
  2117. // Purpose: Callback indicating that an achievement icon has been fetched
  2118. //-----------------------------------------------------------------------------
  2119. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2120. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 9)]
  2121. public struct UserAchievementIconFetched_t {
  2122. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 9;
  2123. public CGameID m_nGameID; // Game this is for
  2124. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = Constants.k_cchStatNameMax)]
  2125. public string m_rgchAchievementName; // name of the achievement
  2126. [MarshalAs(UnmanagedType.I1)]
  2127. public bool m_bAchieved; // Is the icon for the achieved or not achieved version?
  2128. public int m_nIconHandle; // Handle to the image, which can be used in SteamUtils()->GetImageRGBA(), 0 means no image is set for the achievement
  2129. }
  2130. //-----------------------------------------------------------------------------
  2131. // Purpose: Callback indicating that global achievement percentages are fetched
  2132. //-----------------------------------------------------------------------------
  2133. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2134. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 10)]
  2135. public struct GlobalAchievementPercentagesReady_t {
  2136. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 10;
  2137. public ulong m_nGameID; // Game this is for
  2138. public EResult m_eResult; // Result of the operation
  2139. }
  2140. //-----------------------------------------------------------------------------
  2141. // Purpose: call result indicating UGC has been uploaded, returned as a result of SetLeaderboardUGC()
  2142. //-----------------------------------------------------------------------------
  2143. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2144. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 11)]
  2145. public struct LeaderboardUGCSet_t {
  2146. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 11;
  2147. public EResult m_eResult; // The result of the operation
  2148. public SteamLeaderboard_t m_hSteamLeaderboard; // the leaderboard handle that was
  2149. }
  2150. //-----------------------------------------------------------------------------
  2151. // Purpose: callback indicating global stats have been received.
  2152. // Returned as a result of RequestGlobalStats()
  2153. //-----------------------------------------------------------------------------
  2154. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2155. [CallbackIdentity(Constants.k_iSteamUserStatsCallbacks + 12)]
  2156. public struct GlobalStatsReceived_t {
  2157. public const int k_iCallback = Constants.k_iSteamUserStatsCallbacks + 12;
  2158. public ulong m_nGameID; // Game global stats were requested for
  2159. public EResult m_eResult; // The result of the request
  2160. }
  2161. // callbacks
  2162. //-----------------------------------------------------------------------------
  2163. // Purpose: The country of the user changed
  2164. //-----------------------------------------------------------------------------
  2165. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  2166. [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 1)]
  2167. public struct IPCountry_t {
  2168. public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 1;
  2169. }
  2170. //-----------------------------------------------------------------------------
  2171. // Purpose: Fired when running on a laptop and less than 10 minutes of battery is left, fires then every minute
  2172. //-----------------------------------------------------------------------------
  2173. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2174. [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 2)]
  2175. public struct LowBatteryPower_t {
  2176. public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 2;
  2177. public byte m_nMinutesBatteryLeft;
  2178. }
  2179. //-----------------------------------------------------------------------------
  2180. // Purpose: called when a SteamAsyncCall_t has completed (or failed)
  2181. //-----------------------------------------------------------------------------
  2182. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2183. [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 3)]
  2184. public struct SteamAPICallCompleted_t {
  2185. public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 3;
  2186. public SteamAPICall_t m_hAsyncCall;
  2187. public int m_iCallback;
  2188. public uint m_cubParam;
  2189. }
  2190. //-----------------------------------------------------------------------------
  2191. // called when Steam wants to shutdown
  2192. //-----------------------------------------------------------------------------
  2193. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value, Size = 1)]
  2194. [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 4)]
  2195. public struct SteamShutdown_t {
  2196. public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 4;
  2197. }
  2198. //-----------------------------------------------------------------------------
  2199. // callback for CheckFileSignature
  2200. //-----------------------------------------------------------------------------
  2201. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2202. [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 5)]
  2203. public struct CheckFileSignature_t {
  2204. public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 5;
  2205. public ECheckFileSignature m_eCheckFileSignature;
  2206. }
  2207. // k_iSteamUtilsCallbacks + 13 is taken
  2208. //-----------------------------------------------------------------------------
  2209. // Big Picture gamepad text input has been closed
  2210. //-----------------------------------------------------------------------------
  2211. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2212. [CallbackIdentity(Constants.k_iSteamUtilsCallbacks + 14)]
  2213. public struct GamepadTextInputDismissed_t {
  2214. public const int k_iCallback = Constants.k_iSteamUtilsCallbacks + 14;
  2215. [MarshalAs(UnmanagedType.I1)]
  2216. public bool m_bSubmitted; // true if user entered & accepted text (Call ISteamUtils::GetEnteredGamepadTextInput() for text), false if canceled input
  2217. public uint m_unSubmittedText;
  2218. }
  2219. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2220. [CallbackIdentity(Constants.k_iClientVideoCallbacks + 11)]
  2221. public struct GetVideoURLResult_t {
  2222. public const int k_iCallback = Constants.k_iClientVideoCallbacks + 11;
  2223. public EResult m_eResult;
  2224. public AppId_t m_unVideoAppID;
  2225. [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
  2226. public string m_rgchURL;
  2227. }
  2228. [StructLayout(LayoutKind.Sequential, Pack = Packsize.value)]
  2229. [CallbackIdentity(Constants.k_iClientVideoCallbacks + 24)]
  2230. public struct GetOPFSettingsResult_t {
  2231. public const int k_iCallback = Constants.k_iClientVideoCallbacks + 24;
  2232. public EResult m_eResult;
  2233. public AppId_t m_unVideoAppID;
  2234. }
  2235. }
  2236. #endif // !DISABLESTEAMWORKS