internal cMailboxSelectedProperties(cMailboxSelectedProperties pSelectedProperties, bool pSelectedForUpdate, cPermanentFlags pPermanentFlags)
        {
            if (pSelectedProperties == null)
            {
                throw new ArgumentNullException(nameof(pSelectedProperties));
            }

            mBeenSelected = true;

            if (pSelectedForUpdate)
            {
                mBeenSelectedForUpdate   = true;
                mBeenSelectedReadOnly    = pSelectedProperties.mBeenSelectedReadOnly;
                mForUpdatePermanentFlags = pPermanentFlags;
                mReadOnlyPermanentFlags  = pSelectedProperties.mReadOnlyPermanentFlags;
            }
            else
            {
                mBeenSelectedForUpdate   = pSelectedProperties.mBeenSelectedForUpdate;
                mBeenSelectedReadOnly    = true;
                mForUpdatePermanentFlags = pSelectedProperties.mForUpdatePermanentFlags;
                mReadOnlyPermanentFlags  = pPermanentFlags;
            }

            mUIDNotSticky = pSelectedProperties.mUIDNotSticky;
            mMessageFlags = pSelectedProperties.mMessageFlags;
        }
 private cMailboxSelectedProperties()
 {
     mBeenSelected            = false;
     mBeenSelectedForUpdate   = false;
     mBeenSelectedReadOnly    = false;
     mUIDNotSticky            = null;
     mMessageFlags            = null;
     mForUpdatePermanentFlags = null;
     mReadOnlyPermanentFlags  = null;
 }
        internal cMailboxSelectedProperties(cMailboxSelectedProperties pSelectedProperties, cFetchableFlags pMessageFlags)
        {
            if (pSelectedProperties == null)
            {
                throw new ArgumentNullException(nameof(pSelectedProperties));
            }
            if (pMessageFlags == null)
            {
                throw new ArgumentNullException(nameof(pMessageFlags));
            }

            mBeenSelected            = true;
            mBeenSelectedForUpdate   = pSelectedProperties.mBeenSelectedForUpdate;
            mBeenSelectedReadOnly    = pSelectedProperties.mBeenSelectedReadOnly;
            mUIDNotSticky            = pSelectedProperties.mUIDNotSticky;
            mMessageFlags            = pMessageFlags;
            mForUpdatePermanentFlags = pSelectedProperties.mForUpdatePermanentFlags;
            mReadOnlyPermanentFlags  = pSelectedProperties.mReadOnlyPermanentFlags;
        }