unsafe public decimal ReadDecimal()
{
int offset;
byte[] buffer = GetBuffer(ValueHandleLength.Decimal, out offset);
decimal value;
byte* pb = (byte*)&value;
for (int i = 0; i < sizeof(decimal); i++)
pb[i] = buffer[offset + i];
Advance(ValueHandleLength.Decimal);
return value;
}