Commit Graph

120 Commits

Author SHA1 Message Date
Rémi Bernon 6698a2ef7f widl: Output interface C names in method argument list.
This fixes WinRT interface generation where only simple names were used
instead of the C interface names.

With the previous sample idl:

    #ifdef __WIDL__
    #pragma winrt ns_prefix
    #endif

    import "wtypes.idl";

    namespace Windows {
        [object]
        interface IFoo {}

        [object]
        interface IBar { HRESULT DoBar([in] IFoo *foo); }
    }

$ widl -o windows.foo.h windows.foo.idl

Generated file diff before/after:

    diff --git a/windows.foo.h b/windows.foo.h
    index 3790dc7..65151cb 100644
    --- a/windows.foo.h
    +++ b/windows.foo.h
    @@ -123,7 +123,7 @@ typedef struct __x_ABI_CWindows_CIBarVtbl {
         /*** IBar methods ***/
         HRESULT (STDMETHODCALLTYPE *DoBar)(
             __x_ABI_CWindows_CIBar *This,
    -        IFoo *foo);
    +        __x_ABI_CWindows_CIFoo *foo);

         END_INTERFACE
     } __x_ABI_CWindows_CIBarVtbl;
    @@ -138,7 +138,7 @@ interface __x_ABI_CWindows_CIBar {
     #define __x_ABI_CWindows_CIBar_DoBar(This,foo) (This)->lpVtbl->DoBar(This,foo)
     #else
     /*** IBar methods ***/
    -static FORCEINLINE HRESULT __x_ABI_CWindows_CIBar_DoBar(__x_ABI_CWindows_CIBar* This,IFoo *foo) {
    +static FORCEINLINE HRESULT __x_ABI_CWindows_CIBar_DoBar(__x_ABI_CWindows_CIBar* This,__x_ABI_CWindows_CIFoo *foo) {
         return This->lpVtbl->DoBar(This,foo);
     }
     #endif

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-07 21:07:00 +02:00
Richard Pospesel e8b6c05242 widl: Pass a decl_spec_t to write_type_left().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-16 10:09:24 +02:00
Richard Pospesel aa2bd521d9 widl: Pass a decl_spec_t to write_type_v().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-16 10:09:19 +02:00
Richard Pospesel 083032b5ef widl: Use type_function_get_args() instead of type_get_function_args().
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-14 12:15:37 +02:00
Richard Pospesel 1f59423039 widl: Bump MIDL version to 5.2.202 to avoid RPC_X_WRONG_STUB_VERSION exception in ObjectStublessClient.
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-13 10:21:16 +02:00
Richard Pospesel 1ffb6494db widl: Change struct _var_t's type member to a struct _decl_spec_t.
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-13 10:21:00 +02:00
Francois Gouget 069ce3b776 widl: A spelling fix in a variable name.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-15 20:04:22 +01:00
Alexandre Julliard f67301e9ec widl: Always generate files for the target platform only.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-14 23:11:31 +01:00
Jacek Caban fb5d6c672f widl: Add support for serialization functions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Jacek Caban dc03ca5e15 widl: Write serialize function declarations in header.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Zebediah Figura f9c8c20298 widl: Use publicly defined NDR constants.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-13 22:13:27 +02:00
Alexandre Julliard c31948a775 widl: Make the function return value a variable. 2011-09-17 16:09:47 +02:00
Alexandre Julliard 8e15db40a8 widl: Don't output stubs for interfaces included in a typelib. 2011-09-06 15:42:16 +02:00
Alexandre Julliard c173399d62 widl: Move the pointer check functionality to typegen.c. 2011-06-14 12:55:39 +02:00
Alexandre Julliard fa2b886d1d widl: Also check array pointers for null ref pointers. 2011-06-14 12:55:22 +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 9f99d74a20 widl: Add a helper function for generating a stub that uses NdrClientCall. 2011-06-09 12:08:48 +02:00
Alexandre Julliard 36ee028f49 widl: Don't generate old-style interpreted stubs on 64-bit. 2011-06-08 12:14:47 +02:00
Alexandre Julliard d9cd0d8cac widl: In 64-bit mode, pass all arguments to NdrClientCall instead of a pointer to the first one. 2011-06-08 11:34:46 +02:00
Alexandre Julliard e95d5a8e3c widl: Add support for generating new-style interpreted stubs for clients. 2011-06-06 21:49:22 +02:00
Alexandre Julliard 9c4d01f329 widl: Add support for generating old-style interpreted stubs for clients. 2011-06-03 12:27:14 +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 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
Alexandre Julliard 4c41dd5fca widl: Duplicate the exception handling code between 32-bit and 64-bit. 2010-10-22 19:44:00 +02:00
Alexandre Julliard 226e963429 widl: Use get_size_procformatstring_func() for clients too instead of duplicating the code. 2010-10-21 21:35:21 +02:00
Rob Shearman eb4100e91c widl: Remove a FIXME comment in write_function_stubs.
Clean valgrind runs of tested types and comparison with MIDL-generated
code suggests that the existing code written in the finally block for
client code is sufficient.
2010-03-16 11:41:30 +01:00
Rob Shearman fb934347b4 widl: Use type_get_type to determine the types during statement enumeration. 2009-02-23 15:25:20 +01:00
Alexandre Julliard fcc096083f widl: Add printf format attribute on all printf-like functions and fix resulting warnings. 2009-02-06 14:54:03 +01:00
Alexandre Julliard ef6971da40 widl: Replace unsigned long and size_t by unsigned int where appropriate. 2009-02-06 14:54:03 +01:00
Rob Shearman 8a976a7d78 widl: Replace uses of get_func_return_type with type_function_get_rettype.
Also replace direct accesses into the type structure to get the return
type of a function with the same function.
2009-01-06 14:36:25 +01:00
Rob Shearman 9b139018cf widl: Add new function, type_iface_get_stmts.
Use it to retrieve statements contained in interface types.
2009-01-06 12:58:41 +01:00
Rob Shearman 901a42b7f9 widl: Move funcs and stmts fields from type_t structure to module_details and function_details. 2009-01-06 12:56:15 +01:00
Alexandre Julliard 53626dbd93 widl: Add support for generating 32-bit and/or 64-bit code for proxies/clients/servers. 2008-12-26 17:22:25 +01:00
Alexandre Julliard 9ca1382eae widl: Store the size of a pointer in a variable instead of hardcoding the value of the host compiler. 2008-12-26 17:20:53 +01:00
Alexandre Julliard 0ad28a8592 widl: Make the generated global variables and functions hidden. 2008-12-01 14:39:39 +01:00
Alexandre Julliard f203263528 widl: Remove unnecessary casts in the generated code. 2008-09-15 19:40:51 +02:00
Alexandre Julliard 654e78aa38 widl: Implemented __finally support in client functions. 2008-09-15 18:03:56 +02:00
Alexandre Julliard bf011b0f53 widl: Infrastructure for adding a prefix to local variable references. 2008-09-15 16:46:01 +02:00
Alexandre Julliard 3bdaba2a93 widl: Make the exception handling macros more general and use the same code everywhere. 2008-09-15 14:05:26 +02:00
Alexandre Julliard 1218aff94d widl: Create an explicit structure for the function frame of all generated functions.
Store _StubMsg in the frame structure since it's needed for exception handling.
2008-09-15 14:02:26 +02:00
Alexandre Julliard 29e20b869c widl: Replace write_name() by get_name() to make the code more readable. 2008-08-30 11:15:04 +02:00
Rob Shearman 6f2687a389 widl: Raise RPC_X_SS_IN_NULL_CONTEXT exception for NULL in-only context handles instead of RPC_X_NULL_REF_PTR.
Based on a patch by Michael Martin.
2008-08-27 13:21:21 +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 80ab2a7c6d widl: Move expression functions to a new file, expr.c. 2008-04-22 13:04:58 +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 56e2553eff widl: Add support for the broadcast and idempotent operation attributes. 2008-04-14 13:39:28 +02:00
Rob Shearman e4b0266b27 widl: Support non-default calling conventions for non-object functions. 2008-04-11 12:14:55 +02:00