Author: tkreuzer Date: Tue Jan 25 11:55:45 2011 New Revision: 50484
URL: http://svn.reactos.org/svn/reactos?rev=50484&view=rev Log: [CMAKE] Fix return type of NdrClientCall*
Modified: branches/cmake-bringup/dll/win32/rpcrt4/cproxy.c branches/cmake-bringup/dll/win32/rpcrt4/ndr_stubless.c branches/cmake-bringup/include/psdk/rpcndr.h
Modified: branches/cmake-bringup/dll/win32/rpcrt4/cproxy.c URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/rpcrt4/c... ============================================================================== --- branches/cmake-bringup/dll/win32/rpcrt4/cproxy.c [iso-8859-1] (original) +++ branches/cmake-bringup/dll/win32/rpcrt4/cproxy.c [iso-8859-1] Tue Jan 25 11:55:45 2011 @@ -17,7 +17,7 @@ * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * + * * TODO: Handle non-i386 architectures */
@@ -96,7 +96,7 @@ args[0] = *(const WORD*)(fs + 8); TRACE("(%p)->(%d)([%d bytes]) ret=%08x\n", iface, index, args[0], args[1]);
- return NdrClientCall2(stubless->pStubDesc, fs, args + 2); + return NdrClientCall2(stubless->pStubDesc, fs, args + 2).Simple; }
#define BLOCK_SIZE 1024
Modified: branches/cmake-bringup/dll/win32/rpcrt4/ndr_stubless.c URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/dll/win32/rpcrt4/n... ============================================================================== --- branches/cmake-bringup/dll/win32/rpcrt4/ndr_stubless.c [iso-8859-1] (original) +++ branches/cmake-bringup/dll/win32/rpcrt4/ndr_stubless.c [iso-8859-1] Tue Jan 25 11:55:45 2011 @@ -510,7 +510,7 @@ } else { - const NDR_PARAM_OI_OTHER *pParamOther = + const NDR_PARAM_OI_OTHER *pParamOther = (const NDR_PARAM_OI_OTHER *)&pFormat[current_offset];
const unsigned char *pTypeFormat = @@ -548,10 +548,7 @@ } }
-/* the return type should be CLIENT_CALL_RETURN, but this is incompatible - * with the way gcc returns structures. "void *" should be the largest type - * that MIDL should allow you to return anyway */ -LONG_PTR WINAPIV NdrClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, ...) +CLIENT_CALL_RETURN WINAPIV NdrClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pFormat, ...) { /* pointer to start of stack where arguments start */ RPC_MESSAGE rpcMsg; @@ -574,7 +571,7 @@ /* -Oif or -Oicf generated format */ BOOL bV2Format = FALSE; /* the value to return to the client from the remote procedure */ - LONG_PTR RetVal = 0; + CLIENT_CALL_RETURN RetVal = {0}; /* the pointer to the object when in OLE mode */ void * This = NULL; PFORMAT_STRING pHandleFormat; @@ -630,7 +627,7 @@ if (!(pProcHeader->Oi_flags & RPC_FC_PROC_OIF_OBJECT)) { pFormat = client_get_handle(&stubMsg, pProcHeader, pHandleFormat, &hBinding); - if (!pFormat) return 0; + if (!pFormat) return RetVal; }
bV2Format = (pStubDesc->Version >= 0x20000); @@ -729,7 +726,7 @@ } __EXCEPT_ALL { - RetVal = NdrProxyErrorHandler(GetExceptionCode()); + RetVal.Simple = NdrProxyErrorHandler(GetExceptionCode()); } __ENDTRY } @@ -830,7 +827,7 @@ client_free_handle(&stubMsg, pProcHeader, pHandleFormat, hBinding); }
- TRACE("RetVal = 0x%lx\n", RetVal); + TRACE("RetVal = 0x%p\n", RetVal.Pointer);
return RetVal; } @@ -1465,7 +1462,7 @@
pRpcMsg->BufferLength = stubMsg.BufferLength; /* allocate buffer for [out] and [ret] params */ - Status = I_RpcGetBuffer(pRpcMsg); + Status = I_RpcGetBuffer(pRpcMsg); if (Status) RpcRaiseException(Status); stubMsg.Buffer = pRpcMsg->Buffer;
Modified: branches/cmake-bringup/include/psdk/rpcndr.h URL: http://svn.reactos.org/svn/reactos/branches/cmake-bringup/include/psdk/rpcnd... ============================================================================== --- branches/cmake-bringup/include/psdk/rpcndr.h [iso-8859-1] (original) +++ branches/cmake-bringup/include/psdk/rpcndr.h [iso-8859-1] Tue Jan 25 11:55:45 2011 @@ -650,15 +650,13 @@ RPCRTAPI unsigned char* RPC_ENTRY NdrUserMarshalSimpleTypeConvert( ULONG *pFlags, unsigned char *pBuffer, unsigned char FormatChar );
-/* Note: this should return a CLIENT_CALL_RETURN, but calling convention for - * returning structures/unions is different between Windows and gcc on i386. */ -LONG_PTR RPC_VAR_ENTRY +CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall2( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); -LONG_PTR RPC_VAR_ENTRY +CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); -LONG_PTR RPC_VAR_ENTRY +CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... ); -LONG_PTR RPC_VAR_ENTRY +CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrDcomAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... );
RPCRTAPI void RPC_ENTRY