diff options
| author | joost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-09-19 14:04:27 +0000 |
|---|---|---|
| committer | joost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-09-19 14:04:27 +0000 |
| commit | 3c5258ddba0f68f16cb07f09073e2e8fd7e490c3 (patch) | |
| tree | b879791ea0bc10d231532a02cbf123ad16db1a65 /packages/fcl-fpcunit | |
| parent | 2f69018418044f2b4c26d459e46029410f286d27 (diff) | |
| download | fpc-3c5258ddba0f68f16cb07f09073e2e8fd7e490c3.tar.gz | |
* Adapted IUnknown so that it can be used for interfaceing with XPCom, also
on non-Windows systems.
- Always pass TGUID to QueryInterface by reference (constref)
- QueryInterface, _AddRef and _Release use the cdecl calling convention on
non-Windows, just as most c-frameworks (like XPCom)
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/xpcom@16009 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-fpcunit')
| -rw-r--r-- | packages/fcl-fpcunit/src/testutils.pp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/packages/fcl-fpcunit/src/testutils.pp b/packages/fcl-fpcunit/src/testutils.pp index f331faa5c1..684b11bc0d 100644 --- a/packages/fcl-fpcunit/src/testutils.pp +++ b/packages/fcl-fpcunit/src/testutils.pp @@ -26,9 +26,9 @@ type TNoRefCountObject = class(TObject, IInterface) protected { IInterface } - function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall; - function _AddRef: Integer; stdcall; - function _Release: Integer; stdcall; + function QueryInterface(constref IID: TGUID; out Obj): HResult; virtual; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; + function _AddRef: Integer; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; + function _Release: Integer; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; end; {$M-} @@ -38,18 +38,18 @@ procedure GetMethodList( AClass: TClass; AList: TStrings ); overload; implementation -function TNoRefCountObject.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; +function TNoRefCountObject.QueryInterface(constref IID: TGUID; out Obj): HResult; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; begin if GetInterface(IID, Obj) then Result := 0 else Result := HRESULT($80004002); end; -function TNoRefCountObject._AddRef: Integer;stdcall; +function TNoRefCountObject._AddRef: Integer;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; begin Result := -1; end; -function TNoRefCountObject._Release: Integer;stdcall; +function TNoRefCountObject._Release: Integer;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; begin Result := -1; end; |
