private ReferenceDescriptionCollection BrowseNext(ref byte[] continuationPoint, bool cancel)
{
ByteStringCollection continuationPoints = new ByteStringCollection();
continuationPoints.Add(continuationPoint);
// make the call to the server.
BrowseResultCollection results;
DiagnosticInfoCollection diagnosticInfos;
ResponseHeader responseHeader = m_session.BrowseNext(
null,
cancel,
continuationPoints,
out results,
out diagnosticInfos);
// ensure that the server returned valid results.
Session.ValidateResponse(results, continuationPoints);
Session.ValidateDiagnosticInfos(diagnosticInfos, continuationPoints);
// check if valid.
if (StatusCode.IsBad(results[0].StatusCode))
{
throw ServiceResultException.Create(results[0].StatusCode, 0, diagnosticInfos, responseHeader.StringTable);
}
// update continuation point.
continuationPoint = results[0].ContinuationPoint;
// return references.
return results[0].References;
}
#endregion