public ISteamMatchmakingPingResponse(ISteamMatchmakingPingResponse.ServerResponded onServerResponded, ISteamMatchmakingPingResponse.ServerFailedToRespond onServerFailedToRespond)
 {
     if (onServerResponded == null || onServerFailedToRespond == null)
     {
         throw new ArgumentNullException();
     }
     this.m_ServerResponded       = onServerResponded;
     this.m_ServerFailedToRespond = onServerFailedToRespond;
     this.m_VTable = new ISteamMatchmakingPingResponse.VTable
     {
         m_VTServerResponded       = new ISteamMatchmakingPingResponse.InternalServerResponded(this.InternalOnServerResponded),
         m_VTServerFailedToRespond = new ISteamMatchmakingPingResponse.InternalServerFailedToRespond(this.InternalOnServerFailedToRespond)
     };
     this.m_pVTable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(ISteamMatchmakingPingResponse.VTable)));
     Marshal.StructureToPtr(this.m_VTable, this.m_pVTable, false);
     this.m_pGCHandle = GCHandle.Alloc(this.m_pVTable, GCHandleType.Pinned);
 }
 public ISteamMatchmakingPingResponse(ISteamMatchmakingPingResponse.ServerResponded onServerResponded, ISteamMatchmakingPingResponse.ServerFailedToRespond onServerFailedToRespond)
 {
     if (onServerResponded == null || onServerFailedToRespond == null)
     {
         throw new ArgumentNullException();
     }
     this.m_ServerResponded = onServerResponded;
     this.m_ServerFailedToRespond = onServerFailedToRespond;
     this.m_VTable = new ISteamMatchmakingPingResponse.VTable
     {
         m_VTServerResponded = new ISteamMatchmakingPingResponse.InternalServerResponded(this.InternalOnServerResponded),
         m_VTServerFailedToRespond = new ISteamMatchmakingPingResponse.InternalServerFailedToRespond(this.InternalOnServerFailedToRespond)
     };
     this.m_pVTable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(ISteamMatchmakingPingResponse.VTable)));
     Marshal.StructureToPtr(this.m_VTable, this.m_pVTable, false);
     this.m_pGCHandle = GCHandle.Alloc(this.m_pVTable, GCHandleType.Pinned);
 }