Browse Source

* support for getting dispatch interface properties

git-svn-id: trunk@9171 -
florian 18 years ago
parent
commit
48c0e3b023
1 changed files with 9 additions and 0 deletions
  1. 9 0
      packages/base/winunits/comobj.pp

+ 9 - 0
packages/base/winunits/comobj.pp

@@ -800,6 +800,15 @@ implementation
             end;
             end;
           InvokeKind:=CallDesc^.CallType;
           InvokeKind:=CallDesc^.CallType;
           MethodID:=DispIDs^[0];
           MethodID:=DispIDs^[0];
+          case InvokeKind of
+            DISPATCH_PROPERTYPUT:
+              begin
+                { !! FIXME}
+              end;
+            DISPATCH_METHOD:
+              if assigned(Result) and (CallDesc^.ArgCount=0) then
+                InvokeKind:=DISPATCH_METHOD or DISPATCH_PROPERTYGET;
+          end;
 {$ifdef DEBUG_COMDISPATCH}
 {$ifdef DEBUG_COMDISPATCH}
           writeln('DispatchInvoke: MethodID: ',MethodID,' InvokeKind: ',InvokeKind);
           writeln('DispatchInvoke: MethodID: ',MethodID,' InvokeKind: ',InvokeKind);
 {$endif DEBUG_COMDISPATCH}
 {$endif DEBUG_COMDISPATCH}