public void Set(SetPresenceOptions other)
 {
     if (other != null)
     {
         m_ApiVersion = PresenceInterface.SetpresenceApiLatest;
         LocalUserId  = other.LocalUserId;
         PresenceModificationHandle = other.PresenceModificationHandle;
     }
 }
        /// <summary>
        /// Creates a presence modification handle. This handle can used to add multiple changes to your presence that can be applied with <see cref="SetPresence" />.
        /// The resulting handle must be released by calling <see cref="PresenceModification.Release" /> once it has been passed to <see cref="SetPresence" />.
        /// <seealso cref="PresenceModification.Release" />
        /// <seealso cref="SetPresence" />
        /// <seealso cref="PresenceModification.SetStatus" />
        /// <seealso cref="PresenceModification.SetRawRichText" />
        /// <seealso cref="PresenceModification.SetData" />
        /// <seealso cref="PresenceModification.DeleteData" />
        /// </summary>
        /// <param name="options">Object containing properties related to the user modifying their presence</param>
        /// <param name="outPresenceModificationHandle">Pointer to a Presence Modification Handle to be set if successful</param>
        /// <returns>
        /// Success if we successfully created the Presence Modification Handle pointed at in OutPresenceModificationHandle, or an error result if the input data was invalid
        /// </returns>
        public Result CreatePresenceModification(CreatePresenceModificationOptions options, out PresenceModification outPresenceModificationHandle)
        {
            System.IntPtr optionsAddress = new System.IntPtr();
            Helper.TryMarshalSet <CreatePresenceModificationOptionsInternal, CreatePresenceModificationOptions>(ref optionsAddress, options);

            var outPresenceModificationHandleAddress = System.IntPtr.Zero;

            var funcResult = EOS_Presence_CreatePresenceModification(InnerHandle, optionsAddress, ref outPresenceModificationHandleAddress);

            Helper.TryMarshalDispose(ref optionsAddress);

            Helper.TryMarshalGet(outPresenceModificationHandleAddress, out outPresenceModificationHandle);

            return(funcResult);
        }