﻿id	summary	reporter	owner	description	type	status	milestone	component	version	severity	resolution	keywords	cc
1092	_Timer_SetTimer, Kill datatype discrepancies	Ascend4nt	Jpm	"The functions _Timer_SetTimer(), _Timer_KillTimer, and _Timer_KillAllTimers in <Timers.au3> on AutoIT 3.3.0.0 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"	Bug	closed	3.3.1.2	AutoIt	3.3.0.0	None	Fixed		
