[ANN] au3 0.1.1 released

Heesob Park wrote:

As you know, the INPUT structure defined like this:

typedef struct tagINPUT {
  DWORD type;
  union {MOUSEINPUT mi;
            KEYBDINPUT ki;
            HARDWAREINPUT hi;
           };
  }INPUT, *PINPUT;

typedef struct tagMOUSEINPUT {
    LONG dx;
    LONG dy;
    DWORD mouseData;
    DWORD dwFlags;
    DWORD time;
    ULONG_PTR dwExtraInfo;
} MOUSEINPUT, *PMOUSEINPUT;

typedef struct tagKEYBDINPUT {
    WORD wVk;
    WORD wScan;
    DWORD dwFlags;
    DWORD time;
    ULONG_PTR dwExtraInfo;
} KEYBDINPUT, *PKEYBDINPUT;

typedef struct tagHARDWAREINPUT {
    DWORD uMsg;
    WORD wParamL;
    WORD wParamH;
} HARDWAREINPUT, *PHARDWAREINPUT;

The sizeof(MOUSEINPUT) is 24, sizeof(KEYBDINPUT) is 16, and
sizeof(HARDWAREINPUT) is 8.
Therefore, sizeof(INPUT) = sizeof(DWORD) + maxsizeof(union) = 4 + 24 =
28.

Regards,

Park Heesob

Thank you again, now I've got the point. One last question: The size of
the MOUSEINPUT struct is 8 + 8 + 4 + 4 + 4 = 28 I see, so am I right in
thinking that the pointer isn't important for this computation?
Otherwise, since it's an unsigned long, it should have a size of 8 also,
what makes the struct a size of 36 bytes? Or is this ignored because of
passing in nil later?

You see, I'm not really good in working with C structs. :slight_smile:

Marvin

···

--
Posted via http://www.ruby-forum.com/\.

@Philip:

It's "Phillip". :slight_smile:

Thank you, but I'd like to continue using MinGW + MSYS for
building C extensions (when I really do this, what is quite rarely the
case).

Since that is what the RubyInstaller uses to build Ruby, this is also the preferred way. :slight_smile:

···

On 29.12.2009 16:59, Marvin Gülker wrote:

--
Phillip Gawlowski

Marvin Gülker wrote:

Thank you again, now I've got the point. One last question: The size of
the MOUSEINPUT struct is 8 + 8 + 4 + 4 + 4 = 28 I see, so am I right in
thinking that the pointer isn't important for this computation?
Otherwise, since it's an unsigned long, it should have a size of 8 also,
what makes the struct a size of 36 bytes? Or is this ignored because of
passing in nil later?

You see, I'm not really good in working with C structs. :slight_smile:

Marvin

Forget it. I didn't read it well enough.

Thanks!

Marvin

···

--
Posted via http://www.ruby-forum.com/\.