1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- { %version=1.1 }
- { Source provided for Free Pascal Bug Report 2177 }
- { Submitted by "Rimgaudas" on 2002-10-14 }
- { e-mail: [email protected] }
- {$ifdef fpc}{$mode delphi}{$endif}
- uses
- SysUtils;
- type
- ii= interface
- ['{616D9683-88DC-4D1C-B847-1293DDFBACF7}']
- procedure Show;stdcall;
- end;
- Twii= class(TObject, ii)
- s: string;
- function QueryInterface(constref IID: TGUID; out Obj): Integer; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
- function _AddRef: Integer; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
- function _Release: Integer; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
- procedure Show;stdcall;
- end;
- {________doomy interfaces______}
- function Twii.QueryInterface(constref IID: TGUID; out Obj): Integer; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
- begin
- result:= -1;
- end;
- function Twii._AddRef: Integer; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
- begin
- result:= -1;
- end;
- function Twii._Release: Integer; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
- begin
- result:= -1;
- end;
- {________doomy interfaces______}
- procedure Twii.Show;stdcall;
- begin
- WriteLn(s);
- end;
- var
- wii: twii;
- i: ii;
- begin
- try
- wii:= Twii.create;
- wii.s:='OK';
- i:= ii(wii);
- i.Show;
- except //excepts
- on EInvalidCast do WriteLn('Invalid Cast');
- else
- WriteLn('Problem');
- halt(1);
- end;
- end.
|