From Jürgen Schmied's RPC patches. Minor changes may exist between this and the original patch but it's intended to be basically the same stuff. LICENSE: X11 CHANGELOG: * include/rpcndr.h; dlls/rpcrt4: rpcrt4.spec, ndr_stubless.c (new), ndr_misc.h (new), Makefile.in: Ove Kaaven <ovek@transgaming.com> - stubby NdrClientCall2 & some header changes. -- gmt "If ye love wealth better than liberty, the tranquility of servitude better than the animating contest of freedom, go home from us in peace. We ask not your counsels or your arms. Crouch down and lick the hands, which feed you. May your chains set lightly upon you, and may posterity forget that ye were our countrymen." -Samuel Adams
Index: include/rpcndr.h =================================================================== RCS file: /home/wine/wine/include/rpcndr.h,v retrieving revision 1.7 diff -u -r1.7 rpcndr.h --- include/rpcndr.h 12 Sep 2002 17:29:12 -0000 1.7 +++ include/rpcndr.h 8 Oct 2002 23:51:32 -0000 @@ -16,14 +16,14 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef __WINE_RPCNDR_H -#define __WINE_RPCNDR_H - #ifndef __RPCNDR_H_VERSION__ -/* FIXME: I'm not sure what version though */ -#define __RPCNDR_H_VERSION__ +/* FIXME: What version? Perhaps something is better than nothing, however incorrect */ +#define __RPCNDR_H_VERSION__ ( 399 ) #endif +#ifndef __WINE_RPCNDR_H +#define __WINE_RPCNDR_H + #define TARGET_IS_NT40_OR_LATER 1 #define TARGET_IS_NT351_OR_WIN95_OR_LATER 1 @@ -102,7 +102,7 @@ unsigned char *StackTop; unsigned char *pPresentedType; unsigned char *pTransmitType; - handle_t SavedHandle; + RPC_BINDING_HANDLE SavedHandle; const struct _MIDL_STUB_DESC *StubDesc; struct _FULL_PTR_XLAT_TABLES *FullPtrXlatTables; unsigned long FullPtrRefId; @@ -152,8 +152,8 @@ void * (__RPC_API *pfnAllocate)(size_t); void (__RPC_API *pfnFree)(void *); union { - handle_t *pAutoHandle; - handle_t *pPrimitiveHandle; + RPC_BINDING_HANDLE *pAutoHandle; + RPC_BINDING_HANDLE *pPrimitiveHandle; PGENERIC_BINDING_INFO pGenericBindingInfo; } IMPLICIT_HANDLE_INFO; const NDR_RUNDOWN *apfnNdrRundownRoutines; --- dlls/rpcrt4/Makefile.in.B_PL0 2002-10-08 18:55:36.000000000 -0500 +++ dlls/rpcrt4/Makefile.in 2002-10-08 18:55:45.000000000 -0500 @@ -12,6 +12,7 @@ C_SRCS = \ rpc_binding.c \ rpc_message.c \ + ndr_stubless.c \ rpcrt4_main.c SUBDIRS = tests --- /dev/null 1969-12-31 18:00:00.000000000 -0600 +++ dlls/rpcrt4/ndr_misc.h 2002-10-08 18:18:32.000000000 -0500 @@ -0,0 +1,12 @@ +#ifndef __WINE_NDR_MISC_H +#define __WINE_NDR_MISC_H + +struct IPSFactoryBuffer; + +LONG_PTR RPCRT4_NdrClientCall2(PMIDL_STUB_DESC pStubDesc, + PFORMAT_STRING pFormat, + LPVOID args); + +HRESULT RPCRT4_GetPSFactory(REFIID riid, struct IPSFactoryBuffer **ppPS); + +#endif --- /dev/null 1969-12-31 18:00:00.000000000 -0600 +++ dlls/rpcrt4/ndr_stubless.c 2002-10-08 18:16:42.000000000 -0500 @@ -0,0 +1,45 @@ +/* + * NDR client stuff + * + * Copyright 2001 Ove Kåven, TransGaming Technologies + * + * TODO: + * - actually implement RPCRT4_NdrClientCall2 + */ + +#include <stdio.h> +#include <string.h> + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "winreg.h" + +#include "rpc.h" +#include "rpcndr.h" + +#include "wine/debug.h" + +#include "ndr_misc.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ole); + +LONG_PTR RPCRT4_NdrClientCall2(PMIDL_STUB_DESC pStubDesc, + PFORMAT_STRING pFormat, + LPVOID args) +{ + FIXME("(%p,%p,...)\n", pStubDesc, pFormat); + return 0; +} + +/*********************************************************************** + * NdrClientCall2 [RPCRT4.@] + */ +CLIENT_CALL_RETURN WINAPIV NdrClientCall2(PMIDL_STUB_DESC pStubDesc, + PFORMAT_STRING pFormat, + ...) +{ + TRACE("(%p,%p,...)\n", pStubDesc, pFormat); + return (CLIENT_CALL_RETURN)RPCRT4_NdrClientCall2(pStubDesc, pFormat, &pFormat + 1); +} + --- dlls/rpcrt4/rpcrt4.spec.B_PL0 2002-10-08 19:02:10.000000000 -0500 +++ dlls/rpcrt4/rpcrt4.spec 2002-10-08 19:02:19.000000000 -0500 @@ -204,7 +204,7 @@ @ stub NdrAsyncServerCall @ stub NdrClearOutParameters @ stub NdrClientCall -@ stub NdrClientCall2 +@ varargs NdrClientCall2(ptr ptr) NdrClientCall2 @ stub NdrClientInitialize @ stub NdrClientInitializeNew @ stub NdrContextHandleInitialize