Commit Graph

156 Commits

Author SHA1 Message Date
James Hawkins 5ea0d9d807 ole32: Storage sharing should be implemented in ole32, not the lower-level file API. 2008-08-19 13:55:53 +02:00
Rob Shearman 23bb94c005 ole32: Remove dead code in StorageImpl_LoadFileHeader. 2008-08-18 17:34:13 +02:00
Rob Shearman 064b6fce0c ole32: Fix testing of HRESULT types with not operator instead of comparing against S_OK.
This makes it more obvious what the code is doing.
2008-08-18 17:34:12 +02:00
Andrew Talbot 749184a1e8 ole32: Remove unneeded address-of operators from array names. 2008-07-11 14:06:31 +02:00
Andrew Talbot 82e23af814 ole32: Remove unneeded address-of operators from function name. 2008-07-07 12:31:43 +02:00
Austin English 1b24da3aa0 ole32: Spelling fixes. 2008-04-10 09:51:12 +02:00
Andrew Talbot e7b0f07c3e ole32: Assign to structs instead of using memcpy. 2008-03-11 12:11:51 +01:00
James Hawkins e4c1227ec9 janitorial: Remove links to any microsoft site. 2008-03-01 12:17:17 +01:00
Rob Shearman 96fafe1661 ole32: Fix the character count passed to GetClipboardFormatNameW in WriteFmtUserTypeStg. 2008-02-15 11:04:09 +01:00
Andrew Talbot 554644fd0d ole32: Remove unneeded casts. 2008-01-15 11:38:08 +01:00
Rob Shearman 5ce2d25b32 ole32: Reset the parent storage on overwritten streams so that operations on them now fail. 2007-10-22 12:36:07 +02:00
Aric Stewart 2d8cd767b2 ole32: Properly update the SmallBlockDepotCount when adding more blocks. 2007-08-28 11:58:44 +02:00
Andrew Talbot ca78a8b65f ole32: Cast-qual warnings fix. 2007-07-06 18:11:46 +02:00
Andrew Talbot 67d667b828 ole32: Constify some variables. 2007-07-05 19:52:35 +02:00
Aric Stewart f8c8355d85 ole32: Implementation of state bits for IStorage. 2007-06-07 23:09:10 +02:00
Rob Shearman b005e9ed0d ole32: Move the logic in StgCreateDocfile for "if no share mode given then DENY_NONE is the default" to before the validateSTGM check.
Add a test that shows this behaviour is correct.

Remove a test on the access mode that is redundant because it is already 
done in validateSTGM.
2007-05-10 12:15:11 +02:00
Michael Stefaniuc 5f62da109e janitorial: Pass HEAP_ZERO_MEMORY as flag to HeapAlloc() instead of zeroing out the allocated memory in a later call. 2007-04-25 12:26:07 +02:00
Dmitry Timoshkov dce12498d0 ole32: Move the storage signatures to the appropriate file that uses them. 2007-03-21 11:59:41 +01:00
Aric Stewart 838eb4037f ole32: Rework storage with blockfiles to properly use ILockBytes interfaces.
Rework storage to make all its interactions with the underlying data go 
though ReadAt and WriteAt to allow for an ILockBytes underlying layer.
Implement ReadAt and WriteAt in stg_bigblockfile.c for blockfiles.
2007-03-20 12:36:45 +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 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 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
Michael Gardiner f9d8449db2 ole32: Stop StgOpenStorage from creating a file when it does not already exist. 2007-01-04 20:53:39 +01:00
Kirill K. Smirnov 3cd3ca68fe ole32: Fix logic in Storage32Impl_SmallBlocksToBigBlocks function. 2006-11-27 17:44:47 +01:00
Michael Stefaniuc 21ff87bf50 ole32: Win64 printf format warning fixes. 2006-10-16 10:53:28 +02:00
Andrey Turkin 63f88b3d57 ole32: StgOpenStorage on non-existent file should create it (with test). 2006-09-28 14:14:59 +02:00
Robert Shearman aa336618ec ole32: Add a check for a condition where a stream has an invalid size
and so there aren't enough blocks in the chain to write data into.
2006-09-11 12:28:23 +02:00
Robert Shearman 106156cb75 ole32: Remove some assertions in the stuctured storage code by
returning error codes to the caller and by handling the error
condition.
2006-09-11 12:28:12 +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
Robert Shearman f42d61df0d ole32: Move some functions out of compobj.c that don't belong there and update the copyright statement. 2006-08-16 16:42:32 +02:00
Robert Shearman 8d7bfca965 ole32: Fix a typo in IEnumSTATSTGImpl_QueryInterface where IStorage was being compared against instead of IEnumSTATSTG. 2006-08-09 20:40:11 +02:00
Robert Shearman f0dc9deff0 ole32: Ensure that a returned free block is valid in storage.
Otherwise, an IStream_SetSize call followed by an IStream_Read call 
could fail with STG_E_DOCFILECORRUPT.
2006-08-03 22:23:27 +02:00
Alexandre Julliard 518ee99f6f ole32: Make some functions and variables static. 2006-08-02 13:31:26 +02:00
Robert Shearman 1a5cd3ca9b ole32: Remove a check on the share mode for the NULL filename case as the check is already done earlier in StgCreateDocfile. 2006-07-31 21:25:35 +02:00
Mike McCormack 63cbef27a2 ole32: Use IsGUIDEqual to compare IIDs. 2006-07-31 17:18:24 +02:00
Mike McCormack 6ede65596a ole32: Add function parameters to FIXME messages. 2006-07-31 10:53:19 +02:00
Mike McCormack 24e69d544b ole32: Add a test showing what STGM_TRANSACTED does for streams. 2006-07-31 10:53:15 +02:00
Mike McCormack fd61c3f24b ole32: Add some missing traces. 2006-07-29 11:55:43 +02:00
Mike McCormack 55ab809854 ole32: Only print a FIXME if necessary in StgOpenStorageEx. 2006-07-11 12:41:42 +02:00
Alexandre Julliard ae525c1441 ole32: Make the virtual table functions static where possible. 2006-06-10 11:59:15 +02:00
Troy Rollo bdbc482651 ole32: Use STGM_WRITE when opening child storage to delete its children. 2006-05-31 11:45:29 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Troy Rollo 1be295fb47 ole32: Fix excessive file sizes for Storage files.
The IStorage (DocFile) implementation was adding empty blocks at the
end of the file every time a caller wrote data that was not a multiple
of 512 bytes.  If the caller made a lot of very small writes the file
size could be huge even though the data in the file was tiny. This was
caused by BlockChainStream_SetSize trying to allocate file blocks for
the new data using a condition that bore no relationship to the
required condition, and it was not necessary to do so at that time
since it is done (the right way) by StorageImpl_GetNextFreeBigBlock
(called via BlockChainStream_Enlarge).
2006-05-23 13:00:13 +02:00
Mike Hearn 27800ef4cc ole32: Add StgCreateFile test and conformance fix. 2006-05-08 16:04:51 +02:00
Robert Shearman d9b7c36009 ole32: Fix typos in StgCreateStorageEx and StgOpenStorageEx. 2006-05-05 21:51:43 +02:00
Robert Shearman 6dd5dbef64 ole32: STGM_PRIORITY allows other IStorage objects to be opened in transacted mode with read/write access. 2006-05-05 21:51:31 +02:00
Robert Shearman 693da8c471 ole32: Check that the storage was opened with write access before creating a new stream or sub-storage. 2006-05-05 21:50:12 +02:00
Robert Shearman 5d051af6ae ole32: Copy the mode flags into the STATSTG structure in IStorage::Stat.
Copy the mode flags into the STATSTG structure in IStorage::Stat. Don't 
store the STGM_CREATE flag in openFlags, since it is only relevant when 
opening the stream and the tests show that it isn't returned in the 
STATSTG structure.
2006-05-05 21:49:39 +02:00
Robert Shearman b2207d83ad ole32: Fix access right check for opening and creating streams and storages.
Check the access mode for opening and creating streams and storages
doesn't exceed the access rights the current storage was opened with,
not the parent storage.
2006-05-05 21:49:04 +02:00
James Hawkins 2b5963f8e2 ole32: StorageImpl_GetROBigBlock can return NULL so check for NULL before doing a memcpy. 2006-05-05 17:51:08 +02:00