Alexandre Julliard : widl: Don' t generate proxies for oleautomation interfaces.

Alexandre Julliard julliard at winehq.org
Wed Jan 19 11:46:16 CST 2011


Module: wine
Branch: master
Commit: 56425e3767689dad544e0f3a7c8e6f39bc13ff7b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=56425e3767689dad544e0f3a7c8e6f39bc13ff7b

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Jan 19 17:43:01 2011 +0100

widl: Don't generate proxies for oleautomation interfaces.

---

 tools/widl/proxy.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/tools/widl/proxy.c b/tools/widl/proxy.c
index 9952179..c945ac0 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)




More information about the wine-cvs mailing list