Opened 13 years ago

Closed 13 years ago

#1092 closed Bug (Fixed)

_Timer_SetTimer, Kill datatype discrepancies

Reported by: Ascend4nt Owned by: Jpm
Milestone: Component: AutoIt
Version: Severity: None
Keywords: Cc:


The functions _Timer_SetTimer(), _Timer_KillTimer, and _Timer_KillAllTimers in <Timers.au3> on AutoIT have a few data type discrepancies that might cause it to fail on x64 (haven't tested it myself but I assume you'd at least want the correct size variables)
Specifically the 'int' vs 'uint_ptr' is the most important (the other corrections are just to make the value unsigned (all per MSDN notes).

Here's the problems for SetTimer:

$hCallBack = DllCallbackRegister($sTimerFunc, "none", "hwnd;int;int;dword")

should be:

$hCallBack = DllCallbackRegister($sTimerFunc, "none", "hwnd;uint;uint_ptr;dword")

Also, there's two DllCall lines, I think they are identical, which read as:

$iResult = DllCall("user32.dll", "int", "SetTimer", "hwnd", $hWnd, "int", $iTimerID, "int", $iElapse, "ptr", $pTimerFunc)

They should be:

$iResult = DllCall("user32.dll", "uint_ptr", "SetTimer", "hwnd", $hWnd, "uint_ptr", $iTimerID, "uint", $iElapse, "ptr", $pTimerFunc)

For the 'KillTimer' and 'KillAllTimers' functions, the DLLCalls (multiple ones) are setup like this:

$iResult = DllCall("user32.dll", "int", "KillTimer", "hwnd", $hWnd, "int", $_Timers_aTimerIDs[$x][1])

But the calls should be:

$iResult = DllCall("user32.dll", "int", "KillTimer", "hwnd", $hWnd, "uint_ptr", $_Timers_aTimerIDs[$x][1])

That's all, thanks

Attachments (0)

Change History (3)

comment:1 Changed 13 years ago by Valik

Have you checked the beta version? Don't report bugs against because it may be fixed in the beta.

comment:2 Changed 13 years ago by Ascend4nt

yup, just checked - the type definitions are wrong in the Beta too

comment:3 Changed 13 years ago by Jpm

  • Milestone set to
  • Owner set to Jpm
  • Resolution set to Fixed
  • Status changed from new to closed

Fixed in version:

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Modify Ticket

as closed The owner will remain Jpm.

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.