3.2.5.9 Processing a RopEmptyFolder ROP Request

When the server receives a RopEmptyFolder ROP request buffer ([MS-OXCROPS] section 2.2.4.9) from the client, the server parses the buffer. The server responds with a RopEmptyFolder ROP response buffer. For details about how the server parses buffers and processes ROPs, see [MS-OXCROPS] section 3.2.5.1. For details about how the server formats buffers for the response, see [MS-OXCROPS] section 3.2.5.2.

The server soft deletes the folder's messages and subfolders but does not delete the folder itself. If the server fails to delete any message or subfolder, it sets the PartialCompletion field of the RopEmptyFolder ROP response buffer to nonzero (TRUE), as specified in section 2.2.1.9.2.

If the WantDeleteAssociated field of the RopEmptyFolder ROP request buffer is set to nonzero (TRUE), as specified in section 2.2.1.9.1, then the server removes all FAI messages in addition to the normal messages. The server removes all subfolders regardless of the value of the WantDeleteAssociated field.

If the client requests asynchronous execution, the server executes this ROP asynchronously. During asynchronous processing, the server can return a RopProgress ROP response buffer ([MS-OXCROPS] section 2.2.8.13) to indicate that the operation is still processing, or it can return a RopEmptyFolder ROP response buffer to indicate that the operation has already completed. If the operation fails at any point during the asynchronous processing, the server returns a RopEmptyFolder ROP response buffer with an appropriate error code. For details about the RopProgress ROP and how it is used, see [MS-OXCPRPT] sections 2.2.23 and 3.2.5.20.

If the client attempts to empty either the Root folder or a search folder, the server SHOULD<19> return ecNotSupported (0x80040102) in the ReturnValue field of the RopEmptyFolder ROP response buffer.

The following specific error code applies to this ROP. For more details about ROP errors, see [MS-OXCDATA] section 2.4.

Error code name

Value

Meaning

ecNotSupported

0x80040102

This ROP was called on a folder that is not allowed to be emptied or on an object that is not a Folder object.