Modify

#2347 closed Bug (Fixed)

_WinAPI_GetMonitorInfo() returns incorrect data.

Reported by: Valik Owned by:
Milestone: Future Release Component: Standard UDFs
Version: 3.3.9.4 Severity: None
Keywords: Cc:

Description

The following line of _WinAPI_GetMonitorInfo() is incorrect:

If Not _WinAPI_MoveMemory(DllStructGetPtr($Result[$i]), DllStructGetPtr($tMIEX, $i + 1), 16) Then

DllStructGetPtr() is 1-indexed, not 0, so the code as originally written returns garbage. Actually it causes rcMonitor to return cbSize and the first 3 elements of rcMonitor and it causes rcWork to return rcMonitor. None of which is correct.

The fix is simple enough:

If Not _WinAPI_MoveMemory(DllStructGetPtr($Result[$i]), DllStructGetPtr($tMIEX, $i + 2), 16) Then

Better yet rewrite that part of the code to be less "clever" and more sane. Remember folks, clean and working code is better than clever broken code.

Attachments (0)

Change History (4)

comment:1 by Jpm, on Jun 19, 2013 at 7:28:10 AM

Resolution: Fixed
Status: newclosed

comment:2 by Jpm, on Sep 8, 2013 at 2:21:02 PM

Resolution: Fixed
Status: closedreopened

comment:3 by Jpm, on Sep 8, 2013 at 2:24:26 PM

Resolution: Fixed
Status: reopenedclosed

Wrong editing rev 7759 really fix it

comment:4 by TicketCleanup, on Sep 8, 2013 at 3:00:02 PM

Milestone: Future Release

Automatic ticket cleanup.

Modify Ticket

Action
as closed The ticket will remain with no owner.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.