3.2.5.3 Processing a RopDeleteFolder ROP Request

When the server receives a RopDeleteFolder ROP request buffer ([MS-OXCROPS] section 2.2.4.3) from the client, the server parses the buffer. The server responds with a RopDeleteFolder 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.

If the DELETE_HARD_DELETE bit of the DeleteFolderFlags field of the ROP request buffer is set, as specified in section 2.2.1.3.1, the folder MUST be removed and can no longer be accessed by the client with subsequent ROPs. If the DELETE_HARD_DELETE bit is not set, the folder becomes soft deleted.

If the DEL_MESSAGES bit is not set and the folder contains Message objects, neither the folder nor any of its Message objects will be deleted. If the DEL_FOLDERS bit is not set and the folder contains subfolders, neither the folder nor any of its subfolders will be deleted. In both cases, the ReturnValue field of the ROP response, as specified in section 2.2.1.3.2, will be set to 0x00000000 and the PartialCompletion field will be set to a nonzero (TRUE) value.

If the client sets an invalid bit in the DeleteFolderFlags field of the ROP request buffer, the server SHOULD<14> fail the ROP with an ecInvalidParam (0x80070057) error.

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

Error code name

Value

Meaning

ecAccessDenied

0x80070005

The client does not have permissions to delete this folder.

ecInvalidParam

0x80070057

An invalid value was specified in a field.

ecNotFound

0x8004010F

Folder with the specified ID does not exist, or the client has no access to view that folder.

ecNotSupported

0x80040102

The object that this ROP was called on is not a Folder object, or an attempt was made to delete the Root folder.