Dmitry Timoshkov
f9bc636d35
ole32: PropVariantCopy should return DISP_E_BADVARTYPE in case of bad source variant type.
...
In some rare (notably for some VT_VECTOR) cases Windows implementation
returns STG_E_INVALIDPARAMETER, but returning DISP_E_BADVARTYPE should
cover most of cases.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-21 00:25:33 +09:00
Huw Davies
5ae2b5ae93
ole32: Release interfaces as part of Stop.
...
This can now be done as Stop will no longer be called from within an object call.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-15 00:53:19 +09:00
Huw Davies
719c479a36
ole32: Defer calling Stop in an OnClose notification during an object call.
...
The OnClose notification may arrive during a call to the object. Releasing the
object's interfaces at this point would be bad, so delay this until after the
object call returns.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-15 00:53:19 +09:00
Huw Davies
79598c4803
ole32: Call the cache's OnRun and OnStop methods.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-15 00:53:18 +09:00
Huw Davies
e4ec89f2b0
ole32: Return OLE_E_NOTRUNNING on a cache-miss when the object isn't running.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-15 00:53:18 +09:00
Huw Davies
4fcc5fec57
ole32: Always use object_is_running to check whether the object is running.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-14 20:36:55 +09:00
Huw Davies
a56a0eb063
ole32: Rewrite _Run() to return early on failure.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-14 20:36:43 +09:00
Huw Davies
afbb4afc6c
ole32: Silence an incorrect fixme.
...
The remote unknown object should not implement IExternalConnection.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-14 12:43:28 +09:00
Huw Davies
1dcf3f8e0a
ole32/tests: Test calling CoDisconnectObject from within 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:21 +09:00
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