www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15955] New: dwExtraInfo in winuser.d is DWORD in some cases,

https://issues.dlang.org/show_bug.cgi?id=15955

          Issue ID: 15955
           Summary: dwExtraInfo in winuser.d is DWORD in some cases,
                    should be ULONG_PTR
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P1
         Component: druntime
          Assignee: nobody puremagic.com
          Reporter: kelethunter gmail.com

Hello,

On 32-bit Windows, dwExtraInfo was a DWORD. But since the transition to x86_64,
it has now been changed to a ULONG_PTR. The MSDN specifies that it should be a
ULONG_PTR.

In druntime/winuser.d, dwExtraInfo in most structs is a ULONG_PTR, but not
always. For example, in MOUSEHOOKSTRUCT it is still a DWORD, which can cause
inconsistencies (NULL cannot implicitly be used as a value, for example).

To fix this issue:
KBDLLHOOKSTRUCT
MOUSEHOOKSTRUCT
In both of these structs, dwExtraInfo needs to be a ULONG_PTR instead of a
DWORD.

I could be wrong with my assertion, but I'm only comparing the D Windows API to
the MSDN to find these inconsistencies.

Regards,
Kelet

--
Apr 25 2016