Browse Source

* Fixed Mantis #24352.

git-svn-id: trunk@26860 -
sergei 11 years ago
parent
commit
132366e448
1 changed files with 6 additions and 2 deletions
  1. 6 2
      packages/winunits-base/src/comobj.pp

+ 6 - 2
packages/winunits-base/src/comobj.pp

@@ -1276,7 +1276,9 @@ HKCR
                 inc(DispParams.cNamedArgs);
                 inc(DispParams.cNamedArgs);
               end;
               end;
             DISPATCH_METHOD:
             DISPATCH_METHOD:
-              if assigned(Result) and (CallDesc^.ArgCount=0) then
+              { It appears that certain COM servers expect both DISPATCH_METHOD and DISPATCH_PROPERTYGET
+                flags for anything returning a result, see bug #24352 }
+              if assigned(Result) then
                 InvokeKind:=DISPATCH_METHOD or DISPATCH_PROPERTYGET;
                 InvokeKind:=DISPATCH_METHOD or DISPATCH_PROPERTYGET;
           end;
           end;
 {$ifdef DEBUG_COMDISPATCH}
 {$ifdef DEBUG_COMDISPATCH}
@@ -1488,7 +1490,9 @@ HKCR
               DispParams.rgdispidNamedArgs:=@dispidNamed;
               DispParams.rgdispidNamedArgs:=@dispidNamed;
             end;
             end;
           DISPATCH_METHOD:
           DISPATCH_METHOD:
-            if assigned(res) and (desc^.calldesc.argcount=0) then
+            { It appears that certain COM servers expect both DISPATCH_METHOD and DISPATCH_PROPERTYGET
+              flags for anything returning a result, see bug #24352 }
+            if assigned(res) then
               flags:=DISPATCH_METHOD or DISPATCH_PROPERTYGET;
               flags:=DISPATCH_METHOD or DISPATCH_PROPERTYGET;
         end;
         end;