/// <summary>
        /// Create Sample SortOrders in descending order
        /// </summary>
        /// <param name="multipleSortOrders">Indicate whether sort orders contains more than one sort order structure</param>
        /// <returns>Return SortOrder array</returns>
        private SortOrder[] CreateSampleSortOrdersDescending(bool multipleSortOrders)
        {
            SortOrder[] sortOrders;
            if (!multipleSortOrders)
            {
                sortOrders = new SortOrder[1];
            }
            else
            {
                sortOrders = new SortOrder[2];
            }

            SortOrder sortOrder;

            // PidTagSenderName
            sortOrder.PropertyId = 0x0C1A;
            sortOrder.PropertyType = (ushort)0x001F;
            sortOrder.Order = 0x01; // Descending
            sortOrders[0] = sortOrder;

            if (multipleSortOrders)
            {
                // PidTagMessageDeliveryTime
                sortOrder.PropertyId = 0x0e06;
                sortOrder.PropertyType = 0x0040;
                sortOrder.Order = 0x01; // Descending
                sortOrders[1] = sortOrder;
            }

            return sortOrders;
        }
        /// <summary>
        /// Create Sample SortOrders
        /// </summary>
        /// <returns>Return SortOrder array</returns>
        private SortOrder[] CreateSampleSortOrders()
        {
            SortOrder[] sortOrders = new SortOrder[2];
            SortOrder sortOrder;

            // The tags are from CreateSampleContentsTablePropertyTags(),
            // which references MS-OXCTABL 4.2

            // PidTagMessageDeliveryTime
            sortOrder.PropertyId = this.propertyDictionary[PropertyNames.PidTagMessageDeliveryTime].PropertyId;
            sortOrder.PropertyType = this.propertyDictionary[PropertyNames.PidTagMessageDeliveryTime].PropertyType;
            sortOrder.Order = (byte)Order.Ascending;
            sortOrders[0] = sortOrder;

            // PidTagInstID
            sortOrder.PropertyId = this.propertyDictionary[PropertyNames.PidTagInstID].PropertyId;
            sortOrder.PropertyType = this.propertyDictionary[PropertyNames.PidTagInstID].PropertyType;
            sortOrder.Order = (byte)Order.Descending;
            sortOrders[1] = sortOrder;

            return sortOrders;
        }
        /// <summary>
        /// Create Sample SortOrders in ascending order
        /// </summary>
        /// <param name="multipleSortOrders">Indicate whether sort orders contains more than one sort order structure</param>
        /// <param name="isMaximumCategory">Indicate whether sort orders contains a sort order structure with the order set to MaximumCategory</param>
        /// <returns>Return SortOrder array</returns>
        private SortOrder[] CreateSampleSortOrdersAscending(bool multipleSortOrders, bool isMaximumCategory)
        {
            SortOrder[] sortOrders;
            if (!multipleSortOrders)
            {
                sortOrders = new SortOrder[1];
            }
            else
            {
                sortOrders = new SortOrder[2];
            }

            SortOrder sortOrder;

            // PidTagSenderName
            sortOrder.PropertyId = 0x0C1A;
            sortOrder.PropertyType = 0x001F;
            sortOrder.Order = 0x00; // Ascending
            sortOrders[0] = sortOrder;

            if (multipleSortOrders)
            {
                // PidTagMessageDeliveryTime
                sortOrder.PropertyId = 0x0e06;
                sortOrder.PropertyType = 0x0040;
                if (isMaximumCategory)
                {
                    sortOrder.Order = 0x04; // MaximumCategory
                }
                else
                {
                    sortOrder.Order = 0x00; // Ascending
                }

                sortOrders[1] = sortOrder;
            }

            return sortOrders;
        }