Hello,
In Activex.pp, IMoniker is defined as follows:
PIMoniker = ^IMoniker;
IMoniker = Interface (IPersistStream)
['{0000000f-0000-0000-C000-000000000046}']
Function BindToObject (const pbc:IBindCtx;const mktoleft:IMoniker; const RiidResult:TIID;Out vresult):HResult;StdCall;
Function GetTimeOfLastChange(Const bc:IBindCtx;Const mkToLeft:IMoniker; out ft : FileTime):HResult; StdCall;
{ many methods "snipped" away }
{ the following definition is incorrect }
Function CommonPrefixWith (Const mkOther:IMoniker):HResult; StdCall;
{ remaining methods }
Function RelativePathTo(Const mkother:IMoniker; Out mkRelPath : IMoniker):HResult;StdCall;
Function GetDisplayName(Const bc:IBindCtx;const mktoleft:IMoniker;Out szDisplayName: pOleStr):HResult; StdCall;
Function ParseDisplayName(Const bc:IBindCtx;Const mkToLeft:IMoniker;szDisplayName:POleStr;out cheaten:ULong;out mkOut:IMoniker):HResult; StdCall;
Function IsSystemMoniker(Out dwMkSys:DWord):HResult;StdCall;
End;
In C/C++ the definition of CommonPrefixWith is:
HRESULT CommonPrefixWith(
[in] IMoniker *pmkOther,
[out] IMoniker **ppmkPrefix
);
which when translated to Pascal (following the pattern in activex.pp) would yield something like:
function CommonPrefixWith(const mkOther: IMoniker;
out mkPrefix: IMoniker): HRESULT; stdcall;
which is the definition found in JwaActivex.pas
Note that the definition in activex.pp is missing a parameter.
HTH.