3.2.4.2.3 Sending a CPMSetBindingsIn Request
The higher layer will typically set bindings for each column to be returned in the rows when it already has a valid cursor handle (after successfully receiving CPMCreateQueryOut, see section 3.2.5.1). The higher layer is expected to provide an array of CTableColumn structures for the aColumns field and a valid cursor handle.
When this request is received from the higher layer, the client MUST do the following:
Calculate the number of CTableColumn structures in the aColumns array and set the cColumns field to this value.
Calculate the total size in bytes of the cColumns and aColumns fields and set the _cbBindingDesc field to this value.
Set specified fields in the CPMSetBindingsIn message to the values provided by the higher application layer. Set the ulChecksum field to the value calculated as specified in section 3.2.5.
Send the completed CPMSetBindingsIn message to the server.
Wait to receive a CPMSetBindingsIn message from the server, discarding other messages.
Indicate the status from the _status field of the response to the higher layer.
For informative purposes, it is expected that higher layers will typically request a client to send a CPMGetRowsIn message, but this is not enforced by the Content Indexing Services Protocol.