rpcrt4: Fail with CO_E_OBJNOTCONNECTED when trying to call methods on a disconnected proxy.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
ead21a1bdd
commit
8f690d5125
|
@ -1203,7 +1203,9 @@ static void test_marshal_proxy_apartment_shutdown(void)
|
|||
{
|
||||
HRESULT hr;
|
||||
IStream *pStream = NULL;
|
||||
IUnknown *pProxy = NULL;
|
||||
IClassFactory *proxy;
|
||||
IUnknown *unk;
|
||||
ULONG ref;
|
||||
DWORD tid;
|
||||
HANDLE thread;
|
||||
|
||||
|
@ -1218,7 +1220,7 @@ static void test_marshal_proxy_apartment_shutdown(void)
|
|||
ok_non_zero_external_conn();
|
||||
|
||||
IStream_Seek(pStream, ullZero, STREAM_SEEK_SET, NULL);
|
||||
hr = CoUnmarshalInterface(pStream, &IID_IClassFactory, (void **)&pProxy);
|
||||
hr = CoUnmarshalInterface(pStream, &IID_IClassFactory, (void **)&proxy);
|
||||
ok_ole_success(hr, CoUnmarshalInterface);
|
||||
IStream_Release(pStream);
|
||||
|
||||
|
@ -1231,7 +1233,11 @@ static void test_marshal_proxy_apartment_shutdown(void)
|
|||
ok_zero_external_conn();
|
||||
ok_last_release_closes(TRUE);
|
||||
|
||||
IUnknown_Release(pProxy);
|
||||
hr = IClassFactory_CreateInstance(proxy, NULL, &IID_IUnknown, (void **)&unk);
|
||||
ok(hr == CO_E_OBJNOTCONNECTED, "got %#x\n", hr);
|
||||
|
||||
ref = IClassFactory_Release(proxy);
|
||||
ok(!ref, "got %d refs\n", ref);
|
||||
|
||||
ok_no_locks();
|
||||
|
||||
|
|
|
@ -458,6 +458,8 @@ void WINAPI NdrProxyInitialize(void *This,
|
|||
TRACE("(%p,%p,%p,%p,%d)\n", This, pRpcMsg, pStubMsg, pStubDescriptor, ProcNum);
|
||||
NdrClientInitializeNew(pRpcMsg, pStubMsg, pStubDescriptor, ProcNum);
|
||||
StdProxy_GetChannel(This, &pStubMsg->pRpcChannelBuffer);
|
||||
if (!pStubMsg->pRpcChannelBuffer)
|
||||
RpcRaiseException(CO_E_OBJNOTCONNECTED);
|
||||
IRpcChannelBuffer_GetDestCtx(pStubMsg->pRpcChannelBuffer,
|
||||
&pStubMsg->dwDestContext,
|
||||
&pStubMsg->pvDestContext);
|
||||
|
|
Loading…
Reference in New Issue