LCL Task Dialog type mismatch
lazarus\lcl\lcltaskdialog.pas line 834
```
if TaskDialogIndirect(@Config,@result,@RadioRes,@VerifyChecked)=S_OK then
exit; // error (mostly invalid argument) -> execute the VCL emulation
```
Trye to compile it in type-safe mode: #40263
> lcltaskdialog.pas(834,67) Error: Incompatible types: got "^Boolean" expected "PBOOL"
Line 312: `VerifyChecked: Boolean;`
`Boolean` is 1 byte size and is Intel/Borland-boolean (meaning, `Ord(True) = +1`)
Line 142:
```
TaskDialogIndirect: function(AConfig: pointer; Res: PInteger;
ResRadio: PInteger; VerifyFlag: PBOOL): HRESULT; stdcall;
```
Frankly, those seem to be bad conversion, having pointer parameters, and even non-const'ed, instead of having var-paraneters. Unless "nil" is valid and often used value - this is just non-Pascalish.
Anyway, `BOOL` is Microsoft-boolean (MS Windows Long Bool type) and it has `SizeOf(BOOL) == SizeOf(int)` and also `Ord(True) == -1` here not `+1`.
Mistakes like that often give a very hard to find bugs, at least in in Delphi...
Line 312 should be `VerifyChecked: BOOL;`
issue