Rob Shearman
5223d04a7c
widl: Write the typelib based on the statement list generated in the typelib_t object instead of using hooks in the parser code.
2008-12-29 14:46:27 +01:00
Rob Shearman
04a22cc412
widl: Hide the details of where arguments, fields, values and cases are stored in the type_t structure for functions, structures, enums and unions.
2008-12-29 14:42:47 +01:00
Rob Shearman
e0dd72162a
widl: Remove redundant code.
...
dispinterfaces now have a type of RPC_FC_IP instead of 0, so this code
will never be reached.
2008-09-11 11:45:33 +02:00
Rob Shearman
39978c68f9
widl: Fix the writing typedefs to dispinterfaces and pointers to interfaces.
...
Currently, stdole2.tlb isn't generated correctly and causes "<failed>"
to appear instead of "FontEvents" in the IFontEventsDisp typedef when
viewed with oleview.
The problem is that the typedef should just generate a VT_USERDEFINED
record, but ends up generating a VT_PTR -> VT_USERDEFINED. So remove
the extra writing of VT_PTR entries.
Fix the skipped pointers checks in encode_type and encode_type to
specifically detect VT_UNKNOWN and VT_DISPATCH types which don't need
one level of pointers, whereas interfaces encoded as VT_USERDEFINED
do.
2008-09-10 10:55:34 +02:00
Austin English
bfc34a3c9c
widl: Remove unreached code (Smatch).
2008-09-10 10:55:11 +02:00
Simon Richter
b5614f763f
widl: Write string lengths in host endianness.
...
Type libraries are currently parsed in host endianness, so byte arrays
that are going to be interpreted as integers need to be written in the
appropriate byte order.
2008-06-18 15:21:48 +02:00
Rob Shearman
80be9df3a7
widl: Add typedefs to typelibs which have the public or uuid attributes, not any other attribute.
2008-04-28 13:28:16 +02:00
Rob Shearman
33c891e694
widl: Add support for string literals and wide-string literals in expressions.
2008-04-25 12:10:24 +02:00
Rob Shearman
df0e38c067
widl: Create a list of statements in the whole IDL file, instead of just a list of interfaces.
2008-04-24 22:32:20 +02:00
Rob Shearman
02f5412a53
widl: Implement lcid property on library declarations.
2008-04-24 22:31:20 +02:00
Rob Shearman
f728fe168b
widl: Write out TYPEFLAG, FUNCFLAG and VARFLAG flags for all attribute we currently parse.
...
Add FIXMEs for the remaining ones and remove the warning for
unimplemented attribute types since we now support all the attributes
that we parse.
2008-04-14 13:39:35 +02:00
Rob Shearman
6a0c5a4fe9
widl: Store function and function pointer types completely within type_t type.
2008-04-02 19:53:09 +02:00
Rob Shearman
a04b150839
widl: Add a function to get the return type of a parsed function.
...
This clarifies its use in code and makes it simpler to change the way
functions are parsed into types.
2008-04-02 19:52:49 +02:00
Michael Stefaniuc
5c9d1223db
widl: Remove local variable shadowing in add_func_desc().
2008-03-12 11:59:12 +01:00
Colin Finck
318e61535c
widl: Write the TLB file in binary mode, so the line endings won't be changed.
2008-02-08 11:01:09 +01:00
Jacek Caban
2118aeca16
widl: Ignore ATTR_LOCAL in create_msft_typeinfo.
2008-02-04 11:30:30 +01:00
Paul Millar
17e934669e
widl: Add support for overriding recorded time, allowing binary-identical compilation.
2007-10-29 12:08:10 +01:00
Dan Hipschman
d82b384859
widl: Handle LPSTR in typelibs.
2007-08-28 11:56:30 +02:00
Jacek Caban
ae0beb224b
widl: Reorder switch cases to keep alphabetical order.
2007-07-30 14:12:45 +02:00
Jacek Caban
8fd9716985
widl: Added displaybind attribute handling.
2007-07-30 14:12:45 +02:00
Jacek Caban
1ad39a38e5
widl: Added nonbrowsable attribute handling.
2007-07-30 14:12:45 +02:00
Jacek Caban
4413e8c6f8
widl: Use correct bytes in write_value.
2007-07-30 14:12:45 +02:00
Misha Koshelev
21fcb00af8
widl: Add support for vararg attribute.
2007-06-07 13:00:09 +02:00
Dan Hipschman
978b4d4f4e
widl: Represent arrays with type_t.
2007-06-06 12:13:16 +02:00
Dan Hipschman
ef433e2792
widl: Remove var_t's ptr_level field and start write_pointers.
2007-05-11 12:33:27 +02:00
Dan Hipschman
234855f059
widl: Remove dead code in write_msft.c.
2007-05-10 12:57:06 +02:00
Dan Hipschman
e7495555a0
widl: Remove redundant get_var_vt function.
2007-05-10 12:54:01 +02:00
Dan Hipschman
d676d3be5f
widl: Get rid of the tname field of var_t, simplify code.
2007-05-01 12:37:18 +02:00
Rob Shearman
1c2a717b59
widl: Implement writing of SAFEARRAY type descriptions in typelibs.
2007-03-07 20:10:32 +01:00
Mike McCormack
7d1e21e2c1
widl: Handle TKIND_DISPATCH when generating MSFT typelibs.
2007-01-26 14:29:18 +01:00
Huw Davies
305e4949ee
widl: Don't restrict the number of params of [prop*] functions.
2007-01-26 12:22:40 +01:00
Huw Davies
f994c35a3e
widl: Add VT_DATE support to typelib generation.
2007-01-26 12:22:38 +01:00
Alexandre Julliard
43ac6ed995
widl: Convert expression lists to standard Wine lists.
...
Add a specific type for array dimensions.
2007-01-22 14:31:40 +01:00
Alexandre Julliard
eed74e4e4a
widl: Convert variable lists to standard Wine lists.
2007-01-22 14:26:12 +01:00
Alexandre Julliard
58827d026b
widl: Convert function lists to standard Wine lists.
2007-01-22 14:23:08 +01:00
Alexandre Julliard
e262933bdf
widl: Convert interface lists to standard Wine lists.
2007-01-22 14:21:56 +01:00
Alexandre Julliard
e998590557
widl: Convert attribute lists to standard Wine lists.
2007-01-22 14:20:36 +01:00
Alexandre Julliard
5b0bf5dc76
widl: Convert typelib lists to standard Wine lists.
2007-01-22 14:10:30 +01:00
Alexandre Julliard
5aba7b0c67
widl: Use existing functions to retrieve attributes for typelibs.
2007-01-22 14:09:46 +01:00
Andrew Talbot
d3972880c0
widl: Fix memory leaks.
2007-01-04 21:14:14 +01:00
Francois Gouget
58162f87fd
Assorted spelling fixes.
2006-10-13 11:55:04 +02:00
Dan Hipschman
bd7e690c1f
widl: Remove unused parameter in create_msft_typeinfo.
2006-09-14 11:39:37 +02:00
Dan Hipschman
48006f60a7
widl: Remove unused parameter in ctl2_encode_name.
2006-09-14 11:39:37 +02:00
Dan Hipschman
aadc90b266
widl: Factor the entry_t structure.
2006-09-07 10:20:56 +02:00
Dan Hipschman
c117a20cdb
widl: Use type_t for typedefs, not var_t. Simplify representation.
2006-09-07 10:20:41 +02:00
Alexandre Julliard
883aef172d
widl: xmalloc shouldn't initialize to zero, do that explicitly where needed.
2006-08-26 21:41:37 +02:00
Dan Hipschman
4961379d74
widl: Replace strdup, malloc and realloc with xstrdup, xmalloc and xrealloc.
2006-08-05 11:25:26 +02:00
Dan Hipschman
678ce9875f
widl: Encode coclass types in typelibs.
2006-07-29 11:55:20 +02:00
Dan Hipschman
c650cceae3
widl: Check if a typeinfo is already in a typelib before adding it.
2006-07-29 11:54:44 +02:00
Dan Hipschman
90cdff9b3f
widl: Set typelib_idx for coclasses when they're added to a typelib.
2006-07-29 11:54:21 +02:00
Dan Hipschman
c67b19b4f4
widl: Fold class_t into type_t.
2006-07-29 11:54:09 +02:00
Jacek Caban
37cf4a5260
widl: Reorder segments to match midl.
2006-07-28 12:34:27 +02:00
Jacek Caban
c9a08007eb
widl: Use cval in ATTR_ID.
2006-07-28 12:34:20 +02:00
Jacek Caban
b86bc2b634
widl: Added ATTR_BINDABLE handling to add_func_desc.
2006-07-28 12:34:14 +02:00
Jacek Caban
4d76264f3e
widl: Store typekind in msft_typeinfo_t to fix ATTR_DUAL handling.
2006-07-28 12:34:08 +02:00
Alexandre Julliard
59493b6c33
widl: Get rid of unnecessary inclusion of unicode.h.
2006-05-24 17:41:47 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Jacek Caban
a7fa3a985b
widl: Added support for importing parent interfaces from importlib.
2006-05-20 13:58:44 +02:00
Jacek Caban
dce3f2be05
widl: Added RPC_FC_ENUM16 encoding.
2006-05-15 11:49:28 +02:00
Jacek Caban
4812abc247
widl: res50 is number of impinfos. Fix its usage.
2006-05-15 11:49:15 +02:00
Robert Shearman
555cf38269
widl: Prevent NULL pointer de-refs on "void *" types.
2006-04-20 15:16:59 +02:00
Robert Shearman
7ca82cd6d2
widl: Ignore [object] attribute on interfaces written to a typelib.
2006-04-18 16:48:39 +02:00
Mike McCormack
1d453ab551
widl: Add support for VT_I8 and VT_UI8 to msft typelibs.
2006-04-14 10:49:14 +02:00
Robert Shearman
4cd506b8fd
widl: The lval member of var_t is essentially a duplicate of eval->cval.
...
- Generate eval's for enums that don't explicitly have one. This means
that enums written in header files won't match exactly what has been put
into the IDL file, but the numeric constat is the same and MIDL does a
similar thing.
- Replace constant lookups with eval->cval instead of lval.
2006-03-31 17:35:04 +02:00
Robert Shearman
59dd416fd2
widl: Fix a typo when removing TYPEFLAG_FDUAL.
2006-02-10 14:51:39 +01:00
Robert Shearman
91c35be7cc
widl: Write out more TYPEFLAGs and add more type library-specific
...
attributes to the parser.
2006-02-09 12:10:08 +01:00
Robert Shearman
649d5d0e8e
widl: Write out TYPEFLAG_FDUAL, TYPEFLAG_FDISPATCHABLE and
...
TYPEFLAG_FOLEAUTOMATION typelib flags.
2006-02-09 12:09:44 +01:00
Robert Shearman
59830d69b4
widl: Fix some warnings caused by making attributes const.
2006-02-07 16:25:10 +01:00
Robert Shearman
e9ec85a01a
widl: Remove unused 'rname' field of type_t.
2006-02-07 12:32:42 +01:00
Robert Shearman
2330d73f4a
widl: Implement the writing of defaultvalue constants for enum values.
2006-01-31 18:04:20 +01:00
Robert Shearman
7f2419ceed
widl: Add some const attributes.
2005-12-26 13:11:33 +01:00
Francois Gouget
6d442aeb34
Assorted spelling fixes.
2005-11-23 20:14:43 +01:00
Stefan Huehner
f4285e68fe
Fix some -Wsign-compare warnings.
2005-07-13 11:29:10 +00:00
Huw Davies
a2051075fe
Update the import table code to eliminate a few magic constants.
2005-06-29 19:18:41 +00:00
Robert Shearman
33b09d457f
Add more struct types for TLB generation.
2005-06-09 09:45:26 +00:00
Jon Griffiths
eb5bf7dd38
Documentation spelling fixes.
2005-02-25 14:07:56 +00:00
Huw Davies
1cba04d7d6
Add support for modules.
2005-02-08 16:51:35 +00:00
Huw Davies
a82b1bcfe5
Check if we've already added the ptr to iface typedesc before adding a
...
new one.
2005-02-08 14:27:52 +00:00
Vincent Béron
df5051e925
Support some more attributes for interface properties.
2005-02-08 13:43:34 +00:00
Vincent Béron
f6ff452f17
Support ATTR_READONLY for interface properties.
2005-02-08 12:56:22 +00:00
Huw Davies
13e36059a8
Add VARIANT_BOOL.
...
Fix CURRENCY alignment.
A function with a [retval] param has a bit set in the FKCCIC bitfield.
Two functions with the same name share the same id.
The param names of propput and propputref functions don't go into the
typelib.
2005-02-08 12:09:42 +00:00
Huw Davies
c2c87daf4a
Coclass support.
2005-02-03 13:34:28 +00:00
Huw Davies
d33a553d63
Add support for typedefs.
2005-02-02 19:10:02 +00:00
Huw Davies
49eb0b70e5
Add support for dispinterfaces (slightly hacked because we force the
...
import of stdole2.tlb).
Add propputref attribute.
2005-02-01 18:48:25 +00:00
Huw Davies
13b7c5ac12
Dynamically allocate the type data storage.
...
Split the function and variable type data into two - this will be
needed for dispinterfaces.
2005-01-31 16:24:23 +00:00
Vincent Béron
653c05971c
Check that there are some methods to iterate through before iterating
...
through them.
2005-01-31 11:30:26 +00:00
Huw Davies
652ec646ad
When adding an interface, midl adds the inherited interface first
...
unless the inherited interface doesn't itself inherit.
Fix the id, sizevft and datatype2 fields for interfaces that inherit.
Prevent a crash if the typelib is empty.
Clarify a few more entries on typelib_struct.h
2005-01-26 20:40:34 +00:00
Huw Davies
a43a250bd1
Add enum support.
...
Another attempt at getting the alignment bits correct.
2005-01-25 20:02:09 +00:00
Huw Davies
b9bfc8e909
Add encoding for VT_R8.
...
Bug fix: Initialise child_size.
2005-01-25 19:02:32 +00:00
Huw Davies
c1db191d9b
Add interface inheritance.
2005-01-25 10:56:58 +00:00
Huw Davies
0a2f7e2054
Add referenced types that aren't already in the typelib.
2005-01-24 13:31:50 +00:00
Huw Davies
3387fc9077
Fix handling of void.
2005-01-24 12:41:06 +00:00
Huw Davies
2e6bd29a88
Add support for hidden and restricted function attributes.
...
Add support for odl interface attribute.
2005-01-24 11:27:56 +00:00
Huw Davies
8c51807ba5
Bit 0x0200 always appears to be set in the typeinfo's
...
typekind/alignment member.
2005-01-21 17:04:00 +00:00
Huw Davies
2573227675
[local] functions should not be written to the typelib.
2005-01-21 16:19:39 +00:00
Huw Davies
218281c42c
Better guid hash.
2005-01-20 20:33:48 +00:00
Huw Davies
18b1fe8dee
MIDL adds two sets of custom data to the library: one is a timestamp
...
and the second is MIDL's version number.
2005-01-20 19:56:57 +00:00
Huw Davies
b1a0c6c3d7
Add propget and propput function attributes.
...
Clarify the meaning of the FKCCIC bit field.
2005-01-19 19:08:01 +00:00
Huw Davies
2717b812dd
Pad small strings out to eight bytes.
...
Fix 'has default values' flag.
2005-01-19 16:58:21 +00:00
Huw Davies
c7c55ff33a
Add a missing break to fix typeinfo version regression.
2005-01-18 11:39:31 +00:00