I've just tested with Delphi 10.2 and it indeed does not pass the structure in EAX:EDX, but as a reference... 
Like in the code you quoted, Delphi (32 bit app) use reg EAX as result of struct up to 4 bytes (for example composed with two smallint), but with a function declared with a result of INT64 it use EAX:EDX.
In Microsoft note (I posted it in the third post of the topic) they suggest to use INT64 to wrap the function.
So, if a C function return up to 8 bytes structure data (like that originate the topic) then the unique way to wrap the result is declare it in pascal as "function ........ : INT64; stdcall; (or cdecl)"
Tested with Delphi Athens 12.3