4 issues.
GUICONTROLGET
- GuiControlGet: '(Blank)' subcommand. This can support the 'Text' (Static) control, but 'Text' is not listed.
- (I'm not sure of what the exact behaviour is, for GuiControlGet applied to a 'Text' control, because it isn't listed.)
[EDIT:]
- I would remove 'All control types are self-explanatory except the following:'.
- And state these explicitly as a group: Text/Button/Link/DateTime/MonthCal/GroupBox/Custom.
- Separating any where necessary e.g. Custom.
- (It's confusing, your eyes keep looking up and down for a control type that may or may not be there.)
IF OBJECT
- if: 'if var', where var is an object, always returns true. The 'if (expression)' page does not state this.
- Mentioned here:
Raw TRUE/FALSE test on an object - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=5&t=60963
- [EDIT:] A link could be added to this page (or the information copied):
Objects - Definition & Usage | AutoHotkey
https://autohotkey.com/docs/Objects.htm#Usage_Remarks
TERNARY OPERATOR
- Ternary operator: it could be stated explicitly that you must specify all 3 parts: '(a) ? (b) : (c)', i.e. '(a) ? (b)' does not work.
- This trips a lot of people up because the 4-liner 'if (a) LF (b) LF else LF (c)' is possible, however, the 2-liner 'if (a) LF (b)' is also possible.
Variables and Expressions - Definition & Usage | AutoHotkey
https://autohotkey.com/docs/Variables.htm#ternary
- It could simply be mentioned that 'ternary' means 3, so 3 arguments are required. Furthermore, if the terms unary/binary/ternary operator were mentioned/explained together, this might add more clarity. [EDIT:] E.g.:
Oracle Unary and Binary Operators - w3resource
https://www.w3resource.com/oracle/operators/index.php
DLLCALL AND POINTERS
- DllCall: clarification of what happens when you specify 'Ptr,0' and 'PtrP,0'/'IntP,0'/'UIntP,0' etc.
- Mentioned here:
DllCall: IntP/UIntP, Int64P/UInt64P, PtrP/UPtrP - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=5&t=39906&p=261091#p261091
- [EDIT:] 'Ptr,0', is the memory at address 0 write-protected, or is a crash possible?
- [EDIT:] 'PtrP,0', does this write to the variable called '0', does it write to and then discard a temporary variable? What happens?