widl #22: a couple more function attributes

Huw D M Davies h.davies1 at physics.ox.ac.uk
Sun Jan 23 11:21:44 CST 2005


        Huw Davies <huw at codeweavers.com>
        Add support for hidden and restricted function attributes.
        Add support for odl interface attribute.

Index: tools/widl/write_msft.c
===================================================================
RCS file: /home/wine/wine/tools/widl/write_msft.c,v
retrieving revision 1.17
diff -u -p -r1.17 write_msft.c
--- tools/widl/write_msft.c	21 Jan 2005 17:04:00 -0000	1.17
+++ tools/widl/write_msft.c	23 Jan 2005 17:01:55 -0000
@@ -1180,14 +1180,11 @@ static HRESULT add_func_desc(msft_typein
         }
     }
 
-    chat("num of params %d\n", num_params);
+    chat("add_func_desc: num of params %d\n", num_params);
 
     for(attr = func->def->attrs; attr; attr = NEXT_LINK(attr)) {
         expr_t *expr = attr->u.pval; 
         switch(attr->type) {
-        case ATTR_ID:
-            id = expr->u.lval;
-            break;
         case ATTR_HELPCONTEXT:
             extra_attr = 1;
             help_context = expr->u.lval;
@@ -1200,6 +1197,12 @@ static HRESULT add_func_desc(msft_typein
             extra_attr = 6;
             help_string_context = expr->u.lval;
             break;
+        case ATTR_HIDDEN:
+            funcflags |= 0x40; /* FUNCFLAG_FHIDDEN */
+            break;
+        case ATTR_ID:
+            id = expr->u.lval;
+            break;
         case ATTR_OUT:
             break;
         case ATTR_PROPGET:
@@ -1208,8 +1211,11 @@ static HRESULT add_func_desc(msft_typein
         case ATTR_PROPPUT:
             invokekind = 0x4; /* INVOKE_PROPERTYPUT */
             break;
+        case ATTR_RESTRICTED:
+            funcflags |= 0x1; /* FUNCFLAG_FRESTRICTED */
+            break;
         default:
-            warning("ignoring attr %d\n", attr->type);
+            warning("add_func_desc: ignoring attr %d\n", attr->type);
             break;
         }
     }
@@ -1582,6 +1588,9 @@ static msft_typeinfo_t *create_msft_type
           }
         case ATTR_HIDDEN:
             typeinfo->flags |= 0x10; /* TYPEFLAG_FHIDDEN */
+            break;
+
+        case ATTR_ODL:
             break;
 
         case ATTR_RESTRICTED:



More information about the wine-patches mailing list