Fixed position PidTagDisplayName Required Fixed position Value MUST be a non-empty string. < other properties > Prohibited None. PropertyValueCount (2 An unsigned 16-bit integer. This value specifies the number of structures in the PropertyValues field. PropertyValues (variable): An array of PropertyValue structures. These values are used to specify folder properties. Response: ReturnValue: An unsigned 32-bit integer. This value represents the ROP execution status. For common return values of RopSynchronizationImport* ROPs that require special processing, see section 2.2.3.2.4. FolderId (8 bytes): A 64-bit identifier. The FID of the folder that was imported. MUST be set to "0x0000000000000000" if the PidTagSourceKey passed in PropertyValues was a GID. MUST be present IFF ReturnValue equals Success. Remarks: Changes to parent folders MUST be made before changes to child folders. For example, you cannot send RopSynchronizationImportHierarchyChange with a subfolder change before informing the server of the existence of the parent folder. To move a folder to a different subfolder within the same private mailbox, the client MUST pass the PidTagSourceKey value of a destination parent folder in the PidTagParentSourceKey value in the HierarchyValues field while passing the PidTagSourceKey value of the folder being moved in the PidTagSourceKey property. Moving folders within a public mailbox is not supported. The server is responsible for conflict detection and resolution, as specified in section 3.1.4.1. If a conflict is detected, the server MUST resolve it as specified in section 3.1.4.1.2 and return Success. A server MAY report a conflict using a conflict notification message. RopSynchronizationImportMessageMove Imports information moving a message between two existing folders within the same mailbox. Request:
Syntactical Structure The syntatactical structure of the FastTransfer adheres to the following guidelines: Camel-cased names are non-terminal syntactic elements ([RFC4234] section 2.3). Bolded Pascal-cased names are markers. Markers do not have the PidTag prefix. Normal Pascal-cased names are meta-properties, and have the PidTag prefix. Note that markers never have a value, and meta-properties, just as regular properties, always have a value when serialized into a FastTransfer stream. Therefore, wherever a marker exists, it is serialized as 4 bytes. Meta-properties, on the other hand, are serialized the same as propValue elements. The sytactical structure of a FastTransfer stream is as follows: root = contentsSync / hierarchySync / state / folderContent / messageContent / attachmentContent / messageList / topFolder propValue = <see lexical structure in 2.2.4.1> errorInfo = FXErrorInfo propList propList = *propValue subFolder = StartSubFld folderContent EndFolder topFolder = StartTopFld folderContent EndFolder folderContent = propList [PidTagEcWarning] ( PidTagNewFXFolder / folderMessages ) [ PidTagFXDelProp *subFolder ] folderMessages = *2( PidTagFXDelProp messageList ) message = ( StartMessage / StartFAIMsg ) messageContent EndMessage messageChildren = [ PidTagFXDelProp *recipient ] [ PidTagFXDelProp *attachment ] messageContent = propList messageChildren messageList = 1*( [PidTagEcWarning] message ) recipient = StartRecip propList EndRecip
The following table lists the restrictions that exist on the contained propList. Name Restrictions Comments PidTagIdsetGiven None. None. PidTagCnsetSeen None. None. PidTagCnsetSeenFAI Conditional MUST NOT be present if SynchronizationType equals Hierarchy. PidTagCnsetRead Conditional MUST NOT be present if SynchronizationType equals Hierarchy. < other properties > Prohibited None. Applicability to ROPs The following table describes how possible root elements in the FastTransfer stream correspond to Bulk Data Transfer operations defined in section 1.3. Every download operation has to be configured prior to being able to produce a FastTransfer stream. Configuration starts by sending one of the ROPs in the following table and then performing the additional ROP specific configuration steps (as specified in sections 2.2.3.1.1 and 2.2.3.2.1). ROP that initiate an operation Root element in the produced FastTransfer stream ROP request buffer field conditions RopSynchronization- Configure contentsSync SynchronizationType equals Contents. hierarchySync SynchronizationType equals Hierarchy. GetState Always. RopFastTranserSource-