ole32: Use the real proxy IID in ClientRpcChannelBuffer_GetBuffer().
commit904d1688a37197fe7f0c7c23f4491bc8320a79c7
authorZebediah Figura <z.figura12@gmail.com>
Thu, 13 Sep 2018 16:01:13 +0000 (13 11:01 -0500)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 17 Sep 2018 13:37:41 +0000 (17 15:37 +0200)
tree1f53a4139826859a0ad623e1dfe343d0e6aea5eb
parentb82382f5fee8b9ca619c500f090797035f223b09
ole32: Use the real proxy IID in ClientRpcChannelBuffer_GetBuffer().

Delegated proxies pass the IID of the parent interface to
NdrProxyGetBuffer(). However, this interface was never registered with ole32
on the server side, so calls to delegated methods will return
RPC_S_UNKNOWN_IF. Therefore we have ole32 ignore the passed-in parameter and
use the real proxy ID.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45673
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
dlls/ole32/compobj_private.h
dlls/ole32/marshal.c
dlls/ole32/rpc.c
dlls/rpcrt4/tests/cstub.c