There were holiwars about it, f.e. https://forum.lazarus.freepascal.org/index.php/topic,59388.msg442698.html#msg442698
Thank you for that link tetrastes as I seem to have missed that discussion.
Shame that I missed it because for sure I would have strongly advocated my opinion on that topic. Every excuse to deviate from an official API is simply wrong and I am positive that someone who believes otherwise has never had to work with these API's in practice (other than an occasional call here and there. For someone disagreeing with that try translating code with hundreds of API calls and try keep that point of view).
I am already fed up with all these API parameters being var'ed while many API's explicitly state that the "values" of these (pointer) parameters can be nil (and actually makes a whole lot of difference in behaviour of such a function).
Lesson learned to never ever use the windows unit (not that I did since my switch to linux but even there this kind of crap is creeping up more and more).
And for the literate: yes, I am aware that the original official declaration also exist .... but whaddayouknow sometimes a function declaration follows the official API except for a parameter here and there being var'ed so you never know unless explicitly looking at the available translation(s) of such declaration(s). Complete randomness with a sauce of Delphi compatibility (and no excuse makes it smell less)
And now it makes also perfect sense why TS has these issues so thank you for that hint tetrastes :thumbsup: