1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
|
// This file is provided under The MIT License as part of Steamworks.NET.
// Copyright (c) 2013-2022 Riley Labrecque
// Please see the included LICENSE.txt for additional information.
// This file is automatically generated.
// Changes to this file will be reverted when you update Steamworks.NET
#if !(UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE_OSX || STEAMWORKS_WIN || STEAMWORKS_LIN_OSX)
#define DISABLESTEAMWORKS
#endif
#if !DISABLESTEAMWORKS
using System.Runtime.InteropServices;
using IntPtr = System.IntPtr;
namespace Steamworks {
public static class SteamClient {
/// <summary>
/// <para> Creates a communication pipe to the Steam client.</para>
/// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para>
/// </summary>
public static HSteamPipe CreateSteamPipe() {
InteropHelp.TestIfAvailableClient();
return (HSteamPipe)NativeMethods.ISteamClient_CreateSteamPipe(CSteamAPIContext.GetSteamClient());
}
/// <summary>
/// <para> Releases a previously created communications pipe</para>
/// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para>
/// </summary>
public static bool BReleaseSteamPipe(HSteamPipe hSteamPipe) {
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamClient_BReleaseSteamPipe(CSteamAPIContext.GetSteamClient(), hSteamPipe);
}
/// <summary>
/// <para> connects to an existing global user, failing if none exists</para>
/// <para> used by the game to coordinate with the steamUI</para>
/// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para>
/// </summary>
public static HSteamUser ConnectToGlobalUser(HSteamPipe hSteamPipe) {
InteropHelp.TestIfAvailableClient();
return (HSteamUser)NativeMethods.ISteamClient_ConnectToGlobalUser(CSteamAPIContext.GetSteamClient(), hSteamPipe);
}
/// <summary>
/// <para> used by game servers, create a steam user that won't be shared with anyone else</para>
/// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para>
/// </summary>
public static HSteamUser CreateLocalUser(out HSteamPipe phSteamPipe, EAccountType eAccountType) {
InteropHelp.TestIfAvailableClient();
return (HSteamUser)NativeMethods.ISteamClient_CreateLocalUser(CSteamAPIContext.GetSteamClient(), out phSteamPipe, eAccountType);
}
/// <summary>
/// <para> removes an allocated user</para>
/// <para> NOT THREADSAFE - ensure that no other threads are accessing Steamworks API when calling</para>
/// </summary>
public static void ReleaseUser(HSteamPipe hSteamPipe, HSteamUser hUser) {
InteropHelp.TestIfAvailableClient();
NativeMethods.ISteamClient_ReleaseUser(CSteamAPIContext.GetSteamClient(), hSteamPipe, hUser);
}
/// <summary>
/// <para> retrieves the ISteamUser interface associated with the handle</para>
/// </summary>
public static IntPtr GetISteamUser(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamUser(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> retrieves the ISteamGameServer interface associated with the handle</para>
/// </summary>
public static IntPtr GetISteamGameServer(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamGameServer(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> set the local IP and Port to bind to</para>
/// <para> this must be set before CreateLocalUser()</para>
/// </summary>
public static void SetLocalIPBinding(ref SteamIPAddress_t unIP, ushort usPort) {
InteropHelp.TestIfAvailableClient();
NativeMethods.ISteamClient_SetLocalIPBinding(CSteamAPIContext.GetSteamClient(), ref unIP, usPort);
}
/// <summary>
/// <para> returns the ISteamFriends interface</para>
/// </summary>
public static IntPtr GetISteamFriends(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamFriends(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> returns the ISteamUtils interface</para>
/// </summary>
public static IntPtr GetISteamUtils(HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamUtils(CSteamAPIContext.GetSteamClient(), hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> returns the ISteamMatchmaking interface</para>
/// </summary>
public static IntPtr GetISteamMatchmaking(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamMatchmaking(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> returns the ISteamMatchmakingServers interface</para>
/// </summary>
public static IntPtr GetISteamMatchmakingServers(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamMatchmakingServers(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> returns the a generic interface</para>
/// </summary>
public static IntPtr GetISteamGenericInterface(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamGenericInterface(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> returns the ISteamUserStats interface</para>
/// </summary>
public static IntPtr GetISteamUserStats(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamUserStats(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> returns the ISteamGameServerStats interface</para>
/// </summary>
public static IntPtr GetISteamGameServerStats(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamGameServerStats(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> returns apps interface</para>
/// </summary>
public static IntPtr GetISteamApps(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamApps(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> networking</para>
/// </summary>
public static IntPtr GetISteamNetworking(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamNetworking(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> remote storage</para>
/// </summary>
public static IntPtr GetISteamRemoteStorage(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamRemoteStorage(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> user screenshots</para>
/// </summary>
public static IntPtr GetISteamScreenshots(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamScreenshots(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> game search</para>
/// </summary>
public static IntPtr GetISteamGameSearch(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamGameSearch(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> returns the number of IPC calls made since the last time this function was called</para>
/// <para> Used for perf debugging so you can understand how many IPC calls your game makes per frame</para>
/// <para> Every IPC call is at minimum a thread context switch if not a process one so you want to rate</para>
/// <para> control how often you do them.</para>
/// </summary>
public static uint GetIPCCallCount() {
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamClient_GetIPCCallCount(CSteamAPIContext.GetSteamClient());
}
/// <summary>
/// <para> API warning handling</para>
/// <para> 'int' is the severity; 0 for msg, 1 for warning</para>
/// <para> 'const char *' is the text of the message</para>
/// <para> callbacks will occur directly after the API function is called that generated the warning or message.</para>
/// </summary>
public static void SetWarningMessageHook(SteamAPIWarningMessageHook_t pFunction) {
InteropHelp.TestIfAvailableClient();
NativeMethods.ISteamClient_SetWarningMessageHook(CSteamAPIContext.GetSteamClient(), pFunction);
}
/// <summary>
/// <para> Trigger global shutdown for the DLL</para>
/// </summary>
public static bool BShutdownIfAllPipesClosed() {
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamClient_BShutdownIfAllPipesClosed(CSteamAPIContext.GetSteamClient());
}
/// <summary>
/// <para> Expose HTTP interface</para>
/// </summary>
public static IntPtr GetISteamHTTP(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamHTTP(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> Exposes the ISteamController interface - deprecated in favor of Steam Input</para>
/// </summary>
public static IntPtr GetISteamController(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamController(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> Exposes the ISteamUGC interface</para>
/// </summary>
public static IntPtr GetISteamUGC(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamUGC(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> returns app list interface, only available on specially registered apps</para>
/// </summary>
public static IntPtr GetISteamAppList(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamAppList(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> Music Player</para>
/// </summary>
public static IntPtr GetISteamMusic(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamMusic(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> Music Player Remote</para>
/// </summary>
public static IntPtr GetISteamMusicRemote(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamMusicRemote(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> html page display</para>
/// </summary>
public static IntPtr GetISteamHTMLSurface(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamHTMLSurface(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> inventory</para>
/// </summary>
public static IntPtr GetISteamInventory(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamInventory(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> Video</para>
/// </summary>
public static IntPtr GetISteamVideo(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamVideo(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> Parental controls</para>
/// </summary>
public static IntPtr GetISteamParentalSettings(HSteamUser hSteamuser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamParentalSettings(CSteamAPIContext.GetSteamClient(), hSteamuser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> Exposes the Steam Input interface for controller support</para>
/// </summary>
public static IntPtr GetISteamInput(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamInput(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> Steam Parties interface</para>
/// </summary>
public static IntPtr GetISteamParties(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamParties(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
/// <summary>
/// <para> Steam Remote Play interface</para>
/// </summary>
public static IntPtr GetISteamRemotePlay(HSteamUser hSteamUser, HSteamPipe hSteamPipe, string pchVersion) {
InteropHelp.TestIfAvailableClient();
using (var pchVersion2 = new InteropHelp.UTF8StringHandle(pchVersion)) {
return NativeMethods.ISteamClient_GetISteamRemotePlay(CSteamAPIContext.GetSteamClient(), hSteamUser, hSteamPipe, pchVersion2);
}
}
}
}
#endif // !DISABLESTEAMWORKS
|