3.2.5.2 Processing a RopCreateFolder ROP Request

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

A folder name in the DisplayName field of the ROP request buffer, as specified in section 2.2.1.2.1, MUST be specified to create a folder. A folder description, specified in the Comment field of the ROP request buffer, is optional. The folder name MUST be unique within the parent folder. In other words, sibling folders cannot have the same name.

If a folder with the same name already exists, and the OpenExisting field is set to zero (FALSE), the server fails the RopCreateFolder ROP request with error code ecDuplicateName. If a folder with the same name already exists and the OpenExisting field is set to nonzero (TRUE), the server opens the existing folder, behaving as if it is processing the RopOpenFolder ROP ([MS-OXCROPS] section 2.2.4.1). If a folder with the same name does not exist, the server creates a new folder, regardless of the value of the OpenExisting field.

If the client does not have permissions to create the folder, the server returns either ecAccessdenied or ecNoCreateSubfolderRight.<12>

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

ecInvalidParam

0x80070057

The FolderType field contains an invalid value.

ecError

0x80004005

The operation failed for an unspecified reason.

ecAccessdenied

0x80070005

The client does not have permissions to create the folder.

ecDuplicateName

0x80040604

A folder with the same name already exists, and the OpenExisting field was set to zero (FALSE).

ecNotSupported

0x80040102

The ROP was called on an object that is not a Folder object, or the client attempted to create a search folder on a public folders message store<13>.

ecNotFound

0x8004010F

The ROP was called on a Folder object that is a soft delete folder.

ecNoCreateSubfolderRight

0x00000502

The client does not have access rights to create the folder.