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. |