private List<PropertyRow> GetTableRowValue(uint tableHandle, ushort rowCount, PropertyTag[] properties)
{
#region The client calls RopSetColumns operation to set the property information to show.
RopSetColumnsRequest setColumnsRequest = new RopSetColumnsRequest
{
RopId = (byte)RopId.RopSetColumns,
LogonId = 0x0,
InputHandleIndex = 0x0,
PropertyTagCount = (ushort)properties.Length,
PropertyTags = properties,
SetColumnsFlags = (byte)AsynchronousFlags.None
};
this.responseSOHsValue = this.ProcessSingleRop(
setColumnsRequest,
tableHandle,
ref this.responseValue,
ref this.rawDataValue,
RopResponseType.SuccessResponse);
RopSetColumnsResponse setColumnsResponse = (RopSetColumnsResponse)this.responseValue;
Site.Assert.AreEqual<uint>(
SuccessReturnValue,
setColumnsResponse.ReturnValue,
"if ROP succeeds, the ReturnValue of its response is 0(success)");
#endregion
#region The client calls RopQueryRows operation to query the folder which have the special properties.
RopQueryRowsRequest queryRowsRequest = new RopQueryRowsRequest
{
RopId = (byte)RopId.RopQueryRows,
LogonId = 0x0,
InputHandleIndex = 0x0,
RowCount = (ushort)rowCount,
QueryRowsFlags = (byte)QueryRowsFlags.Advance,
ForwardRead = 0x01
};
this.responseSOHsValue = this.ProcessSingleRop(
queryRowsRequest,
tableHandle,
ref this.responseValue,
ref this.rawDataValue,
RopResponseType.SuccessResponse);
RopQueryRowsResponse queryRowsResponse = (RopQueryRowsResponse)this.responseValue;
Site.Assert.AreEqual<uint>(
SuccessReturnValue,
queryRowsResponse.ReturnValue,
"if ROP succeeds, the ReturnValue of its response is 0(success)");
#endregion
return queryRowsResponse.RowData.PropertyRows;
}