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
Robert Shearman
785d957eb4
ole32: EnumMonikerImpl_Next should add a reference to the monikers it returns to the caller.
2006-05-08 15:41:04 +02:00
Robert Shearman
3a77ee1d5e
ole32: Fix CompositeMonikerImpl_GetSizeMax to match the data written by CompositeMonikerImpl_Save.
2006-05-08 15:40:56 +02:00
Robert Shearman
9c6b67090f
ole32: Fix the loop in CompositeMonikerImpl_Hash, as IEnumMoniker_Next
...
will return S_FALSE when there are no more monikers left to enumerate.
2006-05-08 15:40:43 +02:00
Robert Shearman
2a320dbde8
ole32: Implement CompositeMonikerROTDataImpl_GetComparisonData.
2006-05-08 15:40:31 +02:00
Robert Shearman
996b35f272
ole32: The unknown constant at the start of the persisted data is the number of monikers in the generic composite.
...
Fix the pointer passed into IEnumMoniker_Release in CompositeMonikerImpl_Save.
2006-05-08 15:40:05 +02:00
Robert Shearman
c8c93e6657
ole32: Add a test for anti monikers. Fix AntiMonikerImpl_Hash and AntiMonikerROTDataImpl_GetComparisonData to pass the tests.
2006-05-08 15:39:47 +02:00
Robert Shearman
caa8b4ed1d
ole32: Support marshaling of anti monikers.
2006-05-08 15:39:10 +02:00
Robert Shearman
f7ed725b60
ole32: Register CLSID_CompositeMoniker.
2006-05-08 15:37:27 +02:00
Robert Shearman
7fe211e9b3
ole32: Register CLSIDs for all OLE monikers.
2006-05-08 15:37:06 +02:00
Robert Shearman
68fceb0a70
ole32: Add tests for item moniker.
2006-05-08 15:36:45 +02:00
Robert Shearman
26a3ff33d0
ole32: Make class moniker test more generic and test more properties.
2006-05-08 15:36:40 +02:00
Marcus Meissner
f937f72308
ole32: Fixed typo in debug statement.
2006-05-08 14:46:58 +02:00
Robert Shearman
6814b33aa3
ole32: Remove the fixme printed if CoGetClassObject fails in CoCreateInstance.
...
Remove the fixme printed if CoGetClassObject fails in
CoCreateInstance, because we already print an error in all cases and
the error more accurately pin-points the source of the problem.
2006-05-07 10:03:11 +02:00
Robert Shearman
32d39ea6ed
ole32: IPersistStream is also implemented by any object that implements IStream.
2006-05-05 21:51:52 +02:00
Robert Shearman
d9b7c36009
ole32: Fix typos in StgCreateStorageEx and StgOpenStorageEx.
2006-05-05 21:51:43 +02:00
Robert Shearman
6dd5dbef64
ole32: STGM_PRIORITY allows other IStorage objects to be opened in transacted mode with read/write access.
2006-05-05 21:51:31 +02:00
Robert Shearman
693da8c471
ole32: Check that the storage was opened with write access before creating a new stream or sub-storage.
2006-05-05 21:50:12 +02:00
Robert Shearman
5d051af6ae
ole32: Copy the mode flags into the STATSTG structure in IStorage::Stat.
...
Copy the mode flags into the STATSTG structure in IStorage::Stat. Don't
store the STGM_CREATE flag in openFlags, since it is only relevant when
opening the stream and the tests show that it isn't returned in the
STATSTG structure.
2006-05-05 21:49:39 +02:00
Robert Shearman
dd58e54e43
ole32: Add tests for IStorage::Stat.
2006-05-05 21:49:13 +02:00
Robert Shearman
b2207d83ad
ole32: Fix access right check for opening and creating streams and storages.
...
Check the access mode for opening and creating streams and storages
doesn't exceed the access rights the current storage was opened with,
not the parent storage.
2006-05-05 21:49:04 +02:00
Robert Shearman
8d39c80950
ole32: Add more tracing for reading and writing storage streams.
...
Add more tracing for read and write operations and warn in the case of
failure.
2006-05-05 21:48:49 +02:00
Robert Shearman
168e2fb98f
ole32: Add tests for sub-storages and creating streams.
...
Replace a test that fails on NT and with DCOM95 DLLs with a test that
ensures access permissions are checked correctly for sub-storages and
creating streams.
2006-05-05 21:48:37 +02:00
Robert Shearman
8d30c1d08e
ole32: Add a storage test for reading and writing of streams that have
...
had their parent storage released.
2006-05-05 21:48:27 +02:00
Mike McCormack
3c1e67d084
ole32: Return STG_E_REVERTED when a stream's parent storage has been closed.
2006-05-05 20:54:57 +02:00
James Hawkins
2b5963f8e2
ole32: StorageImpl_GetROBigBlock can return NULL so check for NULL before doing a memcpy.
2006-05-05 17:51:08 +02:00
Mike McCormack
a8494aa9a9
ole32: Store drop targets in a standard list.
2006-05-05 16:33:12 +02:00
Mike McCormack
11e4b21a30
ole32: More tests and fixes for STGM_PRIORITY.
2006-04-18 11:15:03 +02:00
Mike McCormack
d7424771ea
ole32: Fix a declaration.
2006-04-18 11:14:58 +02:00
Mike McCormack
64659785de
ole32: Uncomment some code to make sure it is compiled, but don't run it.
2006-04-18 11:14:53 +02:00
Robert Shearman
bff74c1763
ole32: Fix typo in FileMonikerImpl_BindToObject.
...
Fix apparent typo in FileMonikerImpl_BindToObject, where ppf was
incorrectly passed into IClassFactory_CreateInstance instead of &ppf
(found by Coverity).
2006-04-07 13:10:18 +02:00
Robert Shearman
3a2e18c99c
ole32: Check for pcbSize parameter of CompositeMonikerImpl_GetSizeMax being NULL, rather than non-NULL.
2006-04-07 13:10:03 +02:00
Robert Shearman
ff5efc2779
ole32: Check for pcbSize in AntiMonikerImpl_GetSizeMax being for NULL, not for non-NULL.
2006-04-07 13:09:57 +02:00
Robert Shearman
582e2f1ff8
ole32: Fix DefaultHandler_EnumAdvises.
...
As per MSDN, if the object has no connections then
IOleObject::EnumAdvises should return a NULL enumerator and S_OK. This
is the case when This->oleAdviseHolder is NULL, so do this and avert a
potential NULL dereference of This->oleAdviseHolder (found by
Coverity).
2006-04-07 13:09:36 +02:00
Robert Shearman
c77711a6c9
ole32: Add documentation for the clip format user marshal functions.
2006-04-03 21:36:12 +02:00
Mike McCormack
eed120995b
ole32: STGM_PRIORITY implies STGM_SHARE_EXCLUSIVE.
2006-04-03 12:15:34 +02:00
Robert Shearman
714b66e945
ole: Use ncalrpc instead of ncacn_np as the RPC transport.
...
Use ncalrpc instead of ncacn_np as the transport as this is more similar
to how ole32 from NT works and should also be compatible with rpcrt4
from Win9x, allowing more combinations of dlls to work.
2006-03-31 17:38:43 +02:00
Robert Shearman
fb5ec209cd
ole32: Remove unnecessary commenting out of the RPC interfaces in the dcom idl file.
2006-03-30 21:55:43 +02:00
Robert Shearman
8c7706bad0
ole32: Don't process posted messages in CoWaitForMultipleHandles.
...
Tests with native show that during COM calls posted messages aren't
retrieved other than COM calls so change the PeekMessage parameters in
CoWaitForMultipleHandles to duplicate this.
2006-03-30 12:43:17 +02:00
Robert Shearman
ff85f892c6
ole32: Try to retrieve messages that are COM calls first.
...
Try to retrieve messages that are COM calls first in
CoWaitForMultipleHandles before retrieving other types.
2006-03-30 12:42:50 +02:00
Robert Shearman
a1548b45d8
ole32: Put the PeekMessage call of CoWaitForMultipleHandles into a separate function.
...
Put the PeekMessage call of CoWaitForMultipleHandles into a separate
function so that the order and type of the messages retrieved can be
customised in the future.
2006-03-30 12:42:35 +02:00
Robert Shearman
8c551796a9
ole32: Whether the message loop is entered in CoWaitForMultipleHandles,
...
should depend on whether the current apartment is a single threaded one.
2006-03-30 12:42:01 +02:00
Robert Shearman
3091aa5302
ole32: Pass the no yield flag to PeekMessage.
...
Pass the no yield flag to PeekMessage since we sleep in
MsgWaitForMultipleObjectsEx and the extra context switch is wasteful.
2006-03-30 12:41:32 +02:00
Mike McCormack
50436da519
ole32: Fix StgOpenStorage's handling of the STGM_PRIORITY flag.
2006-03-30 12:38:08 +02:00
Kevin Koltzau
0c2d277286
ole32: Initial tests for OLE clipboard functions.
2006-03-22 11:19:25 +01:00
Francois Gouget
6bddeb1cf7
Assorted spelling fixes.
2006-03-21 20:10:39 +01:00
Robert Shearman
650ac14219
ole: Use the thread pool for executing RPC calls for better performance
...
(after the thread pool has been improved).
2006-03-20 12:00:50 +01:00
Robert Shearman
7406cc210b
ole: Implement IRpcChannelBuffer::GetDestCtx on the client side.
2006-03-06 11:09:34 +01:00
Robert Shearman
92a1f52b4d
ole: Store the destination context and the destination context data in
...
the proxy manager when unmarshaling.
2006-03-06 11:08:52 +01:00
Alexandre Julliard
c9cc7e33ff
Fixed some compiler warnings on old gcc versions.
2006-03-02 18:03:32 +01:00
Robert Shearman
9a9981bad5
ole: Change NORMALEXTREFS to 5, like it is in native.
2006-03-01 19:54:45 +01:00
Robert Shearman
857a6d1f63
ole: Fix marshaling of proxies for interfaces that haven't already been unmarshaled.
2006-03-01 19:54:20 +01:00
Vitaly Lipatov
aee52b747e
ole32: Add descriptions for StgCreateDocfile and StgIsStorageFile functions.
2006-02-24 21:10:27 +01:00
Francois Gouget
e092adfc9b
Add trailing '\n's to ok() calls.
2006-02-24 21:07:33 +01:00
Vitaly Lipatov
a8397e307a
ole32/tests: Do not compare returned by DeleteFile value with TRUE.
2006-02-24 11:23:40 +01:00
Robert Shearman
f4a8ba9548
ole: Fallthrough from local activation in CoGetClassObject.
...
If local-server or local-service activation doesn't work in
CoGetClassObject then fallthrough instead of returning from the
function.
2006-02-24 11:23:16 +01:00
Robert Shearman
6c529a7273
ole: Make the CoCreateInstance test succeed.
...
Move the uninitialized apartment check after zeroing out the return
value.
2006-02-22 22:14:52 +01:00
Dr J A Gow
e3af1227c9
ole32: Fix stream ref counting.
...
Stream methods called after parent object has been closed correctly
return STG_E_REVERTED.
Stream refcounting fixed. Now can safely call IStorage destructor
before IStream destructor and guarantee file will be closed.
2006-02-21 11:18:05 +01:00
Dr J A Gow
c74e5a784d
ole32: Fix up permissions when opening streams.
...
Fix up permissions when opening streams in storage objects when
storage object has been opened in transacted mode.
2006-02-21 11:17:32 +01:00
Robert Shearman
023ad38914
ole: Test the behaviour of CoCreateInstance with an uninitialized apartment.
2006-02-20 11:16:08 +01:00
Robert Shearman
a37a5014a2
ole: Change the Apartment Model field to a boolean.
...
Change the apartment model field to a boolean that just specifies
whether the apartment is multi-threaded or not and fix up all the
places where this is used.
Fixes a bug where we would return an error if the previous apartment
model passed into CoInitializeEx matches the new apartment model, but
additional optimisation flags are specified.
2006-02-20 11:15:57 +01:00
Mike McCormack
5c3b0df716
ole32: Added a test showing OLE storage's IStorage/IStream refcounting
...
behaviour.
2006-02-15 11:51:05 +01:00
Alexandre Julliard
be22a96847
Include wine/port.h in files that use exceptions.
2006-02-07 16:31:21 +01:00
Robert Shearman
af7c076337
ole32: Print an error message if the apartment isn't initialised in
...
CoCreateInstance.
2006-02-07 16:25:25 +01:00