anchor.diff:    int get type => addressOf.cast<Uint32>().value;
     set type(int value) => addressOf.cast<Uint32>().value = value;
   
  -  MOUSEINPUT get mi => MOUSEINPUT(addressOf.cast<Uint8>().elementAt(8).cast());
  -  KEYBDINPUT get ki => KEYBDINPUT(addressOf.cast<Uint8>().elementAt(8).cast());
  +  // Location adjusts for padding on 32-bit or 64-bit
  +  MOUSEINPUT get mi =>
  +      MOUSEINPUT(addressOf.cast<Uint8>().elementAt(sizeOf<IntPtr>()).cast());
  +  KEYBDINPUT get ki =>
  +      KEYBDINPUT(addressOf.cast<Uint8>().elementAt(sizeOf<IntPtr>()).cast());
     HARDWAREINPUT get hi =>
  -      HARDWAREINPUT(addressOf.cast<Uint8>().elementAt(8).cast());
  +      HARDWAREINPUT(addressOf.cast<Uint8>().elementAt(sizeOf<IntPtr>()).cast());
   
     factory INPUT.allocate() => allocate<INPUT>().ref
       .._data0 = 0
  
positive.code:   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;
  
    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;
  }
  
  // typedef struct tagHARDWAREINPUT {
  
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;
  