Commit graph

1182 commits

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