Added support for passing AutoHotkey objects to COM APIs as IDispatch.
Added support for VT_BYREF in ComObject wrappers. Use obj to access the referenced value.
FileOpen() can now be used to read from stdin or write to stdout or stderr by passing "*" or "**" as the filename. AutoHotkey.exe * can be used to execute script text piped from another process instead of read from file. For an example, see ExecScript().
Fixed blue-screening on XP SP2.
Fixed owned ComObjArrays to be returned by value, not by pointer. That is, a copy of the array is returned instead of a pointer to an array which is about to be deleted.
Changed the URL in the sample script which is created when you first run AutoHotkey.
Fixed sc15D to map to vk5D/AppsKey (Send, GetKeyName, etc.).
Fixed Edit controls to not treat AltGr+A as Ctrl+A.
Fixed static class vars to not act as a target for labels which immediately precede the class.
Fixed COM event handlers not receiving the final object parameter (broken by v1.1.17.00).
Improved IDispatch implementation for AutoHotkey objects:
- X.Y in VBScript and C# now returns X.Y if it is NOT a Func object; previously, it attempted to call X.Y() regardless of type.
- X(Y) in VBScript, JScript and C# now returns X[Y] unless X is a Func object, in which case it is called as before.
- X[Y] in C# now returns X[Y] if X is NOT a Func object; previously, it attempted to call X[Y]() regardless of type.
- X.Y() in C# now returns X.Y if it is NOT a Func object, due to ambiguity in the C# dispatch implementation.
- Unhandled exceptions are now converted to IDispatch exceptions.
Fixed FileAppend, %VarContainingClipboardAll%, File causing crashes.
Added a name for Func.Call(). Func.() still works but is deprecated.
Fixed some issues with X.Y and X.Y(Z) in VBScript/JScript/C#:
- If X.__Call contained a function name, it was being returned instead of called.
- When X.Y(Z) returned a value, Z was ignored. Now it acts like X.Y[Z] when X.Y is not a function.
Fixed the Hotkey command ignoring the $ (use-hook) prefix if the hotkey variant was already created without $.
Fixed EXE manifest to disable UAC installer detection heuristics (broken by v1.1.17).
Improved the way threads are represented on the debugger's call stack.
- The type of thread is shown instead of the label name, which is still available in the next stack entry. For hotkeys, the hotkey is shown instead.
- The line number of the sub or function that the thread called is shown instead of the line the script was at before starting the thread.
Fixed Hotkey command crashing the program when trying to create new variants of existing hotkeys (broken by v1.1.19.00).
Made some minor optimizations to the Hotkey command and A_TimeIdle, relating to removal of Win9x support.
Removed the 16-color icons which were used on Win9x/Win2k.
Removed the separate tray icon resources.
Improved selection of icon size when loading icons from DLL/EXE files.
- In short, prefer to downscale rather than upscale. This is especially helpful on systems with 125% or 150% DPI, where the system icon sizes are 20/40 or 24/48 instead of 16/32. If all of these sizes are present in the icon resource, this change makes no difference.
- Hotkeys which are never valid, like foo::, are now always treated as errors instead of giving a misleading warning about keyboard layout.
- Hotkeys like ^!ä:: which are inactive because of the current keyboard layout are now allowed to have a same-line action, and the label is registered correctly (e.g. as "^!ä" and not as "^!ä:"). If the /iLib command line switch is used, the warning is suppressed.
- Remappings which are inactive because of the current keyboard layout now show two warnings instead of an unrecoverable error.
- If a Wheel hotkey is used as a prefix key, there is only one error message instead of two, and it respects /ErrorStdOut.
Fixed return/break/continue/goto in try..finally.