public override void InjectPointer(PointerData pointerData)
 {
     Log.Out(msg: "Inject Pointer: {0}", (object)pointerData.ToString());
     if (!InternalNativeMethods.InjectPointerInput(device: this.device, pointerTypeInfo: new PointerTypeInfo[1] {
         TransformPointer(pointerData: pointerData, inputType: POINTER_INPUT_TYPE.TOUCH)
     }, count: 1U))
     {
         throw new Win32Exception(error: Marshal.GetLastWin32Error());
     }
 }
        public override void InjectPointer(PointerData[] pointerData)
        {
            if (pointerData.Length > 256)
            {
                throw new ArgumentOutOfRangeException(paramName: string.Format(format: "The maximum number of simultaneous touch points is {0}.", arg0: 256U));
            }
            if (Log.OutImplementation != null)
            {
                foreach (var pointerData1 in pointerData)
                {
                    Log.Out(msg: "Inject Pointer: {0}", (object)pointerData1.ToString());
                }
            }
            var pointerTypeInfo = new PointerTypeInfo[pointerData.Length];

            for (var index = 0; index < pointerData.Length; ++index)
            {
                pointerTypeInfo[index] = TransformPointer(pointerData: pointerData[index], inputType: POINTER_INPUT_TYPE.TOUCH);
            }
            if (!InternalNativeMethods.InjectPointerInput(device: this.device, pointerTypeInfo: pointerTypeInfo, count: (uint)pointerTypeInfo.Length))
            {
                throw new Win32Exception(error: Marshal.GetLastWin32Error());
            }
        }