public void Set(CopyPresenceOptions other)
 {
     if (other != null)
     {
         m_ApiVersion = PresenceInterface.CopypresenceApiLatest;
         LocalUserId  = other.LocalUserId;
         TargetUserId = other.TargetUserId;
     }
 }
        /// <summary>
        /// Get a user's cached presence object. If successful, this data must be released by calling <see cref="Release" />
        /// <seealso cref="Release" />
        /// </summary>
        /// <param name="options">Object containing properties related to who is requesting presence and for what user</param>
        /// <param name="outPresence">A pointer to a pointer of Presence Info. If the returned result is success, this will be set to data that must be later released, otherwise this will be set to NULL</param>
        /// <returns>
        /// Success if we have cached data, or an error result if the request was invalid or we do not have cached data.
        /// </returns>
        public Result CopyPresence(CopyPresenceOptions options, out Info outPresence)
        {
            System.IntPtr optionsAddress = new System.IntPtr();
            Helper.TryMarshalSet <CopyPresenceOptionsInternal, CopyPresenceOptions>(ref optionsAddress, options);

            var outPresenceAddress = System.IntPtr.Zero;

            var funcResult = EOS_Presence_CopyPresence(InnerHandle, optionsAddress, ref outPresenceAddress);

            Helper.TryMarshalDispose(ref optionsAddress);

            if (Helper.TryMarshalGet <InfoInternal, Info>(outPresenceAddress, out outPresence))
            {
                EOS_Presence_Info_Release(outPresenceAddress);
            }

            return(funcResult);
        }