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