Alexandre Julliard : widl: Add support for some more typelib flags based on the added attributes.

Alexandre Julliard julliard at winehq.org
Fri Oct 22 12:30:42 CDT 2010


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Oct 21 21:34:33 2010 +0200

widl: Add support for some more typelib flags based on the added attributes.

---

 tools/widl/write_msft.c |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c
index 1ac34d0..da4eb25 100644
--- a/tools/widl/write_msft.c
+++ b/tools/widl/write_msft.c
@@ -1312,7 +1312,9 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index)
         case ATTR_BINDABLE:
             funcflags |= 0x4; /* FUNCFLAG_FBINDABLE */
             break;
-        /* FIXME: FUNCFLAG_FDEFAULTBIND */
+        case ATTR_DEFAULTBIND:
+            funcflags |= 0x20; /* FUNCFLAG_FDEFAULTBIND */
+            break;
         case ATTR_DEFAULTCOLLELEM:
             funcflags |= 0x100; /* FUNCFLAG_FDEFAULTCOLLELEM */
             break;
@@ -1373,8 +1375,12 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index)
         case ATTR_SOURCE:
             funcflags |= 0x2; /* FUNCFLAG_FSOURCE */
             break;
-        /* FIXME: FUNCFLAG_FUIDEFAULT */
-        /* FIXME: FUNCFLAG_FUSESGETLASTERROR */
+        case ATTR_UIDEFAULT:
+            funcflags |= 0x200; /* FUNCFLAG_FUIDEFAULT */
+            break;
+        case ATTR_USESGETLASTERROR:
+            funcflags |= 0x80; /* FUNCFLAG_FUSESGETLASTERROR */
+            break;
         case ATTR_VARARG:
             if (num_optional || num_defaults)
                 warning("add_func_desc: ignoring vararg in function with optional or defaultvalue params\n");
@@ -1612,7 +1618,9 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var)
         case ATTR_BINDABLE:
             varflags |= 0x04; /* VARFLAG_FBINDABLE */
             break;
-        /* FIXME: VARFLAG_FDEFAULTBIND */
+        case ATTR_DEFAULTBIND:
+            varflags |= 0x20; /* VARFLAG_FDEFAULTBIND */
+            break;
         case ATTR_DEFAULTCOLLELEM:
             varflags |= 0x100; /* VARFLAG_FDEFAULTCOLLELEM */
             break;
@@ -1644,7 +1652,9 @@ static HRESULT add_var_desc(msft_typeinfo_t *typeinfo, UINT index, var_t* var)
         case ATTR_SOURCE:
             varflags |= 0x02; /* VARFLAG_FSOURCE */
             break;
-        /* FIXME: VARFLAG_FUIDEFAULT */
+        case ATTR_UIDEFAULT:
+            varflags |= 0x0200; /* VARFLAG_FUIDEFAULT */
+            break;
         default:
             break;
         }
@@ -1869,7 +1879,9 @@ static msft_typeinfo_t *create_msft_typeinfo(msft_typelib_t *typelib, enum type_
             typeinfo->flags |= 0x10; /* TYPEFLAG_FHIDDEN */
             break;
 
-        /* FIXME: TYPEFLAG_FLICENSED */
+        case ATTR_LICENSED:
+            typeinfo->flags |= 0x04; /* TYPEFLAG_FLICENSED */
+            break;
 
         case ATTR_NONCREATABLE:
             typeinfo->flags &= ~0x2; /* TYPEFLAG_FCANCREATE */
@@ -1885,7 +1897,9 @@ static msft_typeinfo_t *create_msft_typeinfo(msft_typelib_t *typelib, enum type_
 
         /* FIXME: TYPEFLAG_FPREDCLID */
 
-        /* FIXME: TYPEFLAG_FPROXY */
+        case ATTR_PROXY:
+            typeinfo->flags |= 0x4000; /* TYPEFLAG_FPROXY */
+            break;
 
         /* FIXME: TYPEFLAG_FREPLACEABLE */
 




More information about the wine-cvs mailing list