Am 26.10.2010 18:01, schrieb jgardou(a)svn.reactos.org:
  +#ifdef __GCC__
  /* 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
 @@ -659,6 +663,13 @@
    NdrAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... );
  LONG_PTR RPC_VAR_ENTRY
    NdrDcomAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ...
);
 +#else
 +CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall2(
 +  PMIDL_STUB_DESC pStubDescriptor,
 +  PFORMAT_STRING pFormat,
 +  ...
 +);
 +#endif
   
Is this hack even neccessary? I couldn't see any difference between gcc
and msvc with the correct prototype.
Both return the result in eax.