Huw Davies
327100fef9
ole32: Don't block inside CoDisconnectObject.
...
This may be called inside a COM call to the object.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-14 12:43:17 +09:00
Huw Davies
35571a7254
ole32: Hold a reference to the stub manager throughout an incoming call.
...
This will enable us to defer deleting the manager until the call has finished.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-14 12:43:13 +09:00
Huw Davies
09cd89c0cc
ole32: Implement OleCreateFromFileEx.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-09 19:17:08 +09:00
Huw Davies
94ee4096ec
ole32: Add a stub for OleCreateFromFileEx.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-09 19:17:02 +09:00
Huw Davies
d340f09a33
ole32: Don't try to load a handler - the real server is needed.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-09 19:16:51 +09:00
Huw Davies
577644f3c1
ole32: Test the result of IRunningObjectTable_GetObject against S_OK.
...
Typically it would return MK_E_UNAVAILABLE and not S_FALSE if the moniker
is not registered.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-09 19:16:43 +09:00
Jacek Caban
38a9a232f7
ole32: Use get_stub_manager_from_object in CoDisconnectObject.
2015-09-04 19:29:29 +09:00
Jacek Caban
cb183688bb
ole32: Catch crashes in stub object destructors when destroying stub manager.
2015-09-02 22:45:17 +09:00
Jacek Caban
c784e34693
ole32: Quote executable name in CreateProcess call.
...
Fixes tests on VMs that have spaces in executable path.
2015-09-02 22:45:05 +09:00
Jacek Caban
0a92038b38
ole32: Added tests for IPSFactoryBuffer::CreateStub calls.
2015-08-29 14:28:23 +09:00
Jacek Caban
9bdb97e694
ole32: Use proper interface pointer in CreateStub call.
2015-08-29 14:28:23 +09:00
Jacek Caban
e5edbc6fa0
ole32: Use proper IUnknown implementation when finding and creating stub manager.
2015-08-29 14:28:22 +09:00
Jacek Caban
60451f9855
ole32: Create interface stub only if it's not already created.
2015-08-29 14:28:22 +09:00
Francois Gouget
25870c1fba
ole32: A cosmetic fix for the CoMarshalInterface() trace.
2015-08-29 14:27:39 +09:00
Andrey Gusev
5cdcd4493f
Assorted spelling and typos fixes.
2015-08-18 15:00:13 +09:00
Francois Gouget
f8a7d6ed74
Assorted spelling fixes.
2015-08-07 23:50:48 +09:00
Vincent Povirk
9d517a1727
ole32: Ignore high part of size in storage version 3 files.
2015-08-06 21:42:46 +09:00
Hans Leidekker
4062db444c
ole32: Add stub implementations of CoGetActivationState and CoGetCallState.
2015-08-03 12:11:10 +02:00
Piotr Caban
9fd75e8650
ole32/tests: Fix new failures in CoWaitForMultipleHandles tests.
2015-07-31 12:07:41 +02:00
Piotr Caban
fbf7046ae8
ole32: Don't pump all messages in CoWaitForMultipleHandles in threads without apartment window.
2015-07-30 23:50:43 +02:00
Dmitry Timoshkov
76f9d93344
ole32: Fix a memory leak.
2015-07-13 22:08:38 +09:00
Damjan Jovanovic
372b0e1e80
ole32: Convey the Alt button state to the drop target.
2015-07-07 16:52:21 +09:00
Vincent Povirk
9cf835a947
ole32: Use grfLocksSupported to decide when LockRegion is implemented.
2015-07-07 16:52:21 +09:00
Vincent Povirk
8ff3783586
ole32: Add a storage test using a custom ILockBytes.
2015-07-07 16:52:21 +09:00
Dmitry Timoshkov
1f17334fc2
ole32: Accept STG_E_UNIMPLEMENTEDFUNCTION when ILockBytes implementation doesn't support locking.
...
Some custom implementations return it instead of STG_E_INVALIDFUNCTION.
2015-07-06 16:34:47 +09:00
Nikolay Sivov
64456de761
ole32: Handle EnumElements() failure (Coverity).
2015-06-29 18:51:02 +09:00
Nikolay Sivov
1e97a2db17
ole32/tests: Fix source buffer leak (Valgrind).
2015-06-22 15:31:54 +09:00
Nikolay Sivov
4cef7ad841
ole32: Fix a typo in argument name.
2015-06-17 18:19:55 +09:00
Nikolay Sivov
61368e76e4
ole32: Marshal HBRUSH as remotable handle.
2015-06-16 16:50:35 +09:00
Nikolay Sivov
6d53f071c6
ole32: Marshal HICON as remotable handle.
2015-06-15 22:10:31 +09:00
Nikolay Sivov
815197f28c
ole32: Marshal HDC as remotable handle.
2015-06-15 22:10:31 +09:00
Vincent Povirk
3f83b788d4
ole32: Fix storage locking for read-only exclusive mode.
2015-06-12 21:22:42 +09:00
Nikolay Sivov
ff6201c61f
ole32/tests: Test if user memory routines are called, remove some useless traces.
2015-06-05 18:38:21 +09:00
Nikolay Sivov
bfa23b637e
ole32: Fix length of buffer allocated by SNB_UserUnmarshal() (Valgrind).
2015-06-04 15:55:53 +09:00
Nikolay Sivov
7c5f639cb8
ole32: Initialize returned value for disconnected case too in proxy_manager_get_remunknown() (Coverity).
2015-06-01 14:52:56 +09:00
Nikolay Sivov
5c0e48e8ca
ole32: Avoid potential null pointer access (Coverity).
2015-06-01 14:52:52 +09:00
Nikolay Sivov
10c878a451
ole32: Implemented some proxy/stubs methods.
2015-06-01 14:43:02 +09:00
Sebastian Lackner
fdd83248b6
ole32/tests: Add additional tests for CoWaitForMultipleHandles and WM_QUIT.
2015-05-22 14:09:19 +09:00
Nikolay Sivov
aa3a234803
ole32: Implement SNB marshalling.
2015-05-15 21:58:06 +09:00
Francois Gouget
5f35f1a8db
ole32/tests: Silence some clipboard traces that generate too many lines.
2015-05-12 22:32:34 +09:00
Nikolay Sivov
26a9f62db7
ole32/tests: Added a test for OleRun().
2015-05-08 18:33:35 +09:00
Francois Gouget
514345b401
ole32: Make some storage32 functions static.
2015-05-04 15:07:39 +09:00
Francois Gouget
356748e6bc
ole32: Reorder storage32 functions to avoid forward declarations.
2015-05-04 15:07:35 +09:00
Francois Gouget
58e47c612f
ole32: Fix some storage32 comments.
2015-05-04 15:06:53 +09:00
Nikolay Sivov
bb37d75074
ole32/tests: Fix a test failure on Win8.
2015-05-01 21:12:42 +09:00
Nikolay Sivov
3d33d8a9c4
ole32/tests: Fix test failures on some VMs with limited user permissions.
2015-05-01 21:12:23 +09:00
Francois Gouget
7703852627
ole32; Fix some storage32 comments and standardize some virtual table names.
2015-04-27 15:08:46 +09:00
Huw Davies
a38699084b
ole32/tests: Win 8 releases the drop target in OleUninitialize().
2015-04-20 14:37:13 +09:00
Nikolay Sivov
961b1a270f
ole32: Remove a couple of interface casts.
2015-04-06 12:09:17 +09:00
Huw Davies
f57e08995a
ole32/tests: Add tests for loading a dib 'CONTENTS' stream.
2015-03-25 19:46:03 +09:00
Huw Davies
b0deb315a0
ole32: Implement QueryGetData().
2015-03-25 19:45:58 +09:00
Huw Davies
b4cd2c4dbb
ole32: Add support for drawing the dib format.
2015-03-25 19:45:55 +09:00
Huw Davies
e410f273cd
ole32: Add support for retrieving extents of dib format.
2015-03-25 19:45:52 +09:00
Huw Davies
bbba2c00aa
ole32: Add support for loading dibs.
2015-03-25 19:45:48 +09:00
Huw Davies
547fd746bb
ole32: Separate metafile loading into a helper function.
2015-03-25 19:45:42 +09:00
Huw Davies
480c10cce9
ole32: Add support for parsing the 'CONTENTS' stream.
2015-03-25 19:45:36 +09:00
Huw Davies
d864387aaa
ole32: Split the data loading into a couple of helpers.
2015-03-25 19:45:31 +09:00
Huw Davies
a4e3668f3f
ole32: A cache entry should hold the stream its data is from, not the top-level storage.
2015-03-25 19:45:10 +09:00
Huw Davies
c5e020c5b5
ole32: Read the class id from the top-level storage object.
...
The cache_entries' storages are just references to the same object anyway.
2015-03-25 19:44:59 +09:00
Nikolay Sivov
597515c074
ole32/tests: Return interface pointer instead of impl pointer from QI.
2015-03-24 18:16:34 +09:00
Nikolay Sivov
7d44fa714a
ole32: Return interface pointers instead of impl pointers from QI.
2015-03-24 18:16:30 +09:00
Nikolay Sivov
bc9b29f65d
ole32: Cleanup QI for IEnumMoniker.
2015-03-20 16:23:12 +09:00
Nikolay Sivov
853dc5ec2f
ole32: Improve error handling in GetClassFile() (PVS-Studio).
2015-03-20 16:23:10 +09:00
Nikolay Sivov
f294ea8333
ole32: Fix error handling in GetTimeOfLastChange() for item moniker (PVS-Studio).
2015-03-20 16:23:08 +09:00
Francois Gouget
f505e6fb4a
Assorted spelling fixes.
2015-03-19 21:54:14 +09:00
Nikolay Sivov
3376648224
ole32/datacache: Handle stream Stat() failure (PVS-Studio).
2015-03-19 16:56:05 +09:00
Nikolay Sivov
1c2bbe8f65
ole32: Handle ILockBytes creation failure (PVS-Studio).
2015-03-17 14:19:12 +09:00
Francois Gouget
7fe0600237
ole32: Remove unneeded NONAMELESSXXX directives.
2015-03-17 14:18:54 +09:00
Nikolay Sivov
0e24c33332
ole32: Handle Stat() failure in OleLoad() (PVS-Studio).
2015-03-13 22:28:31 +09:00
Nikolay Sivov
24dce2b229
ole32: Handle some failures in Inverse() for composite moniker (PVS-Studio).
2015-03-13 22:28:31 +09:00
Nikolay Sivov
46914d8794
ole32: Check ComposeWith() return value too (PVS-Studio).
2015-03-13 22:28:31 +09:00
Sebastian Lackner
66e8060204
ole32: Wait a bit before doing next sanity check in StorageImpl_LockRegionSync.
2015-03-13 00:28:21 +09:00
Alexandre Julliard
c6c3ccad36
ole32: Remove confusing uses of the __thiscall specifier.
2015-03-12 14:20:33 +09:00
Sebastian Lackner
59a1bcd96a
ole32: Fix call to free_stringtable with uninitialized pointer (Coverity).
2015-03-11 12:47:40 +09:00
Sebastian Lackner
83aca6e7aa
ole32: Fix a possible handle leak (Coverity).
2015-03-11 12:46:54 +09:00
Vincent Povirk
0b7c05389b
ole32: Fail to open storage files that are locked incorrectly.
2015-03-11 12:45:52 +09:00
Vincent Povirk
eead04803f
ole32: Add a 20 second timeout when attempting to grab locks.
2015-03-11 12:45:49 +09:00
Vincent Povirk
1645f7b9e3
ole32: Accept only STG_E_INVALIDFUNCTION or success from LockRegionSync.
2015-03-11 12:45:42 +09:00
Vincent Povirk
c8791edbdf
ole32: Don't use real synchronous locks for storage synchronization.
2015-03-11 12:45:38 +09:00
Vincent Povirk
06b735ae76
ole32: Test the entire range lock block for synchronization.
2015-03-11 12:45:33 +09:00
Nikolay Sivov
44360823b9
oleaut32: Use WdtpInterfacePointer_* functions in VARIANT marshalling.
2015-03-09 22:06:21 +09:00
Francois Gouget
fb908b3a95
ole32: Don't define NONAMELESSUNION in olestd.h. It's not needed anyway.
2015-03-06 12:53:55 +09:00
Sebastian Lackner
c23db594aa
ole32: Fix an invalid usage of InterlockedCompareExchange.
2015-03-03 17:13:46 +09:00
André Hentschel
8af03fef9a
ole32: Remove unused macros.
2015-02-23 15:25:56 +09:00
Michael Stefaniuc
73019d5e20
ole32: Remove an always true conditional subexpression (PVS-Studio).
2015-02-18 16:09:13 +09:00
Michael Stefaniuc
514951cc11
ole32: Return the buffer pointer when WdtpInterfacePointer_UserMarshal fails.
...
Found by PVS-Studio.
2015-01-19 14:20:50 +01:00
Michael Stefaniuc
139ebf643a
ole32/tests: Remove unused assignments (PVS-Studio).
2015-01-19 14:20:36 +01:00
Michael Stefaniuc
c2da97a5e5
ole32/tests: Actually test some return codes (PVS-Studio).
2015-01-19 14:20:32 +01:00
Qian Hong
a940718a4d
ole32: Make CoUninitialize and OleUninitialize hotpatchable.
2015-01-16 16:52:25 +01:00
Piotr Caban
95c57c618a
ole32: Only change DoDragDrop return value on IDropTarget::Drop failure.
2015-01-15 14:06:24 +01:00
Nikolay Sivov
73419dc484
ole32: Return END_OF_CHAIN for chains starting with special sector values.
2014-12-29 22:20:29 +01:00
André Hentschel
065e4770f0
ole32/tests: Remove unused variable (Clang).
2014-12-02 10:48:37 +01:00
André Hentschel
ec8602a812
ole32: Remove unused string (Clang).
2014-12-02 10:31:21 +01:00
Sebastian Lackner
f6f55058e4
ole32: Don't process window events when APC calls are queued.
2014-11-21 20:10:04 +09:00
Sebastian Lackner
bbf6891030
ole32: Verify arguments for CoWaitForMultipleHandles, always initialize index to zero.
2014-11-21 20:10:01 +09:00
Sebastian Lackner
f7f2167fe8
ole32/tests: Add tests for CoWaitForMultipleHandles.
2014-11-21 20:09:58 +09:00
Nikolay Sivov
2487afa5d3
ole32/tests: Use proper wrappers for IObjContext methods.
2014-11-19 23:36:34 +09:00
Nikolay Sivov
f7fdaf1c9f
ole32/tests: Release() doesn't return HRESULT code.
2014-11-19 23:36:34 +09:00
Bruno Jesus
959ca6ac02
ole32: Avoid a possible null dereference.
2014-11-14 14:15:14 +09:00
Vincent Povirk
bab4c36d47
ole32: Add support for pasting CF_BITMAP.
2014-11-14 14:13:01 +09:00
Akihiro Sagawa
efdaa4a17a
ole32: Search 32-bit registry in 64-bit CoGetPSClsid and vice versa.
2014-07-15 15:34:40 +02:00
Akihiro Sagawa
414398c1e7
ole32: Add KEY_WOW64 support in wrapper registry functions.
2014-07-15 15:33:59 +02:00
Akihiro Sagawa
fae8d9db5f
ole32/tests: Add CoGetPSClsid WOW64 registry tests.
2014-07-15 15:33:25 +02:00
Piotr Caban
cdf2c5f2cb
ole32: Don't do any message processing when we're already done with dragdrop operation.
2014-07-03 18:17:40 +02:00
Vincent Povirk
69ff6f74b2
ole32: Simplify the FileMonikerImpl_BindToStorage code.
2014-07-01 12:52:43 +02:00
Frédéric Delanoy
2ab8729020
Assorted spelling/grammar fixes.
2014-06-20 12:19:31 +02:00
Francois Gouget
082d091029
ole32: Return the correct error in FileLockBytesImpl_*LockRegion*().
2014-06-18 19:55:45 +02:00
Francois Gouget
bea2c6f2d5
ole32: Treat STG_E_LOCKVIOLATION the same way as STG_E_ACCESSDENIED as both indicate locking contention.
2014-06-18 19:55:40 +02:00
Francois Gouget
cc4ad353d7
ole32: FileLockBytesImpl_WriteAt() should return STG_E_WRITEFAULT for write errors.
2014-06-18 19:55:29 +02:00
Francois Gouget
809b6aeab2
ole32: Fix StorageImpl_LockRegionSync() to actually wait between locking attempts.
2014-06-17 10:37:52 +02:00
Vincent Povirk
a270ed90ad
ole32: Add tests for STGC_OVERWRITE.
2014-06-16 09:28:45 +02:00
Andrew Eikum
c2089cbd0d
ole32: Respect TreatAs in CoCreateInstance.
2014-06-16 09:28:38 +02:00
Andrew Eikum
42f5118570
ole32: Implement CoTreatAsClass for classes without AutoTreatAs.
2014-06-16 09:28:29 +02:00
Andrew Eikum
e9533ca85a
ole32: Fix return type.
2014-06-13 16:22:28 +02:00
Andrew Eikum
f02c0ae656
ole32: Fix return value logging.
2014-06-13 16:22:20 +02:00
Guillaume Charifi
216b24527d
ole32: CoCreateGuid returns E_INVALIDARG on null-GUID.
2014-06-12 18:23:33 +02:00
Vincent Povirk
8107955273
ole32: Support storage files larger than 4 GB.
2014-06-12 13:19:04 +02:00
Vincent Povirk
d32abd7726
ole32: Don't store file size in FileLockBytesImpl.
2014-06-11 13:06:00 +02:00
Vincent Povirk
d89d43648f
ole32: Invalidate all caches when the transaction sig changes.
2014-05-21 10:19:57 +02:00
Vincent Povirk
77e3de5828
ole32: Use a snapshot file when sharing storages for writing.
2014-05-21 10:19:51 +02:00
Vincent Povirk
b3e26be0cb
ole32: STGM_NOSNAPSHOT implies deny write.
2014-05-12 10:48:14 +02:00
Vincent Povirk
cf75c5368b
ole32: Use real blocking operations for storage locking when possible.
2014-05-09 14:16:12 +02:00
Vincent Povirk
45dd716e4e
ole32: Warn in cases where we might corrupt storage files.
2014-05-09 14:16:08 +02:00
Vincent Povirk
4f0d36d9a0
ole32: Initial implementation of transaction locking.
2014-05-05 10:53:41 +02:00
Vincent Povirk
b4ade51a84
ole32: Accept STGM_TRANSACTED with no share mode specified.
2014-05-05 10:53:38 +02:00
Vincent Povirk
6417a277cf
ole32: Map STGM_SHARE_EXCLUSIVE to FILE_SHARE_READ.
2014-05-05 10:53:35 +02:00
Vincent Povirk
04735d6f39
ole32: Use share modes when creating storage files.
2014-05-05 10:53:30 +02:00
Vincent Povirk
a60d41d70a
ole32: Use symbolic names for range lock offsets.
2014-05-05 10:53:27 +02:00
Francois Gouget
3d70f86fe2
ole32/tests: Add a trailing '\n' to an ok() call.
2014-05-02 17:15:24 +02:00
Huw Davies
dcfd901c83
ole32/tests: Fix win8 test failures.
2014-05-01 16:32:09 +02:00
Frédéric Delanoy
2e5cb7aac8
Assorted spelling/grammar fixes.
2014-04-30 18:34:20 +02:00
Vincent Povirk
65887802c5
ole32: Initial storage file locking implementation.
2014-04-29 11:26:51 +02:00
Vincent Povirk
e6c58c74ad
ole32: Reserve the range lock sector.
2014-04-29 11:26:47 +02:00
Vincent Povirk
a00f43d7e0
ole32/tests: Add tests for sharing storages in transacted mode.
2014-04-29 11:26:33 +02:00
Vincent Povirk
b8c60aaeec
ole32/tests: Add tests for storage locking.
2014-04-29 11:25:55 +02:00
Dmitry Timoshkov
5356c945cd
ole32: Add support for VT_DISPATCH/VT_UNKNOWN to PropVariantClear and PropVariantCopy.
2014-04-21 11:09:53 +02:00
Dmitry Timoshkov
f9c40c37cd
ole32: If number of VT_VECTOR elements is 0 there is no need to allocate memory.
2014-04-18 13:09:19 +02:00
Dmitry Timoshkov
d68c13a894
ole32/tests: Add some tests for PropVariantCopy.
2014-04-18 13:09:11 +02:00
Dmitry Timoshkov
5e7251b937
ole32: Revert part of 3cb0c81336
.
...
VT_INT|VT_VECTOR and VT_UINT|VT_VECTOR are not supposed to be supported
by PropVariantClear and PropVariantCopy.
2014-04-18 13:08:59 +02:00
Dmitry Timoshkov
f35078ee40
ole32/tests: Fix crashes in PropVariantClear tests under win64.
2014-04-18 13:08:57 +02:00
Dmitry Timoshkov
ccefbee73b
ole32/tests: Fix crashes in PropVariantClear tests under win2000 and XP.
2014-04-17 10:44:55 +02:00
Dmitry Timoshkov
0946c154fa
ole32: PropVariantClear should always reset contents of the passed in PROPVARIANT.
2014-04-16 10:55:07 +02:00
Dmitry Timoshkov
7de7fc653b
ole32/tests: Add more tests for PropVariantClear.
2014-04-16 10:54:54 +02:00
Dmitry Timoshkov
3cb0c81336
ole32: Add support for VT_INT/VT_UINT to PropVariantClear and PropVariantCopy.
2014-04-16 10:54:48 +02:00
Piotr Caban
2fbbe143be
ole32: Add more SetConvertStg amd WriteFmtUserTypeStg tests.
2014-04-07 19:06:42 +02:00
Piotr Caban
0d4c693a7b
ole32: Add OleDoAutoConvert implementation.
2014-04-07 19:06:39 +02:00
Piotr Caban
2db5418e02
ole32: Get CLSID from IStorage object in WriteFmtUserTypeStg.
2014-04-07 19:06:36 +02:00
Piotr Caban
046d7c6d42
ole32: Try to open 1Ole stream before trying to create it in SetConvertStg function.
2014-04-07 19:06:33 +02:00
Piotr Caban
f83d24d4f7
ole32: Don't write empty CLIPFORMAT in WriteFmtUserTypeStg.
2014-04-07 19:06:28 +02:00
Piotr Caban
306e98425b
ole32: Null terminate strings in STREAM_ReadString function.
2014-04-07 19:06:26 +02:00