[Lazarus] Breaking change

Martok listbox at martoks-place.de
Sun Jul 23 13:55:54 CEST 2017


Hello,

> I have fixed bug 28760:
>
> https://bugs.freepascal.org/view.php?id=28760
as the reporter: not really.

The pointer-ness of REFIID is an artefact of the C-ABI. It is not meant to mean
'pass a pointer to a GUID-struct', but 'pass a GUID using byref'. We have
constref for that.

> Directly passing an interface where (T)REFIID is expected, will no longer be
possible.
It must be, if only for Delphi compat.

Delphi import is (... const riid: TIID;...), but that only works because they
never seem to pass structured types on the stack, regardless of size.


Martok



More information about the Lazarus mailing list