Commit graph

1136 commits

Author SHA1 Message Date
Rob Shearman
356fdcbb15 ole32: OleLoad should call CoCreateInstance with CLSCTX_INPROC_SERVER as well as CLSCTX_INPROC_HANDLER. 2007-03-06 12:10:47 +01:00
Rob Shearman
3bd31cfd16 ole32: The stream returned by StgStreamImpl_Clone should have one reference, so call AddRef before returning.
Move the call to StorageBaseImpl_AddStream to StgStreamImpl_Construct to 
fix StgStreamImpl_Clone, which forgets to call it.
Add tests for OLE structured storage tests for IStream::Clone.
2007-02-26 17:33:36 +01:00
Rob Shearman
29706e6709 ole32: Use IsEqualIID instead of memcmp in HGLOBALLockBytesImpl_QueryInterface. 2007-02-26 13:38:49 +01:00
Rob Shearman
0101f89a8d ole32: Add tests for default handler creation and handler marshaling. 2007-02-26 13:38:45 +01:00
Francois Gouget
f5c6a71a65 ole32: Better match the PSDK types and fix the winapi_check warnings. 2007-02-20 20:29:10 +01:00
Rob Shearman
3047ea9e78 ole32: Make an error message more useful by printing the returned error code. 2007-02-20 11:39:18 +01:00
Mike McCormack
b937f33d23 ole32: Add missing parameter for RunningObjectTableImpl_UnInitialize. 2007-02-13 17:47:28 +01:00
Rob Shearman
cb9c40a8cf ole32: Add the external references that the server gave to us to any existing ifproxy,
so that the right external reference count is released when the proxy is destroyed.
Protect all changes to refs in the ifproxy using interlocked functions 
and update the thread-safety documentation.
2007-02-06 21:35:25 +01:00
Rob Shearman
723592cf5a ole32: Release iobject and the IRpcStubBuffer object no matter which code path we take.
Otherwise we would leak a reference for both of these if the ifstub was already created.
Fix the FIXME in the code by releasing the stub manager if necessary.
2007-02-06 21:33:47 +01:00
Mike McCormack
4c46194cf5 ole32: Add a few more tests for transacted storage. 2007-02-06 13:20:37 +01:00
John Morris
00b29dfa79 ole32: Add CoWaitForMultipleHandles to spec file. 2007-02-05 12:34:51 +01:00
Paul Vriens
e89cac747c ole32/tests: Cast-qual warning fixes. 2007-01-24 11:59:11 +01:00
Andrew Talbot
02a5f7389e ole32: Declare some functions static. 2007-01-19 12:28:58 +01:00
Francois Gouget
b0bde6b87c Assorted spelling fixes. 2007-01-18 12:56:52 +01:00
Paul Vriens
3d2baaa6cf ole32/tests: Cast-qual warnings fixes. 2007-01-12 11:25:45 +01:00
Rob Shearman
d35a81c7aa ole32: Fix copied description and copyright statement for tests/errorinfo.c. 2007-01-12 11:24:14 +01:00
Rob Shearman
bbedf3d096 ole32: Add tests for the default handler. 2007-01-11 11:50:03 +01:00
Rob Shearman
5c71583b53 ole32: Add tests for error info functions.
Return E_INVALIDARG if dwReserved is not set to zero for both
GetErrorInfo and SetErrorInfo.
2007-01-11 11:49:59 +01:00
Rob Shearman
f658adffc2 ole32: Fix the detection of when we need an additional QueryInterface in CoUnmarshalInterface. 2007-01-10 12:22:06 +01:00
Rob Shearman
fa64950ee1 ole32: Add a test for the failure case of same-apartment unmarshaling when passing in an unsupported iid. 2007-01-10 12:21:59 +01:00
Rob Shearman
49fc8ac742 ole32: Add tests for passing invalid arguments to CoUnmarshalInterface. 2007-01-10 12:21:53 +01:00
Rob Shearman
b1ee49a74d ole32: ReadClassStm should return STG_E_READFAULT is not all of the data could be read, not S_FALSE.
Clear pclsid in case of errors.
Add tests for ReadClassStm.
2007-01-10 12:17:00 +01:00
Rob Shearman
de527d5ec0 ole32: Add tests for invalid arguments of CoMarshalInterface and CoMarshalInterThreadInterfaceInStream. 2007-01-10 12:16:08 +01:00
Rob Shearman
7730e1408f ole32: Return an error from CoUnmarshalInterface if pStream is NULL or if ppv is NULL. 2007-01-10 12:15:10 +01:00
Rob Shearman
35548d15c4 ole32: Fix Read/WriteClassStm to return an error if the passed in stream pointer is NULL. 2007-01-10 12:14:24 +01:00
Rob Shearman
923bc6bf3d ole32: Return an error in CoMarshalInterface if pStream is NULL. 2007-01-10 12:14:21 +01:00
Rob Shearman
fd07191673 ole32: Fix HGLOBALStreamImpl_CopyTo to check the return values of IStream_Read and IStream_Write and to not compare the bytes read to the bytes written.
Add tests for IStream::CopyTo of the HGLOBAL stream implementation.
2007-01-10 12:13:22 +01:00
Rob Shearman
ba25254d9f ole32: Remove some unneeded inclusions of headers.
Change some incorrect usages of SEEK_SET to the intended STREAM_SEEK_SET 
instead.
2007-01-10 12:08:51 +01:00
Rob Shearman
d02b27c0e9 ole32: Move test for CoGetInterfaceAndReleaseStream to compobj.c. 2007-01-10 12:02:37 +01:00
Rob Shearman
43d0d85f67 ole32: Use the standard list functions for the global interface table implementation. 2007-01-10 12:02:35 +01:00
Rob Shearman
c21f5c7c6a ole32: Move the Running Object Table test in marshal.c to moniker.c to put it with the other ROT tests. 2007-01-10 12:02:28 +01:00
Rob Shearman
beaaf0514f ole32: Fix a comment in rpc_sendreceive_thread that wasn't correct. 2007-01-10 12:02:26 +01:00
Rob Shearman
84158d6742 ole32: Remove a FIXME comment that no longer applies. 2007-01-10 12:02:24 +01:00
Paul Vriens
32fbfea47a ole32/tests: Cast-qual warnings fixes. 2007-01-09 12:01:45 +01:00
Rob Shearman
b624e8125c ole32: Fix the OLE clipboard test to call OleInitialize before performing the tests to fix test failures on Windows. 2007-01-08 12:35:44 +01:00
Rob Shearman
a45a2e37f9 ole32: Add a field to the TLS data to determine whether OLE has been initialised for the current thread. 2007-01-08 12:35:41 +01:00
Rob Shearman
2568c4662a ole32: IPeristStream implies IPersist and IStream implies ISequentialStream so fix the Structured Storage stream implementation's QueryInterface with to reflect this. 2007-01-08 12:35:38 +01:00
Rob Shearman
482063bc29 ole32: IStream inherits from ISequentialStream so the HGLOBALStream implementation must also support ISequentialStream. 2007-01-08 12:35:36 +01:00
Rob Shearman
0c51b6236c ole32: Release the global interface table in the tests when it is no longer needed. 2007-01-08 12:35:34 +01:00
Francois Gouget
386bb905e7 ole32: Print GetLastError() in decimal with '%u'. 2007-01-06 11:40:43 +01:00
Kai Blin
fb2a3914e1 ole32: Remove redundant NULL check (Coverity). 2007-01-05 20:26:47 +01:00
Rob Shearman
2db1d0de38 ole32: Make sure to reset the message state if it has been changed in RPC_ExecuteCall before returning.
Fix the hrFault parameter passed into the ClientNotify function in 
ClientRpcChannelBuffer_SendReceive so that it is correct in the case of 
messages dispatched with PostMessage.
Only unmarshal ORPCTHAT for non-fault packets.
2007-01-04 21:12:36 +01:00
Michael Gardiner
f9d8449db2 ole32: Stop StgOpenStorage from creating a file when it does not already exist. 2007-01-04 20:53:39 +01:00
Rob Shearman
b8035d2c70 ole32: Don't release pUnk in OleCreate if CoCreateInstance failed. 2007-01-04 09:50:21 +01:00
Rob Shearman
7a5d5c5503 ole32: Fix the calculation of message_state->prefix_data_len in two places where it would come out negative. 2007-01-02 20:49:07 +01:00
Rob Shearman
638182bbba ole32: Add tests for channel hooks. 2006-12-29 21:25:49 +01:00
Rob Shearman
2881f919c7 ole32: Add some tests for the running object table.
The tests show the behaviour when the IROTData interface is not
available from the moniker. They also show the flags that are accepted
into IRunningObjectTable::Register.
2006-12-28 12:36:07 +01:00
Rob Shearman
bf33f9410f ole32: Contrary to MSDN, IROTData doesn't need to be implemented for a moniker to be usable with the running object table.
If IROTData isn't available, fall back to a path that uses the display 
name and the clsid of the moniker to generate the comparison data.
2006-12-28 12:35:54 +01:00
Rob Shearman
341bf7a44a ole32: Only call IROTData::GetComparisonData once, like native does. 2006-12-28 12:35:17 +01:00
Rob Shearman
04498ba49a ole32: Use IMoniker::GetTimeOfLastChange to attempt to retrieve the last-modified time for the ROT entry.
However, fall back to CoFileTimeNow if it fails.
2006-12-28 12:34:54 +01:00
Rob Shearman
d4b755a834 ole32: Use the reduced forms of monikers for comparison in the running object table. 2006-12-28 12:34:40 +01:00
Rob Shearman
3bcea6395f ole32: Execute Reduce using the moniker's vtable in CreateCompositeMoniker as the moniker isn't necessarily a composite moniker. 2006-12-28 12:34:20 +01:00
Rob Shearman
83da7dde2a ole32: ROTFLAGS_REGISTRATIONKEEPSALIVE and ROTFLAGS_ALLOWANYCLIENT are legal to be used together in RunningObjectTable_Register. 2006-12-28 12:34:10 +01:00
Rob Shearman
3e8adc3d26 ole32: Output the HRESULT for clipboard tests that fail. 2006-12-28 12:17:07 +01:00
Rob Shearman
ee99b6d743 ole32: Marshal the ORPCTHAT structure prefixed to the server data.
Unmarshal the data on the client side (during
ClientChannelBuffer_SendReceive) and call ClientNotify.
2006-12-27 14:34:15 +01:00
Rob Shearman
3be9cbc41a ole32: Message filters aren't used in the test_call_from_message test, so remove the call to CoRegisterMessageFilter. 2006-12-27 13:02:48 +01:00
Alexandre Julliard
365a463b1e make_makefiles: Automatically add IDL header targets to the .gitignore file. 2006-12-24 17:31:52 +01:00
Rob Shearman
844037ab01 ole32: Performing a COM call from within the processing of a sent message during a wait for completion of another COM call is not allowed.
Add a test for the behaviour where RPC_E_CANTCALLOUT_ININPUTSYNCCALL is returned.
2006-12-24 13:08:02 +01:00
Rob Shearman
038c8e642a ole32: Call the MessagePending function for message filters. 2006-12-24 13:07:38 +01:00
Rob Shearman
aca17cd120 ole32: Track the pending call count so that the correct call type can be passed to the message filter HandleInComingCall function. 2006-12-24 13:07:35 +01:00
Rob Shearman
d3217872b3 ole32: Allow the marshaling/unmarshaling of NULL interfaces for IClassFactory. 2006-12-24 13:07:32 +01:00
Rob Shearman
e236edb91e ole32: Send a causality ID in the ORPCTHIS header for a call.
Use the causality ID to determine whether this is a top-level or a 
nested (called-back) call for the purposes of IMessageFilter::HandleInComingCall.
2006-12-20 12:41:01 +01:00
Rob Shearman
4fa03831a5 ole32: Reset the message filter at the end of the message filter test. 2006-12-20 12:40:46 +01:00
Rob Shearman
a089e57983 ole32: Pass in the IID and IUnknown* of the object being executed to the server notification and message filter functions. 2006-12-20 12:40:38 +01:00
Rob Shearman
9208eef55c ole32: Call the message filter for incoming calls. 2006-12-20 12:40:30 +01:00
Rob Shearman
c0a25d3565 ole32: Call ServerNotify for channel hooks.
Store the SChannelHookCallInfo structure in the message state.
2006-12-20 12:40:03 +01:00
Rob Shearman
5788ee9f05 ole32: Implement CoRegisterChannelHook and call channel hook methods on the client side. 2006-12-20 12:39:50 +01:00
Rob Shearman
1dc5dec6e6 ole32: Marshal the ORPCTHIS structure prefixed to the client data when doing ORPC calls.
This is done by putting the ORPCTHIS data into the buffer when calling
IRpcChannelBuffer::GetBuffer on the client side and then storing the
amount we increased the buffer in a structure stored in the Handle
field. This is done to present the correct Buffer pointer to the proxy
so that it writes its data after the ORPCTHIS data.

Unmarshal the data on the server side (during RPC_ExecuteCall) and make 
sure the data is consistent according to NDR rules. Also add several 
checks on the unmarshaled data that are specified by the DCOM draft 
specification.
2006-12-20 12:36:43 +01:00
Rob Shearman
307ab51793 ole32: Fix the HMETAFILEPICT user marshaling test to use the size
derived from the return value of HMETAFILEPICT_UserMarshal instead of
the value returned by HMETAFILEPICT_UserSize, as the latter
over-estimates the size on Windows.

Remove some unnecessary casts.
2006-12-19 17:00:02 +01:00
Rob Shearman
fb883d8687 ole32: Fix SetSize for HGLOBAL streams in the case of being out-of-memory. 2006-12-18 11:54:24 +01:00
Rob Shearman
fda6498284 ole32: Implement HMETAFILE and HMETAFILEPICT user marshaling functions and add tests for these. 2006-12-18 11:52:58 +01:00
Rob Shearman
3bb4760f88 ole32: Move the user marshal tests to usrmarshal.c. 2006-12-18 11:52:42 +01:00
Rob Shearman
4babec1928 ole32: Add documentation for the user marshaling functions. 2006-12-18 11:45:46 +01:00
Rob Shearman
cc30255c8a ole32: Support reading and writing custom clipformats in the data cache. 2006-12-18 11:45:42 +01:00
Francois Gouget
458ebf423d ole32/tests: Replace some '#if 0's with 'if (0)'s.
Fix the code so it compiles.
2006-12-14 20:24:53 +01:00
Francois Gouget
5e10172b30 ole32: Fix named/nameless union compilation error. 2006-12-14 12:44:31 +01:00
Marcus Meissner
f0280cbd1e made functions and variables static in some testcases. 2006-12-11 12:18:29 +01:00
Rob Shearman
7a5766346f ole32: Add some documentation for CoCreateInstance. 2006-12-07 11:51:13 +01:00
Francois Gouget
dd6e948d84 ole32: Convert dump_user_flags() into debugstr_user_flags(), a proper debug trace function. 2006-12-06 12:15:11 +01:00
Francois Gouget
f0ccd389d4 ole32: Convert dump_FORMATETC() into debugstr_formatetc(), a proper debug trace function. 2006-12-06 12:14:55 +01:00
Francois Gouget
bb8e625b5b Assorted spelling fixes. 2006-12-05 10:31:47 +01:00
Rob Shearman
878d5e9cec ole32: Implement the GetData function of the data cache to using the
existing LoadData function and fix GetData to also return data that
has been set, rather than loaded.
2006-12-04 20:19:28 +01:00
Rob Shearman
1b244baf48 ole32: Fix HandsOffStorage in the data cache. 2006-12-04 20:19:03 +01:00
Rob Shearman
6235ac9f58 ole32: Implement the DiscardCache function in the data cache. 2006-12-04 20:18:56 +01:00
Rob Shearman
feee099eec ole32: Add some more traces to the data cache to make debugging easier. 2006-12-04 13:51:15 +01:00
Rob Shearman
e99168e1ba ole32: Add tests for invalid clipformat/tymed combinations in IOleCache:Cache and for caching formats with a clipformat of 0. 2006-12-04 13:51:11 +01:00
Rob Shearman
ca81b825be ole32: In the data cache, fmtetc->cfFormat and fmtetc->tymed can be 0 which means to match any clipformat/tymed.
Therefore, keep the clipformat of the data in the data_cf field.
Return an error from SetData if a non-zero clipformat hasn't been specified.
Write out stgmedium.tymed instead of fmtetc.tymed, which is guaranteed 
to be non-zero if data has been set.
2006-12-04 13:51:06 +01:00
Rob Shearman
d37b669503 ole32: Check that the specified clipboard format and tymed are valid in IOleCache::Cache in the data cache. 2006-12-04 13:44:06 +01:00
Rob Shearman
3b87fe97df ole32: Set the mapping mode to anisotropic in OleMetafilePictFromIconAndLabel. 2006-12-04 12:22:09 +01:00
Rob Shearman
d7d3309e0a ole32: The width of the metafile drawn should be 3 times the icon width in OleMetafilePictFromIconAndLabel. 2006-12-04 12:22:03 +01:00
Rob Shearman
cdb86c6c90 ole32: Fill in the xExt and yExt fields in OleMetafilePictFromIconAndLabel. 2006-12-04 12:21:55 +01:00
Rob Shearman
2fa7cadf07 ole32: Use the default icon title font when writing the caption text out in OleMetafilePictFromIconAndLabel. 2006-12-04 12:21:48 +01:00
Rob Shearman
f0e2ea54e0 ole32: The METAFILEPICT created by OleMetafilePictFromIconAndLabel should have its mapping mode be anisotropic, not isotropic. 2006-12-04 12:21:38 +01:00
Rob Shearman
09376ea1f5 ole32: Call SetWindowOrgEx and SetWindowExtEx in OleMetafilePictFromIconAndLabel so that the created metafile scales correctly.
Centre the icon and the label.
2006-12-04 12:21:31 +01:00
Rob Shearman
587ba29174 ole32: Implement saving of the data cache.
Document a few of the unknown fields in the presentation data header.
2006-12-04 12:21:20 +01:00
Rob Shearman
e5c82d3aa4 ole32: Add handling of the dirty state to the data cache and fix InitNew to not call Load. 2006-12-04 12:21:09 +01:00
Rob Shearman
e9cc0744cc ole32: Add documentation for CreateDataCache. 2006-12-04 12:20:57 +01:00
Rob Shearman
188fe95091 ole32: Add some tests for the IViewObject, IOleCache2 and IPersistStorage interfaces of the OLE data cache. 2006-12-04 12:20:51 +01:00
Rob Shearman
4b7e8e73a4 ole32: The advise sink for the data cache should be primed with the passed in aspects value, not an arbitrarily selected value. 2006-12-04 12:20:41 +01:00
Rob Shearman
46f70207b2 ole32: Implement the SetData function for the data cache. 2006-12-04 12:20:36 +01:00