Dmitry Timoshkov
3c9e7a7f33
wine: Switch to using 'long' for INT_PTR type for 64-bit compatibility.
2007-05-25 20:37:56 +02:00
Rob Shearman
30cc21196e
ole32: Remove spurious AddRef of returned object on retrieval of an interface from the global interface table.
2007-05-23 12:49:50 +02:00
Rob Shearman
7d90b6ce29
ole32: Allow the getting of different interfaces from the global interface table than that with what the object was registered with.
2007-05-23 12:49:45 +02:00
Rob Shearman
05230781b0
ole32: Add more tests for global interface table functions.
2007-05-23 12:49:39 +02:00
Rob Shearman
eebf8df601
ole32: Fix some races in the global interface table implementation.
...
Fix a race between RevokeInterfaceFromGlobal and GetInterfaceFromGlobal
by only using the entry inside the critical section.
Fix a race between two GetInterfaceFromGlobal by cloning the stream,
instead of using it and setting the current position back to zero.
2007-05-23 12:49:28 +02:00
Rob Shearman
71a5b2d943
ole32: Add spec entry for CoRegisterSurrogateEx.
2007-05-23 12:49:23 +02:00
Rob Shearman
071ea06af8
ole32: Remove a useless trace.
...
Remove an incorrect comment.
2007-05-22 12:19:07 +02:00
Rob Shearman
dd8a736c3f
ole32: The identity functions can be used from apartments other than the one the proxy was unmarshaled into.
...
In this case, don't use the cached This->remunk and don't cache the
unmarshaled object in This->remunk.
2007-05-22 12:18:55 +02:00
Rob Shearman
bf2b49b4e0
ole32: Make proxy_manager_get_remunknown AddRef the return IRemUnknown object.
...
Fix up the callers to release the returned IRemUnknown object.
2007-05-22 12:18:50 +02:00
Rob Shearman
5369d4dffd
ole32: Handle MSHLFLAGS_TABLEWEAK and MSHLFLAGS_TABLESTRONG when marshaling a proxy.
...
Add tests for this behaviour.
2007-05-22 12:18:31 +02:00
Rob Shearman
be55a4bbe2
ole32: Fix hosting in main apartments.
...
The recently introduced code had a bug where it passed the wrong
values into apartment_findfromtype to find the main apartment. Since
this is now the only way the function is used, fix this bug by
changing apartment_findfromtype to apartment_findmain, which only
finds the main apartment.
2007-05-21 12:38:54 +02:00
Rob Shearman
82cfed96a7
ole32: Fix reading from an HGLOBALStreamImpl with an invalid HGLOBAL.
...
Add tests that show the strange behaviour of IStream_Read returning S_OK
instead of an error code.
2007-05-18 14:42:53 +02:00
Rob Shearman
600143d4fa
ole32: Create host apartments to enable isolation of objects of incompatible threading models.
...
There should be one host apartment per apartment. Existing apartments
should not be re-used, except in the case of the main apartment.
2007-05-18 14:42:37 +02:00
Andrew Talbot
4ea954df42
ole32: Exclude unused headers.
2007-05-16 11:55:51 +02:00
Paul Vriens
0eeb5727b2
ole32/tests: Check for correct return value.
2007-05-14 16:45:17 +02:00
Rob Shearman
ed79ddab1d
ole32: Don't lookup the address for the DllGetClassObject function for ole32.dll in the apartment loaded dll list.
...
Call the function directly for a small performance boost.
2007-05-14 14:26:22 +02:00
Rob Shearman
70e8842924
ole32: Fix CoUninitialize to only free libraries that return S_OK from DllCanUnloadNow.
2007-05-14 14:26:17 +02:00
Rob Shearman
b005e9ed0d
ole32: Move the logic in StgCreateDocfile for "if no share mode given then DENY_NONE is the default" to before the validateSTGM check.
...
Add a test that shows this behaviour is correct.
Remove a test on the access mode that is redundant because it is already
done in validateSTGM.
2007-05-10 12:15:11 +02:00
Rob Shearman
4cd064aeb4
ole32: Don't release the drop target on process uninitialisation if not revoked, just release the memory.
2007-05-08 18:09:33 +02:00
Rob Shearman
71ada5c654
ole32: Add a test for the retrieved local class object in another thread being a proxy.
2007-05-08 13:24:07 +02:00
Rob Shearman
07229ed8ec
ole32: Add documentation for error info functions.
2007-05-08 13:24:02 +02:00
Rob Shearman
314f9fe509
ole32: Add documentation about registered class objects only being visible in the apartment in which they were registered.
2007-05-08 13:23:57 +02:00
Rob Shearman
7d7f9a59d0
ole32: Fix CoRevokeClassObject to return RPC_E_WRONG_THREAD if it was called from a different apartment than the one that called CoRegisterClassObject.
2007-05-08 13:23:51 +02:00
Rob Shearman
23e43d886e
ole32: Split CoRevokeClassObject into a separate function, COM_RevokeRegisteredClassObject, which acts on a RegisteredClass object.
2007-05-08 13:23:40 +02:00
Rob Shearman
51f85a765b
ole32: COM_GetRegisteredClassObject should only retrieve objects that were registered in the current apartment.
2007-05-08 13:23:30 +02:00
Rob Shearman
e93c82e643
ole32: Add tests for in-process registered class objects not being visible from different apartments.
2007-05-08 13:23:01 +02:00
Rob Shearman
d76ab14479
ole32: Revoke registered class objects when the apartment they were registered in is destroyed, not when the last CoUninitialize is called.
2007-05-08 13:22:50 +02:00
Rob Shearman
4cbca9ac3a
ole32: Add test for registered class becoming invalid when apartment is destroyed.
2007-05-08 13:22:26 +02:00
Rob Shearman
af2c349685
ole32: CoGetClassObject shouldn't return REGDB_E_KEYMISSING, so convert it to REGDB_E_CLASSNOTREG.
2007-05-08 13:22:23 +02:00
Huw Davies
962d8b6011
ole32: Cope with a realloc returning a different pointer.
2007-05-03 14:24:02 +02:00
Rob Shearman
c582136d0b
ole32: Remove an unnecessary QueryInterface in CoRegisterClassObject that CoMarshalInterface will already do.
2007-05-02 15:03:28 +02:00
Aric Stewart
dc4c9da44f
ole32: Accelerators, like for the menu ones, should not fire on the keyup message.
2007-05-01 11:42:24 +02:00
Michael Stefaniuc
5f62da109e
janitorial: Pass HEAP_ZERO_MEMORY as flag to HeapAlloc() instead of zeroing out the allocated memory in a later call.
2007-04-25 12:26:07 +02:00
Andrew Talbot
65bf44868c
ole32: Void functions should not return a value.
2007-04-13 12:58:50 +02:00
Rob Shearman
1360357f92
ole32: Fix a hack which depended on the IID of the interface being marshaled
...
to determine whether we were marshaling the remote unknown for the
apartment or not.
2007-04-06 12:31:04 +02:00
Rob Shearman
74c04149be
ole32: Move declaration for FileMonikerImpl_DecomposePath from compobj_private.h to moniker.h.
2007-04-05 13:26:29 +02:00
Rob Shearman
63ea015c65
ole32: Don't release the registered drop targets in OleUninitialize.
...
Do it in DLL_PROCESS_DETACH instead.
2007-04-05 13:25:18 +02:00
Rob Shearman
47432cba45
ole32: Check the input hwnd is valid in RevokeDragDrop.
2007-04-05 13:25:05 +02:00
Rob Shearman
2d8ae2cf83
ole32: Check for COM not being initialised and an invalid window handle being input to RegisterDragDrop.
2007-04-05 13:24:54 +02:00
Rob Shearman
db4972f1fb
ole32: Add tests for drag and drop functions.
2007-04-05 13:23:59 +02:00
Aric Stewart
6230222aab
ole32: Storage optimization.
...
We do not need to unmap and remap all the victim pages with every
resize as they are simply a cache. Provides significant speedup for
saving large storage files.
2007-04-05 10:53:47 +02:00
Rob Shearman
ab7f796fcb
ole32: Keep a list of the loaded dlls for each apartment.
...
Use it to make CoFreeUnusedLibraries per-apartment.
2007-04-04 21:28:36 +02:00
Rob Shearman
30721a88e3
ole32: Cache the address for the library's DllGetClassObject and DllCanUnloadNow in the OpenDll list entry.
2007-04-04 21:28:01 +02:00
Rob Shearman
1d8879bccc
ole32: Add a test that shows CoFreeUnusedLibraries only frees unused libraries from the current apartment.
2007-04-04 21:27:12 +02:00
Rob Shearman
c40f1b6659
ole32: Move the handling of loading a dll and getting an in-process object from it to an apartment-specific function.
...
Use it to implement apartment_hostobject in a cleaner way so that it is
guaranteed to not recurse.
2007-04-04 21:27:07 +02:00
Rob Shearman
679bfdab28
ole32: Move the in-process module loading to COMPOBJ_DllList_Add.
2007-04-04 21:26:53 +02:00
Rob Shearman
247255568c
ole32: Convert the OpenDll list to a standard Wine list.
...
Store the library name and make it reference counted.
2007-04-04 21:26:47 +02:00
Paul Vriens
ec30f6de30
ole32/stg_bigblockfile: Check page before use (Coverity).
2007-04-04 12:45:05 +02:00
Francois Gouget
0081b430e1
Assorted spelling and English fixes.
2007-04-03 11:23:12 +02:00
Francois Gouget
a8695bae88
ole32/tests: Spelling fix.
2007-04-03 11:22:57 +02:00
Francois Gouget
f4f4eb24c8
ole32/tests: Spelling fix.
2007-04-03 11:22:52 +02:00
Francois Gouget
d9e8a0f63e
Remove unneeded checks on the GetModuleHandle() return value for cases where we are linked with the dll.
2007-03-28 12:36:13 +02:00
Rob Shearman
f8789122aa
ole32: Implement MkParseDisplayName.
2007-03-28 12:12:49 +02:00
Rob Shearman
87a4516bd9
ole32: Add some more tests for MkParseDisplayName.
2007-03-28 12:11:15 +02:00
Rob Shearman
32dc398976
ole32: Display the testname for the test for display name in test_moniker.
2007-03-28 12:11:07 +02:00
Rob Shearman
4ce58cb531
ole32: Do a case-insensitive comparison in the count_moniker_matches in the moniker tests as Win9x marshals an all upper-case file name for file monikers.
2007-03-28 12:11:00 +02:00
Rob Shearman
1f70fc50c6
ole32: Add tests for the standard marshaler's implementation of IClientSecurity.
2007-03-28 12:10:51 +02:00
Rob Shearman
d6a435fc56
ole32: Pass the OXID info to RPC_CreateClientChannel and use this to pass the server process ID to channel hooks.
2007-03-28 12:10:40 +02:00
Rob Shearman
8b50eb3556
ole32: Register the ProgID for the class and file monikers.
2007-03-27 13:00:54 +02:00
Rob Shearman
2514c0141e
ole32: Move GetClassFile to moniker.c and move OleRun to ole2.c.
2007-03-27 13:00:44 +02:00
Rob Shearman
8e0145242b
ole32: Add documentation for CoGetClassObject and GetClassFile.
2007-03-27 13:00:29 +02:00
Rob Shearman
cdc9367d78
ole32: Add documentation for CreateBindCtx, BindMoniker, GetRunningObjectTable and OleRun.
2007-03-27 13:00:24 +02:00
Rob Shearman
1b8537bebd
ole32: Handle NULL sub-objects correctly in the STGMEDIUM user marshaling functions so that no further data in marshaled or unmarshaled.
2007-03-27 13:00:10 +02:00
Rob Shearman
d1ec56c871
ole32: Generate OXID_INFO in the stub manager.
...
Copy the OXID_INFO from the stub manager, if available, in
proxy_manager_construct. Otherwise, attempt to resolve it.
Use ipidRemUnknown from OXID_INFO in the proxy manager instead of
magically generating the IPID for RemUnknown.
2007-03-27 12:39:44 +02:00
Rob Shearman
1fa24db9fd
ole32: Add the OXID_INFO structure to dcom.idl.
2007-03-27 12:39:33 +02:00
Rob Shearman
061a29ee44
ole32: Add a stubbed out implementation of IClientSecurity to the proxy manager.
2007-03-27 12:39:25 +02:00
Andrew Talbot
24a197490c
ole32: Replace inline static with static inline.
2007-03-23 12:29:45 +01:00
Rob Shearman
3acb0a878d
ole32: The 16-bit version of CoDisconnectObject is not compatible with the 32-bit version, so create a separate stub for the former.
2007-03-21 15:55:22 +01:00
Dmitry Timoshkov
dce12498d0
ole32: Move the storage signatures to the appropriate file that uses them.
2007-03-21 11:59:41 +01:00
Rob Shearman
36d5515d91
ole32: Add a test for StgStreamImpl_SetSize with a non-zero HighPart for the size.
2007-03-20 13:00:04 +01:00
Rob Shearman
251bab8ac9
ole32: Implement TYMED_FILE for STGMEDIUM marshaling and unmarshaling.
2007-03-20 12:56:34 +01:00
Rob Shearman
05e99099af
ole32: Add warnings for failures in the structured storage stream functions.
2007-03-20 12:56:30 +01:00
Aric Stewart
838eb4037f
ole32: Rework storage with blockfiles to properly use ILockBytes interfaces.
...
Rework storage to make all its interactions with the underlying data go
though ReadAt and WriteAt to allow for an ILockBytes underlying layer.
Implement ReadAt and WriteAt in stg_bigblockfile.c for blockfiles.
2007-03-20 12:36:45 +01:00
Rob Shearman
f1ced14eed
ole32: Print the contents of the IID input to OleLoad.
2007-03-14 18:49:58 +01:00
Rob Shearman
00877c898d
ole32: OleCreate isn't a semi-stub any more, as it is tested in a range of cases and has no todos.
2007-03-13 20:31:40 +01:00
Rob Shearman
39f0f9d52a
ole32: OleCreate shouldn't pass CLSCTX_LOCAL_SERVER to CoCreateInstance.
2007-03-13 20:31:37 +01:00
Rob Shearman
2815cd8ef4
ole32: Don't allocate an initial table for bind contexts.
...
Most users of bind contexts don't use bound objects or object params, so
don't create an initial table. Instead, create it on demand and use an
exponential algorithm for increasing the size of the table when full.
2007-03-13 20:31:34 +01:00
Huw Davies
a8c72b76cf
ole32: Only retrieve posted and paint messages in an STA message loop.
2007-03-13 11:52:41 +01:00
Jan Zerebecki
0f7a3811b4
ole32: Add DebugInfo to critical sections.
...
Also add missing DeleteCriticalSection.
2007-03-12 13:49:44 +01:00
Rob Shearman
f0189b8789
ole32: Implement CoAddRefServerProcess and CoReleaseServerProcess.
2007-03-09 21:17:47 +01:00
Rob Shearman
789f344c2b
ole32: Make RegisteredClass list into a standard Wine list.
2007-03-09 21:17:42 +01:00
Rob Shearman
15a0b7fad5
ole32: Don't keep the local server named pipe open for a single-use object.
2007-03-09 21:16:44 +01:00
Rob Shearman
7ba4b81675
ole32: Add some tests for the flags input to CoRegisterClassObject.
2007-03-09 21:16:41 +01:00
Rob Shearman
880542a9f8
ole32: Close the named pipe after revoking local server objects.
2007-03-09 21:16:37 +01:00
Rob Shearman
2a021b50d4
ole32: Enable local server test and make it work with Win9x COM implementation.
2007-03-09 21:16:34 +01:00
Rob Shearman
c826515e55
ole32: REGCLS_MULTIPLEUSE implies CLSCTX_INPROC_SERVER in CoRegisterClassObject.
2007-03-09 21:16:31 +01:00
Rob Shearman
c4727fde17
ole32: Fix return codes returned by IBindCtx::RegisterObjectBound and IBindCtx::RevokeObjectBound when used on NULL objects.
2007-03-09 11:46:42 +01:00
Rob Shearman
ba3ceaa4b8
ole32: Fix cbStruct handling in IBindCtx:GetBindOptions.
2007-03-09 11:46:38 +01:00
Rob Shearman
e14e464df6
ole32: Add more tests of IBindCtx functions.
...
Add tests for IBindCtx::GetObjectParam, IBindCtx::RevokeObjectParam and
IBindCtx::RevokeObjectBound.
2007-03-09 11:46:33 +01:00
Rob Shearman
3d6070aebd
ole32: Set output param to NULL in BindCtxImpl_EnumObjectParam.
2007-03-08 13:50:33 +01:00
Rob Shearman
bdefb46d29
ole32: Fix BindCtxImpl_GetBindOptions to return the correct locale and to not fail if the input size is too large.
2007-03-08 13:50:27 +01:00
Rob Shearman
bf4b5188e0
ole32: CreateBindCtx should fail if reserved parameter is not zero.
2007-03-08 13:50:23 +01:00
Rob Shearman
a418777708
ole32: Add some tests for IBindCtx.
2007-03-06 22:25:45 +01:00
Rob Shearman
c19076cb19
ole32: Remove some unnecessary traces from the HeapUnknown implementation.
2007-03-06 22:17:54 +01:00
Rob Shearman
7a6a63f8fc
ole32: Fix a failing CoUnmarshalInterface test on Windows.
2007-03-06 22:17:45 +01:00
Rob Shearman
ac8d035f3d
ole32: Fix a use-after-free of the file moniker in the running object table tests.
2007-03-06 22:17:43 +01:00
Rob Shearman
87155d654f
ole32: Compare the class contexts in COM_GetRegisteredClassObject.
...
Only objects that have been registered for a class context that matches
the requested class context should be returned.
2007-03-06 12:10:50 +01:00
Rob Shearman
356fdcbb15
ole32: OleLoad should call CoCreateInstance with CLSCTX_INPROC_SERVER as well as CLSCTX_INPROC_HANDLER.
2007-03-06 12:10:47 +01:00
Rob Shearman
3bd31cfd16
ole32: The stream returned by StgStreamImpl_Clone should have one reference, so call AddRef before returning.
...
Move the call to StorageBaseImpl_AddStream to StgStreamImpl_Construct to
fix StgStreamImpl_Clone, which forgets to call it.
Add tests for OLE structured storage tests for IStream::Clone.
2007-02-26 17:33:36 +01:00
Rob Shearman
29706e6709
ole32: Use IsEqualIID instead of memcmp in HGLOBALLockBytesImpl_QueryInterface.
2007-02-26 13:38:49 +01:00
Rob Shearman
0101f89a8d
ole32: Add tests for default handler creation and handler marshaling.
2007-02-26 13:38:45 +01:00
Francois Gouget
f5c6a71a65
ole32: Better match the PSDK types and fix the winapi_check warnings.
2007-02-20 20:29:10 +01:00
Rob Shearman
3047ea9e78
ole32: Make an error message more useful by printing the returned error code.
2007-02-20 11:39:18 +01:00
Mike McCormack
b937f33d23
ole32: Add missing parameter for RunningObjectTableImpl_UnInitialize.
2007-02-13 17:47:28 +01:00
Rob Shearman
cb9c40a8cf
ole32: Add the external references that the server gave to us to any existing ifproxy,
...
so that the right external reference count is released when the proxy is destroyed.
Protect all changes to refs in the ifproxy using interlocked functions
and update the thread-safety documentation.
2007-02-06 21:35:25 +01:00
Rob Shearman
723592cf5a
ole32: Release iobject and the IRpcStubBuffer object no matter which code path we take.
...
Otherwise we would leak a reference for both of these if the ifstub was already created.
Fix the FIXME in the code by releasing the stub manager if necessary.
2007-02-06 21:33:47 +01:00
Mike McCormack
4c46194cf5
ole32: Add a few more tests for transacted storage.
2007-02-06 13:20:37 +01:00
John Morris
00b29dfa79
ole32: Add CoWaitForMultipleHandles to spec file.
2007-02-05 12:34:51 +01:00
Paul Vriens
e89cac747c
ole32/tests: Cast-qual warning fixes.
2007-01-24 11:59:11 +01:00
Andrew Talbot
02a5f7389e
ole32: Declare some functions static.
2007-01-19 12:28:58 +01:00
Francois Gouget
b0bde6b87c
Assorted spelling fixes.
2007-01-18 12:56:52 +01:00
Paul Vriens
3d2baaa6cf
ole32/tests: Cast-qual warnings fixes.
2007-01-12 11:25:45 +01:00
Rob Shearman
d35a81c7aa
ole32: Fix copied description and copyright statement for tests/errorinfo.c.
2007-01-12 11:24:14 +01:00
Rob Shearman
bbedf3d096
ole32: Add tests for the default handler.
2007-01-11 11:50:03 +01:00
Rob Shearman
5c71583b53
ole32: Add tests for error info functions.
...
Return E_INVALIDARG if dwReserved is not set to zero for both
GetErrorInfo and SetErrorInfo.
2007-01-11 11:49:59 +01:00
Rob Shearman
f658adffc2
ole32: Fix the detection of when we need an additional QueryInterface in CoUnmarshalInterface.
2007-01-10 12:22:06 +01:00
Rob Shearman
fa64950ee1
ole32: Add a test for the failure case of same-apartment unmarshaling when passing in an unsupported iid.
2007-01-10 12:21:59 +01:00
Rob Shearman
49fc8ac742
ole32: Add tests for passing invalid arguments to CoUnmarshalInterface.
2007-01-10 12:21:53 +01:00
Rob Shearman
b1ee49a74d
ole32: ReadClassStm should return STG_E_READFAULT is not all of the data could be read, not S_FALSE.
...
Clear pclsid in case of errors.
Add tests for ReadClassStm.
2007-01-10 12:17:00 +01:00
Rob Shearman
de527d5ec0
ole32: Add tests for invalid arguments of CoMarshalInterface and CoMarshalInterThreadInterfaceInStream.
2007-01-10 12:16:08 +01:00
Rob Shearman
7730e1408f
ole32: Return an error from CoUnmarshalInterface if pStream is NULL or if ppv is NULL.
2007-01-10 12:15:10 +01:00
Rob Shearman
35548d15c4
ole32: Fix Read/WriteClassStm to return an error if the passed in stream pointer is NULL.
2007-01-10 12:14:24 +01:00
Rob Shearman
923bc6bf3d
ole32: Return an error in CoMarshalInterface if pStream is NULL.
2007-01-10 12:14:21 +01:00
Rob Shearman
fd07191673
ole32: Fix HGLOBALStreamImpl_CopyTo to check the return values of IStream_Read and IStream_Write and to not compare the bytes read to the bytes written.
...
Add tests for IStream::CopyTo of the HGLOBAL stream implementation.
2007-01-10 12:13:22 +01:00
Rob Shearman
ba25254d9f
ole32: Remove some unneeded inclusions of headers.
...
Change some incorrect usages of SEEK_SET to the intended STREAM_SEEK_SET
instead.
2007-01-10 12:08:51 +01:00
Rob Shearman
d02b27c0e9
ole32: Move test for CoGetInterfaceAndReleaseStream to compobj.c.
2007-01-10 12:02:37 +01:00
Rob Shearman
43d0d85f67
ole32: Use the standard list functions for the global interface table implementation.
2007-01-10 12:02:35 +01:00
Rob Shearman
c21f5c7c6a
ole32: Move the Running Object Table test in marshal.c to moniker.c to put it with the other ROT tests.
2007-01-10 12:02:28 +01:00
Rob Shearman
beaaf0514f
ole32: Fix a comment in rpc_sendreceive_thread that wasn't correct.
2007-01-10 12:02:26 +01:00
Rob Shearman
84158d6742
ole32: Remove a FIXME comment that no longer applies.
2007-01-10 12:02:24 +01:00
Paul Vriens
32fbfea47a
ole32/tests: Cast-qual warnings fixes.
2007-01-09 12:01:45 +01:00
Rob Shearman
b624e8125c
ole32: Fix the OLE clipboard test to call OleInitialize before performing the tests to fix test failures on Windows.
2007-01-08 12:35:44 +01:00
Rob Shearman
a45a2e37f9
ole32: Add a field to the TLS data to determine whether OLE has been initialised for the current thread.
2007-01-08 12:35:41 +01:00
Rob Shearman
2568c4662a
ole32: IPeristStream implies IPersist and IStream implies ISequentialStream so fix the Structured Storage stream implementation's QueryInterface with to reflect this.
2007-01-08 12:35:38 +01:00
Rob Shearman
482063bc29
ole32: IStream inherits from ISequentialStream so the HGLOBALStream implementation must also support ISequentialStream.
2007-01-08 12:35:36 +01:00
Rob Shearman
0c51b6236c
ole32: Release the global interface table in the tests when it is no longer needed.
2007-01-08 12:35:34 +01:00
Francois Gouget
386bb905e7
ole32: Print GetLastError() in decimal with '%u'.
2007-01-06 11:40:43 +01:00
Kai Blin
fb2a3914e1
ole32: Remove redundant NULL check (Coverity).
2007-01-05 20:26:47 +01:00
Rob Shearman
2db1d0de38
ole32: Make sure to reset the message state if it has been changed in RPC_ExecuteCall before returning.
...
Fix the hrFault parameter passed into the ClientNotify function in
ClientRpcChannelBuffer_SendReceive so that it is correct in the case of
messages dispatched with PostMessage.
Only unmarshal ORPCTHAT for non-fault packets.
2007-01-04 21:12:36 +01:00
Michael Gardiner
f9d8449db2
ole32: Stop StgOpenStorage from creating a file when it does not already exist.
2007-01-04 20:53:39 +01:00
Rob Shearman
b8035d2c70
ole32: Don't release pUnk in OleCreate if CoCreateInstance failed.
2007-01-04 09:50:21 +01:00
Rob Shearman
7a5d5c5503
ole32: Fix the calculation of message_state->prefix_data_len in two places where it would come out negative.
2007-01-02 20:49:07 +01:00
Rob Shearman
638182bbba
ole32: Add tests for channel hooks.
2006-12-29 21:25:49 +01:00
Rob Shearman
2881f919c7
ole32: Add some tests for the running object table.
...
The tests show the behaviour when the IROTData interface is not
available from the moniker. They also show the flags that are accepted
into IRunningObjectTable::Register.
2006-12-28 12:36:07 +01:00
Rob Shearman
bf33f9410f
ole32: Contrary to MSDN, IROTData doesn't need to be implemented for a moniker to be usable with the running object table.
...
If IROTData isn't available, fall back to a path that uses the display
name and the clsid of the moniker to generate the comparison data.
2006-12-28 12:35:54 +01:00
Rob Shearman
341bf7a44a
ole32: Only call IROTData::GetComparisonData once, like native does.
2006-12-28 12:35:17 +01:00
Rob Shearman
04498ba49a
ole32: Use IMoniker::GetTimeOfLastChange to attempt to retrieve the last-modified time for the ROT entry.
...
However, fall back to CoFileTimeNow if it fails.
2006-12-28 12:34:54 +01:00
Rob Shearman
d4b755a834
ole32: Use the reduced forms of monikers for comparison in the running object table.
2006-12-28 12:34:40 +01:00
Rob Shearman
3bcea6395f
ole32: Execute Reduce using the moniker's vtable in CreateCompositeMoniker as the moniker isn't necessarily a composite moniker.
2006-12-28 12:34:20 +01:00
Rob Shearman
83da7dde2a
ole32: ROTFLAGS_REGISTRATIONKEEPSALIVE and ROTFLAGS_ALLOWANYCLIENT are legal to be used together in RunningObjectTable_Register.
2006-12-28 12:34:10 +01:00
Rob Shearman
3e8adc3d26
ole32: Output the HRESULT for clipboard tests that fail.
2006-12-28 12:17:07 +01:00
Rob Shearman
ee99b6d743
ole32: Marshal the ORPCTHAT structure prefixed to the server data.
...
Unmarshal the data on the client side (during
ClientChannelBuffer_SendReceive) and call ClientNotify.
2006-12-27 14:34:15 +01:00
Rob Shearman
3be9cbc41a
ole32: Message filters aren't used in the test_call_from_message test, so remove the call to CoRegisterMessageFilter.
2006-12-27 13:02:48 +01:00
Alexandre Julliard
365a463b1e
make_makefiles: Automatically add IDL header targets to the .gitignore file.
2006-12-24 17:31:52 +01:00
Rob Shearman
844037ab01
ole32: Performing a COM call from within the processing of a sent message during a wait for completion of another COM call is not allowed.
...
Add a test for the behaviour where RPC_E_CANTCALLOUT_ININPUTSYNCCALL is returned.
2006-12-24 13:08:02 +01:00
Rob Shearman
038c8e642a
ole32: Call the MessagePending function for message filters.
2006-12-24 13:07:38 +01:00
Rob Shearman
aca17cd120
ole32: Track the pending call count so that the correct call type can be passed to the message filter HandleInComingCall function.
2006-12-24 13:07:35 +01:00
Rob Shearman
d3217872b3
ole32: Allow the marshaling/unmarshaling of NULL interfaces for IClassFactory.
2006-12-24 13:07:32 +01:00
Rob Shearman
e236edb91e
ole32: Send a causality ID in the ORPCTHIS header for a call.
...
Use the causality ID to determine whether this is a top-level or a
nested (called-back) call for the purposes of IMessageFilter::HandleInComingCall.
2006-12-20 12:41:01 +01:00
Rob Shearman
4fa03831a5
ole32: Reset the message filter at the end of the message filter test.
2006-12-20 12:40:46 +01:00
Rob Shearman
a089e57983
ole32: Pass in the IID and IUnknown* of the object being executed to the server notification and message filter functions.
2006-12-20 12:40:38 +01:00
Rob Shearman
9208eef55c
ole32: Call the message filter for incoming calls.
2006-12-20 12:40:30 +01:00
Rob Shearman
c0a25d3565
ole32: Call ServerNotify for channel hooks.
...
Store the SChannelHookCallInfo structure in the message state.
2006-12-20 12:40:03 +01:00
Rob Shearman
5788ee9f05
ole32: Implement CoRegisterChannelHook and call channel hook methods on the client side.
2006-12-20 12:39:50 +01:00
Rob Shearman
1dc5dec6e6
ole32: Marshal the ORPCTHIS structure prefixed to the client data when doing ORPC calls.
...
This is done by putting the ORPCTHIS data into the buffer when calling
IRpcChannelBuffer::GetBuffer on the client side and then storing the
amount we increased the buffer in a structure stored in the Handle
field. This is done to present the correct Buffer pointer to the proxy
so that it writes its data after the ORPCTHIS data.
Unmarshal the data on the server side (during RPC_ExecuteCall) and make
sure the data is consistent according to NDR rules. Also add several
checks on the unmarshaled data that are specified by the DCOM draft
specification.
2006-12-20 12:36:43 +01:00
Rob Shearman
307ab51793
ole32: Fix the HMETAFILEPICT user marshaling test to use the size
...
derived from the return value of HMETAFILEPICT_UserMarshal instead of
the value returned by HMETAFILEPICT_UserSize, as the latter
over-estimates the size on Windows.
Remove some unnecessary casts.
2006-12-19 17:00:02 +01:00
Rob Shearman
fb883d8687
ole32: Fix SetSize for HGLOBAL streams in the case of being out-of-memory.
2006-12-18 11:54:24 +01:00
Rob Shearman
fda6498284
ole32: Implement HMETAFILE and HMETAFILEPICT user marshaling functions and add tests for these.
2006-12-18 11:52:58 +01:00
Rob Shearman
3bb4760f88
ole32: Move the user marshal tests to usrmarshal.c.
2006-12-18 11:52:42 +01:00
Rob Shearman
4babec1928
ole32: Add documentation for the user marshaling functions.
2006-12-18 11:45:46 +01:00
Rob Shearman
cc30255c8a
ole32: Support reading and writing custom clipformats in the data cache.
2006-12-18 11:45:42 +01:00
Francois Gouget
458ebf423d
ole32/tests: Replace some '#if 0's with 'if (0)'s.
...
Fix the code so it compiles.
2006-12-14 20:24:53 +01:00
Francois Gouget
5e10172b30
ole32: Fix named/nameless union compilation error.
2006-12-14 12:44:31 +01:00
Marcus Meissner
f0280cbd1e
made functions and variables static in some testcases.
2006-12-11 12:18:29 +01:00
Rob Shearman
7a5766346f
ole32: Add some documentation for CoCreateInstance.
2006-12-07 11:51:13 +01:00
Francois Gouget
dd6e948d84
ole32: Convert dump_user_flags() into debugstr_user_flags(), a proper debug trace function.
2006-12-06 12:15:11 +01:00
Francois Gouget
f0ccd389d4
ole32: Convert dump_FORMATETC() into debugstr_formatetc(), a proper debug trace function.
2006-12-06 12:14:55 +01:00
Francois Gouget
bb8e625b5b
Assorted spelling fixes.
2006-12-05 10:31:47 +01:00
Rob Shearman
878d5e9cec
ole32: Implement the GetData function of the data cache to using the
...
existing LoadData function and fix GetData to also return data that
has been set, rather than loaded.
2006-12-04 20:19:28 +01:00
Rob Shearman
1b244baf48
ole32: Fix HandsOffStorage in the data cache.
2006-12-04 20:19:03 +01:00
Rob Shearman
6235ac9f58
ole32: Implement the DiscardCache function in the data cache.
2006-12-04 20:18:56 +01:00
Rob Shearman
feee099eec
ole32: Add some more traces to the data cache to make debugging easier.
2006-12-04 13:51:15 +01:00
Rob Shearman
e99168e1ba
ole32: Add tests for invalid clipformat/tymed combinations in IOleCache:Cache and for caching formats with a clipformat of 0.
2006-12-04 13:51:11 +01:00
Rob Shearman
ca81b825be
ole32: In the data cache, fmtetc->cfFormat and fmtetc->tymed can be 0 which means to match any clipformat/tymed.
...
Therefore, keep the clipformat of the data in the data_cf field.
Return an error from SetData if a non-zero clipformat hasn't been specified.
Write out stgmedium.tymed instead of fmtetc.tymed, which is guaranteed
to be non-zero if data has been set.
2006-12-04 13:51:06 +01:00
Rob Shearman
d37b669503
ole32: Check that the specified clipboard format and tymed are valid in IOleCache::Cache in the data cache.
2006-12-04 13:44:06 +01:00
Rob Shearman
3b87fe97df
ole32: Set the mapping mode to anisotropic in OleMetafilePictFromIconAndLabel.
2006-12-04 12:22:09 +01:00
Rob Shearman
d7d3309e0a
ole32: The width of the metafile drawn should be 3 times the icon width in OleMetafilePictFromIconAndLabel.
2006-12-04 12:22:03 +01:00
Rob Shearman
cdb86c6c90
ole32: Fill in the xExt and yExt fields in OleMetafilePictFromIconAndLabel.
2006-12-04 12:21:55 +01:00
Rob Shearman
2fa7cadf07
ole32: Use the default icon title font when writing the caption text out in OleMetafilePictFromIconAndLabel.
2006-12-04 12:21:48 +01:00
Rob Shearman
f0e2ea54e0
ole32: The METAFILEPICT created by OleMetafilePictFromIconAndLabel should have its mapping mode be anisotropic, not isotropic.
2006-12-04 12:21:38 +01:00
Rob Shearman
09376ea1f5
ole32: Call SetWindowOrgEx and SetWindowExtEx in OleMetafilePictFromIconAndLabel so that the created metafile scales correctly.
...
Centre the icon and the label.
2006-12-04 12:21:31 +01:00
Rob Shearman
587ba29174
ole32: Implement saving of the data cache.
...
Document a few of the unknown fields in the presentation data header.
2006-12-04 12:21:20 +01:00
Rob Shearman
e5c82d3aa4
ole32: Add handling of the dirty state to the data cache and fix InitNew to not call Load.
2006-12-04 12:21:09 +01:00
Rob Shearman
e9cc0744cc
ole32: Add documentation for CreateDataCache.
2006-12-04 12:20:57 +01:00
Rob Shearman
188fe95091
ole32: Add some tests for the IViewObject, IOleCache2 and IPersistStorage interfaces of the OLE data cache.
2006-12-04 12:20:51 +01:00
Rob Shearman
4b7e8e73a4
ole32: The advise sink for the data cache should be primed with the passed in aspects value, not an arbitrarily selected value.
2006-12-04 12:20:41 +01:00
Rob Shearman
46f70207b2
ole32: Implement the SetData function for the data cache.
2006-12-04 12:20:36 +01:00
Rob Shearman
25d7d95035
ole32: Load cached data in the data cache into a STGMEDIUM type so it can be treated the same as set data.
2006-12-04 12:20:28 +01:00
Rob Shearman
4232d31c57
ole32: Implement Cache and Uncache for the data cache.
2006-12-04 12:20:18 +01:00
Rob Shearman
07e3d538a0
ole32: Create a cache entry for each format in the data cache to allow
...
for the future possiblity to add entries with IOleCache::Cache and
IOleCache::SetData.
2006-12-04 12:20:07 +01:00
Rob Shearman
a2d59ef534
ole32: Implement DataCache_GetClassID.
2006-12-04 12:19:31 +01:00
Dmitry Timoshkov
09fea0f83e
ole32: Make some data const.
2006-11-28 12:36:17 +01:00
Kirill K. Smirnov
3cd3ca68fe
ole32: Fix logic in Storage32Impl_SmallBlocksToBigBlocks function.
2006-11-27 17:44:47 +01:00
Huw Davies
8519a6c49e
ole32: Spelling fixes.
2006-11-22 11:39:03 +01:00
Huw Davies
1f34fdffee
ole32: CoGetInterfaceAndReleaseStream shouldn't crash when passed a NULL stream.
2006-11-22 11:38:57 +01:00
Huw Davies
241336c749
ole32: CoRegisterMessageFilter shouldn't crash on an uninitialized apartment.
2006-11-16 22:09:24 +01:00
Rob Shearman
fff2d8e82b
ole32: Re-enable the code that unregisters interfaces with the RPC runtime.
2006-11-13 14:32:45 +01:00
Francois Gouget
1ccf944900
Assorted spelling fixes.
2006-11-13 13:01:53 +01:00
Francois Gouget
aa857dead3
ole32: Standardize some documentation comments.
2006-11-13 13:01:08 +01:00
Francois Gouget
49ad2b10c1
ole32/tests: Don't use the NONAMELESS* macros in the tests.
2006-11-13 12:59:11 +01:00
Eric Pouech
3026d8844c
ole32: Don't use PropVariantClear to setup an unitialized variant.
2006-11-09 12:24:46 +01:00
Michael Stefaniuc
22befac97e
ole32: Fix the warnings introduced by the "unsigned long" to "ULONG" header changes.
2006-11-09 10:43:38 +01:00
Michael Stefaniuc
cc234847d0
widl: Use ULONG instead of unsigned long when generating declarations for *_UserFree() functions. This is needed for Win64 compatibility.
2006-11-09 10:43:23 +01:00
Michael Stefaniuc
6f95047034
widl: Use ULONG instead of unsigned long when generating declarations for *_UserUnMarshal() functions. This is needed for Win64 compatibility.
2006-11-09 10:43:20 +01:00
Michael Stefaniuc
05b1aac100
widl: Use ULONG instead of unsigned long when generating declarations for *_UserMarshal() functions. This is needed for Win64 compatibility.
2006-11-09 10:43:16 +01:00
Michael Stefaniuc
177aaf6738
widl: Use ULONG instead of unsigned long when generating declarations for *_UserSize() functions. This is needed for Win64 compatibility.
2006-11-09 10:43:12 +01:00
Francois Gouget
30e44c85c8
Assorted spelling fixes.
2006-11-07 15:25:24 +01:00
Andrew Talbot
97ee9c7820
ole32: Cast-qual warnings fix.
2006-11-07 15:06:30 +01:00
Rob Shearman
b1bfad067b
ole32: Fix a memory leak on the error path of dispatch_rpc.
2006-10-27 11:59:58 +02:00
Rob Shearman
93dfdf7a3f
ole32: Fix some memory leaks in the class factory proxy.
2006-10-27 11:59:40 +02:00
Rob Shearman
7cbafd4f74
ole32: Always call IRpcChannelBuffer_GetBuffer in the class factory stub.
2006-10-27 11:59:34 +02:00
Eric Pouech
a79fa50280
ole32: Fixed some wrong conditions in OleFlushClipboard.
2006-10-24 11:32:48 +02:00
Eric Pouech
5c0f35a2aa
ole32: CoUninitialize: No longer access an object after it's been freed.
2006-10-24 11:32:38 +02:00
Rob Shearman
e1ee3b4de3
ole32: Fix some memory leaks in the marshal tests.
2006-10-23 15:18:05 +02:00
Alexandre Julliard
b0ea577ae5
Avoid usage of sizeof in traces that causes warnings on MacOSX.
2006-10-20 12:16:45 +02:00
Francois Gouget
22288de732
Fix compilation with gcc 2.95.
2006-10-19 13:35:19 +02:00
Alexandre Julliard
12c196203c
Make.rules: Added support for building IDL client/proxy/server/iid files.
2006-10-16 17:20:37 +02:00
Francois Gouget
ef998ea6cb
Assorted spelling fixes.
2006-10-16 11:33:38 +02:00
Michael Stefaniuc
21ff87bf50
ole32: Win64 printf format warning fixes.
2006-10-16 10:53:28 +02:00
Michael Stefaniuc
15765dd953
The Data1 member of the GUID struct needs to be an unsigned int too for Win64 compatibility.
2006-10-16 10:53:04 +02:00
Jeff Latimer
6a355aec1b
ole32: Remove dead code in errorinfo.c (Coverity).
2006-10-14 20:38:20 +02:00
Michael Ploujnikov
9d2a804f9b
ole32/tests: Win64 printf format warning fixes.
2006-10-14 20:17:16 +02:00
Jacek Caban
2abe8348fa
ole32: Don't fail in OleCreate if created object doesn't implement IRunnableObject or IOleChache.
2006-10-09 12:43:57 +02:00
Francois Gouget
38520a819c
Assorted spelling fixes.
2006-10-03 15:56:21 +02:00
Francois Gouget
d0b322b00f
ole32: Fix invalid macro usage.
2006-09-29 17:53:01 +02:00
Francois Gouget
87045eb0c5
Fix rpcndr.h so it takes CONST_VTABLE into account.
...
Define CONST_VTABLE in the tests that need it. This fixes many Visual C++ warnings.
2006-09-29 17:52:27 +02:00
Michael Stefaniuc
85ce5117c5
Add a WINE_NO_LONG_INT define to many makefiles to ease the transition of DWORD/LONG/ULONG from long to int.
2006-09-29 16:08:30 +02:00
Andrey Turkin
63f88b3d57
ole32: StgOpenStorage on non-existent file should create it (with test).
2006-09-28 14:14:59 +02:00
Huw Davies
fead72e8a7
ole32: Don't return from CoRegisterClassObject until we have created the named pipe.
...
Also don't fail if the client connects to the pipe between CreateNamedPipe and ConnectNamedPipe.
2006-09-28 11:56:08 +02:00
Robert Shearman
3721bf60bb
ole32: Check the return value of IStream_SetSize so as to not blindly continue on and possibly corrupt the structured storage file.
2006-09-28 11:55:56 +02:00
Alexandre Julliard
335144dc04
ole32/tests: Avoid using sizeof in a trace.
2006-09-27 20:54:05 +02:00
Andrew Talbot
c9f9797890
ole32: Cast-qual warnings fix.
2006-09-21 11:16:42 +02:00
Alexandre Julliard
32ab895e46
makefiles: Generate the dependencies line to avoid some code duplication.
2006-09-14 09:38:16 +02:00
Gerald Pfeifer
24dc347134
ole32: Silence a compiler warning about unused variable in StgStreamImpl_Write().
2006-09-13 11:01:53 +02:00
Robert Shearman
aa336618ec
ole32: Add a check for a condition where a stream has an invalid size
...
and so there aren't enough blocks in the chain to write data into.
2006-09-11 12:28:23 +02:00
Robert Shearman
106156cb75
ole32: Remove some assertions in the stuctured storage code by
...
returning error codes to the caller and by handling the error
condition.
2006-09-11 12:28:12 +02:00
Robert Shearman
79f7318a11
ole32: Convert the *_{Read,Write}At structured storage functions to
...
return HRESULTs instead of BOOLs so that errors can be properly
propagated from lower levels.
2006-09-11 12:27:45 +02:00
Robert Shearman
bfc1bdc3bb
ole32: Fix the IStream_SetSize function for HGLOBAL streams to ignore HighPart.
2006-09-11 12:27:15 +02:00
Robert Shearman
83f13d6b99
ole32: Make an ok message match the name of the function it is testing.
2006-09-11 12:27:07 +02:00
Robert Shearman
355903ddc4
ole32: Fix the return value of the HGLOBAL stream IStream_LockRegion function.
2006-09-11 12:27:04 +02:00