public ErrorCodeValue ResolveNames(uint reserved, STAT stat, PropertyTagArray_r? propTags, WStringsArray_r? wstr, out PropertyTagArray_r? mids, out PropertyRowSet_r? rows)
{
ErrorCodeValue result;
byte[] auxIn = new byte[] { };
ResolveNamesRequestBody resolveNamesRequestBody = new ResolveNamesRequestBody()
{
Reserved = reserved,
HasState = true,
State = stat,
AuxiliaryBuffer = auxIn,
AuxiliaryBufferSize = (uint)auxIn.Length
};
if (propTags != null)
{
LargePropTagArray propetyTags = new LargePropTagArray();
propetyTags.PropertyTagCount = propTags.Value.CValues;
propetyTags.PropertyTags = new PropertyTag[propetyTags.PropertyTagCount];
for (int i = 0; i < propTags.Value.CValues; i++)
{
propetyTags.PropertyTags[i].PropertyId = (ushort)((propTags.Value.AulPropTag[i] & 0xFFFF0000) >> 16);
propetyTags.PropertyTags[i].PropertyType = (ushort)(propTags.Value.AulPropTag[i] & 0x0000FFFF);
}
resolveNamesRequestBody.HasPropertyTags = true;
resolveNamesRequestBody.PropertyTags = propetyTags;
}
else
{
resolveNamesRequestBody.HasPropertyTags = false;
resolveNamesRequestBody.PropertyTags = new LargePropTagArray();
}
if (wstr != null)
{
resolveNamesRequestBody.HasNames = true;
resolveNamesRequestBody.Names = wstr.Value;
}
else
{
resolveNamesRequestBody.HasNames = false;
}
ChunkedResponse chunkedResponse = this.SendAddressBookRequest(resolveNamesRequestBody, RequestType.ResolveNames);
ResolveNamesResponseBody resolveNamesResponseBody = ResolveNamesResponseBody.Parse(chunkedResponse.ResponseBodyRawData);
result = (ErrorCodeValue)resolveNamesResponseBody.ErrorCode;
if (resolveNamesResponseBody.RowCount != null)
{
PropertyRowSet_r newRows = AdapterHelper.ParsePropertyRowSet_r(resolveNamesResponseBody.PropertyTags.Value, resolveNamesResponseBody.RowCount.Value, resolveNamesResponseBody.RowData);
rows = newRows;
}
else
{
rows = null;
}
if (resolveNamesResponseBody.HasMinimalIds)
{
PropertyTagArray_r propertyTagArray = new PropertyTagArray_r();
propertyTagArray.CValues = resolveNamesResponseBody.MinimalIdCount.Value;
propertyTagArray.AulPropTag = resolveNamesResponseBody.MinimalIds;
mids = propertyTagArray;
}
else
{
mids = null;
}
return result;
}