Commit Graph

70 Commits

Author SHA1 Message Date
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 8518323e07 ole32: Don't track the stream size in storage stream objects.
We can't do this safely when there are multiple objects for a single stream.
2009-12-09 12:03:18 +01:00
Vincent Povirk 6d06c43e53 ole32: Use the storage vtable to resize streams. 2009-12-09 12:03:10 +01:00
Vincent Povirk 1d4c698ef3 ole32: Use the storage vtable to write to streams. 2009-12-09 12:02:59 +01:00
Vincent Povirk 62e54bacba ole32: Use the storage vtable to read streams. 2009-12-08 12:35:33 +01:00
Vincent Povirk f3d194b391 ole32: Add ReadDirEntry to the storage vtable. 2009-12-07 09:49:05 +01:00
Vincent Povirk 176cdfc75e ole32: Add WriteDirEntry to the storage vtable. 2009-12-07 09:49:05 +01:00
Vincent Povirk 8a332db2c5 ole32: Change ReadDirEntry return type to HRESULT. 2009-12-07 09:49:05 +01:00
Vincent Povirk f434ab1f2a ole32: Unify the logic for overriding the root storage filename in Stat.
This is needed so that the new transacted type will be able to easily support
this logic.
2009-12-04 14:34:59 +01:00
Vincent Povirk 5456724fd7 ole32: Move the create attribute from StorageImpl to StorageBaseImpl.
This is to avoid accessing the top-level StorageImpl directly.
2009-12-04 14:34:58 +01:00
Vincent Povirk b6dc718c44 ole32: Check the current storage for STGM_SIMPLE rather than ancestorStorage.
Since simple mode does not support substorages, we know these are the same.
2009-12-04 14:34:58 +01:00
Vincent Povirk 6c3961f0c4 ole32: Copy the storage filename at stat time, not read time. 2009-11-24 10:55:45 +01:00
Vincent Povirk e77e9e45aa ole32: Add a DirRef type for references to directory entries. 2009-11-18 11:03:58 +01:00
Vincent Povirk d3dbc8b1e6 ole32: Rename property variables in storage stream implementation. 2009-11-18 11:03:30 +01:00
Vincent Povirk df960e27c4 ole32: Rename stream.ownerProperty to dirEntry. 2009-11-16 11:33:06 +01:00
Vincent Povirk 1bd2617c7a ole32: Rename StorageUtl_CopyPropertyToSTATSTG. 2009-11-12 13:08:15 +01:00
Vincent Povirk 42a4b11e2d ole32: Rename StorageImpl_WriteProperty to StorageImpl_WriteDirEntry. 2009-11-12 13:08:08 +01:00
Vincent Povirk b3c30b1f4a ole32: Rename StorageImpl_ReadProperty to StorageImpl_ReadDirEntry. 2009-11-12 13:08:00 +01:00
Vincent Povirk 39e894f4f6 ole32: Rename the StgProperty structure to DirEntry.
The term "property" is misleading (ole32 has an unrelated feature
called a "property set storage"), and I haven't seen it used anywhere
outside the Wine code. The term "directory entry" matches the MS
documentation and more accurately describes their use in the file.
2009-11-12 13:07:49 +01:00
Alexandre Julliard 4964374570 ntdll: The large integer functions are 32-bit only. 2009-08-24 15:17:33 +02:00
Andrew Eikum 85a5867308 ole32: Add big block chain to small block chain conversion routine. 2009-08-20 19:43:30 +02:00
Andrew Eikum 972e4a22f8 ole32: Allow small block chains with no property. 2009-08-20 19:43:30 +02:00
Huw Davies 16dc037859 ole32: In simple mode keep the stream size above the small block limit. 2009-06-02 11:57:21 +02:00
Huw Davies 02fc79b2c9 ole32: In simple create mode the size returned by IStream_Stat is actually the current stream position. 2009-06-02 11:57:21 +02:00
Michael Stefaniuc 0449701c31 ole32: Remove superfluous pointer casts. 2009-02-11 12:29:56 +01:00
Huw Davies 60ee0c3eff ole32: Fix CopyTo to work correctly with LARGE_INTEGERs. 2008-03-07 10:52:15 +01:00
Andrew Talbot 4ea954df42 ole32: Exclude unused headers. 2007-05-16 11:55:51 +02:00
Rob Shearman 05e99099af ole32: Add warnings for failures in the structured storage stream functions. 2007-03-20 12:56:30 +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 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
Michael Stefaniuc 21ff87bf50 ole32: Win64 printf format warning fixes. 2006-10-16 10:53:28 +02:00
Robert Shearman 3721bf60bb ole32: Check the return value of IStream_SetSize so as to not blindly continue on and possibly corrupt the structured storage file. 2006-09-28 11:55:56 +02:00
Gerald Pfeifer 24dc347134 ole32: Silence a compiler warning about unused variable in StgStreamImpl_Write(). 2006-09-13 11:01:53 +02:00
Robert Shearman 79f7318a11 ole32: Convert the *_{Read,Write}At structured storage functions to
return HRESULTs instead of BOOLs so that errors can be properly
propagated from lower levels.
2006-09-11 12:27:45 +02:00
Francois Gouget 19be7545e5 ole32: Fix spelling of a couple of local variables. 2006-09-08 11:03:07 +02:00
Mike McCormack fd61c3f24b ole32: Add some missing traces. 2006-07-29 11:55:43 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Robert Shearman 32d39ea6ed ole32: IPersistStream is also implemented by any object that implements IStream. 2006-05-05 21:51:52 +02:00
Robert Shearman 8d39c80950 ole32: Add more tracing for reading and writing storage streams.
Add more tracing for read and write operations and warn in the case of
failure.
2006-05-05 21:48:49 +02:00
Mike McCormack 3c1e67d084 ole32: Return STG_E_REVERTED when a stream's parent storage has been closed. 2006-05-05 20:54:57 +02:00
Dr J A Gow e3af1227c9 ole32: Fix stream ref counting.
Stream methods called after parent object has been closed correctly
return STG_E_REVERTED.
Stream refcounting fixed. Now can safely call IStorage destructor
before IStream destructor and guarantee file will be closed.
2006-02-21 11:18:05 +01:00
Robert Shearman 8f604e925d ole: Fix mis-handling of return value in StgStreamImpl_Read.
BlockChainStream_ReadAt returns a BOOL, not an HRESULT so change
StgStreamImpl_Read to handle this, by returning STG_E_READFAULT on
failure.
2006-01-03 12:07:34 +01:00
Ulrich Czekalla 707fa2c3a2 ole32: Return error instead of asserting if storage file is corrupt. 2005-12-22 17:15:05 +01:00
Dmitry Timoshkov eba47f1dfe Make remaining OLE interface vtables const. 2005-06-06 19:50:35 +00:00
Mike McCormack 6714664dee Eliminate forward declarations, make functions static. 2005-03-31 15:26:30 +00:00
Mike McCormack e9d334d0c9 Fix more incorrect uses of STGM_ enumerations. 2005-03-07 12:24:42 +00:00
Mike McCormack 6f20133705 Test and fix a few problems with OLE storage streams. 2005-01-11 10:44:28 +00:00
Francois Gouget 486d020c1b Don't define COBJMACROS in objbase.h.
Update the Wine sources accordingly.
2004-10-07 03:06:48 +00:00
Joris Huizer 34cffce6f9 Ref count increment/decrement cleanup. 2004-09-24 01:16:53 +00:00
Alexandre Julliard f714b39762 Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
macro.
2004-08-23 19:39:48 +00:00