Custom Query

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (64 - 66 of 3866)

Ticket Resolution Summary Owner Reporter
#1033 Fixed UDF's missing @error checks after DLLCalls() Valik Ascend4nt
Description

I've gone through and compiled a list of all standard include UDF's (as of version 3.3.0.0) that are missing @error checks after DLLCall's, where either the return 'array' or a passed structure is accessed after. It's a big list, so I wish you the best of luck in getting this worked out.

*ALSO another problem, many are using ANSI calls rather than Unicode (wide calls). I've marked down as much info regarding this as possible

Note: Some additional details are added for certain functions. Most are only 1 DLL Call, some are more - I commented on some, but there may be more than one DLLCall on some I didn't comment on.

[I'm attaching the file instead because the double underscored functions are being messed up by the issue tracker here]

#1092 Fixed _Timer_SetTimer, Kill datatype discrepancies Jpm Ascend4nt
Description

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

#1541 Fixed _WinAPI_FillRect not x64 safe Jpm Ascend4nt
Description

This code from the _WinAPI_FillRect UDF is not properly created for x64 mode. "dword" is not the same size as "handle" in x64 mode. This conditional statement should be modified:

If IsPtr($hBrush) Then
	$aResult = DllCall("user32.dll", "int", "FillRect", "handle", $hDC, "ptr", $ptrRect, "handle", $hBrush)
Else
	$aResult = DllCall("user32.dll", "int", "FillRect", "handle", $hDC, "ptr", $ptrRect, "dword", $hBrush)
EndIf

Instead of two alternate calls to FillRect, one would suffice. The If/Else can be removed, and the last parameter can be changed to "dword_ptr":

$aResult = DllCall("user32.dll", "int", "FillRect", "handle", $hDC, "ptr", $ptrRect, "dword_ptr", $hBrush)
Note: See TracQuery for help on using queries.