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