Alexandre Julliard
8c2a9414a6
ole32: Cleanup return value handling in CoWaitForMultipleHandles.
2011-01-21 14:51:37 +01:00
Maarten Lankhorst
75801f095d
ole32: Handle alertable wait in CoWaitForMultipleHandles.
2011-01-21 14:44:48 +01:00
Nikolay Sivov
d91dbd0baa
ole32/tests: Test for return value directly without macros.
2011-01-11 16:05:46 +01:00
Michael Stefaniuc
a9ae183d8a
ole32: COM cleanup for the IMalloc iface.
2011-01-07 10:22:22 +01:00
Huw Davies
62cd56ce81
ole32: Store the ole advise sinks in a STATDATA array.
2011-01-05 17:54:49 +01:00
Huw Davies
6ac2cb3ddc
ole32: Reimplement SendOnDataChange using the connection enumerator.
2011-01-05 17:54:44 +01:00
Michael Stefaniuc
4ff5c02098
ole32: COM cleanup for the IEnumSTATSTG iface.
2011-01-04 11:14:25 +01:00
Greg Geldorp
8cbb8cc38d
ole32/tests: Disable target device clipboard tests.
2011-01-03 16:57:04 +01:00
Greg Geldorp
9c9762d1ab
ole32/tests: Fix crashes in usrmarshal.
2011-01-03 11:54:03 +01:00
André Hentschel
0fb2994fdc
ole32/tests: Don't test function directly when reporting GetLastError().
2010-12-31 11:44:02 +01:00
Michael Stefaniuc
91ecb05f29
ole32: Standardize the COM usage in defaulthandler.c.
2010-12-23 13:47:27 +01:00
Michael Stefaniuc
feba7c37b4
ole32: Use ifaces instead of vtbl pointers in DataCache.
2010-12-23 13:47:27 +01:00
Michael Stefaniuc
bb81737f9c
ole32: Standardize the COM usage in git.c.
2010-12-22 12:49:02 +01:00
Huw Davies
3a2aae49d3
ole32: Standardize the COM usage.
2010-12-20 12:47:43 +01:00
Huw Davies
06f2ef4fb5
ole32: Implement IDataAdviseHolder_EnumAdvise.
2010-12-20 12:47:43 +01:00
Huw Davies
4151b49fad
ole32: Allow the EnumSTATDATA constructor to take a sparse array.
2010-12-20 12:47:43 +01:00
Huw Davies
892796a9a6
ole32: Use a STATDATA array to hold the connection data.
2010-12-20 12:47:42 +01:00
Huw Davies
861bb8ee13
ole32: Remove some useless comments.
2010-12-20 12:47:42 +01:00
Huw Davies
10aa9b2194
ole32: Rewrite the OleAdviseHolder's STATDATA enumerator to be a generic STATDATA enumerator.
2010-12-17 13:26:01 +01:00
Michael Stefaniuc
0207e413c1
ole32: Standardize the COM usage in clipboard.c.
2010-12-16 12:06:51 +01:00
Michael Stefaniuc
bfdcc3930c
ole32: Standardize the COM usage in moniker.c.
2010-12-15 13:18:51 +01:00
Michael Stefaniuc
ee56fbb947
ole32: Use ifaces instead of vtbl pointers in FTMarshalImpl.
2010-12-15 13:18:49 +01:00
Michael Stefaniuc
6012a506cc
ole32/tests: Standardize the COM usage in clipboard.c.
2010-12-14 12:30:46 +01:00
Michael Stefaniuc
adbcfb7e5c
ole32: Use an iface instead of a vtbl pointer in PointerMonikerImpl.
2010-12-09 12:24:03 +01:00
Michael Stefaniuc
32fe620c88
ole32: Use ifaces instead of vtbl pointers in Context.
2010-12-09 12:23:49 +01:00
Michael Stefaniuc
e362c67ad1
ole32: Use an iface instead of a vtbl pointer in BindCtxImpl.
2010-12-09 12:23:39 +01:00
Michael Stefaniuc
2605b76c6e
ole32: Use an iface instead of a vtbl pointer in FileLockBytesImpl.
2010-12-09 12:23:31 +01:00
Michael Stefaniuc
f27f7544fe
ole32: Use an iface instead of a vtbl pointer in RemUnknown.
2010-12-09 12:23:25 +01:00
Michael Stefaniuc
e13f9ff300
ole32: Use an iface instead of a vtbl pointer in PropertyStorage_impl.
2010-12-08 16:40:11 +01:00
Michael Stefaniuc
be5bb18502
ole32: Use an iface instead of a vtbl pointer in EnumOLEVERB.
2010-12-05 12:27:16 +01:00
Michael Stefaniuc
46ebaa9be2
ole32/tests: Use an iface instead of a vtbl pointer in HeapUnknown.
2010-12-05 12:26:57 +01:00
Michael Stefaniuc
f3810015e1
ole32: Use an iface instead of a vtbl pointer in EnumOleSTATDATA.
2010-12-05 12:26:08 +01:00
Alexandre Julliard
431e369f62
ole32: Convert dll registration to the IRegistrar mechanism.
2010-12-03 19:51:08 +01:00
Alexandre Julliard
5f49129e03
resources: Define a generic mechanism for adding extra values to the common version block.
2010-12-03 14:53:59 +01:00
Andrew Bogott
796aca38f0
ole32: Fix the test for arbitrary property ids.
2010-12-01 11:14:39 +01:00
Andrew Bogott
c75a4fd50a
ole32: Fix an off-by-one error that broke reading of many properties.
2010-12-01 11:14:34 +01:00
Andrew Bogott
df219f8758
ole32: Revert "ole32: Only read known format ids when attempting to read summary information.".
...
This reverts commit c94b2687d2
.
2010-12-01 11:14:29 +01:00
David Hedberg
41193de135
ole32: Avoid unneccessary stream conversion.
...
Truncating a large stream to less than 0x1000 bytes would cause an
unnecessarily expensive conversion.
2010-11-23 13:17:06 +01:00
Andrew Bogott
ddc5cbb371
ole32/tests: Added a couple of simple tests for StgCreateStorageEx.
2010-11-18 12:52:38 +01:00
Andrew Bogott
42cd791c4d
ole32: Use default values if options passed to StgCreateStorageEx are NULL.
2010-11-18 12:52:38 +01:00
Vincent Povirk
e883aeb394
ole32: Cache the contents of one extended big block depot block.
2010-11-16 21:54:18 +01:00
Jacek Caban
0c6f2a6d2a
ole32: Skip more tests on win9x.
2010-11-16 15:12:43 +01:00
Alexandre Julliard
54bf38575e
ole32: Get rid of the ICOM_THIS_MULTI macro.
2010-11-11 20:16:59 +01:00
Vincent Povirk
8d101b269d
ole32: Cache all extended big block depot locations.
2010-11-04 11:55:48 +01:00
Huw Davies
abf8da6727
ole32: Implement OnRun and OnStop.
2010-11-01 16:16:12 +01:00
Huw Davies
6b05b2a927
ole32: Remove some useless comments.
2010-11-01 16:16:05 +01:00
Huw Davies
96ab42728d
ole32: Re-order some functions.
2010-11-01 16:15:57 +01:00
Huw Davies
c41c05057c
ole32: Rename cache entry parameters from 'This' - it leads to too much confusion with the data cache itself, which is the real COM object.
2010-11-01 16:15:49 +01:00
Huw Davies
4d137e4702
ole32: Add a stub advise sink object to the data cache.
2010-11-01 16:15:38 +01:00
Huw Davies
ad326999ec
ole32/tests: Add tests to exercise the datacache's IDataObject::GetData.
2010-11-01 16:15:32 +01:00
David Hedberg
a5caff3bac
ole32: Pass failures from delegate object's ::QueryInterface in default handler.
2010-10-21 12:28:51 +02:00
David Hedberg
d95e2dbd62
ole32: OleLoad should not fail even if IOleObject::GetMiscStatus fails.
2010-10-18 19:08:38 +02:00
Alexandre Julliard
1e04e923be
ole32: Use the correct resource ids for the drag&drop cursors.
2010-10-18 19:08:37 +02:00
Alexandre Julliard
bc8e70c089
ole32/tests: Make some variables static.
2010-10-01 13:37:14 +02:00
Michael Stefaniuc
620ca68d01
ole32: Allocate a small temp variable on the stack instead of the heap.
2010-09-29 10:07:54 +02:00
Andrew Eikum
91d91afb7d
ole32: Create a FORMATETC if one is not given in OleCreate.
2010-09-28 17:33:20 +02:00
Huw Davies
250b55c41d
ole32: Call the draw_continue function.
2010-09-28 17:33:17 +02:00
Huw Davies
6c7dd939cf
ole32/tests: Mark the draw_continue callbacks as optional. Win9x can skip calls under low-load conditions.
2010-09-28 17:33:17 +02:00
Alexandre Julliard
81b8ee863e
makefiles: Add a standard header for all makefiles to replace the common variable initializations.
2010-09-19 12:36:48 +02:00
Marcus Meissner
8d25534613
ole32: Check for interface NULL which happens with e.g. Abiword.
2010-09-16 13:37:32 -05:00
Vincent Povirk
2752c3bcd0
ole32: Don't fail if the file ends during a big block.
...
Apparently, it's valid for the last block in a file to be incomplete.
2010-09-08 13:30:46 +02:00
Alexandre Julliard
dd84876c3e
ole32: Use int64 in the spec file for 64-bit integers.
2010-08-31 14:23:48 +02:00
Vincent Povirk
89646084ba
ole32: Cache data and block locations in BigBlockStream objects.
2010-08-26 13:59:31 +02:00
Vincent Povirk
101de22a1a
ole32: Flush before returning from any storage API call that writes.
2010-08-26 13:59:28 +02:00
Huw Davies
127260bb62
ole32: Pass a real IUnknown ptr to CoMarshalInterface.
2010-07-28 16:28:21 +02:00
Michael Stefaniuc
ffac31da09
ole32: Use IsEqualIID instead of memcmp to compare REFIIDs.
2010-07-23 11:46:29 +02:00
Huw Davies
6d1ef3a6a6
ole32: Implement cross-process drag and drop.
2010-07-22 16:11:59 +02:00
Huw Davies
a2e1dd29dc
ole32/tests: Relax the reference counting tests a bit. We only care whether references are held or not.
2010-07-22 16:11:51 +02:00
Nikolay Sivov
1b0182f9bb
ole32: Use IsEqualIID() instead of memcmp().
2010-07-21 17:38:37 +02:00
Nikolay Sivov
114510801f
ole32: No need to test for interface pointer being null.
2010-07-21 17:38:37 +02:00
Nikolay Sivov
2f61e19156
ole32: Fix assumption about HRESULT failure code value.
2010-07-21 17:38:37 +02:00
Nikolay Sivov
5185409144
ole32: Remove redundant variables.
2010-07-21 17:38:37 +02:00
Alexandre Julliard
b86d515ed6
dlls: Remove explicit imports of kernel32 and ntdll.
2010-07-21 17:38:36 +02:00
Vincent Povirk
5116b979b2
ole32: Flush the ILockBytes object of a storage on commit and final release.
...
Some ILockBytes objects will not really write changes until their Flush
method is called. Also, further optimizations to the storage implementation
will involve caching writes, which will have to be flushed at times.
2010-07-19 14:38:16 +02:00
Vincent Povirk
b7dbfcbd48
ole32: Remove an unused variable.
2010-07-19 14:38:16 +02:00
Vincent Povirk
d0e6e4aa82
ole32: Use ILockBytes_Stat to get the filename of a storage.
2010-07-19 14:38:16 +02:00
Vincent Povirk
14f8f9d5b5
ole32: Remove the BigBlockFile abstraction and always use an ILockBytes.
2010-07-19 14:38:16 +02:00
Vincent Povirk
4171499411
ole32: Don't map storage files in memory.
2010-07-19 14:38:16 +02:00
Vincent Povirk
7f3c92b2a0
ole32: Update storage header saving code based on the latest MS spec.
...
These fields are needed for the MS storage implementation to load
files that were created by Wine with a block size of 4096.
2010-07-19 14:38:16 +02:00
Vincent Povirk
9c95761d9e
ole32: Always check the size of the small block root chain.
...
In some storage files, the size of this stream is not a multiple of the big
block size. This means that we may need to enlarge the stream even when we
don't really have to allocate more space for it.
2010-05-28 16:22:24 +02:00
Vincent Povirk
d64ee9ff11
ole32: Fix seeking backwards in hglobalstream.
2010-05-27 14:46:43 +02:00
Vincent Povirk
ff4292c229
ole32/tests: Add more IStream_Seek tests for hglobalstream.
2010-05-27 14:46:42 +02:00
Michael Stefaniuc
162e420f0e
ole32: Avoid potential NULL pointer dereferences in a TRACE.
2010-05-26 10:11:05 +02:00
Alexandre Julliard
78d1686b90
ole32: Implement the IAdviseSink call_as proxies and stubs.
...
Based on a patch by Rob Shearman.
2010-05-25 12:49:19 +02:00
Juan Lang
c94b2687d2
ole32: Only read known format ids when attempting to read summary information.
2010-05-25 12:02:47 +02:00
Juan Lang
b4c3a04165
ole32/tests: Test creating an IPropertySetStorage with an unknown format id.
2010-05-25 12:02:37 +02:00
Andrew Nguyen
07325c7d7c
ole32/tests: Add tests for output parameters in MkParseDisplayName.
2010-05-21 18:58:05 +02:00
Andrew Nguyen
7bdf023e69
ole32: Validate pointer parameters in MkParseDisplayName.
2010-05-21 18:58:05 +02:00
Nikolay Sivov
2c80e14eec
ole32: Use window property to store registered drop target.
2010-05-18 08:53:08 +02:00
Vincent Povirk
57ddceea34
ole32: Use a temporary variable in TransactedSnapshotImpl_EnsureReadEntry.
...
CreateStubEntry can change the value of This->entries, in which case the
assignment can go to the wrong place. So instead, assign to a temporary
variable, and copy the data back after all CreateStubEntry calls are finished.
2010-05-13 11:51:07 +02:00
Marcus Meissner
bf1e9a2e93
ole32: Fixed 2 uninitialized variable use (Coverity).
2010-05-10 10:03:43 +02:00
Vincent Povirk
dbf123ba0d
ole32: Fix reads past the end of streams.
2010-05-07 12:46:50 +02:00
Vincent Povirk
4ad114cfae
ole32: Use the cached information in BlockChainStream_GetCount.
2010-05-07 12:46:39 +02:00
Vincent Povirk
e40afcb2b6
ole32: Always move unmodified streams instead of copying on commit.
2010-05-06 17:55:43 +02:00
Vincent Povirk
d07a4868a1
ole32: Rewrite transacted storage to be more lazy.
...
When creating a new transacted storage object (or reverting an
existing one), rather than copy the original storage, we simply create
a "stub directory entry" for the root. As stub entries are accessed,
we fill in their data from the parent and create new stubs for any
linked entries. The streams have copy on write semantics - reads are
from the original entry until a change is made, then we make a copy in
the scratch file.
When committing transacted storages, we have to create a new tree with
the new data so that the storage entry can be modified in one step,
but unmodified sections of the tree can now be shared between the new
tree and the old. An entry can be shared if it and all entries
reachable from it are unmodified. In the trivial case where nothing
has been modified, we don't have to make a new tree at all.
2010-05-06 17:55:34 +02:00
Nikolay Sivov
56fdbc226e
ole32/ole2: Use W calls for registry access.
2010-05-06 14:22:23 +02:00
Vincent Povirk
42550953a6
ole32: Store the location of all blocks in a big block chain in memory.
...
A big block chain is a linked list, and we pretty much need random
access to them. This should theoretically make accessing a random
point in the chain O(log2 n) instead of O(n) (with disk access scaling
based on the size of the read/write, not its location). It
theoretically takes O(n) memory based on the size, but it can do
better if the chain isn't very fragmented (which I believe will
generally be the case for long chains). It also involves fetching all
the big block locations when we open the chain, but we already do that
anyway (and it should be faster to read it all in one go than
piecemeal).
2010-05-05 10:41:57 +02:00
Vincent Povirk
93cc582a8d
ole32: Remove some assumptions about the internals of BlockChainStream.
2010-05-05 10:41:26 +02:00
Nikolay Sivov
286c5f8816
ole32/marshal: Compare with S_OK instead of keeping in mind that it's zero.
2010-05-03 15:43:01 +02:00
Gerald Pfeifer
c6f74e386b
ole32: Fix return value for CoRevokeMallocSpy.
2010-05-03 15:40:20 +02:00