Commit Graph

104 Commits

Author SHA1 Message Date
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 20dd1886d5 ole32: Split the data conversion functions out of WriteProperty. 2009-10-29 15:47:55 +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 0359a47d0d ole32: Fix the LEFTCHILD and RIGHTCHILD offset defines. 2009-10-28 11:10:59 +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 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 0faf155887 ole32: Store the creation flag - STGM_SIMPLE depends on this. 2009-06-02 11:57:21 +02:00
Austin English 2fe86fb7cd ole32: Rename a macro to prevent a conflict on NetBSD. 2009-04-24 11:51:53 +02:00
Huw Davies bfc32ae0c6 ole32: Add a helper function to return the file size and modify EnsureExists to use it. 2009-01-28 12:31:25 +01:00
Huw Davies 70ee112337 ole32: Move private data structure out of header file. 2009-01-28 12:31:01 +01:00
Austin English 1b24da3aa0 ole32: Spelling fixes. 2008-04-10 09:51:12 +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
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
Francois Gouget bb8e625b5b Assorted spelling fixes. 2006-12-05 10:31:47 +01: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 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
Alexandre Julliard ae525c1441 ole32: Make the virtual table functions static where possible. 2006-06-10 11:59:15 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +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
Ulrich Czekalla 707fa2c3a2 ole32: Return error instead of asserting if storage file is corrupt. 2005-12-22 17:15:05 +01:00
Mike McCormack c7fdb4565a Fix gcc 4.0 -Wpointer-sign warnings. 2005-07-05 11:02:54 +00:00
Dmitry Timoshkov eba47f1dfe Make remaining OLE interface vtables const. 2005-06-06 19:50:35 +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
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
Francois Gouget 93416cdaf7 Assorted spelling fixes. 2005-03-23 13:15:18 +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 e9d334d0c9 Fix more incorrect uses of STGM_ enumerations. 2005-03-07 12:24:42 +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
Alexandre Julliard 0467ce9fd7 Get rid of the non-standard ICOM_VFIELD macro. 2004-08-12 19:52:49 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Ove Kaaven 1f5315c80f Make sure that no files except unknwn.h include wine/obj_base.h
directly.
2002-12-05 20:33:07 +00:00
Huw D M Davies 9a8fc06357 DWORD at offset 0x40 in the header is the number of big blocks in the
small block depot chain.
Better failure handling.
2002-08-16 19:55:14 +00:00
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Alexandre Julliard 925d602766 CodeWeavers
Small fixes.
2002-01-31 21:01:35 +00:00
Jukka Heinonen 420f6c0030 Name of the structured storage file root node is path of the file, not
the name of the root node stored in the file.
When reading streams stored into structured storage files, EOF is not
supposed to cause an error if at least one byte can be returned.
2002-01-01 00:13:32 +00:00
Alexandre Julliard 74af67ef42 Removed shell.h. Cleaned up the nested includes mess in wine/obj_*.h. 2000-09-26 00:00:55 +00:00
Patrik Stridvall 3b233623cc Fixed some warnings. 2000-03-24 21:19:02 +00:00
Andrew Lewycky 1529f58467 Rewrite the BIGBLOCKFILE implementation for better performance. 2000-03-17 15:08:25 +00:00
Pierre Mageau 89aa86165f Implementation of OleConvert routines.
Thuy Nguyen <thuy@macadamian.com>
Don't allow to resize stream open in read only mode
Allow write access for stream/storage open with STGM_READWRITE.
StgOpenStorage return values are now more detailed.
Don't rely on STGM_CREATE flag in the Storage constructor.
Preventing to write out of date property.

Owen Wang <owenw@corel.ca>
Allow both positive & negative 32-bit integers as with MFC assumption.
This patch improves the 32bit limit on IStream::*_Seek operations.

John Li <johnl@corel.ca>
When WP opens a linked file, the malloc function in
OLECONVERT_LoadOLE10(...) returns a NULL. This causes a later Wine
crash. The actual problem is the function reading a large data length.
2000-02-25 20:58:25 +00:00
Gerard Patel 617f6908de Returns an error if trying to write to a stream opened for read. 2000-01-26 02:04:44 +00:00
Francois Gouget 01c9ac401f Generalized the use of the new ICOM_VFIELD and ICOM_VTBL macros. 1999-10-31 01:59:23 +00:00
Ulrich Weigand 2a722f498a Moved bulk of OLE implementation to dlls/ subdirectories. 1999-09-19 18:36:53 +00:00