[PATCH 3/5] widl: Write public typedefs into the typelib if they are referenced directly.
Zebediah Figura
z.figura12 at gmail.com
Wed Aug 21 11:18:08 CDT 2019
I.e. write "apple_t" into the typelib given the following snippet:
typedef [public] struct { ... } apple_t;
library {
interface IFoo {
HRESULT a(apple_t arg);
}
}
Based on a patch by Richard Pospesel.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
tools/widl/write_msft.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c
index 5d5fd891d4..e972a26b59 100644
--- a/tools/widl/write_msft.c
+++ b/tools/widl/write_msft.c
@@ -763,6 +763,7 @@ static void add_enum_typeinfo(msft_typelib_t *typelib, type_t *enumeration);
static void add_union_typeinfo(msft_typelib_t *typelib, type_t *tunion);
static void add_coclass_typeinfo(msft_typelib_t *typelib, type_t *cls);
static void add_dispinterface_typeinfo(msft_typelib_t *typelib, type_t *dispinterface);
+static void add_typedef_typeinfo(msft_typelib_t *typelib, type_t *dispinterface);
/****************************************************************************
@@ -973,7 +974,7 @@ static int encode_type(
chat("encode_type: VT_USERDEFINED - adding new type %s, real type %d\n",
type->name, type_get_type(type));
- switch (type_get_type(type))
+ switch (type_get_type_detect_alias(type))
{
case TYPE_STRUCT:
case TYPE_ENCAPSULATED_UNION:
@@ -991,6 +992,9 @@ static int encode_type(
case TYPE_COCLASS:
add_coclass_typeinfo(typelib, type);
break;
+ case TYPE_ALIAS:
+ add_typedef_typeinfo(typelib, type);
+ break;
default:
error("encode_type: VT_USERDEFINED - unhandled type %d\n",
type_get_type(type));
--
2.22.0
More information about the wine-devel
mailing list