// Token: 0x06000041 RID: 65 RVA: 0x0000A540 File Offset: 0x00008740 private void BuildCCallbackBase() { m_CallbackBaseVTable = new CCallbackBaseVTable { m_RunCallback = new CCallbackBaseVTable.RunCBDel(OnRunCallback), m_RunCallResult = new CCallbackBaseVTable.RunCRDel(OnRunCallResult), m_GetCallbackSizeBytes = new CCallbackBaseVTable.GetCallbackSizeBytesDel(OnGetCallbackSizeBytes) }; m_pVTable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(CCallbackBaseVTable))); Marshal.StructureToPtr(m_CallbackBaseVTable, m_pVTable, false); m_CCallbackBase = new CCallbackBase { m_vfptr = m_pVTable, m_nCallbackFlags = 0, m_iCallback = CallbackIdentities.GetCallbackIdentity(typeof(T)) }; m_pCCallbackBase = GCHandle.Alloc(m_CCallbackBase, GCHandleType.Pinned); }
// Token: 0x06000022 RID: 34 RVA: 0x0000A14C File Offset: 0x0000834C public void Register(Callback <T> .DispatchDelegate func) { if (func == null) { throw new Exception("Callback function must not be null."); } if ((m_CCallbackBase.m_nCallbackFlags & 1) == 1) { Unregister(); } if (m_bGameServer) { SetGameserverFlag(); } m_Func = func; NativeMethods.SteamAPI_RegisterCallback(m_pCCallbackBase.AddrOfPinnedObject(), CallbackIdentities.GetCallbackIdentity(typeof(T))); }