123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448 |
- // This file is provided under The MIT License as part of Steamworks.NET.
- // Copyright (c) 2013-2019 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_ANDROID || UNITY_IOS || UNITY_TIZEN || UNITY_TVOS || UNITY_WEBGL || UNITY_WSA || UNITY_PS4 || UNITY_WII || UNITY_XBOXONE || UNITY_SWITCH
- #define DISABLESTEAMWORKS
- #endif
- #if !DISABLESTEAMWORKS
- // Unity 32bit Mono on Windows crashes with ThisCall for some reason, StdCall without the 'this' ptr is the only thing that works..?
- #if (UNITY_EDITOR_WIN && !UNITY_EDITOR_64) || (!UNITY_EDITOR && UNITY_STANDALONE_WIN && !UNITY_64)
- #define NOTHISPTR
- #endif
- using System;
- using System.Runtime.InteropServices;
- namespace Steamworks {
- //-----------------------------------------------------------------------------
- // Purpose: Callback interface for receiving responses after a server list refresh
- // or an individual server update.
- //
- // Since you get these callbacks after requesting full list refreshes you will
- // usually implement this interface inside an object like CServerBrowser. If that
- // object is getting destructed you should use ISteamMatchMakingServers()->CancelQuery()
- // to cancel any in-progress queries so you don't get a callback into the destructed
- // object and crash.
- //-----------------------------------------------------------------------------
- public class ISteamMatchmakingServerListResponse {
- // Server has responded ok with updated data
- public delegate void ServerResponded(HServerListRequest hRequest, int iServer);
- // Server has failed to respond
- public delegate void ServerFailedToRespond(HServerListRequest hRequest, int iServer);
- // A list refresh you had initiated is now 100% completed
- public delegate void RefreshComplete(HServerListRequest hRequest, EMatchMakingServerResponse response);
- private VTable m_VTable;
- private IntPtr m_pVTable;
- private GCHandle m_pGCHandle;
- private ServerResponded m_ServerResponded;
- private ServerFailedToRespond m_ServerFailedToRespond;
- private RefreshComplete m_RefreshComplete;
- public ISteamMatchmakingServerListResponse(ServerResponded onServerResponded, ServerFailedToRespond onServerFailedToRespond, RefreshComplete onRefreshComplete) {
- if (onServerResponded == null || onServerFailedToRespond == null || onRefreshComplete == null) {
- throw new ArgumentNullException();
- }
- m_ServerResponded = onServerResponded;
- m_ServerFailedToRespond = onServerFailedToRespond;
- m_RefreshComplete = onRefreshComplete;
- m_VTable = new VTable() {
- m_VTServerResponded = InternalOnServerResponded,
- m_VTServerFailedToRespond = InternalOnServerFailedToRespond,
- m_VTRefreshComplete = InternalOnRefreshComplete
- };
- m_pVTable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VTable)));
- Marshal.StructureToPtr(m_VTable, m_pVTable, false);
- m_pGCHandle = GCHandle.Alloc(m_pVTable, GCHandleType.Pinned);
- }
- ~ISteamMatchmakingServerListResponse() {
- if (m_pVTable != IntPtr.Zero) {
- Marshal.FreeHGlobal(m_pVTable);
- }
- if (m_pGCHandle.IsAllocated) {
- m_pGCHandle.Free();
- }
- }
-
- #if NOTHISPTR
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void InternalServerResponded(HServerListRequest hRequest, int iServer);
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void InternalServerFailedToRespond(HServerListRequest hRequest, int iServer);
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void InternalRefreshComplete(HServerListRequest hRequest, EMatchMakingServerResponse response);
- private void InternalOnServerResponded(HServerListRequest hRequest, int iServer) {
- m_ServerResponded(hRequest, iServer);
- }
- private void InternalOnServerFailedToRespond(HServerListRequest hRequest, int iServer) {
- m_ServerFailedToRespond(hRequest, iServer);
- }
- private void InternalOnRefreshComplete(HServerListRequest hRequest, EMatchMakingServerResponse response) {
- m_RefreshComplete(hRequest, response);
- }
- #else
- [UnmanagedFunctionPointer(CallingConvention.ThisCall)]
- private delegate void InternalServerResponded(IntPtr thisptr, HServerListRequest hRequest, int iServer);
- [UnmanagedFunctionPointer(CallingConvention.ThisCall)]
- private delegate void InternalServerFailedToRespond(IntPtr thisptr, HServerListRequest hRequest, int iServer);
- [UnmanagedFunctionPointer(CallingConvention.ThisCall)]
- private delegate void InternalRefreshComplete(IntPtr thisptr, HServerListRequest hRequest, EMatchMakingServerResponse response);
- private void InternalOnServerResponded(IntPtr thisptr, HServerListRequest hRequest, int iServer) {
- m_ServerResponded(hRequest, iServer);
- }
- private void InternalOnServerFailedToRespond(IntPtr thisptr, HServerListRequest hRequest, int iServer) {
- m_ServerFailedToRespond(hRequest, iServer);
- }
- private void InternalOnRefreshComplete(IntPtr thisptr, HServerListRequest hRequest, EMatchMakingServerResponse response) {
- m_RefreshComplete(hRequest, response);
- }
- #endif
- [StructLayout(LayoutKind.Sequential)]
- private class VTable {
- [NonSerialized]
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public InternalServerResponded m_VTServerResponded;
- [NonSerialized]
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public InternalServerFailedToRespond m_VTServerFailedToRespond;
- [NonSerialized]
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public InternalRefreshComplete m_VTRefreshComplete;
- }
- public static explicit operator System.IntPtr(ISteamMatchmakingServerListResponse that) {
- return that.m_pGCHandle.AddrOfPinnedObject();
- }
- };
- //-----------------------------------------------------------------------------
- // Purpose: Callback interface for receiving responses after pinging an individual server
- //
- // These callbacks all occur in response to querying an individual server
- // via the ISteamMatchmakingServers()->PingServer() call below. If you are
- // destructing an object that implements this interface then you should call
- // ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query
- // which is in progress. Failure to cancel in progress queries when destructing
- // a callback handler may result in a crash when a callback later occurs.
- //-----------------------------------------------------------------------------
- public class ISteamMatchmakingPingResponse {
- // Server has responded successfully and has updated data
- public delegate void ServerResponded(gameserveritem_t server);
- // Server failed to respond to the ping request
- public delegate void ServerFailedToRespond();
- private VTable m_VTable;
- private IntPtr m_pVTable;
- private GCHandle m_pGCHandle;
- private ServerResponded m_ServerResponded;
- private ServerFailedToRespond m_ServerFailedToRespond;
- public ISteamMatchmakingPingResponse(ServerResponded onServerResponded, ServerFailedToRespond onServerFailedToRespond) {
- if (onServerResponded == null || onServerFailedToRespond == null) {
- throw new ArgumentNullException();
- }
- m_ServerResponded = onServerResponded;
- m_ServerFailedToRespond = onServerFailedToRespond;
- m_VTable = new VTable() {
- m_VTServerResponded = InternalOnServerResponded,
- m_VTServerFailedToRespond = InternalOnServerFailedToRespond,
- };
- m_pVTable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VTable)));
- Marshal.StructureToPtr(m_VTable, m_pVTable, false);
- m_pGCHandle = GCHandle.Alloc(m_pVTable, GCHandleType.Pinned);
- }
- ~ISteamMatchmakingPingResponse() {
- if (m_pVTable != IntPtr.Zero) {
- Marshal.FreeHGlobal(m_pVTable);
- }
- if (m_pGCHandle.IsAllocated) {
- m_pGCHandle.Free();
- }
- }
- #if NOTHISPTR
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void InternalServerResponded(gameserveritem_t server);
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- private delegate void InternalServerFailedToRespond();
- private void InternalOnServerResponded(gameserveritem_t server) {
- m_ServerResponded(server);
- }
- private void InternalOnServerFailedToRespond() {
- m_ServerFailedToRespond();
- }
- #else
- [UnmanagedFunctionPointer(CallingConvention.ThisCall)]
- private delegate void InternalServerResponded(IntPtr thisptr, gameserveritem_t server);
- [UnmanagedFunctionPointer(CallingConvention.ThisCall)]
- private delegate void InternalServerFailedToRespond(IntPtr thisptr);
- private void InternalOnServerResponded(IntPtr thisptr, gameserveritem_t server) {
- m_ServerResponded(server);
- }
- private void InternalOnServerFailedToRespond(IntPtr thisptr) {
- m_ServerFailedToRespond();
- }
- #endif
- [StructLayout(LayoutKind.Sequential)]
- private class VTable {
- [NonSerialized]
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public InternalServerResponded m_VTServerResponded;
- [NonSerialized]
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public InternalServerFailedToRespond m_VTServerFailedToRespond;
- }
- public static explicit operator System.IntPtr(ISteamMatchmakingPingResponse that) {
- return that.m_pGCHandle.AddrOfPinnedObject();
- }
- };
- //-----------------------------------------------------------------------------
- // Purpose: Callback interface for receiving responses after requesting details on
- // who is playing on a particular server.
- //
- // These callbacks all occur in response to querying an individual server
- // via the ISteamMatchmakingServers()->PlayerDetails() call below. If you are
- // destructing an object that implements this interface then you should call
- // ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query
- // which is in progress. Failure to cancel in progress queries when destructing
- // a callback handler may result in a crash when a callback later occurs.
- //-----------------------------------------------------------------------------
- public class ISteamMatchmakingPlayersResponse {
- // Got data on a new player on the server -- you'll get this callback once per player
- // on the server which you have requested player data on.
- public delegate void AddPlayerToList(string pchName, int nScore, float flTimePlayed);
- // The server failed to respond to the request for player details
- public delegate void PlayersFailedToRespond();
- // The server has finished responding to the player details request
- // (ie, you won't get anymore AddPlayerToList callbacks)
- public delegate void PlayersRefreshComplete();
- private VTable m_VTable;
- private IntPtr m_pVTable;
- private GCHandle m_pGCHandle;
- private AddPlayerToList m_AddPlayerToList;
- private PlayersFailedToRespond m_PlayersFailedToRespond;
- private PlayersRefreshComplete m_PlayersRefreshComplete;
- public ISteamMatchmakingPlayersResponse(AddPlayerToList onAddPlayerToList, PlayersFailedToRespond onPlayersFailedToRespond, PlayersRefreshComplete onPlayersRefreshComplete) {
- if (onAddPlayerToList == null || onPlayersFailedToRespond == null || onPlayersRefreshComplete == null) {
- throw new ArgumentNullException();
- }
- m_AddPlayerToList = onAddPlayerToList;
- m_PlayersFailedToRespond = onPlayersFailedToRespond;
- m_PlayersRefreshComplete = onPlayersRefreshComplete;
-
- m_VTable = new VTable() {
- m_VTAddPlayerToList = InternalOnAddPlayerToList,
- m_VTPlayersFailedToRespond = InternalOnPlayersFailedToRespond,
- m_VTPlayersRefreshComplete = InternalOnPlayersRefreshComplete
- };
- m_pVTable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VTable)));
- Marshal.StructureToPtr(m_VTable, m_pVTable, false);
- m_pGCHandle = GCHandle.Alloc(m_pVTable, GCHandleType.Pinned);
- }
- ~ISteamMatchmakingPlayersResponse() {
- if (m_pVTable != IntPtr.Zero) {
- Marshal.FreeHGlobal(m_pVTable);
- }
- if (m_pGCHandle.IsAllocated) {
- m_pGCHandle.Free();
- }
- }
-
- #if NOTHISPTR
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void InternalAddPlayerToList(IntPtr pchName, int nScore, float flTimePlayed);
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void InternalPlayersFailedToRespond();
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void InternalPlayersRefreshComplete();
- private void InternalOnAddPlayerToList(IntPtr pchName, int nScore, float flTimePlayed) {
- m_AddPlayerToList(InteropHelp.PtrToStringUTF8(pchName), nScore, flTimePlayed);
- }
- private void InternalOnPlayersFailedToRespond() {
- m_PlayersFailedToRespond();
- }
- private void InternalOnPlayersRefreshComplete() {
- m_PlayersRefreshComplete();
- }
- #else
- [UnmanagedFunctionPointer(CallingConvention.ThisCall)]
- public delegate void InternalAddPlayerToList(IntPtr thisptr, IntPtr pchName, int nScore, float flTimePlayed);
- [UnmanagedFunctionPointer(CallingConvention.ThisCall)]
- public delegate void InternalPlayersFailedToRespond(IntPtr thisptr);
- [UnmanagedFunctionPointer(CallingConvention.ThisCall)]
- public delegate void InternalPlayersRefreshComplete(IntPtr thisptr);
- private void InternalOnAddPlayerToList(IntPtr thisptr, IntPtr pchName, int nScore, float flTimePlayed) {
- m_AddPlayerToList(InteropHelp.PtrToStringUTF8(pchName), nScore, flTimePlayed);
- }
- private void InternalOnPlayersFailedToRespond(IntPtr thisptr) {
- m_PlayersFailedToRespond();
- }
- private void InternalOnPlayersRefreshComplete(IntPtr thisptr) {
- m_PlayersRefreshComplete();
- }
- #endif
- [StructLayout(LayoutKind.Sequential)]
- private class VTable {
- [NonSerialized]
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public InternalAddPlayerToList m_VTAddPlayerToList;
- [NonSerialized]
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public InternalPlayersFailedToRespond m_VTPlayersFailedToRespond;
- [NonSerialized]
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public InternalPlayersRefreshComplete m_VTPlayersRefreshComplete;
- }
- public static explicit operator System.IntPtr(ISteamMatchmakingPlayersResponse that) {
- return that.m_pGCHandle.AddrOfPinnedObject();
- }
- };
- //-----------------------------------------------------------------------------
- // Purpose: Callback interface for receiving responses after requesting rules
- // details on a particular server.
- //
- // These callbacks all occur in response to querying an individual server
- // via the ISteamMatchmakingServers()->ServerRules() call below. If you are
- // destructing an object that implements this interface then you should call
- // ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query
- // which is in progress. Failure to cancel in progress queries when destructing
- // a callback handler may result in a crash when a callback later occurs.
- //-----------------------------------------------------------------------------
- public class ISteamMatchmakingRulesResponse {
- // Got data on a rule on the server -- you'll get one of these per rule defined on
- // the server you are querying
- public delegate void RulesResponded(string pchRule, string pchValue);
- // The server failed to respond to the request for rule details
- public delegate void RulesFailedToRespond();
- // The server has finished responding to the rule details request
- // (ie, you won't get anymore RulesResponded callbacks)
- public delegate void RulesRefreshComplete();
- private VTable m_VTable;
- private IntPtr m_pVTable;
- private GCHandle m_pGCHandle;
- private RulesResponded m_RulesResponded;
- private RulesFailedToRespond m_RulesFailedToRespond;
- private RulesRefreshComplete m_RulesRefreshComplete;
- public ISteamMatchmakingRulesResponse(RulesResponded onRulesResponded, RulesFailedToRespond onRulesFailedToRespond, RulesRefreshComplete onRulesRefreshComplete) {
- if (onRulesResponded == null || onRulesFailedToRespond == null || onRulesRefreshComplete == null) {
- throw new ArgumentNullException();
- }
- m_RulesResponded = onRulesResponded;
- m_RulesFailedToRespond = onRulesFailedToRespond;
- m_RulesRefreshComplete = onRulesRefreshComplete;
- m_VTable = new VTable() {
- m_VTRulesResponded = InternalOnRulesResponded,
- m_VTRulesFailedToRespond = InternalOnRulesFailedToRespond,
- m_VTRulesRefreshComplete = InternalOnRulesRefreshComplete
- };
- m_pVTable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VTable)));
- Marshal.StructureToPtr(m_VTable, m_pVTable, false);
- m_pGCHandle = GCHandle.Alloc(m_pVTable, GCHandleType.Pinned);
- }
- ~ISteamMatchmakingRulesResponse() {
- if (m_pVTable != IntPtr.Zero) {
- Marshal.FreeHGlobal(m_pVTable);
- }
- if (m_pGCHandle.IsAllocated) {
- m_pGCHandle.Free();
- }
- }
-
- #if NOTHISPTR
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void InternalRulesResponded(IntPtr pchRule, IntPtr pchValue);
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void InternalRulesFailedToRespond();
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- public delegate void InternalRulesRefreshComplete();
- private void InternalOnRulesResponded(IntPtr pchRule, IntPtr pchValue) {
- m_RulesResponded(InteropHelp.PtrToStringUTF8(pchRule), InteropHelp.PtrToStringUTF8(pchValue));
- }
- private void InternalOnRulesFailedToRespond() {
- m_RulesFailedToRespond();
- }
- private void InternalOnRulesRefreshComplete() {
- m_RulesRefreshComplete();
- }
- #else
- [UnmanagedFunctionPointer(CallingConvention.ThisCall)]
- public delegate void InternalRulesResponded(IntPtr thisptr, IntPtr pchRule, IntPtr pchValue);
- [UnmanagedFunctionPointer(CallingConvention.ThisCall)]
- public delegate void InternalRulesFailedToRespond(IntPtr thisptr);
- [UnmanagedFunctionPointer(CallingConvention.ThisCall)]
- public delegate void InternalRulesRefreshComplete(IntPtr thisptr);
- private void InternalOnRulesResponded(IntPtr thisptr, IntPtr pchRule, IntPtr pchValue) {
- m_RulesResponded(InteropHelp.PtrToStringUTF8(pchRule), InteropHelp.PtrToStringUTF8(pchValue));
- }
- private void InternalOnRulesFailedToRespond(IntPtr thisptr) {
- m_RulesFailedToRespond();
- }
- private void InternalOnRulesRefreshComplete(IntPtr thisptr) {
- m_RulesRefreshComplete();
- }
- #endif
- [StructLayout(LayoutKind.Sequential)]
- private class VTable {
- [NonSerialized]
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public InternalRulesResponded m_VTRulesResponded;
- [NonSerialized]
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public InternalRulesFailedToRespond m_VTRulesFailedToRespond;
- [NonSerialized]
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public InternalRulesRefreshComplete m_VTRulesRefreshComplete;
- }
- public static explicit operator System.IntPtr(ISteamMatchmakingRulesResponse that) {
- return that.m_pGCHandle.AddrOfPinnedObject();
- }
- };
- }
- #endif // !DISABLESTEAMWORKS
|