BlittableValueType<char> caches the size of the type parameter. This
way, we avoid calling Marshal.SizeOf repeatedly for every keyboard
event.
char* codeAddr = &code;
OSStatus result = API.GetEventParameter(inEvent,
- EventParamName.KeyMacCharCode, EventParamType.typeChar, IntPtr.Zero,
- (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(char)), IntPtr.Zero,
- (IntPtr)codeAddr);
+ EventParamName.KeyMacCharCode, EventParamType.typeChar, IntPtr.Zero,
+ (uint)BlittableValueType<char>.Stride, IntPtr.Zero,
+ (IntPtr)codeAddr);
if (result != OSStatus.NoError)
{