i guess thats correct. i use - only when i need - with little work translated free pascal win header files.
Example:Freepascal:function SetFilePointer(hFile:HANDLE; lDistanceToMove:LONG; lpDistanceToMoveHigh:PLONG; dwMoveMethod:DWORD):DWORD; external 'kernel32' name 'SetFilePointer';
Modula.PROCEDURE SetFilePointer(hFile : HANDLE;
lDistanceToMove : LONG;
lpDistanceToMoveHigh : PLONG;
dwMoveMethod : DWORD) : DWORD;
But i don't need windows gui to much, so i don't care. the \ADW Software Modula-2\advapidef has windows etc. header for portability to apple and i use those mostly (see
http://modula2.awiedemann.de/). its the rest of the language, its modules, oop and generics is what i care for.
when you look at the \ADW Software Modula-2\examples directory, you find all the easy demos to make dlls etc, and the module def's and mod's show how to change and add win headers.
i attach a module, no cleaned up though, to have graphic in pascal/bgi style.
sorry forgot to mention that there is coco (parser generator) that need and miss for pb etc.