You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openoffice.apache.org by bu...@apache.org on 2012/08/06 13:33:33 UTC

[Bug 120470] New: DISPATCH_PROPERTYGET is called instead of DISPATCH_METHOD when calling an OLE object's method form OO Basic

https://issues.apache.org/ooo/show_bug.cgi?id=120470

          Priority: P3
            Bug ID: 120470
          Assignee: ooo-issues@incubator.apache.org
           Summary: DISPATCH_PROPERTYGET is called instead of
                    DISPATCH_METHOD when calling an OLE object's method
                    form OO Basic
          Severity: major
        Issue Type: DEFECT
    Classification: Code
                OS: Windows, all
          Reporter: roman@strokescribe.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: OOo 3.4 Beta
         Component: www
           Product: udk

When trying to call a method from OLE object created by
createUnoService().createInstance(), a PropertyGet is really executed instead
of method.

For example, when calling oleobj.Z(), IDispatch::Invoke receives dispid=3 of
ShowText with flags=DISPATCH_PROPERTYGET.

If we will change the interface sample a little and place [id(35)] VARIANT Z
before [id(33)], the AlphabetGet will be called instead.

If the the count of properties in interface definition is smaller than the
position of Z in the list of methods, Z() is correctly executed. This happens
when ShowText property definition is removed.

dispinterface _DTestClass
{
    properties:
        [id(1)] enumAlphabet Alphabet;
        [id(2)] VARIANT Text;
        [id(3)] boolean ShowText;

    methods:
        [id(33)] long SavePicture(BSTR fileName, enumFormats format);
        [id(34)] BSTR EanCheckDigit(BSTR text);
        [id(35)] VARIANT Z(enumFormats format, long width, long height);
};

-- 
You are receiving this mail because:
You are the assignee for the bug.