Hello,
In activex.pp, in the ITypeInfo interface, the method GetIdOfNames is defined as:
Function GetIDsOfNames(CONST rgszNames: pOleStr; cNames: UINT; OUT pMemId: MEMBERID):HResult;StdCall;
In that definition the first parameter is a pointer to an OleStr (note that in this case "const" does not cause a pointer to that pointer to be passed as the first parameter, IOW, in this case, "const" has no functional effect.)
The C definition of that method is:
HRESULT GetIDsOfNames(
[in] LPOLESTR *rgszNames,
[in] UINT cNames,
[out] MEMBERID *pMemId
);
The first parameter is a pointer to an array of pointers to arrays of wide characters.
In Pascal that would be ^^OLESTR or ^POLESTR or PPOLESTR.
The current Pascal definition declares a pointer to a widechar array instead of a pointer to an array of pointers to widechar arrays.
Note that using "var" or "constref" to a pwidechar in this case does not declare that it is an array of pointers which complicates matters if/when the method needs to be used.
HTH.