IEnumVARIANT in ActiveX unit is declared wrong
Original Reporter info from Mantis: Thaddy
-
Reporter name: Thaddy de Koning
Original Reporter info from Mantis: Thaddy
- Reporter name: Thaddy de Koning
Description:
The maintainer of this code has obviously the meaning to declare two versions of Next, but they are the same. For Delphi compatibility, the rgVar (2) parameter should be of type OleVariant and the pCeltFetched (3) parameter of Next should be of type OUT Longword:
Function Next(celt: ULONG; OUT rgVar: OLEVARIANT;OUT pCeltFetched: LongWord):HResult;StdCall;
It is declared as:
IEnumVARIANT = Interface (IUnknown)
['{00020404-0000-0000-C000-000000000046}']
{$ifndef Call_as}
Function Next(celt: ULONG; OUT rgVar: VARIANT; pCeltFetched: pULONG=nil):HResult;StdCall;
{$else}
Function Next(celt: ULONG; OUT rgVar: VARIANT; pCeltFetched: pULONG=nil):HResult;StdCall;
{$endif}
Function Skip(celt: ULONG):HResult;StdCall;
Function Reset():HResult;StdCall;
Function Clone(OUT ppEnum: IEnumVARIANT):HResult;StdCall;
End;
Additional information:
Note the current two versions of the Next fiunction are identical. This is probably unintentional.
Mantis conversion info:
- Mantis ID: 25722
- OS: windows
- OS Build: all
- Platform: i386, arm
- Version: 2.7.1
- Fixed in version: 3.0.0
- Fixed in revision: 26863 (#4dfb88d1)
- Target version: 3.0.0