예제 #1
0
        /// <summary>
        /// UNDOCUMENTED: Outlook increments bidNextP by 1
        /// Note: bidNextP have no special purpose for the two least insignificant bits
        /// </summary>
        /// <returns></returns>
        public BlockID AllocateNextPageBlockID()
        {
            BlockID result = bidNextP.Clone();

            // MS-PST (2.6.1.1.4): bidNextB must be incremented as well
            AllocateNextBlockID();
            bidNextP = new BlockID(bidNextP.Value + 1);
            return(result);
        }
        public SubnodeLeafEntry Clone()
        {
            SubnodeLeafEntry result = new SubnodeLeafEntry();

            result.nid     = nid.Clone();
            result.bidData = bidData.Clone();
            result.bidSub  = bidSub.Clone();
            return(result);
        }
예제 #3
0
        public BlockID AllocateNextBlockID()
        {
            BlockID result = bidNextB.Clone();

            if (bidNextB.bidIndex < BlockID.MaximumBidIndex)
            {
                bidNextB.bidIndex++; // this will increment the value itself by 4, as required
            }
            else
            {
                throw new Exception("Could not allocate bidIndex");
            }
            return(result);
        }
예제 #4
0
 public SubnodeIntermediateEntry Clone()
 {
     return(new SubnodeIntermediateEntry(nid.Clone(), bid.Clone()));
 }