Vincent Povirk
ee39a21d2b
ole32: Add DestroyDirEntry to the storage vtable.
2009-12-08 12:35:17 +01:00
Vincent Povirk
f43e013f73
ole32: Take a StorageBaseImpl in removeFromTree.
2009-12-08 12:35:08 +01:00
Vincent Povirk
0425ed1d38
ole32: Take a StorageBaseImpl in insertIntoTree.
2009-12-08 12:35:00 +01:00
Vincent Povirk
9300a92ccc
ole32: Change the base IStorage filename to a pointer type.
...
The maximum size of the name returned by Stat() on a top-level storage has
nothing to do with DIRENTRY_NAME_BUFFER_LEN. Windows can return longer names
and probably has a limit of MAX_PATH. Also, Stat always returns an absolute
pathname, so we don't need a special case in StgOpenStorage.
2009-12-08 12:34:47 +01:00
Nathan Gallaher
de239d86fd
ole32: Fix invalid memory access in storage32.
2009-12-07 14:53:31 +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
df13a1d1fe
ole32: Change WriteDirEntry return type to HRESULT.
2009-12-07 09:49:05 +01:00
Vincent Povirk
382ffed003
ole32: Make CreateDirEntry a virtual method.
2009-12-07 09:49:05 +01:00
Vincent Povirk
cc98619ca4
ole32: Add an internal vtable to StorageBaseImpl objects.
2009-12-04 14:34:59 +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
cf5e6c571a
ole32: Forbid substorages of simple mode storages.
2009-12-04 14:34:58 +01:00
Vincent Povirk
9da3365e84
ole32: Allocate the StorageImpl in StorageImpl_Construct.
...
This makes cleanup after errors much easier, as we can just use the regular
destructor.
2009-11-24 10:55:59 +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
669af158da
ole32: Invalidate open storage objects that are deleted.
2009-11-20 11:15:53 +01:00
Vincent Povirk
8569d547b9
ole32: Forbid renaming an open storage.
2009-11-20 11:15:44 +01:00
Vincent Povirk
c62a4ad841
ole32: Forbid opening the same storage twice.
2009-11-20 11:15:35 +01:00
Vincent Povirk
d3c0a3a829
ole32: Invalidate open storage objects that outlive their parent.
2009-11-20 11:15:27 +01:00
Vincent Povirk
52100e9620
ole32: Do not allow renaming streams that are open.
2009-11-19 11:46:57 +01:00
Vincent Povirk
371f6a4818
ole32: Do not allow the same stream to be opened twice.
2009-11-19 11:46:49 +01:00
Vincent Povirk
53128d522b
ole32: Use safe list iteration when searching for streams to invalidate.
2009-11-19 11:46:41 +01:00
Vincent Povirk
9d0c4c971d
ole32: Always invalidate stream objects when deleting the stream.
2009-11-19 11:46:32 +01:00
Vincent Povirk
55604eb36c
ole32: Invalidate child streams when a non-top-level storage is freed.
2009-11-19 11:46:07 +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
aca5cc52e1
ole32: Rename property variables in SmallBlockChainStream methods.
2009-11-17 12:04:41 +01:00
Vincent Povirk
8f2d0f8887
ole32: Rename property variables in BlockChainStream methods.
2009-11-17 12:04:34 +01:00
Vincent Povirk
3aa8cdec7b
ole32: Rename property variables in StorageInternalImpl_Construct.
2009-11-17 12:04:27 +01:00
Vincent Povirk
f8ca09c0b8
ole32: Rename property variables in IEnumSTATSTGImpl methods.
2009-11-17 12:04:21 +01:00
Vincent Povirk
54781b657f
ole32: Rename property variables in block chain conversion functions.
2009-11-17 12:04:14 +01:00
Vincent Povirk
d21d690ac5
ole32: Rename property variables in internal StorageImpl methods.
2009-11-17 12:04:07 +01:00
Vincent Povirk
26acdb3efd
ole32: Rename property variables in StorageImpl_Construct.
2009-11-17 12:04:00 +01:00
Vincent Povirk
f1861166bb
ole32: Rename property variables in internal storage functions.
2009-11-17 12:03:52 +01:00
Vincent Povirk
b984e46b86
ole32: Rename property variables in the StorageBaseImpl methods.
2009-11-17 12:03:42 +01:00
Vincent Povirk
de3ed0bb50
ole32: Rename firstPropertyNode to storageDirEntry.
2009-11-17 12:03:32 +01:00
Vincent Povirk
42e8dfa2cb
ole32: Rename propertyNameCmp to entryNameCmp.
2009-11-16 11:33:54 +01:00
Vincent Povirk
a9ad3fed29
ole32: Rename property variables in insertIntoTree.
2009-11-16 11:33:47 +01:00
Vincent Povirk
14647d7ca9
ole32: Rename deleteSt*Property to deleteSt*Contents.
...
We now only delete the node contents in these functions.
2009-11-16 11:33:41 +01:00
Vincent Povirk
390e2711f6
ole32: Rename rootPropertyName to rootEntryName.
2009-11-16 11:33:30 +01:00
Vincent Povirk
93db14e79a
ole32: Rename SmallBlockChainStream.ownerPropertyIndex to ownerDirEntry.
2009-11-16 11:33:22 +01:00
Vincent Povirk
848caa5168
ole32: Rename BlockChainStream.ownerPropertyIndex to ownerDirEntry.
2009-11-16 11:33:15 +01:00
Vincent Povirk
df960e27c4
ole32: Rename stream.ownerProperty to dirEntry.
2009-11-16 11:33:06 +01:00
Vincent Povirk
4ba13cb9a7
ole32: Rename rootPropertySetIndex to storageDirEntry.
...
Not only is it not related to property set storages, it's also not the root
of the tree that's used to search for elements.
2009-11-16 11:32:58 +01:00
Vincent Povirk
cf1242e03b
ole32: Rename propertyUniqueID to clsid.
2009-11-16 11:32:47 +01:00
Vincent Povirk
2203264bfa
ole32: Rename propertyType to stgType.
2009-11-16 11:32:39 +01:00
Vincent Povirk
5838bcf801
ole32: Rename PROPERTY_RELATION constants to DIRENTRY_RELATION.
2009-11-13 11:52:24 +01:00
Vincent Povirk
5969bde0b1
ole32: Rename dirProperty to dirRootEntry.
2009-11-13 11:52:24 +01:00
Vincent Povirk
8a8471a765
ole32: Rename PROPSET_BLOCK_SIZE to RAW_DIRENTRY_SIZE.
2009-11-13 11:52:23 +01:00
Vincent Povirk
74d0503026
ole32: Rename PROPERTY_NAME_*_LEN to DIRENTRY_NAME_*_LEN.
2009-11-13 11:52:23 +01:00
Vincent Povirk
86759988f1
ole32: Rename PROPERTY_NULL to DIRENTRY_NULL.
2009-11-13 11:52:23 +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
Vincent Povirk
b1baa05e28
ole32: Remove the term "property type", it's just an STGTY.
...
According to the MS spec, the types in compound storage files are simply
STGTY values, with an extra value named STGTY_ROOT for the root storage.
2009-11-12 13:07:27 +01:00
Vincent Povirk
87ed7d9b8b
ole32: Simplify RenameElement by using the same entry in the file.
2009-11-11 10:54:59 +01:00
Vincent Povirk
274a1d11c1
ole32: Adjust updatePropertyChain signature and name to match removeFromTree.
2009-11-11 10:54:42 +01:00
Vincent Povirk
29c5ba5a77
ole32: Add and use a destroyDirEntry function for deleting directory entries.
...
We need this so we can free any related resources in memory.
2009-11-03 21:31:10 +01:00
Vincent Povirk
bdc4755d7d
ole32: Remove uses of This->base.ancestorStorage in removeFromTree.
2009-11-03 21:30:55 +01:00
Vincent Povirk
4e4810f2c5
ole32: Remove uses of This->base.ancestorStorage in createDirEntry.
2009-11-03 21:30:49 +01:00
Vincent Povirk
7973904d56
ole32: Rename StorageImpl_SetStateBits to StorageBaseImpl_SetStateBits.
2009-11-03 21:30:39 +01:00
Vincent Povirk
17236668c9
ole32: Rename StorageImpl_SetElementTimes to StorageBaseImpl_SetElementTimes.
2009-11-03 21:30:34 +01:00
Vincent Povirk
fd2f35a872
ole32: Rename StorageImpl_DestroyElement to StorageBaseImpl_DestroyElement.
2009-11-03 21:30:27 +01:00
Vincent Povirk
c4aed16590
ole32: Rename StorageImpl_MoveElementTo to StorageBaseImpl_MoveElementTo.
2009-11-03 21:30:21 +01:00
Vincent Povirk
a5f87a4731
ole32: Rename StorageImpl_CopyTo to StorageBaseImpl_CopyTo.
2009-10-30 11:28:22 +01:00
Vincent Povirk
39e35cd7b4
ole32: Don't call internal functions from OLECONVERT_WriteOLE20ToBuffer.
2009-10-30 11:28:14 +01:00
Vincent Povirk
6a36025713
ole32: Don't call internal functions from OLECONVERT_GetOLE20FromOLE10.
2009-10-30 11:28:07 +01:00
Vincent Povirk
4f6e2453e9
ole32: Rename StorageImpl_CreateStorage to StorageBaseImpl_CreateStorage.
...
We don't just use the function for StorageImpl.
2009-10-30 11:27:43 +01:00
Vincent Povirk
f82924ffb9
ole32: Take a StorageBaseImpl in updatePropertyChain.
...
The function is not always called with a top-level storage object, and the
signature should reflect that.
2009-10-30 11:27:29 +01:00
Vincent Povirk
13b9666443
ole32: Convert adjustPropertyChain into real binary tree removal.
...
Finding the parent of a node in a binary tree is a detail that should
be handled inside the function.
2009-10-30 11:27:07 +01:00
Vincent Povirk
fd993b7d9d
ole32: Remove directory entries from the tree before we free them.
...
The directory entry should still be valid as long as it's in the tree.
2009-10-30 11:26:50 +01:00
Vincent Povirk
37f3f3d92a
ole32: Write the new data in getFreeProperty and rename the function.
...
This is to avoid calling WriteProperty with an index to a directory entry
that has not yet been reserved in the file. We reserve the entry by writing
the new data to it.
2009-10-29 15:48:12 +01:00
Vincent Povirk
20dd1886d5
ole32: Split the data conversion functions out of WriteProperty.
2009-10-29 15:47:55 +01:00
Vincent Povirk
ac9d77cd10
ole32: Use the raw directory entry functions in getFreeProperty.
...
The meaning of the "index" argument in Read/WriteProperty will likely
change in the future, but getFreeProperty must work with real indexes
into the file's real directory stream.
2009-10-29 15:47:44 +01:00
Vincent Povirk
e71c696b51
ole32: Move the low-level functionality of WriteProperty to a new function.
2009-10-29 15:47:30 +01:00
Vincent Povirk
56622de951
ole32: Move the low-level functionality of ReadProperty to a new function.
2009-10-29 15:47:20 +01:00
Vincent Povirk
5d550cdc45
ole32: Further simplify adjustPropertyChain and fold in findPlaceholder.
...
The logic is unchanged from the original version.
2009-10-29 15:47:03 +01:00
Vincent Povirk
a7e69339dc
ole32: Reduce duplicated code in adjustPropertyChain.
...
Most of the work is the same regardless of relation type, so bring
those parts out of the relation type test.
2009-10-29 15:46:16 +01:00
Vincent Povirk
911e923fbc
ole32: Don't use IEnumSTATSTGImpl to search for a parent directory entry.
...
Use a binary search to find the parent of a storage object being deleted.
We currently use IEnumSTATSTGImpl to do a linear search, which is
unnecessary.
2009-10-28 11:12:24 +01:00
Vincent Povirk
ee6856d874
ole32: Don't use IEnumSTATSTG to search for elements of storages.
...
We use it to do a linear search of a binary tree, which is overkill.
Replace it with a simple binary search.
2009-10-26 11:17:35 +01:00
Vincent Povirk
dce1ec06c8
ole32: Rename previous/nextProperty to left/rightChild.
...
These fields are used to build a binary tree of elements in a storage. This
should make the usage clearer.
2009-10-26 11:17:23 +01:00
Vincent Povirk
224ddb50f3
ole32: Clarify the timestamp fields in StgProperty.
...
According to the MS spec, these are FILETIME structures containing creation
and modification times.
2009-10-26 11:17:13 +01:00
Andrew Eikum
7b475390e4
ole32: Use rgiidExclude in StorageImpl::CopyTo.
2009-10-12 12:13:11 +02:00
Andrew Eikum
8672289c6e
ole32: Use snbExclude in StorageImpl::CopyTo.
2009-10-06 11:57:37 +02:00
Vincent Povirk
b41822b1dc
ole32: Remove useless comments.
2009-10-05 13:46:00 +02:00
Vincent Povirk
40433554d5
ole32: We do need to implement Commit/Revert for non-root storage.
2009-10-05 13:45:59 +02:00
Markus Stockhausen
abdebcdbbe
ole32/storage32: Fix for reference counters in nested storage.
2009-09-26 16:05:45 +02:00
Eric Pouech
35d6217def
Remove a couple of superfluous casts.
2009-08-29 17:11:26 +02:00
Andrew Eikum
a0d262c545
ole32: Overwrite previous CompObj instead of failing.
2009-08-28 11:54:30 +02:00
Andrew Eikum
a0aaa65507
ole32: Don't read past the end of the stream when converting block types.
2009-08-24 12:02:40 +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
Andrew Eikum
7ca31e83f0
ole32: Repair leak on error path.
2009-08-20 19:43:30 +02:00
Huw Davies
cc8c36c44c
ole32: In simple mode, CreateStream with the STGM_CREATE flag should fail.
2009-06-02 11:57:21 +02:00
Huw Davies
0faf155887
ole32: Store the creation flag - STGM_SIMPLE depends on this.
2009-06-02 11:57:21 +02:00
Huw Davies
8b7b67712f
ole32: Rename a parameter to better reflect its use.
2009-06-02 11:57:21 +02:00
Vincent Povirk
6f05770fbf
ole32: Don't ignore a failure to delete the old element in CreateStorage.
2009-06-01 16:16:02 +02:00
Vincent Povirk
e21adbf45a
ole32: Fix return code of DeleteStorage for read only storage.
2009-06-01 16:16:02 +02:00
Vincent Povirk
93a155381f
ole32: Fix crash when calling CreateStorage on read only storage.
2009-06-01 16:16:02 +02:00
Vincent Povirk
4a0901fb87
ole32: Fix crash when calling CreateStream on read only storage.
2009-06-01 16:16:02 +02:00
Huw Davies
2e11733f45
ole32: Don't ask for a name if it's not required.
2009-04-28 14:47:54 +02:00
Austin English
2fe86fb7cd
ole32: Rename a macro to prevent a conflict on NetBSD.
2009-04-24 11:51:53 +02:00
Vincent Povirk
9c02fda4a9
ole32: When renaming a storage element, delete from the current iface.
2009-04-02 16:28:30 +02:00
Michael Stefaniuc
0449701c31
ole32: Remove superfluous pointer casts.
2009-02-11 12:29:56 +01:00
Andrey Turkin
d20ab01ed2
ole32: Do not crash in WriteClassStg if passed NULL pointer.
2009-01-15 12:42:33 +01:00
Francois Gouget
b3bf746ff9
Straighten out some ellipses.
2008-11-26 12:33:34 +01:00
Michael Stefaniuc
79e31f6d40
ole32: Do not cast NULL.
2008-11-03 13:41:17 +01:00
Michael Stefaniuc
3ed8ffcc99
ole32: Use the right FAILED/SUCCEEDED macro instead of negating the opposite.
2008-10-08 13:41:58 +02:00
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
Mike McCormack
11e4b21a30
ole32: More tests and fixes for STGM_PRIORITY.
2006-04-18 11:15:03 +02:00
Mike McCormack
eed120995b
ole32: STGM_PRIORITY implies STGM_SHARE_EXCLUSIVE.
2006-04-03 12:15:34 +02:00
Mike McCormack
50436da519
ole32: Fix StgOpenStorage's handling of the STGM_PRIORITY flag.
2006-03-30 12:38:08 +02:00
Francois Gouget
6bddeb1cf7
Assorted spelling fixes.
2006-03-21 20:10:39 +01:00
Vitaly Lipatov
aee52b747e
ole32: Add descriptions for StgCreateDocfile and StgIsStorageFile functions.
2006-02-24 21:10:27 +01: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
Dr J A Gow
c74e5a784d
ole32: Fix up permissions when opening streams.
...
Fix up permissions when opening streams in storage objects when
storage object has been opened in transacted mode.
2006-02-21 11:17:32 +01:00
Robert Shearman
95312fcb63
ole: Remove "stub" from TRACEs of functions that aren't stubs.
2006-01-06 21:08:09 +01:00
Ulrich Czekalla
427920f8a2
ole: Fix SmallBlocksToBigBlocks loop.
...
Stop copying data when read returns 0 bytes
2006-01-06 12:16:04 +01:00
Ulrich Czekalla
707fa2c3a2
ole32: Return error instead of asserting if storage file is corrupt.
2005-12-22 17:15:05 +01:00
Markus Amsler
ae542af541
Improve c2man Documented-Total count.
2005-11-09 10:30:57 +00:00
Robert Shearman
6bc4327c92
- Initialize out pointer to NULL before access check in
...
IStorage_CreateStorage.
- WriteClassStg should return E_INVALIDARG if pstg is NULL instead of
asserting.
- ReadClassStg should return E_INVALIDARG if pstg is NULL instead of
crashing and a NULL pclsid should cause it to return the same
value.
2005-09-22 10:34:40 +00:00
Richard Cohen
908e9e889e
Relax the share mode validation for transacted storage, with a test.
2005-09-07 09:22:15 +00:00
Mike McCormack
61aabd66f5
Warning fixes for gcc 4.0.
2005-08-15 10:49:39 +00:00
Alexandre Julliard
04b7382db9
Remove duplicate definition of FILE_BEGIN.
2005-07-28 10:24:01 +00:00
Stefan Huehner
4f82e547d7
Fix some missing-declarations warnings.
2005-07-24 17:11:59 +00:00
Vitaly Lipatov
e633b45300
Added some documentation.
2005-07-07 17:21:44 +00:00
Dmitry Timoshkov
eba47f1dfe
Make remaining OLE interface vtables const.
2005-06-06 19:50:35 +00:00
Pierre d'Herbemont
49b1d335d9
Big Endian specific code fixes in order to conform with
...
NONAMELESSSTRUCT.
2005-05-18 09:44:13 +00:00
Juan Lang
2507264e05
- maintain proper byte order
...
- maintain PROPSETFLAG_ANSI flag based on codepage
- update comments
2005-05-14 11:06:44 +00:00
Mike McCormack
e3b43fa458
Make sure a stream can't be created in read only storage.
2005-05-13 13:58:43 +00:00
Mike McCormack
809cf354e4
Fix a memory leak in the ole storage implementation.
2005-05-10 15:59:59 +00:00
Matthew Mastracci
6e028f414d
Replace stub entry for StgOpenStorageEx with call to StgOpenStorage.
2005-05-06 14:32:30 +00:00
Matthew Mastracci
8188790946
Replace StgCreateStorageEx stub with call to StgCreateDocfile and add
...
required STGFMT_* enumerations.
2005-05-05 16:44:05 +00:00
Juan Lang
b99dfb0c1a
Define and use endian conversion macros for big-endian machines.
2005-04-24 17:22:26 +00:00
Mike McCormack
6714664dee
Eliminate forward declarations, make functions static.
2005-03-31 15:26:30 +00:00
Huw Davies
9be7f2789f
WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's
...
unclear when (if at all) this gets written.
2005-03-29 18:56:22 +00:00
Mike McCormack
17c3106896
Eliminate casts of the return value of HeapAlloc.
2005-03-21 11:25:13 +00:00
Troy Rollo
963b63ecbd
ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles.
2005-03-21 10:30:01 +00:00
Juan Lang
ac24801db0
Add a comment about byte order, change types to reduce casting and not
...
cast away constness.
2005-03-17 10:25:13 +00:00
Mike McCormack
77fc6a5d82
StgOpenStorage shouldn't open zero length storage files.
2005-03-11 13:17:10 +00:00
Mike McCormack
6f2f76c410
Shared reading of storage files requires STGM_TRANSACTED.
2005-03-09 11:44:59 +00:00
Mike McCormack
e9d334d0c9
Fix more incorrect uses of STGM_ enumerations.
2005-03-07 12:24:42 +00:00
Juan Lang
01239efa4a
Implement StgCreatePropSetStg.
2005-03-07 10:59:09 +00:00
Mike McCormack
a7609ee155
Test and fix grfMode handling in StgOpenDocfile.
2005-03-05 10:48:11 +00:00
Mike McCormack
607b43e6b4
Implement StgSetTimes.
2005-03-04 10:48:17 +00:00
Paul Vriens
8922da9ed4
Added some TRACE statements.
2005-02-25 13:58:37 +00:00
Mike McCormack
db69dcb5c1
Add struct StorageBaseImpl at the start of derived structures instead
...
of trying to keep the first members the same.
2005-02-24 19:39:27 +00:00
Mike McCormack
a6a91a440b
Implement and test IPropertySetStorage.
2005-02-21 20:58:09 +00:00
Mike McCormack
71424b80e5
Tests and fixes for StgOpenStorage.
2005-01-11 15:08:08 +00:00