* Fixed declaration of ITypeInfo.Invoke(). The last 3 parameters should be able accept nil values. This fixes calling late binding methods of ActiveX server implemented with FPC. Patch by Ludo Brands.

git-svn-id: trunk@22638 -
This commit is contained in:
yury 2012-10-13 17:16:23 +00:00
parent 9035d3ae5d
commit b0b2353f58
2 changed files with 3 additions and 3 deletions

View File

@ -3006,7 +3006,7 @@ TYPE
Function LocalGetIDsOfNames():HResult;StdCall;
{$endif}
{$ifndef Call_as}
Function Invoke(pvInstance: Pointer; memid: MEMBERID; wFlags: WORD; VAR pDispParams: DISPPARAMS; OUT pVarResult: VARIANT; OUT pExcepInfo: EXCEPINFO; OUT puArgErr: UINT):HResult;StdCall;
Function Invoke(pvInstance: Pointer; memid: MEMBERID; wFlags: WORD; VAR pDispParams: DISPPARAMS; pVarResult: PVARIANT; pExcepInfo: PEXCEPINFO; puArgErr: PUINT):HResult;StdCall;
{$else}
Function LocalInvoke ():HResult;StdCall;
{$endif}

View File

@ -1599,7 +1599,7 @@ HKCR
else
// Function Invoke(pvInstance: Pointer; memid: MEMBERID; wFlags: WORD; VAR pDispParams: DISPPARAMS; OUT pVarResult: VARIANT; OUT pExcepInfo: EXCEPINFO; OUT puArgErr: UINT):HResult;StdCall;
// Result := fTypeInfo.Invoke(IDispatch(Self), DispID, Flags, TDispParams(params), PVariant(VarResult)^, PExcepInfo(ExcepInfo)^, PUINT(ArgErr)^);
Result := fTypeInfo.Invoke(fInterfacePointer, DispID, Flags, TDispParams(params), PVariant(VarResult)^, PExcepInfo(ExcepInfo)^, PUINT(ArgErr)^);
Result := fTypeInfo.Invoke(fInterfacePointer, DispID, Flags, TDispParams(params), VarResult, ExcepInfo, ArgErr);
end;
function TAutoIntfObject.InterfaceSupportsErrorInfo(const riid: TIID): HResult;
@ -1699,7 +1699,7 @@ HKCR
begin
Result := TAutoObjectFactory(Factory).DispTypeInfo.Invoke(Pointer(
PtrUint(Self) + TAutoObjectFactory(Factory).DispIntfEntry^.IOffset),
DispID, Flags, TDispParams(Params), PVariant(VarResult)^, PExcepInfo(ExcepInfo)^, PUINT(ArgErr)^);
DispID, Flags, TDispParams(Params), VarResult, ExcepInfo, ArgErr);
end;
end;