Commit Graph

1782 Commits

Author SHA1 Message Date
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