ole32/tests: Use the current stream position to determine the marshal data size.
This commit is contained in:
parent
8e6e015eb5
commit
825a1b7595
|
@ -564,7 +564,8 @@ static void marshal_WdtpInterfacePointer(DWORD umcb_ctx, DWORD ctx)
|
||||||
HGLOBAL h = GlobalAlloc(GMEM_MOVEABLE, 0);
|
HGLOBAL h = GlobalAlloc(GMEM_MOVEABLE, 0);
|
||||||
IStream *stm;
|
IStream *stm;
|
||||||
void *marshal_data;
|
void *marshal_data;
|
||||||
LARGE_INTEGER pos;
|
LARGE_INTEGER zero;
|
||||||
|
ULARGE_INTEGER pos;
|
||||||
DWORD marshal_size;
|
DWORD marshal_size;
|
||||||
|
|
||||||
/* shows that the WdtpInterfacePointer functions don't marshal anything for
|
/* shows that the WdtpInterfacePointer functions don't marshal anything for
|
||||||
|
@ -587,8 +588,11 @@ static void marshal_WdtpInterfacePointer(DWORD umcb_ctx, DWORD ctx)
|
||||||
|
|
||||||
CreateStreamOnHGlobal(h, TRUE, &stm);
|
CreateStreamOnHGlobal(h, TRUE, &stm);
|
||||||
CoMarshalInterface(stm, &IID_IUnknown, unk, LOWORD(ctx), NULL, MSHLFLAGS_NORMAL);
|
CoMarshalInterface(stm, &IID_IUnknown, unk, LOWORD(ctx), NULL, MSHLFLAGS_NORMAL);
|
||||||
marshal_size = GlobalSize(h);
|
zero.QuadPart = 0;
|
||||||
|
IStream_Seek(stm, zero, STREAM_SEEK_CUR, &pos);
|
||||||
|
marshal_size = pos.u.LowPart;
|
||||||
marshal_data = GlobalLock(h);
|
marshal_data = GlobalLock(h);
|
||||||
|
trace("marshal_size %x\n", marshal_size);
|
||||||
|
|
||||||
init_user_marshal_cb(&umcb, &stub_msg, &rpc_msg, NULL, 0, umcb_ctx);
|
init_user_marshal_cb(&umcb, &stub_msg, &rpc_msg, NULL, 0, umcb_ctx);
|
||||||
size = WdtpInterfacePointer_UserSize(&umcb.Flags, ctx, 0, unk, &IID_IUnknown);
|
size = WdtpInterfacePointer_UserSize(&umcb.Flags, ctx, 0, unk, &IID_IUnknown);
|
||||||
|
@ -608,8 +612,8 @@ static void marshal_WdtpInterfacePointer(DWORD umcb_ctx, DWORD ctx)
|
||||||
|
|
||||||
ok(!memcmp(marshal_data, wireip, marshal_size), "buffer mismatch\n");
|
ok(!memcmp(marshal_data, wireip, marshal_size), "buffer mismatch\n");
|
||||||
GlobalUnlock(h);
|
GlobalUnlock(h);
|
||||||
pos.QuadPart = 0;
|
zero.QuadPart = 0;
|
||||||
IStream_Seek(stm, pos, STREAM_SEEK_SET, NULL);
|
IStream_Seek(stm, zero, STREAM_SEEK_SET, NULL);
|
||||||
CoReleaseMarshalData(stm);
|
CoReleaseMarshalData(stm);
|
||||||
IStream_Release(stm);
|
IStream_Release(stm);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue