public void UnicodePropRgch(int obj, int tag, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(ArrayPtrMarshaler), SizeParamIndex = 3)] ArrayPtr/*OLECHAR[]*/ rgch, int cchMax, out int cch)
{
CheckDisposed();
CheckBasics(obj);
var str = get_UnicodeProp(obj, tag);
cch = str.Length;
if (cchMax == 0)
return;
if (cch >= cchMax)
throw new ArgumentException("cch cannot be larger than cchMax");
MarshalEx.StringToNative(rgch, cchMax, str, true);
}