Commit Graph

166 Commits

Author SHA1 Message Date
Rob Shearman d27c7601e5 widl: Add support for arrays in expressions. 2008-04-21 13:36:19 +02:00
Rob Shearman 03d5017416 widl: Add support for "->" and "." operators in expressions. 2008-04-21 13:36:19 +02:00
Rob Shearman c46fcfb356 widl: Automatically add "handle_t IDL_handle" parameter to functions with no explicit handle specified whose containing interface has the explicit_handle attribute. 2008-04-21 13:36:19 +02:00
Rob Shearman c4ca32bbda widl: The implicit_handle attribute is allowed with a handle explicitly specified in the function parameters.
In that case, that handle is used instead of the implicit handle.

Fix the check for the explicit_handle attribute being specified without
a handle being specified in the function parameters, even though issuing
an error is wrong. (Thanks to Marcus Meissner & Coverity for spotting
that the check didn't do what it was supposed to do.)
2008-04-21 13:36:19 +02:00
Rob Shearman e4b0266b27 widl: Support non-default calling conventions for non-object functions. 2008-04-11 12:14:55 +02:00
Rob Shearman 5483ea9e87 widl: Support non-default calling conventions for object methods. 2008-04-11 12:14:52 +02:00
Rob Shearman bfde2c2e79 widl: Fix the writing out of function pointers with more than one level of indirection. 2008-04-02 19:54:01 +02:00
Rob Shearman 5a378905be widl: Add a newline between function prototypes for non-object interfaces. 2008-04-02 19:53:50 +02:00
Rob Shearman d97f3205ba widl: Support parsing calling conventions for function identifiers.
Support automatically setting the calling convention to 
STDMETHODCALLTYPE if it is part of an object interface.

Write out the calling convention in write_type_v.
2008-04-02 19:53:23 +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
Rob Shearman 59556de0c1 widl: Add support for generic binding handles. 2008-03-27 17:33:02 +01:00
Rob Shearman 8a0cb2b5c5 widl: Use is_string_type for detecting strings in write_typeformatstring_var to make it consistent with write_remoting_arg.
Fix the is_string_type function used for detecting strings by only 
examining aliases instead of both aliases and pointers. This is due to 
the requirement that pointers to strings be handled as pointers and so 
not detected as strings.
2008-03-27 17:32:58 +01:00
Rob Shearman c233ba105e widl: Remove unused headers. 2008-02-15 11:06:21 +01:00
Alexandre Julliard ba5336175c widl: Use the real argument names in the C method macros. 2008-01-18 12:03:22 +01:00
Rob Shearman 9741751962 widl: Remove some confusion in how version numbers are packed into an attribute by defining some macros for this purpose.
Remove unneeded includes.
2007-12-12 16:03:35 +01:00
Rob Shearman 72d9569cc4 widl: Support the address-of operator in expressions. 2007-12-10 14:40:29 +01:00
Dan Hipschman ea7ab4da66 widl: Add a --local-stubs option. 2007-10-31 12:39:54 +01:00
Francois Gouget 4152085af1 widl: Modify generic_msg() to behave like all the other Wine tracing methods, that is to not append a '\n' to the message. 2007-10-19 11:46:01 +02:00
Dan Hipschman 1d0f9378bc widl: Detect conformant arrays of user types correctly. 2007-10-18 12:09:23 +02:00
Dan Hipschman 304852f97e widl: Write types in the format string comments. 2007-10-03 10:09:43 +02:00
Dan Hipschman 32a2477ef5 widl: Add a declonly argument to write_type_left. 2007-10-03 10:09:31 +02:00
Rob Shearman a2fedc3769 widl: Write prototypes for context handle rundown rountines into generated header files. 2007-09-28 10:59:32 +02:00
Rob Shearman b7618f91d7 widl: Fix detection of complex arrays. 2007-09-17 12:57:03 +02:00
Alexandre Julliard 40dda77c52 widl: Added support for floating-point constants. 2007-07-17 14:12:18 +02:00
Dan Hipschman c0982b42c5 widl: Handle wire_marshal types. 2007-06-14 11:35:44 +02:00
Dan Hipschman 978b4d4f4e widl: Represent arrays with type_t. 2007-06-06 12:13:16 +02:00
Dan Hipschman f5baddf88a widl: Replace get_name with a field reference. 2007-06-06 12:12:36 +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 d676d3be5f widl: Get rid of the tname field of var_t, simplify code. 2007-05-01 12:37:18 +02:00
Dan Hipschman 1ecbb01617 widl: Get rid of the typeref_t structure, simplify code. 2007-05-01 12:37:08 +02:00
Dan Hipschman e714c89d2f widl: Add --prefix-* options (take 3). 2007-04-26 15:47:37 +02:00
Stefan Huehner 4d1d01f266 Mark several functions as static. 2007-03-13 13:35:12 +01:00
Rob Shearman 94a0a90165 widl: Print EXPR_NUM expresssions as unsigned to avoid printing an extra negative sign when lval is large. 2007-02-26 17:33:40 +01:00
Alexandre Julliard 3c2a9f5df8 widl: size_is and length_is are expression lists now. 2007-02-06 15:59:24 +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 e998590557 widl: Convert attribute lists to standard Wine lists. 2007-01-22 14:20:36 +01:00
Michael Stefaniuc cc234847d0 widl: Use ULONG instead of unsigned long when generating declarations for *_UserFree() functions. This is needed for Win64 compatibility. 2006-11-09 10:43:23 +01:00
Michael Stefaniuc 6f95047034 widl: Use ULONG instead of unsigned long when generating declarations for *_UserUnMarshal() functions. This is needed for Win64 compatibility. 2006-11-09 10:43:20 +01:00
Michael Stefaniuc 05b1aac100 widl: Use ULONG instead of unsigned long when generating declarations for *_UserMarshal() functions. This is needed for Win64 compatibility. 2006-11-09 10:43:16 +01:00
Michael Stefaniuc 177aaf6738 widl: Use ULONG instead of unsigned long when generating declarations for *_UserSize() functions. This is needed for Win64 compatibility. 2006-11-09 10:43:12 +01:00
Michael Stefaniuc 15765dd953 The Data1 member of the GUID struct needs to be an unsigned int too for Win64 compatibility. 2006-10-16 10:53:04 +02:00
Francois Gouget 4b2d7e9321 widl: Use CONST_VTBL to declare lpVtbl. 2006-09-29 17:51:45 +02:00
Alexandre Julliard 86bb809e5b widl: Change the prefix on bison-generated names to avoid the name-prefix directive. 2006-09-12 09:05:07 +02:00
Dan Hipschman 7e79e9d4ff widl: Print pointers more aesthetically in generated header. 2006-09-07 10:21:29 +02:00
Dan Hipschman c117a20cdb widl: Use type_t for typedefs, not var_t. Simplify representation. 2006-09-07 10:20:41 +02:00
Dan Hipschman 04a15af5dc widl: Add the rest of the pointer types to write_type. 2006-08-29 12:29:26 +02:00
Dan Hipschman 94755218ac widl: Remove usage of type_t ref field for base types; simplify code. 2006-08-25 11:32:05 +02:00
Dan Hipschman 16d4e71230 widl: Calculate method indices in parser instead of during header generation. 2006-08-16 12:48:52 +02:00
Dan Hipschman df91150e10 widl: Generate GUID (infile_i.c) files. 2006-08-04 13:25:37 +02:00
Dan Hipschman c67b19b4f4 widl: Fold class_t into type_t. 2006-07-29 11:54:09 +02:00
Dan Hipschman f3d01fb07b widl: Fix redefinition of types in output. 2006-07-25 11:21:29 +02:00
Dan Hipschman 82c11ce002 widl: Allow write_type to output full pointer types. 2006-07-24 13:27:15 +02:00
Dan Hipschman d68ec1d325 widl: Fix unterminated comment in generated code. 2006-07-14 13:32:38 +02:00
Robert Shearman f627845624 widl: Add support for the builtin constants "TRUE" and "FALSE". 2006-07-07 14:30:34 +02:00
Robert Shearman 996c4f1f93 widl: Support coclass forward declarations. 2006-06-07 11:47:21 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Eric Kohl 2c7270e388 widl: Implement 'oldnames' option. 2006-05-05 16:37:42 +02:00
Robert Shearman 91dbc5ae28 widl: Write definitions for MIDL_user_allocate and MIDL_user_free in the header.
Write definitions for MIDL_user_allocate and MIDL_user_free in the
header when writing out RPC interfaces to prevent compile failures in
the generated client/server code.
2006-03-31 17:33:28 +02:00
Robert Shearman 071dfb188a widl: Write out the pre- and postamble for RPC interfaces with no methods. 2006-03-31 17:32:38 +02:00
Robert Shearman b38cd7ff5f widl: Output interface defined guard for rpc interfaces too. 2006-03-31 17:32:09 +02:00
Eric Kohl 12d4d9c229 widl: Implement support for ref pointers to strings. 2006-03-30 16:24:35 +02:00
Robert Shearman 4e40675032 widl: Make 'attrs' field of type_t const. 2006-02-07 12:32:57 +01:00
Robert Shearman f1bb0a474b widl: Yet more const attributes. 2006-02-07 12:31:43 +01:00
Robert Shearman 511463f3a5 widl: More const attributes. 2006-02-07 12:31:17 +01:00
Robert Shearman 0a2c5b73fd widl: Support client/server generation for explicit_handle interfaces
(based on a patch by Eric Kohl).
2006-01-31 18:06:17 +01:00
Robert Shearman ae94c2207f widl: Export the bracket adding functionality of do_write_expr outside
of header.c.
2005-12-31 13:18:49 +01:00
Robert Shearman 4acabfd719 widl: Out parameters.
Marshall and unmarshall out parameters for servers and clients
respectively.
Write out array components for declared local variables in generated
server code.
2005-12-26 13:21:38 +01:00
Robert Shearman 7f2419ceed widl: Add some const attributes. 2005-12-26 13:11:33 +01:00
Robert Shearman 12159aec96 widl: Support explicit binding handles. 2005-12-12 12:14:03 +01:00
Robert Shearman f4356a64e3 widl: Don't treat FC_SMALL as FC_SHORT.
FC_SMALL is its own type and is the same size as FC_CHAR, not
FC_SHORT.
2005-12-12 12:11:11 +01:00
Robert Shearman 6066106bb0 widl: Use WCHAR instead of wchar_t.
Output IDL wchar_t types as WCHAR to avoid conflicts with the
generally incompatible Unix wchar_t.
2005-12-12 12:10:26 +01:00
Vincent Béron fe987b3035 widl: Issue correct C++ headers. 2005-12-09 11:22:04 +01:00
Vincent Béron bce123dc46 Use the typedef'd declaration of IRpcStubBuffer and IRpcChannelBuffer
in RPC _Stubs.
Add IRpcStubBuffer and IRpcChannelBuffer declarations to objbase.h.
2005-12-02 13:32:09 +01:00
Vincent Béron 864f631d28 Reorder the virtual table definition so it's defined before it is used
in widl header output.
2005-12-02 13:29:52 +01:00
Vincent Béron 85e9474c78 Use interface instead of struct where appropriate in widl. 2005-12-02 13:28:05 +01:00
Huw Davies 8056092909 Prefix [putref] property names with putref_. 2005-11-14 15:12:24 +00:00
Robert Shearman d026458860 - Output prototypes for user marshal functions at the end of the
header and by use.
- Add support for range and ptr attributes and for the "small" base
  type.
2005-09-12 20:13:40 +00:00
Robert Shearman 4e7628ffb1 - The header global variable is NULL when not generating a header so
don't try to use it in functions that may be called by the client
  code.
- Make the functions that take char * take const char *.
2005-08-03 14:55:22 +00:00
Stefan Huehner e546238c7e Fix some -Wmissing-declarations by making functions static. 2005-06-15 18:10:39 +00:00
Jacek Caban e6150fe206 Write uuid of library in header. 2005-03-05 10:49:22 +00:00
Eric Kohl 5bed4857d5 - Add basic support for creating client and server stub files.
- Support implicit_handle attribute in IDL files.
- Build mixed-mode stub files.
2005-02-23 20:31:07 +00:00
Huw Davies 346188b755 Initial support for typelib generation. 2005-01-06 20:45:21 +00:00
Jacek Caban 5c98265050 Added writing forward declaration of dispinterface. 2004-10-18 19:35:08 +00:00
Jacek Caban 2161b36ac4 - Added creation of dispinterface header.
- Added creation of coclass header.
- Added messages when fopen fails.
2004-10-11 19:54:37 +00:00
Alexandre Julliard d062924f66 Removed no longer needed ICOM compatibility mode in widl. 2004-10-05 04:44:20 +00:00
Alexandre Julliard 4806630104 Added support for the propget/propput function attributes. 2004-10-05 02:14:54 +00:00
Mike McCormack 1a77ea567c Determine RPC struct types more exactly. 2004-09-14 19:28:12 +00:00
Alexandre Julliard 20486e1c59 Get rid of the ICOM_MSVTABLE_COMPAT support, g++ no longer requires
this.
2004-08-23 18:10:02 +00:00
Alexandre Julliard cfb3b7e81f Output BEGIN/END_INTERFACE for C++ base classes too. 2004-08-22 22:31:52 +00:00
Mike McCormack 77ea021e5f Generate BEGIN_INTERFACE,END_INTERFACE macros instead of
ICOM_MSVTABLE_COMPAT_FIELDS.
2004-08-22 02:25:05 +00:00
Francois Gouget bf72af30d0 Modify widl to put the C COM macros inside an #ifdef COBJMACROS block
as is done in the Windows headers.
Add #define COBJMACROS where needed in Wine.
Fixes the compilation of the oleaut32/tests/olefont.c and
urlmon/tests/url.c conformance tests with the Windows headers.
2004-08-11 19:43:45 +00:00
Filip Navara 19fd305a7e Make widl compile without most of Windows/Wine headers, so it can be
reused by other projects.
2004-04-22 03:40:01 +00:00
Robert Shearman 7f0abaffe5 - Handle "? :" conditionals.
- Allow [handle] attribute for types.
2004-04-19 23:08:22 +00:00
Ove Kaaven 5d267d7372 Added rules to parse library, coclass, dispinterface, and module
definitions, and a number of attributes, and cleaned up a few things.
Started on a typelib generation framework.
2004-01-07 04:21:27 +00:00
Alexandre Julliard ba5a968157 Added partial support for function pointers. 2003-09-03 20:16:24 +00:00
Alexandre Julliard 40672f99f8 Support objects with no method definitions (suggested by Jon
Griffiths).
2003-07-22 03:18:46 +00:00
Alexandre Julliard 09242a8ea6 Add #ifdefs around forwards and interfaces like MIDL does. 2003-07-01 03:43:09 +00:00