/// <summary>
        /// Hard deletes all messages and subfolders from a folder without deleting the folder itself.
        /// </summary>
        /// <param name="ropHardDeleteMessagesAndSubfoldersRequest">RopHardDeleteMessagesAndSubfoldersRequest object.</param>
        /// <param name="insideObjHandle">Server object handle in RopHardDeleteMessagesAndSubfolders.</param>
        /// <param name="responseSOHTable">Server objects handles in RopHardDeleteMessagesAndSubfoldersResponse.</param>
        /// <returns>RopHardDeleteMessagesAndSubfoldersResponse object.</returns>
        public RopHardDeleteMessagesAndSubfoldersResponse HardDeleteMessagesAndSubfolders(
            RopHardDeleteMessagesAndSubfoldersRequest ropHardDeleteMessagesAndSubfoldersRequest,
            uint insideObjHandle,
            ref List <List <uint> > responseSOHTable)
        {
            object temp = new object();

            this.ExcuteRopCall((ISerializable)ropHardDeleteMessagesAndSubfoldersRequest, insideObjHandle, ref temp, ref responseSOHTable, ref this.rawData);
            RopHardDeleteMessagesAndSubfoldersResponse ropHardDeleteMessagesAndSubfoldersResponse = (RopHardDeleteMessagesAndSubfoldersResponse)temp;

            #region Capture Code
            // The ReturnValue equal to 0x00000000 indicate ROP operation success
            if (0x00000000 == ropHardDeleteMessagesAndSubfoldersResponse.ReturnValue)
            {
                this.VerifyRopHardDeleteMessagesAndSubfolders(ropHardDeleteMessagesAndSubfoldersResponse);
            }
            #endregion

            return(ropHardDeleteMessagesAndSubfoldersResponse);
        }
        /// <summary>
        /// Composes the RopHardDeleteMessagesAndSubfolders Request Buffer.
        /// This ROP hard deletes messages and subfolders from a folder. More detailed information about this operation can be found in [MS-OXCFOLD].
        /// </summary>
        /// <param name="inputObjHandle">The handle for the input Server Object.</param>
        /// <returns>The rgbIn buffer generated by this method.</returns>
        public byte[] ComposeRopHardDeleteMessagesAndSubfolders(uint inputObjHandle)
        {
            RopHardDeleteMessagesAndSubfoldersRequest ropHardDeleteMsgAndSubFolderRequest = new RopHardDeleteMessagesAndSubfoldersRequest
            {
                RopId                = (byte)RopId.RopHardDeleteMessagesAndSubfolders,
                LogonId              = Convert.ToByte(0),
                InputHandleIndex     = Convert.ToByte(0),
                WantAsynchronous     = 0x00,
                WantDeleteAssociated = 0xFF
            };

            List <ISerializable> requestRops = new List <ISerializable>
            {
                ropHardDeleteMsgAndSubFolderRequest
            };
            List <uint> requestSOH = new List <uint>
            {
                inputObjHandle
            };

            return(this.BuildRequestBuffer(requestRops, requestSOH));
        }