Henri Verbeet
b42a15513e
widl: Handle C++ aggregate returns in a MSVC compatible way.
...
This mainly affects 64-bit winelib applications, and potentially mingw-w64
usage of the Wine headers. As explained in commit
fabfa59aea
, MSVC returns aggregates through an
implicit parameter immediately after the this/interface pointer. GCC's
"ms_abi" attribute is supposed to match this, but unfortunately current
versions of g++ (confirmed up to at least g++ 6.3) place the implicit return
pointer before the this/interface pointer. See also
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52792 .
This commit takes an approach similar to the earlier commit
fabfa59aea5c5b3201142382038beb3e76cb7567: For ABI compatibility the return
pointer is listed as an explicit parameter in the vtbl entry, while an inline
helper is provided for source code compatibility.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-24 18:58:30 +02:00
Alistair Leslie-Hughes
084fa63e60
widl: Only generate Proxy Stubs when functions have the call_as attribute.
...
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-11 19:48:25 +02:00
Dmitry Timoshkov
b53c5b30b2
widl: Fixup the defaultvalue(BSTR) expression type like midl does.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-30 23:16:52 +09:00
Jacek Caban
7c29a53208
widl: Added support for namespaced structs.
2015-08-13 15:03:22 +09:00
Jacek Caban
88987c0a95
widl: Added support for namespaced enums.
2015-08-07 23:50:48 +09:00
Jacek Caban
21740b5e15
widl: Added support for -ns_prefix option.
2015-08-05 23:42:45 +09:00
Jacek Caban
cccbb4ebe8
widl: Properly handle namespaces in write_uuid_decl.
2015-07-31 14:39:34 +02:00
Jacek Caban
83e197df0f
widl: Use proper names for namespaced interfaces in C declaration.
2015-07-31 14:39:27 +02:00
Jacek Caban
99d296b6fe
widl: Declare C++ interfaces in namespaces if needed.
2015-07-31 14:39:20 +02:00
Jacek Caban
e50866ae10
widl: Write proper C++ forward declarations for interfaces inside namespace.
2015-07-31 14:39:13 +02:00
Jacek Caban
867b0f8278
widl: Use proper macro name for forward declarations of interfaces inside a namespace.
2015-07-31 14:38:58 +02:00
Jacek Caban
dd58fcc10e
widl: Don't output C++ default value if the argument is followed by another without default value.
2015-07-28 09:53:48 +02:00
Nikolay Sivov
c27af4774e
widl: Generate method macros/wrappers for overridden methods.
2014-10-14 14:15:30 +09:00
Henri Verbeet
fabfa59aea
widl: Handle aggregate returns in a MSVC compatible way.
...
Aggregates are returned through an implicit parameter after the this/interface
pointer. Note that this follows the C++ convention, affected methods are not
callable from C with the Microsoft headers.
2014-09-08 11:34:05 +02:00
Dmitry Timoshkov
e6d585a6b2
widl: Move is_void(), is_declptr() and is_conformant_array() to header.h and make them inline.
2014-03-20 10:44:32 +01:00
Jacek Caban
0df819eecf
widl: Make identifiers file more compatible with midl.
2014-01-09 12:28:43 +01:00
Alexandre Julliard
cc02e15220
widl: Add support for #pragma directives.
2013-11-04 17:41:11 +01:00
Thomas Faber
52607ba66b
widl: Use 'class' for coclass typedefs in C++.
2012-10-15 13:31:08 +02:00
Nikolay Sivov
65f4184936
widl: Don't output method macro if name duplicates another method name.
2012-07-30 17:57:49 +02:00
Nikolay Sivov
0bc5e7a62a
widl: Protect from duplicated method names in C-style vtable struct.
2012-07-30 17:57:49 +02:00
Nikolay Sivov
d54e9603b5
widl: Emit default argument values for cpp methods.
2012-07-26 13:40:44 +02:00
Jacek Caban
6b34eea6fc
widl: Added an extension that uses inline functions instead of macros for C interface calls.
2012-07-26 12:17:25 +02:00
Jacek Caban
76693d52c7
widl: Added support for nameless structs and unions.
2012-05-14 10:29:40 +02:00
Jacek Caban
718adc91fc
widl: Make headers guards compatible with midl.
2012-03-08 19:22:45 +01:00
Alexandre Julliard
42e583f1f6
widl: We no longer need to avoid windows.h in generated headers.
2012-01-20 15:59:02 +01:00
Jacek Caban
c7602d51b3
widl: Define __REQUIRED_RPCNDR_H_VERSION__ in generated headers.
2011-09-22 19:51:49 +02:00
Alexandre Julliard
8e15db40a8
widl: Don't output stubs for interfaces included in a typelib.
2011-09-06 15:42:16 +02:00
Jacek Caban
2b7c6a9599
widl: Produce __uuidof-compatible headers.
2011-07-14 21:51:36 +02:00
Marcus Meissner
28e92027b1
widl: Decrease is_object_interface after usage.
2011-07-06 17:01:32 +02:00
Jacek Caban
9afec542e0
widl: Generate class forward declaration for coclasses.
2011-07-06 16:58:49 +02:00
Jacek Caban
63d5462ced
widl: Insert standard windows.h and ole2.h includes to generated headers.
2011-06-27 13:30:57 -05:00
Alexandre Julliard
e620869d5f
widl: Output the list of rundown routines in server files.
2011-06-13 20:31:42 +02:00
Alexandre Julliard
717bd66440
widl: Default to the cdecl calling convention in client/server functions.
2011-06-13 11:53:28 +02:00
Alexandre Julliard
11416a20c9
widl: Generate function headers in the proc format string for interpreted functions.
2011-06-02 16:22:43 +02:00
Alexandre Julliard
5e67dcd10f
widl: Fix representation of context handles in the format string.
2011-06-02 14:41:55 +02:00
Alexandre Julliard
0f8b64a57b
widl: Add a more generic way of determining the type of handle for a function.
2011-05-31 18:32:58 +02:00
Alexandre Julliard
21cbdaa1eb
widl: Support using custom handle types with the implicit_handle attribute.
2011-05-31 18:32:58 +02:00
Alexandre Julliard
93dd252116
widl: Output a list of binding routines in client files.
2011-05-27 12:07:29 +02:00
Amine Khaldi
c9dcef156e
widl: Do not define MIDL_user_allocate and MIDL_user_free as it's already in the psdk.
2010-10-27 12:02:41 +02:00
Alexandre Julliard
d3c4106d6f
widl: Fix declaration order in generated headers.
2010-09-06 17:06:59 +02:00
Alexandre Julliard
c6668089a4
widl: Set the default calling convention at header generation time, not at parsing time.
2010-08-27 13:52:09 +02:00
Alexandre Julliard
a83563aa40
widl: Long constants must be 32-bit on all platforms.
2010-03-26 11:42:28 +01:00
Rob Shearman
6ed98b16a1
widl: Detect interfaces that inherit from another interface as objects.
2009-11-29 16:37:07 +01:00
Alexandre Julliard
98de3950b1
widl: Use INT64 instead of __int64 in generated headers.
2009-11-21 14:31:46 +01:00
Rob Shearman
97d5f3401d
widl: Add support for varargs functions.
2009-11-09 20:42:27 +01:00
Rob Shearman
cdec0fe485
widl: Add support for bit-fields in non-remote structures.
2009-11-09 20:42:00 +01:00
Rob Shearman
4339f9edfb
widl: Implement __int3264 keyword.
2009-11-09 20:36:19 +01:00
Henri Verbeet
a7b0a1cd4a
widl: Generate proper prototypes for function declarations without arguments.
2009-09-09 12:06:51 +02:00
Michael Stefaniuc
efbb4ebf3e
widl: Output "LONG" instead of "long" for a 32bit integer.
...
long is always 32bit in IDL files but that's not true in C.
2009-03-13 11:15:21 +01:00
Rob Shearman
728a738a82
widl: Move type_basic_get_fc to typegen.c and rename it to get_basic_fc.
...
Move to using type_basic_get_type in other files where appropriate.
2009-03-09 12:14:35 +01:00