[Lazarus] Breaking change

Sven Barth pascaldragon at googlemail.com
Sat Jul 29 12:19:59 CEST 2017


Am 23.07.2017 12:50 schrieb "Michael Van Canneyt via Lazarus" <
lazarus at lists.lazarus-ide.org>:
>
> Hello,
>
> I have fixed bug 28760:
>
> https://bugs.freepascal.org/view.php?id=28760
>
> This will cause compilation of win32wsdialogs.pp to fail, in particular in
>
> class procedure TWin32WSOpenDialog.SetupVistaFileDialog(ADialog:
IFileDialog; const AOpenDialog: TOpenDialog);
>
> search for:
>
>   if InitialDir <> '' then
>   begin
>     if
Succeeded(SHCreateItemFromParsingName(PWideChar(UTF8ToUTF16(InitialDir)),
nil, IShellItem, DefaultFolderItem)) then
>       ADialog.SetFolder(DefaultFolderItem);
>   end;
>
> Directly passing an interface where (T)REFIID is expected, will no longer
be possible.

I reverted the changes by Michael and changed the parameters of those
functions to constref instead.
However that doesn't mean that there won't be breaking changes: there are
some interfaces that take REFIID (or TGuid parameters that are generally
used with interface IIDs) and those will need to be changed as well. Most
will be interface which have implementations provided by e.g. Windows, but
in some cases those might be implemented by users and thus will lead to
compilation failures (but at least those will be easy to spot :) ).

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20170729/b8680deb/attachment.html>


More information about the Lazarus mailing list