From 56425e3767689dad544e0f3a7c8e6f39bc13ff7b Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 19 Jan 2011 17:43:01 +0100 Subject: [PATCH] widl: Don't generate proxies for oleautomation interfaces. --- tools/widl/proxy.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/widl/proxy.c b/tools/widl/proxy.c index 9952179ebf2..c945ac0e40c 100644 --- a/tools/widl/proxy.c +++ b/tools/widl/proxy.c @@ -576,8 +576,6 @@ static void write_proxy(type_t *iface, unsigned int *proc_offset) const statement_t *stmt; int first_func = 1; - /* FIXME: check for [oleautomation], shouldn't generate proxies/stubs if specified */ - STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface)) { var_t *func = stmt->u.var; if (first_func) { @@ -701,7 +699,11 @@ static int does_any_iface(const statement_list_t *stmts, type_pred_t pred) int need_proxy(const type_t *iface) { - return is_object(iface) && !is_local(iface->attrs); + if (!is_object( iface )) return 0; + if (is_local( iface->attrs )) return 0; + if (is_attr( iface->attrs, ATTR_OLEAUTOMATION )) return 0; + if (is_attr( iface->attrs, ATTR_DISPINTERFACE )) return 0; + return 1; } int need_stub(const type_t *iface)