internal static UInt32 WrapAndReturnError(UInt32 error, Interop.PARTY_XBL_HANDLE interopHandle, out PARTY_XBL_HANDLE handle) { if (PartyError.SUCCEEDED(error)) { handle = new PARTY_XBL_HANDLE(interopHandle); } else { handle = default(PARTY_XBL_HANDLE); } return(error); }
public static unsafe UInt32 PartyXblStartProcessingStateChanges( PARTY_XBL_HANDLE handle, out List <PARTY_XBL_STATE_CHANGE> stateChanges) { UInt32 err; stateChanges = null; if (handle == null) { return(PartyError.InvalidArg); } UInt32 stateChangeCount; IntPtr rawStateChanges; stateChanges = objectPool.Retrieve <List <PARTY_XBL_STATE_CHANGE> >(); err = PartyXblInterop.PartyXblStartProcessingStateChanges(handle.InteropHandle, out stateChangeCount, out rawStateChanges); if (PartyError.SUCCEEDED(err) && stateChangeCount > 0) { List <PARTY_XBL_STATE_CHANGE> unsupportStateChanges = null; IntPtr *arrayPtr = (IntPtr *)rawStateChanges.ToPointer(); for (Int32 i = 0; i < stateChangeCount; i++) { PARTY_XBL_STATE_CHANGE stateChangeObj = PARTY_XBL_STATE_CHANGE.CreateFromPtr(arrayPtr[i]); if (stateChangeObj.GetType() != typeof(PARTY_XBL_STATE_CHANGE)) { stateChanges.Add(stateChangeObj); } else { // Remove and immediately finish processing state changes that aren't supported by the // CSharp wrapper, which will all be of the basic PARTY_STATE_CHANGE type if (unsupportStateChanges == null) { unsupportStateChanges = objectPool.Retrieve <List <PARTY_XBL_STATE_CHANGE> >(); } unsupportStateChanges.Add(stateChangeObj); } } if (unsupportStateChanges != null) { err = PartyXblFinishProcessingStateChanges(handle, unsupportStateChanges); } } return(err); }
public static UInt32 PartyXblGetErrorMessage( UInt32 error, out string errorMessage) { UTF8StringPtr errorMessagePtr; UInt32 err = PartyXblInterop.PartyXblGetErrorMessage( error, out errorMessagePtr); if (PartyError.SUCCEEDED(err)) { errorMessage = errorMessagePtr.GetString(); } else { errorMessage = null; } return(err); }
public static UInt32 PartyXblCreateLocalChatUser( PARTY_XBL_HANDLE handle, UInt64 xboxUserId, Object asyncIdentifier, out PARTY_XBL_CHAT_USER_HANDLE localXboxLiveUser) { localXboxLiveUser = null; if (handle == null) { return(PartyError.InvalidArg); } var asyncId = IntPtr.Zero; if (asyncIdentifier != null) { asyncId = GCHandle.ToIntPtr(GCHandle.Alloc(asyncIdentifier)); } Interop.PARTY_XBL_CHAT_USER_HANDLE interopHandle; UInt32 err = PartyXblInterop.PartyXblCreateLocalChatUser( handle.InteropHandle, xboxUserId, asyncId, out interopHandle); if (PartyError.SUCCEEDED(err)) { localXboxLiveUser = new PARTY_XBL_CHAT_USER_HANDLE(interopHandle); } else { if (asyncId != IntPtr.Zero) { GCHandle asyncGcHandle = GCHandle.FromIntPtr(asyncId); asyncGcHandle.Free(); } } return(err); }
public static UInt32 PartyXblLocalChatUserGetAccessibilitySettings( PARTY_XBL_CHAT_USER_HANDLE handle, out PARTY_XBL_ACCESSIBILITY_SETTINGS settings) { settings = null; if (handle == null) { return(PartyError.InvalidArg); } Interop.PARTY_XBL_ACCESSIBILITY_SETTINGS interopStruct; UInt32 err = PartyXblInterop.PartyXblLocalChatUserGetAccessibilitySettings( handle.InteropHandle, out interopStruct); if (PartyError.SUCCEEDED(err)) { settings = new PARTY_XBL_ACCESSIBILITY_SETTINGS(interopStruct); } return(err); }
public static UInt32 PartyXblChatUserIsLocal( PARTY_XBL_CHAT_USER_HANDLE handle, out bool isLocal) { isLocal = false; if (handle == null) { return(PartyError.InvalidArg); } Byte isLocalByte; UInt32 err = PartyXblInterop.PartyXblChatUserIsLocal( handle.InteropHandle, out isLocalByte); if (PartyError.SUCCEEDED(err)) { isLocal = Convert.ToBoolean(isLocalByte); } return(err); }
public static UInt32 PartyXblLocalChatUserGetRequiredChatPermissionInfo( PARTY_XBL_CHAT_USER_HANDLE handle, PARTY_XBL_CHAT_USER_HANDLE targetChaUser, out PARTY_XBL_CHAT_PERMISSION_INFO chatPermissionInfo) { chatPermissionInfo = null; if (handle == null || targetChaUser == null) { return(PartyError.InvalidArg); } Interop.PARTY_XBL_CHAT_PERMISSION_INFO interopStruct; UInt32 err = PartyXblInterop.PartyXblLocalChatUserGetRequiredChatPermissionInfo( handle.InteropHandle, targetChaUser.InteropHandle, out interopStruct); if (PartyError.SUCCEEDED(err)) { chatPermissionInfo = new PARTY_XBL_CHAT_PERMISSION_INFO(interopStruct); } return(err); }