Commit Graph

1989 Commits

Author SHA1 Message Date
Rob Shearman db33e8fdd9 ole32: Fix off-by-one error in FileMonikerImpl_DecomposePath.
strgtable needs to be an array of the same size as str, including the
nul-terminator.
2009-11-29 16:39:45 +01:00
Rob Shearman 6592c25bc7 ole32: Fix circular reference count in default handler objects.
This is caused by caching a pointer and reference to the data cache's
IPersistStorage interface without managing reference counts
appropriately.
2009-11-24 15:54:56 +01:00
Rob Shearman 4b1d527b15 ole32: Fix a typo in PropertyStorage_WritePropertyToStream that caused the wrong data to be written to the stream.
The field pClipData is a pointer to the data to be written, not the start of it.
2009-11-24 15:54:41 +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
Rob Shearman 9943facb26 ole32: Fix error code returned by CoGetClassObject/CoCreateInstance in CLSCTX_REMOTE_SERVER case. 2009-11-24 10:52:07 +01:00
Rob Shearman 8554ce5b18 ole32: Add tests for errors returned by CoCreateInstance for classes that are not registered. 2009-11-24 10:52:02 +01:00
Marcus Meissner 000e1e0ce0 ole32: Some missing error checking in FileMonikerImpl_CommonPrefixWith (Coverity). 2009-11-24 10:51:42 +01:00
Rob Shearman 24cccbf4d1 ole32: Add inproc handler object creation support for CoCreateInstance. 2009-11-24 10:46:12 +01:00
Rob Shearman a7b621bd9b ole32: Fix behaviour of CoLockObjectExternal with fLastUnlockReleases as FALSE.
The parameter controls whether weak references are ignored, not
whether the last stub_manager_int_release should be called when the
total reference count goes to zero.
2009-11-24 10:46:06 +01:00
Rob Shearman bcf0be6a99 ole32: Add test for CoLockObjectExternal with fLastUnlockReleases as FALSE. 2009-11-24 10:46:00 +01:00
Rob Shearman d963e97f32 ole32: Objects registered as local servers don't need to support IClassFactory. 2009-11-20 16:38:56 +01:00
Rob Shearman 377159c4a7 ole32: Fix size of memory allocation in FileMonikerImpl_DecomposePath. 2009-11-20 16:38:46 +01:00
Rob Shearman d1db29e801 ole32: Fix buffer overrun in CLIPFORMAT_UserMarshal.
The string in format is nul-terminated so use memcpy to copy it into
the buffer and don't try to nul-terminate it manually which causes a
write outside of the allocated buffer length.

Fix a similar off-by-one error in CLIPFORMAT_UserUnmarshal too. This
time it is only reading from beyond the buffer.
2009-11-20 16:38:39 +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 3cd2a80eda ole32: Add test for freeing the parent of a storage. 2009-11-20 11:15:21 +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 a2c405fa15 ole32: Add a test for freeing the parent of an open stream. 2009-11-19 11:46:18 +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 d3dbc8b1e6 ole32: Rename property variables in storage stream implementation. 2009-11-18 11:03:30 +01:00
Rob Shearman 932544d34c ole32: OleInitialize should return S_OK if it is called for the first time on a thread independently of CoInitializeEx. 2009-11-17 15:14:53 +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
Hans Leidekker e265d534e4 ole32: Return success from OleLockRunning when the object does not support IRunnableObject. 2009-11-11 11:50:50 +01:00
Vincent Povirk bc3fa10773 ole32: Add tests for IStorage_RenameElement. 2009-11-11 10:55:07 +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
Rob Shearman 0228008bb8 widl: Allow pointers, type-qualifiers and other more complicated constructions in sizeof and cast expressions. 2009-11-09 20:42:57 +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 0359a47d0d ole32: Fix the LEFTCHILD and RIGHTCHILD offset defines. 2009-10-28 11:10:59 +01:00
Alexandre Julliard 0beaa44d7d ole32: Specify the full application path when starting rpcss.exe. 2009-10-27 11:20:34 +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
Alexandre Julliard f7bd47f78b ole32/tests: Set returned pointer to NULL in CreateInstance (Valgrind). 2009-10-22 13:04:36 +02:00
Paul Vriens 5f52d86cc2 oleaut32/tests: Remove a temp file. 2009-10-20 14:39:37 +02:00
Vincent Povirk 657c832765 ole32: Add test showing storage objects can't be opened twice. 2009-10-14 11:23:07 +02:00
Andrew Eikum 7e7ed92b5d ole32/tests: Add tests for IStorage::CopyTo with IID exclusions. 2009-10-12 12:13:14 +02:00
Andrew Eikum 7b475390e4 ole32: Use rgiidExclude in StorageImpl::CopyTo. 2009-10-12 12:13:11 +02:00
Andrew Eikum 29fc53b632 ole32/tests: Add tests for IStorage::CopyTo with SNB exlusions. 2009-10-06 11:57:44 +02:00
Andrew Eikum 8672289c6e ole32: Use snbExclude in StorageImpl::CopyTo. 2009-10-06 11:57:37 +02:00
Andrew Eikum 60d8547e61 ole32/tests: Add tests for IStorage::CopyTo. 2009-10-06 11:57:29 +02:00
Nikolay Sivov 5b723235d8 ole32: Check source pointer in StringFromGUID2. 2009-10-06 11:57:20 +02:00
Vincent Povirk b41822b1dc ole32: Remove useless comments. 2009-10-05 13:46:00 +02:00
Vincent Povirk 536aa9be99 ole32/tests: Add test for non-root transacted storage objects. 2009-10-05 13:46:00 +02:00
Vincent Povirk 3c9067de9f ole32/tests: Add test for IStorage::Revert. 2009-10-05 13:46:00 +02:00
Vincent Povirk d6e020fdb8 ole32/tests: Test substorages of transacted storage objects. 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
Jörg Höhle 08df19b405 ole32/tests: Guard ReleaseStgMedium with SUCCEEDED. 2009-09-30 14:31:57 +02:00
Markus Stockhausen abdebcdbbe ole32/storage32: Fix for reference counters in nested storage. 2009-09-26 16:05:45 +02:00
Alexandre Julliard f5ed7868ee ole32: Don't register interfaces that belong to actxprxy. 2009-09-11 12:44:15 +02:00
Huw Davies 9b38ffe6c6 ole32: The server principal name can be the constant COLE_DEFAULT_PRINCIPAL. 2009-09-08 13:51:18 +02:00
Andrew Eikum 968126c231 ole32: Don't fail when constants are 'incorrect'. 2009-09-08 12:11:10 +02:00
Austin English f8daa90284 ole32: Fix build on Power PC. 2009-09-01 12:52:11 +02:00
Eric Pouech 09adcee263 ole32: Fix various missing Release calls on monikers. 2009-08-29 17:11:31 +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
Austin English 57bc49099b ole32: Add a stub for CoGetCurrentLogicalThreadId. 2009-08-27 13:36:04 +02:00
Alexandre Julliard 4964374570 ntdll: The large integer functions are 32-bit only. 2009-08-24 15:17:33 +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
Juan Lang b308157bf2 ole32: Correct byte count. 2009-08-20 15:26:54 +02:00
Juan Lang c664e9f494 ole32: On big endian machines, copy strings to little endian order without mucking with the map they're stored in. 2009-08-20 15:26:45 +02:00
Alexandre Julliard 4770ba7bcc ole32/tests: Skip a string that may not round-trip in all codepages. 2009-08-19 10:02:50 +02:00
Alexandre Julliard a104766b07 ole32/tests: Don't release the token object since it doesn't have a proper ref count. 2009-08-18 13:00:37 +02:00
Alexandre Julliard 9b2e414e91 ole32/tests: Avoid infinite waits in tests. 2009-08-18 12:48:57 +02:00
Alexandre Julliard d617642999 ole32/tests: Avoid depending on the heap allocation order for the CoGetObjectContext test. 2009-07-22 14:42:50 +02:00
Francois Gouget 3cbeae820d ole32: Make apartment_addref() static. 2009-07-07 11:16:26 +02:00
Francois Gouget f8afcdbb7c ole32: Reorder some compobj functions to avoid forward declarations. 2009-07-07 11:16:22 +02:00
Paul Vriens f057d7d63f ole32/tests: Reset a variable before testing. 2009-07-06 14:35:26 +02:00
Alexandre Julliard 05beb0daed ole32/tests: Fix the HMETAFILE_UserSize prototype. 2009-07-03 13:57:21 +02:00
Alexandre Julliard 56af92b073 makefiles: Regenerate the source lists using make_makefiles. 2009-07-03 13:26:38 +02:00
Michael Stefaniuc a1b286086e ole32: Import the content of version.rc into the main rc file.
There is no need for a separate file.
2009-07-03 13:06:18 +02:00
Hans Leidekker 6986d97f18 ole32: Use existing MTA in CoGetContextToken and CoGetObjectContext. 2009-07-03 13:06:17 +02:00
Paul Vriens fb0275dd31 ole32/tests: Fix some test failures on Win9x/WinME. 2009-07-02 14:26:02 +02:00
Huw Davies e67da11716 ole32: Implement OleCreateEmbeddingHelper.
Based on a patch by Rob Shearman.
2009-06-26 11:59:04 +02:00
Hans Leidekker 82bcafe8eb ole32: Add tests for CoGetContextToken. 2009-06-23 15:52:58 +02:00
Hans Leidekker b9be397024 ole32: Implement CoGetContextToken. 2009-06-23 15:52:37 +02:00
Huw Davies 7490f922e0 ole32/tests: Add a test for enhanced metafile retrieval. 2009-06-23 11:45:08 +02:00
Huw Davies 5c97db9db6 ole32: Add support for retrieving enhanced metafiles. 2009-06-23 11:45:02 +02:00
Huw Davies f48e5e2b5f ole32: Since OleCreateLinkFromData is a stub we should return S_FALSE from OleQueryLinkFromData. 2009-06-22 14:32:30 +02:00
Francois Gouget 872035f1ab ole32: Make stub_manager_int_addref() static. 2009-06-22 13:31:03 +02:00
Francois Gouget 887c395ce2 ole32: Reorder some stubmanager functions to avoid forward declarations. 2009-06-22 13:30:58 +02:00
Vincent Povirk 51385a98cc ole32: Add support for rendering HENHMETAFILE clipboard objects. 2009-06-22 11:22:11 +02:00
Alexandre Julliard c98ce23fd2 ole32: Get rid of line feeds and tabs in traces. 2009-06-09 17:01:14 +02:00
Francois Gouget 70cdb5c3e4 ole32/tests: Make test_readonly() static. 2009-06-05 14:43:25 +02:00
Paul Vriens cb81487707 ole32/tests: Fix remaining test failures on NT4 and below. 2009-06-04 12:11:51 +02:00
Paul Vriens 27485d9b53 ole32/tests: Fix a crash on NT4 and below. 2009-06-03 11:26:55 +02:00
Paul Vriens df24ec66dd ole32/tests: Run more tests on Win9x by using A-functions. 2009-06-03 11:26:47 +02:00
Paul Vriens 08a6e0c2d4 ole32/tests: Move common variables to the top. 2009-06-03 11:26:36 +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
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
Vincent Povirk 5aab52c977 ole32: Add some tests for read only storage objects. 2009-06-01 16:16:02 +02:00
Alexandre Julliard fb640601ea ole32: Fix some pointer conversion warnings on 64-bit. 2009-05-28 15:24:25 +02:00
Huw Davies 628a8743d2 ole32/tests: Fix tests on systems without IE installed. 2009-05-25 11:21:12 +02:00
Huw Davies 485811cf9c ole32: Explicitly add the three ULONGs from the METAFILEPICT struct to allow for padding in the 64-bit version. 2009-05-22 15:16:29 +02:00
Huw Davies ed09de1e6f ole32: Fix remote HMETAFILEPICT marshalling on 64 bit systems. 2009-05-21 16:17:52 +02:00
Huw Davies 825a1b7595 ole32/tests: Use the current stream position to determine the marshal data size. 2009-05-21 16:17:52 +02:00
Vincent Povirk b49d541cb5 ole32: Process sent and DDE messages in CoWaitForMultipleHandles. 2009-05-20 10:54:26 +02:00
Huw Davies 82b4b6423c ole32/tests: Exercise the HGLOBAL marshaller over a range of block sizes. 2009-05-20 10:51:04 +02:00
Huw Davies 8aa2db4724 ole32: Use OleCreateFromDataEx to implement OleCreateFromData. 2009-05-19 15:46:41 +02:00
Huw Davies d2837d91d0 ole32: Add support for retrieving the data from CF_EMBEDDEDOBJECT. 2009-05-19 15:46:35 +02:00
Huw Davies 63eb810428 ole32: Add support for retrieving data from IPersistStorage. 2009-05-19 15:46:29 +02:00
Huw Davies a9f96ad60a ole32: Beginnings of OleCreateFromDataEx. 2009-05-19 15:46:24 +02:00
Huw Davies 564b960428 ole32/tests: Cope with an alignment hole between the two marshalled interfaces. 2009-05-19 15:46:17 +02:00
Huw Davies 707f962896 ole32/tests: Remove assumptions about the size of marshalled data. 2009-05-19 15:46:11 +02:00
Huw Davies c36826705c ole32: Implement TYMED_ISTORAGE marshalling. 2009-05-18 13:27:53 +02:00
Huw Davies 3b15bbfd37 ole32: Implement TYMED_ISTREAM marshalling. 2009-05-18 13:27:49 +02:00
Huw Davies 10919f7fb9 ole32/tests: Add tests for TYMED_ISTREAM marshalling. 2009-05-18 13:27:43 +02:00
Huw Davies cc68fc4467 ole32: Add support for marshalling pUnkForRelease. 2009-05-18 13:27:37 +02:00
Huw Davies 4581af5863 ole32/tests: Add tests for STGMEDIUM marshalling with a non-NULL pUnkForRelease. 2009-05-18 13:27:34 +02:00
Huw Davies 5b6312f24c ole32: Implement the WdtpInterfacePointer marshal functions. 2009-05-18 13:27:30 +02:00
Huw Davies affe9a1e6e ole32/tests: Show that it's the loword of the separate flag parameter that determines the marshalling context. 2009-05-18 13:27:24 +02:00
Huw Davies e4d43c1099 ole32: Add proxies and stubs for FillAppend and FillAt. 2009-05-18 13:24:42 +02:00
Huw Davies 069d57502d ole32: Add proxies and stubs for ReadAt and WriteAt. 2009-05-18 13:24:37 +02:00
Huw Davies 5abb393eb7 ole32: Add proxies and stubs for OpenStream and EnumElements. 2009-05-18 13:24:31 +02:00
Huw Davies aa13c7c522 ole32: Add proxies and stubs for Seek and CopyTo. 2009-05-18 13:24:19 +02:00
Huw Davies e8be59b8f8 ole32: Add proxies and stubs for Read and Write. 2009-05-18 13:24:13 +02:00
Huw Davies 374aacdc9f ole32: Add proxies and stubs for GetData and GetDataHere. 2009-05-18 13:24:00 +02:00
Huw Davies b045342ae8 ole32/tests: Add tests to show the WdtpInterfacePointer marshal data looks like the result of CoMarshalInterface. 2009-05-12 14:57:54 +02:00
Huw Davies 782ec11a0d ole32/tests: Make the size tests for the WdtpInterfacePointer marshaller more restrictive. 2009-05-12 14:57:51 +02:00
Alexandre Julliard 18419dab31 ole32/tests: Fix the clipboard format test on Win64. 2009-05-08 13:52:05 +02:00
Hans Leidekker bd4975acb0 ole32: Use existing MTA in CoGetClassObject and CoCreateInstance.
Custom actions in the CS3 installer depend on this.
2009-05-05 14:14:20 +02:00
Hans Leidekker d2820c0684 ole32: Add tests to show that COM needs to be initialized only once for multi-threaded apartments. 2009-05-05 14:14:10 +02:00
Huw Davies 66d04f8eb6 ole32: Implement GetDataHere. 2009-04-30 17:20:00 +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
Huw Davies d2837cb94d ole32/tests: Improve the traces in the test. 2009-04-24 15:02:23 +02:00
Huw Davies 739ca6deae ole32: Fix a couple of comments. 2009-04-24 15:02:11 +02:00
Huw Davies 12edc21a3a ole32: Expose the marshalled data on the clipboard rather than as a window prop so that other processes can actually read it. 2009-04-24 15:02:05 +02:00
Austin English 2fe86fb7cd ole32: Rename a macro to prevent a conflict on NetBSD. 2009-04-24 11:51:53 +02:00
Aric Stewart 46da8ef18b ole32: CoGetTreatAsClass should return S_FALSE if it cannot even find the key for the requested CLSID. 2009-04-24 11:51:35 +02:00
Huw Davies 211268a74e ole32: Rewrite OleQueryCreateFromData so it compares clipboard format ids rather than strings and be sure to free the enumerator. 2009-04-23 18:14:27 +02:00
Huw Davies b133e94b62 ole32: Register a few more clipboard formats and make them have global scope. 2009-04-23 18:14:27 +02:00
Huw Davies 689c510f63 ole32: Add a stub for OleCreateFromDataEx. 2009-04-23 18:14:27 +02:00
Huw Davies 11cb788f35 ole32/tests: For win9x and winme the size of the data on the clipboard may be larger than expected. 2009-04-23 18:14:03 +02:00
Huw Davies 083473659b ole32/tests: Rename variable to avoid a conflict on some systems. 2009-04-22 17:00:56 +02:00
Huw Davies aaed9de51a ole32: Improve the TRACEs by printing the fmtetc contents. 2009-04-22 17:00:53 +02:00
Huw Davies 6928615d5c ole32/tests: Add some tests to exercise the enumerator. 2009-04-22 14:43:37 +02:00
Huw Davies 1556d831c8 ole32/tests: win9x and winme don't enumerate duplicated cfFormats. 2009-04-22 14:43:33 +02:00
Huw Davies d18875f306 ole32/tests: win64 sets the lsb of the final DWORD in the ole private data header. 2009-04-22 14:43:20 +02:00
Huw Davies f9d48e7ba0 ole32/tests: win9x and winme don't have CF_UNICODETEXT. 2009-04-22 14:43:17 +02:00
Huw Davies 508d6db8e2 ole32/tests: win9x, winme and nt4 ignore the target device. 2009-04-22 14:43:13 +02:00
Huw Davies 57d555c796 ole32/tests: OleGetClipboard doesn't return the same object under win9x, winme and nt4. 2009-04-22 14:43:09 +02:00
Huw Davies 08d4352f9b ole32: Add support for enumerating non-ole clipboard formats. 2009-04-21 13:26:17 +02:00
Huw Davies 575b0e1435 ole32: Don't set cf_dataobject if we're clearing the clipboard. 2009-04-21 13:21:19 +02:00
Huw Davies 1e73a54690 ole32: Check that the target devices match. 2009-04-21 13:16:48 +02:00
Huw Davies bdca138d5a ole32: Make get_priv_data return target device ptrs (rather than offsets) and add a couple of helper functions to simplify this process. 2009-04-21 13:16:37 +02:00
Huw Davies aadd07ca9d ole32/tests: Tests for a flushed clipboard. 2009-04-16 11:37:39 -05:00
Huw Davies c648dcf615 ole32: Try global and stream types if the requested types don't match the source. 2009-04-16 11:37:30 -05:00
Huw Davies 18d413bb74 ole32: OleFlushClipboard should render all formats to the clipboard. 2009-04-16 11:37:25 -05:00
Huw Davies 9bacd00ce7 ole32: Add support for getting storage based objects from a flushed clipboard. 2009-04-16 11:37:18 -05:00
Huw Davies 25d7ecde47 ole32: Add support for getting stream based objects from a flushed clipboard. 2009-04-16 11:37:10 -05:00
Huw Davies f8a9ca2cfa ole32: Add support for getting global handle objects from a flushed clipboard. 2009-04-16 11:37:03 -05:00
Huw Davies 718831b77c ole32/tests: Add a few more reference count tests. 2009-04-16 11:36:53 -05:00
Huw Davies fca4ed5596 ole32: After a call to GetData the consumer should hold a ref on the source data object. 2009-04-16 11:36:42 -05:00
Huw Davies d2156f3894 ole32: Now that the consumer side of the clipboard separated from the main clipboard object, simplify the initialization code. 2009-04-16 11:36:39 -05:00
Huw Davies df08d463c9 ole32: The consumer data object is not a singleton, but reflects the state of the clipboard when it was acquired. 2009-04-16 11:36:00 -05:00
Huw Davies f8a1b7e5a5 ole32/tests: Tests that show the consumer data object isn't a singleton. 2009-04-16 11:35:24 -05:00
Huw Davies 4311691a88 ole32: If there's a current data object on the ole clipboard GetData should use it. 2009-04-16 11:35:15 -05:00
Huw Davies 6d4a394099 ole32: Store the marshalled IDataObject in a window property of the clipboard window.
This is somewhat different from how Windows behaves. Windows stores
two properties; an IID and an endpoint number.
2009-04-16 11:35:08 -05:00
Huw Davies 1ec12f68b1 ole32: Rename a variable. 2009-04-16 11:34:55 -05:00
Huw Davies bd9eb3b527 ole32: Don't pass a window if we're reading from the clipboard. 2009-04-16 11:34:49 -05:00
Huw Davies 6526b570e1 ole32: Add a function to return (and possibly create) the clipboard's window. 2009-04-16 11:34:39 -05:00
Huw Davies 6ce9922f3d ole32: Add a helper function to set and release the source IDataObject. 2009-04-16 11:34:06 -05:00
Huw Davies bf8d85cee0 ole32: Add a helper function to return the ole clipboard structure. 2009-04-16 11:33:57 -05:00
Huw Davies 72f53ed4d7 ole32: Unicodify window creation. Don't register the class as global. 2009-04-16 11:33:50 -05:00
Huw Davies 5defc71dfe ole32: Use helper function to duplicate global memory. 2009-04-16 11:33:40 -05:00
Huw Davies 469d6ea2df ole32: Add support for rendering storage data to the clipboard. 2009-04-16 11:33:29 -05:00
Huw Davies f4745c0a06 ole32: Make all formats available to the clipboard. 2009-04-16 11:33:19 -05:00
Huw Davies 1e8727aacf ole32: Add support for rendering stream data to the clipboard. 2009-04-16 11:33:03 -05:00
Huw Davies 5e557d83ca ole32: Rewrite the clipboard window's wndproc to use the cached enum data. 2009-04-16 11:30:38 -05:00
Huw Davies b958dfdc47 ole32: Change helper function to return the matching entry. 2009-04-16 11:30:09 -05:00
Huw Davies e58a9db129 ole32: Store a cached version of the local data object's enumeration. 2009-04-16 11:30:00 -05:00
Alexandre Julliard c378490d7d ole32/tests: Avoid size_t in traces. 2009-04-08 16:09:52 +02:00
Vincent Povirk 9c02fda4a9 ole32: When renaming a storage element, delete from the current iface. 2009-04-02 16:28:30 +02:00
Huw Davies 628332aee1 ole32: Change the global memory duplicator to return HRESULT. 2009-04-01 15:23:20 +02:00
Huw Davies 3cb4ab588d ole32: Rename a few variables and remove a couple of meaningless comments. 2009-04-01 15:23:14 +02:00
Huw Davies f2ba37e5b9 ole32: Move the embed source hack to a separate function. 2009-04-01 15:23:09 +02:00
Huw Davies 126ec0181f ole32/tests: Set tymed in GetData and AddRef the interfaces (ReleaseStgMedium releases them even if pUnkForRelease is non-NULL). 2009-04-01 15:23:03 +02:00
Huw Davies 61fa9bb061 ole32/tests: Add some tests for stream data. 2009-03-31 15:00:38 +02:00
Huw Davies d28d731b61 ole32/tests: Add broken return value for win98. 2009-03-31 15:00:33 +02:00
Huw Davies 5492fd2b0d ole32/tests: On win9x GetClipboardData returns a new handle. 2009-03-31 15:00:28 +02:00
Huw Davies 2c6be9521b ole32: Simplify some of the error handling. 2009-03-31 15:00:23 +02:00
Huw Davies 59501e037b ole32/tests: Tests for EnumFormatEtc. 2009-03-30 16:42:46 +02:00
Huw Davies 89dcb968a3 ole32/tests: Fix DVTARGETDEVICE offsets. 2009-03-30 16:42:41 +02:00
Huw Davies 969e5d7ee1 ole32: Reimplement the formatetc enumerator using 'Ole Private Data'. 2009-03-30 16:42:22 +02:00
Huw Davies fc78f552a0 ole32: AddRef does not return an HRESULT. Have the constructor create the object with one reference. 2009-03-30 16:42:12 +02:00
Huw Davies 25f1b058a8 ole32: Change the enum formatetc constructor to return HRESULT. 2009-03-30 16:42:08 +02:00
Huw Davies 1cc023c53a ole32: Don't hold a reference on the parent IDataObject. 2009-03-30 16:42:03 +02:00
Huw Davies 1213964330 ole32: Rename a variable. 2009-03-30 16:41:56 +02:00
Huw Davies d93688a721 ole32: Use a helper function to access the enum format implementation. 2009-03-30 16:41:51 +02:00
Huw Davies 690202440e ole32: Set the 'Ole Private Data' clipboard format. 2009-03-26 16:11:24 +01:00
Huw Davies b7a2e83ddb ole32: OleFlushClipboard shouldn't call EmptyClipboard. 2009-03-26 16:11:21 +01:00
Huw Davies b75caee2ab ole32/tests: Tests for the 'Ole Private Data' clipboard format. 2009-03-25 15:43:36 +01:00
Huw Davies 3383db6107 ole32: Move the code to set the clipboard formats to a separate function. 2009-03-25 15:43:27 +01:00
Huw Davies ef4b6b8749 ole32: Store the ole clipboard window's HWND in the DataObject clipboard format. 2009-03-23 15:52:18 +01:00
Huw Davies e77ab142e4 ole32: Register DataObject clipboard format. 2009-03-23 15:52:18 +01:00
Huw Davies c0fbbe7d91 ole32: Use IsEqualIID rather than memcmp. 2009-03-23 15:52:18 +01:00
Huw Davies 319d0ddca6 ole32: Simplify QueryInterface. 2009-03-23 15:52:18 +01:00
Huw Davies d72181381e ole32: pFmt isn't exposed to the client, so simplify its allocation. 2009-03-23 15:52:18 +01:00
Huw Davies 8beb83866f ole32: Rearrange functions to eliminate forward declarations. 2009-03-23 15:52:18 +01:00
Huw Davies 96bd8c5a7d ole32: Add a helper function to retrieve the implementation ptr. 2009-03-23 15:52:18 +01:00
Huw Davies e7ffa2aeb5 ole32: Don't allocate the ole clipboard object in global memory - we're not going to directly expose it to other processes. 2009-03-23 15:52:18 +01:00
Huw Davies e6eeb3aa17 ole32: Remove unused static variable. 2009-03-23 15:52:18 +01:00
Michael Stefaniuc efbb4ebf3e widl: Output "LONG" instead of "long" for a 32bit integer.
long is always 32bit in IDL files but that's not true in C.
2009-03-13 11:15:21 +01:00
Alexandre Julliard 7b6dd2c9f8 ole32: Get rid of WINE_StringFromCLSID and A->W conversions. 2009-03-12 13:09:52 +01:00
Alexandre Julliard 6b40f64e18 ole32: Make compobj.dll into a stand-alone 16-bit module. 2009-03-12 13:09:31 +01:00
Alexandre Julliard 2e1b309fba ole32: Make ole2.dll into a stand-alone 16-bit module. 2009-03-11 17:05:20 +01:00
Alexandre Julliard f7fe2edadd ole32: Make storage.dll into a stand-alone 16-bit module. 2009-03-11 17:03:10 +01:00
Alexandre Julliard 7511d67447 ole32: Make ole2nls.dll into a stand-alone 16-bit module. 2009-03-11 16:53:06 +01:00
Alexandre Julliard dc81065d44 ole32: Make ole2thk.dll into a stand-alone 16-bit module. 2009-03-11 16:51:09 +01:00
Alexandre Julliard b4bbe0c4a0 ole32: Make ole2prox.dll into a stand-alone 16-bit module. 2009-03-11 16:51:09 +01:00
Alexandre Julliard ea6382623e ole32: Make ole2conv.dll into a stand-alone 16-bit module. 2009-03-11 16:51:09 +01:00
Rob Shearman d974922698 ole32: Fix a memory leak in an error path in COMPOBJ_DllList_Add. 2009-03-09 12:04:35 +01:00
Paul Vriens e31df3616a ole32/tests: Remove an unused function declaration. 2009-03-06 15:39:30 +01:00
Huw Davies 561df2f1c6 ole32: Add support for VT_DECIMAL. 2009-03-06 15:39:02 +01:00
Huw Davies 5e0d4c774c ole32/tests: win9x and winnt don't include the trailing '\0'. 2009-02-26 15:13:26 +01:00
Alexandre Julliard b55f6dfed5 ole32/tests: Don't hang forever in the child process. 2009-02-17 14:58:45 +01:00
Rob Shearman 2803516d26 ole32: Round the extected size in the marshal and moniker tests using the results of sizing a global, not a heap pointer.
The rounding isn't the same on Win9x, and the size being compared to
is that of a global handle.
2009-02-17 12:47:53 +01:00
Rein Klazes 788add572b ole32: In PropVariantCopy() fix calculation size of array that contain pointers, not characters. 2009-02-16 15:35:15 +01:00
Michael Stefaniuc 0449701c31 ole32: Remove superfluous pointer casts. 2009-02-11 12:29:56 +01:00
Rob Shearman ad880ba057 ole32: Fix a test failure in the moniker tests on Win9x.
Also fix a crash in running the tests on Win95.
2009-02-11 11:42:21 +01:00
Rob Shearman 1e8ae571f5 ole32: Fix some test failures in the free threaded marshaller tests on Win9x & NT4.
These platforms only write 8 bytes into the stream so cope appropriately.
2009-02-11 11:42:17 +01:00
Michael Stefaniuc a90828aa60 ole32: Use GetWindowLongPtr/SetWindowLongPtr for pointers. 2009-02-10 12:33:00 +01:00
Rob Shearman b859d2052b ole32: Allow some optional methods to be called in the OleCreate tests.
Fixes failures in these tests on NT4.
2009-02-09 14:03:09 +01:00
Rob Shearman d26250fd08 ole32: Add framework in the ole2 tests for having optionally called methods. 2009-02-09 14:03:03 +01:00
Rob Shearman db851a1d2a ole32: Output the size that we didn't expect in the HGLOBAL marshalling tests. 2009-02-09 14:02:29 +01:00
Rob Shearman f2b17029aa ole32: Fix some test failures in the HGLOBAL marshalling tests on 64-bit Windows. 2009-02-09 13:58:07 +01:00
Rob Shearman 2eca96af67 ole32: Fix CLIPFORMAT marshalling on 64-bit platforms by not using the wireCLIPFORMAT type.
The wireCLIPFORMAT represents the memory equivalent format of the wire
format and not the wire format itself.

Also update the tests to do the same.
2009-02-09 13:58:04 +01:00
Rob Shearman 40660894c8 ole32: Fix an ole2 test failure on Win9x and NT4.
The combination of CF_BITMAP and TYMED_GLOBAL isn't accepted on newer
versions of Windows, so mark it as broken.
2009-02-06 13:03:16 +01:00
Andrew Talbot 772a9b3540 ole32: Remove superfluous shadow variables. 2009-02-03 12:39:35 +01:00
Rob Shearman 712e33e669 ole32: Initialise more of the context passed into user marshaling functions in the tests for these functions. 2009-02-02 11:55:29 +01:00
Rob Shearman d3085abc08 Change parameter type from size_t to SIZE_T for MIDL_user_allocate. 2009-02-02 11:55:21 +01:00
Ge van Geldorp 4b27dfec93 ole32/tests: Write to HKCR instead of HKCU/Software/Classes for the benefit of older Windows versions. 2009-01-29 15:59:39 +01:00
Rob Shearman 0025bdf607 ole32: Fix a missing CoUninitialize in test_CoFreeUnusedLibraries. 2009-01-28 14:15:48 +01:00