Browse Source

* interface additions

peter 20 years ago
parent
commit
7cf6eff07f
2 changed files with 37 additions and 3 deletions
  1. 12 2
      rtl/inc/objpash.inc
  2. 25 1
      rtl/objpas/classes/compon.inc

+ 12 - 2
rtl/inc/objpash.inc

@@ -44,7 +44,14 @@
        vmtBeforeDestruction    = vmtMethodStart+sizeof(pointer)*6;
        vmtBeforeDestruction    = vmtMethodStart+sizeof(pointer)*6;
        vmtDefaultHandlerStr    = vmtMethodStart+sizeof(pointer)*7;
        vmtDefaultHandlerStr    = vmtMethodStart+sizeof(pointer)*7;
 
 
-    type
+       { IInterface }
+       S_OK          = 0;
+       S_FALSE       = 1;
+       E_NOINTERFACE = hresult($80004002);
+       E_UNEXPECTED  = hresult($8000FFFF);
+       E_NOTIMPL     = hresult($80004001);
+  
+     type
        TextFile = Text;
        TextFile = Text;
 
 
        { now the let's declare the base classes for the class object }
        { now the let's declare the base classes for the class object }
@@ -301,7 +308,10 @@
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.25  2005-01-26 17:07:10  peter
+  Revision 1.26  2005-01-31 19:41:39  peter
+    * interface additions
+
+  Revision 1.25  2005/01/26 17:07:10  peter
     * retrieve backtrace when exception is raised
     * retrieve backtrace when exception is raised
     * RaiseMaxFrameCount added to limit the number of backtraces, setting
     * RaiseMaxFrameCount added to limit the number of backtraces, setting
       it to 0 disables backtraces. Default is 16
       it to 0 disables backtraces. Default is 16

+ 25 - 1
rtl/objpas/classes/compon.inc

@@ -555,9 +555,33 @@ begin
     Result := False;
     Result := False;
 end;
 end;
 
 
+{$ifdef HASINTF}
+function TComponent.QueryInterface(const IID: TGUID; out Obj): HResult;stdcall;
+begin
+  if GetInterface(IID, Obj) then
+    result:=S_OK
+  else
+    result:=E_NOINTERFACE;
+end;
+
+function TComponent._AddRef: Integer;stdcall;
+begin
+  result:=-1;
+end;
+
+function TComponent._Release: Integer;stdcall;
+begin
+  result:=-1;
+end;
+
+{$endif HASINTF}
+
 {
 {
   $Log$
   $Log$
-  Revision 1.5  2004-09-22 19:57:45  michael
+  Revision 1.6  2005-01-31 19:41:39  peter
+    * interface additions
+
+  Revision 1.5  2004/09/22 19:57:45  michael
   + More optimal FreeNotification when destroying
   + More optimal FreeNotification when destroying
 
 
   Revision 1.4  2004/09/22 18:48:31  michael
   Revision 1.4  2004/09/22 18:48:31  michael