Nikolay Sivov
88111ca2c0
ole32/tests: Remove some casts we don't need, fix a couple of others.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-24 13:44:40 +01:00
Nikolay Sivov
b19ad3af80
ole32: Use OleRun() in OleCreate() instead of unrolling what it does.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-24 13:44:31 +01:00
Nikolay Sivov
73008a6c04
ole32: Ignore GetMiscStatus() returned value in OleCreate().
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-24 13:44:25 +01:00
Nikolay Sivov
7ad896d541
ole32/tests: Some tests for OleRegGetUserType().
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-24 13:44:03 +01:00
Nikolay Sivov
98505b4076
ole32: Simplify OleRegGetUserType() using existing helper.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-23 16:35:40 +01:00
Nikolay Sivov
1219abfd8c
ole32: Simplify OleRegGetMiscStatus() using existing helper, use read-only key permissions.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-23 16:35:31 +01:00
Nikolay Sivov
12d73316e4
ole32: Fix parameter validation for CoGetMalloc().
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-23 16:35:19 +01:00
Piotr Caban
d7e302b52b
ole32: Fix apartment window class name.
...
TestStand 2010 makes class name comparison when pumping RPC messages.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-21 19:50:27 +01:00
Piotr Caban
726698ab81
ole32: Fix minimal size check of compound file in StgOpenStorage.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-10 22:44:43 +09:00
Nikolay Sivov
f797f63d24
ole32/tests: Some tests for CoGetMalloc().
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-04 21:56:18 +09:00
Andrey Gusev
8bfc9bd2ee
Assorted typos fixes.
...
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-27 15:38:30 +09:00
Jacek Caban
a1cc980bcb
ole32: Use absolute key path in create_classes_root_hkey.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-18 00:29:45 +09:00
Jacek Caban
80c53b33fd
ole32: Added DECLSPEC_HOTPATCHABLE to a few more functions.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-13 11:52:58 +09:00
Dmitry Timoshkov
2d08613e87
ole32: Add more traces to the storage methods.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-04 14:41:38 +09:00
Dmitry Timoshkov
39d2ce5956
ole32: Relax media type check when loading CF_METAFILEPICT format from OLE storage.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 22:14:04 +09:00
Dmitry Timoshkov
b8800c237b
ole32/tests: Add some tests for loading and drawing various OLE formats.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 22:02:20 +09:00
Jacek Caban
e4bc220802
ole32: Make CoInitializeEx hot patchable.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 00:33:27 +09:00
Dmitry Timoshkov
263b06ef8d
ole32/tests: Add the tests to show that IEnumSTATSTG::Next should zero out returned stats when it reaches end of enumeration.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-02 23:02:24 +09:00
Dmitry Timoshkov
9f2bd8503d
ole32: Zero out returned stats when IEnumSTATSTG::Next reaches end of enumeration.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-02 23:02:24 +09:00
Dmitry Timoshkov
7bc1005f56
ole32: Handle failure of reading directory entry in IEnumSTATSTG::Next.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-02 23:02:24 +09:00
Dmitry Timoshkov
421b3ca3eb
ole32: Fallback to parsing the Presentation streams ff parsing of the "CONTENTS" stream fails.
...
I have an application that tries to load an existing object from the file
using OleLoad() and fails because the "CONTENTS" stream has clsid set to
"Microsoft Photo Editor 3.0 Picture". I've dumped the contents of the OLE
storage to disk for investigation, and under Windows (where Microsoft Photo
Editor is not installed, and registry has no traces of its class guids)
OleLoad() is able to load objects from this storage, and after that OleDraw()
successfully paints the object contents on the screen. I've written an
application to play with the dumped storage, and under Windows the "CONTENTS"
stream also can't be loaded, but the storage also contains the "OlePres000"
stream which contains an object in CF_METAFILEPICT format, and this one can be
loaded and painted.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-29 21:20:07 +09:00
Huw Davies
28b916b26e
ole32: Fix ref counting in GetDataHere Proxy.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 00:58:15 +09:00
Huw Davies
ced5800b99
ole32: Correctly release an existing pointer when unmarshalling a NULL-ptr.
...
However, this should not be done in the case of pUnkForRelease.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 00:58:15 +09:00
Huw Davies
9021b96772
ole32/tests: Release the marshalled data in the expected buffers.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 00:58:14 +09:00
Huw Davies
6aa797e669
ole32: WdtpInterfacePointer_UserUnmarshal() should release an interface if one is passed in.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 00:58:14 +09:00
Dmitry Timoshkov
1b580e70e9
ole32: Print a FIXME when the "CONTENTS" stream refers to unsupported format.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-23 19:20:25 +09:00
Jacek Caban
c5b54b34e9
ole32: Call CoCreateInstanceEx from CoCreateInstance instead of the other way around.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-22 16:47:19 +09:00
Jacek Caban
dedcd30cb8
ole32: Pass requested interface IID to CreateInstance in CoCreateInstanceEx.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-22 16:47:15 +09:00
Huw Davies
cc1b2879e4
ole32: Set the release interface to NULL before calls to GetDataHere.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-21 21:57:22 +09:00
Dmitry Timoshkov
b9d8c2b1ea
ole32: Initialize number of bytes read before the comparison.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-21 19:19:08 +09:00
Nikolay Sivov
4afda020ae
ole32/tests: Use BOOL variables for BOOL return type (PVS-Studio).
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-21 00:25:34 +09:00
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