3.2.5.11 Processing RopOpenStream

When the server receives a RopOpenStream ROP request buffer ([MS-OXCROPS] section 2.2.9.1) from the client, the server parses the buffer. The server responds with a RopOpenStream 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 MUST open the stream in the mode indicated by the OpenModeFlags field as specified by the table insection 2.2.14.1. The server SHOULD<11> return a NotSupported error (0x80040102) if the client attempts to open a stream on a public folder in any mode other than ReadOnly.

The implementation of the RopOpenStream ROP can allocate some temporary resource on the server to represent the link between the Folder object returned to the client and the Folder object in the database. To free this resource, the client MUST call the RopRelease ROP ([MS-OXCROPS] section 2.2.15.3) on the Folder object.

The server MUST store the location of the seek pointer until the client calls the RopRelease ROP. The seek pointer MUST be initialized as specified in the request. The stream MUST be prepopulated with the current value of the property that is specified in the request.

The following error code SHOULD be returned when the scenario described in the Description column of the following table is met.

Error code name

Value

Description

NotSupported

0x80040102

A stream cannot be opened on the specified object.

NotFound

0x8004010F

The property tag does not exist for the object, and it cannot be created because the Create bit was not specified in OpenModeFlags field.