850 Commits

Author SHA1 Message Date
Robert Shearman
2f0e714a27 ole32: When marshaling a proxy make sure to maintain an external
reference on the stub object so that the first proxy can be released.

Implement external refcount sharing between a proxy and the marshaled proxy.

Extend the marshaling of a proxy test to show that an external reference 
is always kept on the stub object.
2006-06-29 14:40:50 +02:00
Robert Shearman
723aceb20f ole32: Add a test for CoCreateInstance doing object hosting by
automatically creating an appropriate apartment for the object and
returning a proxy to it.
2006-06-29 14:40:23 +02:00
Robert Shearman
b0efdcbdbd ole32: Implement CoGetObject. 2006-06-29 14:40:05 +02:00
Andrew Talbot
d69745ff7a ole32/tests: Write-strings warning fix. 2006-06-23 10:45:57 +02:00
Mike McCormack
98d4c2b049 ole32: Implement reading of VT_CF storage properties. 2006-06-19 22:54:21 +02:00
Mike McCormack
ccfa76d18e ole32: Fix a typo. 2006-06-19 20:53:44 +02:00
Robert Shearman
1ddc722ec2 ole32: Document CoCreateFreeThreadedMarshaler. 2006-06-19 10:28:26 +02:00
Robert Shearman
aa09031c78 ole32: Reuse event handles used for COM calls.
This reduces the number of server calls during a COM call by half.
2006-06-19 10:28:20 +02:00
Robert Shearman
f2dc25a5f3 ole32: Always rewind the stream in StdGlobalInterfaceTable_GetInterfaceFromGlobal
as CoUnmarshalInterface may have advanced the stream, even if it failed.
2006-06-15 12:07:10 +02:00
Robert Shearman
fa757df883 ole32: Add a tests for OleSetMenuDescriptor and the global interface table. 2006-06-15 12:06:49 +02:00
Alexandre Julliard
96ad688174 ole32: Don't use sizeof in traces to avoid printf format warnings. 2006-06-13 14:11:15 +02:00
Alexandre Julliard
28e17a75af ole32/tests: Don't use sizeof in ok() to avoid printf format warnings. 2006-06-13 14:03:36 +02:00
Robert Shearman
b5f7e818a1 ole32: Print an error if a DLL's DllGetClassObject fails as this is
usually a good indicator of a bug elsewhere in Wine.
2006-06-13 11:40:20 +02:00
Alexandre Julliard
69591d81f9 ole32: Explicitly specify CDECL calling convention on exported functions. 2006-06-12 21:34:59 +02:00
Alexandre Julliard
ae525c1441 ole32: Make the virtual table functions static where possible. 2006-06-10 11:59:15 +02:00
Robert Shearman
c60c28cf08 ole32: If IRpcStubBuffer_Invoke fails, we should raise an exception to
tell the RPC runtime that the call failed.
2006-06-09 21:11:20 +02:00
Robert Shearman
3d4e9d6a71 ole32: Register ISequentialStream for marshaling. 2006-06-09 21:11:09 +02:00
Robert Shearman
51e22f42bb ole32: Implement CoQueryClientBlanket, CoImpersonateClient and
CoRevertToSelf on top of CoGetCallContext, which is a stub.
2006-06-09 21:11:02 +02:00
Robert Shearman
42c39675ea ole32: Implement FTMarshalImpl_GetMarshalSizeMax. 2006-06-09 21:10:44 +02:00
Alexandre Julliard
32f57b0214 ole32: Use the standard DEFINE_OLEGUID macro to define GUIDs. 2006-06-09 21:09:49 +02:00
Troy Rollo
bdbc482651 ole32: Use STGM_WRITE when opening child storage to delete its children. 2006-05-31 11:45:29 +02:00
Robert Shearman
f2bd261f12 ole32: Add a class factory for CLSID_InProcFreeMarshaler. 2006-05-25 10:43:29 +02:00
Robert Shearman
386fcbb5f7 ole32: Implement GetUnmarshalClass for the free-threaded marshaler and
remove unnecessary unmarshaling code for the standard-marshal case -
this is handled by CoUnmarshalInterface and CoReleaseMarshalData.
2006-05-25 10:43:18 +02:00
Robert Shearman
2c57189a97 ole32: Implement table-strong marshaling and ReleaseMarshalData for the free-threaded marshaler. 2006-05-25 10:43:07 +02:00
Robert Shearman
f9b5280dd0 ole32: Implement table-weak marshaling for the free-threaded marshaler. 2006-05-25 10:42:56 +02:00
Robert Shearman
b795631daa ole32: Release the standard marshal in the free-threaded marshaler's UnmarshalInterface function. 2006-05-25 10:42:12 +02:00
Robert Shearman
4335c64f7b ole32: Add a rough implementation of the free-threaded marshaler MarshalInterface and UnmarshalInterface methods, with test cases. 2006-05-25 10:41:17 +02:00
Robert Shearman
4d1d2b6c1f ole32: Fix the free-threaded marshaler when it has no outer unknown. 2006-05-25 10:41:04 +02:00
Robert Shearman
760208b2a5 uuid: Add some COM CLSIDs. 2006-05-25 10:38:57 +02:00
Jonathan Ernst
360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Troy Rollo
1be295fb47 ole32: Fix excessive file sizes for Storage files.
The IStorage (DocFile) implementation was adding empty blocks at the
end of the file every time a caller wrote data that was not a multiple
of 512 bytes.  If the caller made a lot of very small writes the file
size could be huge even though the data in the file was tiny. This was
caused by BlockChainStream_SetSize trying to allocate file blocks for
the new data using a condition that bore no relationship to the
required condition, and it was not necessary to do so at that time
since it is done (the right way) by StorageImpl_GetNextFreeBigBlock
(called via BlockChainStream_Enlarge).
2006-05-23 13:00:13 +02:00
Robert Shearman
0fd184773a ole32: Release the outer unknown in the proxybuffer test.
Release the outer unknown in the proxybuffer test to show that the
last release of the outer unknown doesn't free the proxy buffer.
2006-05-23 12:05:07 +02:00
Robert Shearman
875390110f ole32: Release the proxy buffer object on the last release of the proxy's outer unknown.
Release the proxy buffer object on the last release of the proxy's outer
unknown, otherwise memory is leaked for the Ndr implementation of
IRpcProxyBuffer.

Fix up the hand-coded proxies to match the behaviour from the Ndr
implementation.
2006-05-23 12:05:01 +02:00
Francois Gouget
17689c07bb Fix some winapi_check documentation warnings. 2006-05-15 15:05:15 +02:00
Francois Gouget
f7c24f37ad Various trace fixes.
Add trailing '\n's to trace calls.
Remove spaces before '\n'.
2006-05-15 15:05:09 +02:00
Francois Gouget
3b102b39f4 ole32: Fix compilation with gcc 2.95. 2006-05-15 11:09:01 +02:00
Robert Shearman
74407105d2 Check the return value from register_key_guid in all the DLL registering code. 2006-05-10 19:38:04 +02:00
Robert Shearman
5a8536a18d ole32: Add a test for IMoniker_IsDirty. 2006-05-10 19:26:22 +02:00
Robert Shearman
af6d97ad36 ole32: Exception handling shouldn't be needed around the call to IRpcStubBuffer_Invoke.
It should have its own exception handler to catch any exceptions that are raised.
2006-05-10 19:24:24 +02:00
Robert Shearman
1c6f16a384 ole32: The type check in AntiMonikerImpl_CommonPrefixWith should be for anti-monikers, not item-monikers. 2006-05-08 21:14:36 +02:00
Robert Shearman
ae62ab039f ole32: Implement several class moniker functions using the description provided on MSDN. 2006-05-08 21:14:28 +02:00
Robert Shearman
b155f233f3 ole32: Remove duplicated CLSIDs. 2006-05-08 21:13:38 +02:00
Robert Shearman
8a4f71c61e ole32: Add an implementation of class monikers. 2006-05-08 21:13:32 +02:00
Robert Shearman
71a7393f45 ole32: Add tests for IsRunning, GetTimeOfLastChange, BindToObject, BindToStorage and Inverse. 2006-05-08 21:04:26 +02:00
Robert Shearman
288fb09b31 ole32: Fix regression caused by an earlier patch that removed the
check for the composite moniker having only one moniker in it. In this
case, return the one moniker and free the memory associate with the
composite moniker.
2006-05-08 20:59:25 +02:00
Robert Shearman
96646d532f ole32: Fix infinite recursion in CompositeMonikerImpl_GetTimeOfLastChange by handling pmkToLeft properly.
Fix a typo where CompositeMonikerImpl_GetTimeOfLastChange was called 
instead of the virtual implementation of it on mostRightMk.
2006-05-08 20:59:04 +02:00
Robert Shearman
91afe981e0 ole32: Fix infinite recursion in CompositeMonikerImpl_BindToStorage. 2006-05-08 20:58:53 +02:00
Mike Hearn
27800ef4cc ole32: Add StgCreateFile test and conformance fix. 2006-05-08 16:04:51 +02:00
Alexandre Julliard
fec050c88d ole32: Properly initialize hash value in CompositeMonikerImpl_Hash. 2006-05-08 16:04:41 +02:00
Robert Shearman
b6592efa83 ole32: Fix typos in CompositeMonikerImpl_BindToObject and CompositeMonikerImpl_BindToStorage. 2006-05-08 15:45:08 +02:00