widl: Fix the writing typedefs to dispinterfaces and pointers to interfaces.
commit39978c68f9ed140f71811109523cd9dadf198f24
authorRob Shearman <robertshearman@gmail.com>
Wed, 10 Sep 2008 07:00:27 +0000 (10 08:00 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 10 Sep 2008 08:55:34 +0000 (10 10:55 +0200)
tree7a9b0bcca5a3d97f1692b9123da5449230e04415
parentbfc34a3c9cea4ef41bd2315f1272a33a0c3ebd09
widl: Fix the writing typedefs to dispinterfaces and pointers to interfaces.

Currently, stdole2.tlb isn't generated correctly and causes "<failed>"
to appear instead of "FontEvents" in the IFontEventsDisp typedef when
viewed with oleview.

The problem is that the typedef should just generate a VT_USERDEFINED
record, but ends up generating a VT_PTR -> VT_USERDEFINED. So remove
the extra writing of VT_PTR entries.

Fix the skipped pointers checks in encode_type and encode_type to
specifically detect VT_UNKNOWN and VT_DISPATCH types which don't need
one level of pointers, whereas interfaces encoded as VT_USERDEFINED
do.
tools/widl/write_msft.c