[PATCH 00/14] Rewrite of the type library marshaller

Zebediah Figura z.figura12 at gmail.com
Sat Nov 3 18:07:12 CDT 2018


This patch series rewrites the Automation type library marshaller on
top of NDR Oif-mode stubless proxies, after the conversation here:

https://www.winehq.org/pipermail/wine-devel/2017-November/119456.html

The idea is essentially to build the format strings and other
proxy-related structures dynamically, and then pass those to the
standard cproxy/cstub implementations. The code was written largely
based on widl and ends up having a fair amount of the same structure.

Zebediah Figura (14):
  rpcrt4: Add a stub implementation of CreateProxyFromTypeInfo().
  rpcrt4: Add a stub implementation of CreateStubFromTypeInfo().
  rpcrt4: Build the typelib proxy headers.
  rpcrt4: Build the typelib stub headers.
  rpcrt4: Write the function header into the procedure format string.
  rpcrt4: Write parameter signatures into the procedure format string.
  rpcrt4: Write type format strings for pointers.
  rpcrt4: Write type format strings for fixed arrays.
  rpcrt4: Write type format strings for fixed structs.
  rpcrt4: Write type format strings for Automation types.
  rpcrt4: Retrieve the underlying interface for dual interfaces.
  rpcrt4: Delegate to the parent if it is not IUnknown.
  rpcrt4: Write the floating-point mask on x86-64.
  oleaut32: Rip out the old typelib marshaller.

 Makefile.in                    |    1 +
 dlls/oleaut32/Makefile.in      |    1 -
 dlls/oleaut32/oleaut.c         |  284 +++-
 dlls/oleaut32/tests/tmarshal.c |   24 +-
 dlls/oleaut32/tmarshal.c       | 2351 --------------------------------
 dlls/oleaut32/typelib.c        |   32 -
 dlls/oleaut32/typelib.h        |    6 -
 dlls/rpcrt4/Makefile.in        |   22 +-
 dlls/rpcrt4/cproxy.c           |   70 +-
 dlls/rpcrt4/cpsf.h             |   30 +
 dlls/rpcrt4/cstub.c            |   11 +-
 dlls/rpcrt4/ndr_typelib.c      | 1127 +++++++++++++++
 12 files changed, 1443 insertions(+), 2516 deletions(-)
 delete mode 100644 dlls/oleaut32/tmarshal.c
 create mode 100644 dlls/rpcrt4/ndr_typelib.c

-- 
2.19.1




More information about the wine-devel mailing list