Commit Graph

837 Commits

Author SHA1 Message Date
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
Robert Shearman
806f6e7bd6 ole32: Create moniker enumerator with an initial reference count. 2006-05-08 15:44:58 +02:00
Robert Shearman
91e51971c0 ole32: Test moniker display names. 2006-05-08 15:44:49 +02:00
Robert Shearman
d8563f1eba ole32: Add a test for IMoniker_IsDirty. 2006-05-08 15:44:39 +02:00
Robert Shearman
77188bbeab ole32: Test unmarshaling the moniker instead of just releasing the marshaled data. 2006-05-08 15:44:27 +02:00
Robert Shearman
57b42ae7bc ole32: Make the size returned by CompositeMonikerImpl_GetMarshalSizeMax match that returned by native. 2006-05-08 15:44:15 +02:00
Robert Shearman
50ec1d6849 ole32: Add on the size of the whole OBJREF structure in the case of custom marshaling. 2006-05-08 15:44:06 +02:00
Robert Shearman
340f7a3ec0 ole32: Fix the algorithm used in CompositeMonikerImpl_Hash to match native. 2006-05-08 15:43:46 +02:00
Robert Shearman
e97709ff6d ole32: Fix the algorithm used in ItemMonikerImpl_Hash to match native. 2006-05-08 15:43:35 +02:00
Robert Shearman
b011a2ba8f ole32: Add tests for generic composite monikers. 2006-05-08 15:43:27 +02:00
Robert Shearman
caefc34084 ole32: Add a class factory for composite monikers. 2006-05-08 15:43:16 +02:00
Robert Shearman
fa8472c35a ole32: Allocate memory for the generic composite moniker in CompositeMonikerImpl_Construct.
Don't leak memory in the case of newCompositeMoniker->tabLastIndex == 1, 
which can't happen anyway.
Allow construction of a moniker with no sub-monikers.
2006-05-08 15:42:53 +02:00
Robert Shearman
9e799f2054 ole32: Implement IMarshal for composite monikers. 2006-05-08 15:41:25 +02:00
Robert Shearman
e68e6d7dba ole32: Release all existing monikers before loading the state. 2006-05-08 15:41:13 +02:00