anchor.diff:    int get wScan => ptr.elementAt(1).value;
     int get dwFlags => ptr.elementAt(2).cast<Uint32>().value;
     int get time => ptr.elementAt(4).cast<Uint32>().value;
  -  int get dwExtraInfo => ptr.elementAt(6).cast<Uint32>().value;
  +  int get dwExtraInfo => ptr.elementAt(6).cast<IntPtr>().value;
   
     set wVk(int value) => ptr.value = value;
     set wScan(int value) => ptr.elementAt(1).value = value;
     set dwFlags(int value) => ptr.elementAt(2).cast<Uint32>().value = value;
     set time(int value) => ptr.elementAt(4).cast<Uint32>().value = value;
  -  set dwExtraInfo(int value) => ptr.elementAt(6).cast<Uint32>().value = value;
  +  set dwExtraInfo(int value) => ptr.elementAt(6).cast<IntPtr>().value = value;
   }
   
   // typedef struct tagHARDWAREINPUT {
  
positive.code:     .._data3 = 0
      .._data4 = 0;
  }
  
  // BUG: Unfortunately this is broken on 32-bit Dart at present.
  
  // typedef struct tagMOUSEINPUT {
  //   LONG      dx;
  
negative.code: ///
  /// {@category Struct}
  class INPUT extends Struct {
    // 28 bytes on 32-bit, 40 bytes on 64-bit
    @IntPtr()
    external int _data0;
    @IntPtr()
    external int _data1;
    @IntPtr()
    external int _data2;
    @Uint64()
    external int _data3;
  