Issue 46273

Summary: oleautomation: components using properties may not work.
Product: udk Reporter: joachim.lingner
Component: codeAssignee: AOO issues mailing list <issues>
Status: ACCEPTED --- QA Contact:
Severity: Trivial    
Priority: P3 CC: issues
Version: 680m89   
Target Milestone: AOO PleaseHelp   
Hardware: All   
OS: All   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---

Description joachim.lingner 2005-03-30 09:12:05 UTC
It is possible to use automation server from OOo, for example from Basic. Using
these server may fail if  properties are called, which are implemented using IDL
properties. That is , these properties have an VARDESC entry in the TLB.

This should however only effect components prior to msdev 6. Now properties are
always represented by get & set methods which have FUNCDESC entries in the TLB.

To reproduce this, one needs a component that has this idl description

dispinterface _DRSComm
		[id(1)] long PropFoo;
		[id(32), propget] boolean Foo();

Calling PropFoo from Basic causes internally that the DISPID 32 is used which
belongs to Foo. 

This must be fixed in the function IUnknownWrapper_Impl::getPropDesc and 
IUnknownWrapper_Impl::buildComTlbIndex(). buildComTlbIndex shall use a second
map that only contains entries gathered from VARDESC descriptions. 

The functions are in extensions/source/ole/oleobjw.cxx.
Comment 1 joachim.lingner 2005-03-30 09:12:45 UTC