public static Int32 Lo(this IntPtr value) { if (_lo == null) { if (IntPtr.Size == 8) { // 64bit _lo = p => p.ToInt32() & 0xFFFF; } else if (IntPtr.Size == 4) { // 32bit _lo = p => p.ToInt32() & 0xFFFF; } else { throw new NotImplementedException(); } } return _lo(value); }
public static Int32 Hi(this IntPtr value) { if (_hi == null) { if (IntPtr.Size == 8) { // 64bit _hi = p => (p.ToInt32() >> 16) & 0xFFFF; } else if (IntPtr.Size == 4) { // 32bit _hi = p => (p.ToInt32() >> 16) & 0xFFFF; } else { throw new NotImplementedException(); } } return _hi(value); }