소스 검색

* TContainedObject 10496. First implementation copied from TInterfacedObject

git-svn-id: trunk@9569 -
marco 18 년 전
부모
커밋
eb2a80d272
2개의 변경된 파일18개의 추가작업 그리고 0개의 파일을 삭제
  1. 13 0
      rtl/inc/objpas.inc
  2. 5 0
      rtl/inc/objpash.inc

+ 13 - 0
rtl/inc/objpas.inc

@@ -782,6 +782,19 @@
          Result := IUnknown(fcontroller);
          Result := IUnknown(fcontroller);
       end;
       end;
 
 
+{****************************************************************************
+                               TContainedOBJECT
+****************************************************************************}
+
+    function TContainedObject.QueryInterface(
+            const iid : tguid;out obj) : longint; stdcall;
+
+    begin
+      if getinterface(iid,obj) then
+        result:=0
+      else
+        result:=longint(E_NOINTERFACE); 
+    end;
 
 
 {****************************************************************************
 {****************************************************************************
                              Exception Support
                              Exception Support

+ 5 - 0
rtl/inc/objpash.inc

@@ -242,6 +242,11 @@
           property Controller : IUnknown read GetController;
           property Controller : IUnknown read GetController;
        end;
        end;
 
 
+       TContainedObject = class(TObject)
+         protected 
+           function QueryInterface(const iid : tguid;out obj) : longint;virtual; stdcall;
+         end;
+
        { some pointer definitions }
        { some pointer definitions }
        PUnknown = ^IUnknown;
        PUnknown = ^IUnknown;
        PPUnknown = ^PUnknown;
        PPUnknown = ^PUnknown;