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

This commit is contained in:
Alexandre Julliard 2010-10-21 21:34:33 +02:00
parent 537773fbf4
commit 2debb114e3
1 changed files with 21 additions and 7 deletions

View File

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