Commit Graph

1050 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
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
Huw Davies aaf7a974a9 ole: ProgIDFromCLSID sets progid to NULL on failure. 2006-01-20 19:41:56 +01:00
Robert Shearman 1b7d346d1f ole: Verify that the proxy is being used in the correct thread. 2006-01-20 16:16:08 +01:00
Robert Shearman 98734cc894 ole: Add a test for WM_QUIT behaviour during COM calls. 2006-01-20 16:14:32 +01:00
Robert Shearman 6e0029f83d ole: Fix WM_QUIT Handling in CoWaitForMultipleHandles.
When a WM_QUIT message in encountered in CoWaitForMultipleHandles then
it should repost the WM_QUIT message and then switch to waiting
without checking messages.
2006-01-20 16:14:23 +01:00
Robert Shearman b4fe7ea7c6 ole: Update the COM todo list. 2006-01-18 11:29:20 +01:00
Robert Shearman ba8cdfdc37 ole: Re-post the quit message outside of the DoDragDrop message loop. 2006-01-18 11:29:13 +01:00
Robert Shearman b3041ba6ad ole: Optimisation for COM Calls.
Add an optimisation to yield and try to allow the RPC to run before
waiting for messages and RPCs to arrive.
2006-01-14 17:45:49 +01:00
Robert Shearman f431353058 ole: Fix crash in RpcChannelBuffer_SendReceive.
Initialise apt to NULL since ipid_to_apt_stubbuffer no longer does
this for us.
2006-01-12 11:53:32 +01:00
Robert Shearman 9ac3b28354 ole: Use strict prototypes for some test functions. 2006-01-12 11:53:19 +01:00
Robert Shearman 6e6d24e959 ole: Implement IEnumSTATDATA for the Ole Advise Holder.
Implement IEnumSTATDATA for the Ole Advise Holder and use it to
implement the Send* functions.
2006-01-11 12:09:32 +01:00
Robert Shearman 781970f001 ole: Initialise hrref so as not to display garbage in the trace. 2006-01-11 12:09:17 +01:00
Robert Shearman 92ad2958ac ole: Remove some duplicated code. 2006-01-11 12:09:11 +01:00
Robert Shearman cd2fafb775 ole: Defer apartment window creation until the first object is marshalled. 2006-01-10 20:41:23 +01:00
Robert Shearman fcba783fc7 ole: Add an accessor function for an apartment's window. 2006-01-10 20:41:22 +01:00
Robert Shearman d175f154ba ole: Report and clean up after PostMessage failures. 2006-01-10 20:41:22 +01:00
Robert Shearman a02cb3ebd6 ole: Pass a channel into IRpcStubBuffer::Invoke.
Create a server channel and store this in the ifstub.
Rename ipid_to_apt_and_stubbuffer to ipid_get_dispatch_params and make
the function return an HRESULT.
Return the channel for the ifstub in ipid_get_dispatch_params.
2006-01-10 20:41:22 +01:00
Robert Shearman 8e5b36147d ole: Reduce the access rights required by start_local_service. 2006-01-10 20:41:22 +01:00
Robert Shearman c46386ff5c ole: Return the last error if we couldn't open the requested service.
Fix the ok/failed message.
2006-01-10 20:41:22 +01:00
Robert Shearman b75db2d9de ole: Join the MTA if necessary when executing an RPC call.
Join the MTA if necessary when executing an RPC call to ensure that it
is executing with a valid apartment and won't fail for certain COM
calls.
2006-01-09 18:41:19 +01:00
Robert Shearman 1eda42ccac ole: Prefer services over servers.
Attempt to start as a local service before attempting to start as a
local server for the CLSCTX_LOCAL_SERVER case.
2006-01-09 18:40:42 +01:00
Robert Shearman e0605afdf6 ole: Add some tests for CLSIDFromString. 2006-01-09 18:40:27 +01:00
Robert Shearman cc4669cc5f ole: Remove __CLSIDFromStringA.
Move the ANSI implementation of CLSIDFromString to ole16.c and change
CLSIDFromString to only deal with Unicode strings.
2006-01-09 18:40:17 +01:00
Alexandre Julliard 0f81ac3506 ole: Remove a no longer needed smbfs hack. 2006-01-06 21:19:05 +01:00
Robert Shearman 95312fcb63 ole: Remove "stub" from TRACEs of functions that aren't stubs. 2006-01-06 21:08:09 +01:00
Ulrich Czekalla 427920f8a2 ole: Fix SmallBlocksToBigBlocks loop.
Stop copying data when read returns 0 bytes
2006-01-06 12:16:04 +01:00
Robert Shearman dfa74b998e ole: Check the return value of IStream_SetSize in IStream_Read.
Check the return value of IStream_SetSize in IStream_Read, since
otherwise execution could continue on and cause heap corruption.
2006-01-03 12:07:49 +01:00
Robert Shearman 8f604e925d ole: Fix mis-handling of return value in StgStreamImpl_Read.
BlockChainStream_ReadAt returns a BOOL, not an HRESULT so change
StgStreamImpl_Read to handle this, by returning STG_E_READFAULT on
failure.
2006-01-03 12:07:34 +01:00
Robert Shearman 85128db39c Fix detection of V1a prop variant library in test suite. 2005-12-26 12:56:48 +01:00
Ulrich Czekalla 707fa2c3a2 ole32: Return error instead of asserting if storage file is corrupt. 2005-12-22 17:15:05 +01:00
Alexandre Julliard dbc14a5cb5 ole32: Revert exception handler change.
The handler does the opposite of normal page fault handlers.
2005-12-19 17:44:56 +01:00
Alexandre Julliard ae964ac801 Take advantage of the __EXCEPT_PAGE_FAULT macro. 2005-12-16 17:17:57 +01:00
Alexandre Julliard db7920bb44 We no longer need to handle EXCEPTION_PRIV_INSTRUCTION on page faults. 2005-12-16 16:37:12 +01:00
Michael Jung 892fc1093d ole32: Periodically call IDropTarger::DragOver during Drag&Drop. 2005-12-12 12:42:53 +01:00
Eric Pouech 681b71ed9a Functions with no paramters must be (void). 2005-12-12 12:42:44 +01:00
Eric Pouech 28442721fd Const correctness fixes. 2005-12-12 11:55:49 +01:00
Robert Shearman 6c3e1f9adf CreateErrorInfo trace fix.
CreateErrorInfo isn't a stub so don't print this in the trace
message.
2005-12-12 11:52:36 +01:00
Robert Shearman ef8ae2d763 OLE: Fix a typo where brackets were missing. 2005-12-06 10:57:58 +01:00
Francois Gouget 5127dc9f49 Assorted spelling fixes. 2005-12-02 16:15:09 +01:00
Robert Shearman 567919d78f Implement some user marshal functions and add tests. 2005-11-29 11:35:27 +01:00
Michael Jung e2bdb145ef Made the Drag&Drop cursors' rubber band visible on a white background. 2005-11-29 11:23:49 +01:00
Robert Shearman 5f7bb17cf4 Implement IOleObject_DoVerb function by running the object and then
delegating to the remote IOleObject_DoVerb function.
2005-11-28 11:24:31 +01:00
Robert Shearman b9d7754034 Delegate advises to the remote object to enable the client to receive
data change notifications.
2005-11-28 11:16:58 +01:00
Robert Shearman bc09238067 Call DefaultHandler_Stop if we fail to start the server running
correctly and a few formatting fixes.
2005-11-28 10:58:51 +01:00
Michael Jung 5db65cdd51 Correct the hot spot position of the drag&drop 'move' and 'link' cursors. 2005-11-28 10:41:00 +01:00
Robert Shearman 22cf59ba43 Call the equivalent delegate function for all of the simple
functions.
2005-11-28 10:39:19 +01:00
Alexandre Julliard 0ec7e1a591 Renamed all .cvsignore files to .gitignore. 2005-11-26 13:10:33 +01:00
Robert Shearman 45d440a219 Implement CLSCTX_INPROC_HANDLER in CoGetClassObject similar to
CLSCTX_INPROC_SERVER by looking at the InprocHandler32 registry key
instead of InprocServer32.
2005-11-12 19:11:21 +00:00
Francois Gouget 0edbaf7e80 Remove spaces before '\n' in traces. 2005-11-10 12:14:56 +00:00
Markus Amsler ae542af541 Improve c2man Documented-Total count. 2005-11-09 10:30:57 +00:00
Robert Shearman f7b65cc716 - Extend COM_OpenKeyForCLSID to open a subkey and return an HRESULT.
- Fix up the callers and reorganize CoGetClassObject to split out the
  inproc code into another function.
2005-11-09 10:29:11 +00:00
Michael Jung 2f210917ee Added tracing to CoCreateInstance. 2005-11-08 12:43:24 +00:00
Robert Shearman 65581b8489 We shouldn't pass the application name into CreateProcess because the
value stored in the registry could include arguments.
2005-11-08 10:56:02 +00:00
Robert Shearman fe4015201b Implement OLE object notifications, making sure to cope with the case
of the advise holder not being created because no notifications are
needed.
2005-11-03 19:32:49 +00:00
Ivan Leo Puoti 52c6299538 Delete some temp files created by the ole32 tests. 2005-10-29 10:29:18 +00:00
Robert Shearman 22c97cd98a Implement a Stop function and use this to properly implement
IOleObject_Close, IAdviseSink_OnClose and the destructor.
2005-10-26 10:12:49 +00:00
Francois Gouget a1f9a13997 Use "static const" rather than "const static" as gcc -W complains
about the former.
2005-10-06 11:38:45 +00:00
Robert Shearman c23cb51d52 Pass WM_QUIT to outer modal loop. 2005-10-03 11:02:37 +00:00
Alexandre Julliard 7e22be4d84 We are no longer generating .dbg.c files. 2005-09-29 10:35:58 +00:00
Robert Shearman fc68475c80 Add a stubbed out implementation of IAdviseSink and advise the
delegate object to use it.
2005-09-29 10:29:44 +00:00
Robert Shearman 8165b584f6 - Make the interfaces that should be supported by the data cache
explicit so their is no confusion in this file as to what it should
  be implementing and what this object should implement.
- Delegate some IOleObject methods to the server IOleObject if it is
  running.
2005-09-28 18:29:38 +00:00
Alex Villacís Lasso 1e26f9601d Add NULL check for sinkInterface in DataCache_GetAdvise. 2005-09-28 18:12:58 +00:00
Alex Villacís Lasso a90c11330e Add missing ! to fix a reversed condition check in
OleCreateDefaultHandler, in order to match intent in comment.
2005-09-28 18:12:45 +00:00
Vincent Béron 80e023bdea Use the proper calling convention for 2 16-bit functions. 2005-09-27 09:32:41 +00:00
Francois Gouget a8c7284f92 Assorted spelling fixes. 2005-09-26 10:58:41 +00:00
Francois Gouget 335fce9ce0 Fix .spec declarations for functinos with 64bit arguments (reported by
winapi_check).
2005-09-26 09:56:40 +00:00
Robert Shearman c86fef8844 Move all 16-bit functions to an appropriate 16-bit file. 2005-09-25 15:17:10 +00:00
Robert Shearman 53ef9950f2 Implement some IRunningObject functions that actually start the server
and initialize it.
2005-09-23 10:08:35 +00:00
Robert Shearman 3daf39fb0c Implement OleRegEnumVerbs. 2005-09-23 10:08:25 +00:00
Robert Shearman 044ccc40f3 Don't fail in CoRegisterClassObject if the class already exists and
the REGCLS_MULTIPLEUSE flag is specified.
2005-09-23 10:08:11 +00:00
Alexandre Julliard 0ec0f048e6 Removed unused debug channels. 2005-09-22 10:44:40 +00:00
Robert Shearman 6bc4327c92 - Initialize out pointer to NULL before access check in
IStorage_CreateStorage.
- WriteClassStg should return E_INVALIDARG if pstg is NULL instead of
  asserting.
- ReadClassStg should return E_INVALIDARG if pstg is NULL instead of
  crashing and a NULL pclsid should cause it to return the same
  value.
2005-09-22 10:34:40 +00:00
Alexandre Julliard 9f1c6de1ef We are no longer generating .spec.c files. 2005-09-21 14:42:52 +00:00
Robert Shearman 0a49c1752e Implement OleIsRunning. 2005-09-20 11:36:56 +00:00
Robert Shearman d389b57171 - Fix a trace to refer to the object ID rather than the legacy MID.
- Fix the error case of CoMarshalInterThreadInterface to release the
  stream.
2005-09-20 11:36:40 +00:00
Robert Shearman 83f3b370b1 - Remove redunant braces.
- Compact multi-line comments that fit into one line.
- Remove comments that state the obvious.
- Remove extra brackets that are redundant because the -> operator
  binds tighter than &.
- Change "this" to "This" to make code more like other interface
  implementations.
- Remove redundant comparisons with NULL for pointers.
2005-09-19 14:42:53 +00:00
Robert Shearman 0ceacf017f Fix the return codes during unmarshaling so that it returns failure
codes instead of S_FALSE returned from IStream_Read.
2005-09-19 14:34:04 +00:00
Robert Shearman b3a4b59668 Fix ref-counting rules to match native DCOM Dlls. 2005-09-18 11:10:37 +00:00
Robert Shearman 18bd21d4f1 Re-arrange some functions and vtables so we don't have declarations
for all of the functions in the file.
2005-09-17 14:29:11 +00:00
Robert Shearman 43df8b61bb Add exception handling for stubs. 2005-09-14 10:07:01 +00:00
Alexandre Julliard 5a49e40149 SendMessageTimeout takes a DWORD_PTR not a DWORD. 2005-09-12 20:43:32 +00:00
Alexandre Julliard f8ee161a1b Fixed some traces to use the right printf format and avoid typecasts. 2005-09-12 10:30:05 +00:00
Alexandre Julliard 20a1a203c6 Use a more portable scheme for storing the name of a critical
section.
2005-09-09 10:19:44 +00:00
Richard Cohen 908e9e889e Relax the share mode validation for transacted storage, with a test. 2005-09-07 09:22:15 +00:00
Eric Pouech b379e420ed Fixes for function prototypes without arguments. 2005-09-06 09:27:37 +00:00
Robert Shearman 3f912e048e The [string] attribute is only valid on byte, char and wchar_t types,
so replace "unsigned short" by "WCHAR".
2005-09-02 11:19:05 +00:00
Alexandre Julliard 611b5acbf8 Authors: Mike Hearn <mh@codeweavers.com>, Robert Shearman <rob@codeweavers.com>
Change stub manager to track the number of normal marshals instead of
using the state machine so that multiple marshals of the same object
and interface work correctly.
2005-09-02 11:18:45 +00:00
Robert Shearman dab603def3 - Implement IMarshal on proxies so that we don't end up with proxies
to proxies, causing potential deadlock issues and performance
  problems.
- Add a test for this situation and remove the todo_wine from another
  test that now succeeds.
2005-08-27 09:25:16 +00:00
Robert Shearman c8aedf9726 Add stub for CoAllowSetForegroundWindow. 2005-08-26 08:47:09 +00:00
Robert Shearman bcb251d5b3 Remove unused thread handle entry from the apartment structure. 2005-08-25 09:50:36 +00:00
Mike McCormack eafa666bee Fix some gcc 4.0 warnings. 2005-08-22 09:26:53 +00:00
Mike McCormack 6c8527c31c - return a precomputed result for a NULL string
- pass strlen an LPSTR to eliminate a sign warning
2005-08-22 09:19:38 +00:00
Francois Gouget 71af595499 Use LPSTORAGE to better match the PSDK.
Document the real SEGPTR type using the standard documentation
mechanisms. Fixes winapi_check warnings.
2005-08-16 16:01:15 +00:00
Mike McCormack 61aabd66f5 Warning fixes for gcc 4.0. 2005-08-15 10:49:39 +00:00
Marcus Meissner 61b2fba9d7 Added CoCreateInstance16, CoGetClassObject16, OleLoad16 stubs. 2005-08-15 09:46:51 +00:00
Alexandre Julliard 628939d567 Use the proper WOW functions everywhere instead of the K32WOW variant. 2005-08-10 10:59:19 +00:00
Vincent Béron 21e3ba8cd1 Correct mismatches between spec files and comments about export
number.
2005-08-10 09:53:47 +00:00
Vincent Béron d32610fabe Remove local declarations already in included public headers. 2005-08-10 09:48:15 +00:00
Alexandre Julliard d37f0abf07 Don't prefix the functions DllCanUnloadNow, DllGetClassObject and
Dll(Un)RegisterServer with the dll name so that the compiler can check
the prototypes.
2005-08-08 17:35:28 +00:00
Marcus Meissner 170470ee0b Implemented ILockBytes16 (memorystream) support for the 16bit compound
storage implementation.
Added ReadClassStg, OleDoAutoConvert, GetConvertStg
implementations/stubs.
2005-08-08 11:05:06 +00:00
Alexandre Julliard 04b7382db9 Remove duplicate definition of FILE_BEGIN. 2005-07-28 10:24:01 +00:00
Alexandre Julliard b1a9701bb5 Replace the _ICOM_THIS_From macros by inline functions the way it's
already done in shelllink.c.
2005-07-27 11:10:52 +00:00
Alexandre Julliard b8d3075d83 Uncomment the typedef in the DECLARE_INTERFACE macro, and get rid of
duplicate typedefs.
2005-07-26 18:32:53 +00:00
Stefan Huehner 4f82e547d7 Fix some missing-declarations warnings. 2005-07-24 17:11:59 +00:00
Marcus Meissner c5feb317b3 Implemented IsValidInterface16, CoMemAlloc.
Added debug to HGLOBALLockBytes16_QueryInterface.
2005-07-24 16:15:24 +00:00
Marcus Meissner 1c3054af32 Added OleSetMenuDescriptor16 stub. 2005-07-22 18:29:39 +00:00
Marcus Meissner c8187b0900 OleInitializeWOW gets 2 arguments. 2005-07-22 18:29:19 +00:00
Marcus Meissner ba4c61776d 16bit COM interfaces are cdecl, not WINAPI. 2005-07-22 18:26:31 +00:00
Marcus Meissner d32762808b 16bit interfaces are cdecl, so drop the WINAPI. 2005-07-22 09:03:29 +00:00
Robert Shearman 4fad9ddc86 Hack around broken state management so InstallShield works. 2005-07-20 10:30:04 +00:00
Robert Shearman 775898ba97 - Always query for the correct stub interface, otherwise we will be
pointing to the completely wrong object when a proxy does a
  queryinterface.
- Remove assumption that the stub buffer will handle the lifetime of
  the object.
2005-07-19 19:59:41 +00:00
Robert Shearman 5d873adf9f Marshal return value from IRemUnknown_RemQueryInterface. 2005-07-19 19:43:05 +00:00
Robert Shearman c0d7a25a42 Silence now noisy error messages caused by changes in the way we call
ipid_to_stubmanager. Move the error message to the one place it is
needed.
2005-07-19 19:42:33 +00:00
Robert Shearman 97be0be7e4 - We should be starting with 1 reference.
- IRpcStubBuffer_Disconnect can be called more than once.
2005-07-19 19:13:11 +00:00
Robert Shearman 28479ea4aa By-pass the RPC runtime if possible when calling an STA by posting a
message directly to the apartment window for it to process. Fixes a
deadlock in InstallShield caused by having to create a thread when
freeing an object that comes from an STA apartment. Added tests that
fail without this fix.
2005-07-19 19:12:47 +00:00
Robert Shearman e874408d65 Delete the stub manager outside of the apartment critical section
because the deletion may require the object to re-enter the
apartment.
2005-07-19 19:12:24 +00:00
Alex Villacís Lasso 0f9ebafbec Initialize RegisteredClass properly in CoRegisterClassObject to
prevent crash in CoRevokeClassObject when accessing (uninitialized)
pMarshalledData.
2005-07-19 11:40:22 +00:00
Vitaly Lipatov e633b45300 Added some documentation. 2005-07-07 17:21:44 +00:00
Mike McCormack c7fdb4565a Fix gcc 4.0 -Wpointer-sign warnings. 2005-07-05 11:02:54 +00:00
Eric Pouech 809edabfbe Const correctness fixes. 2005-06-27 09:53:46 +00:00
Alexandre Julliard aa0b9aac0d Sort entry points alphabetically. 2005-06-22 18:38:23 +00:00
Stefan Huehner 863a4b1488 Fix some more -Wstrict-prototypes warnings. 2005-06-21 20:53:13 +00:00
Stefan Huehner ac6f562b52 Fix more -Wstrict-prototypes warnings. 2005-06-20 14:18:03 +00:00
Robert Shearman 0a645e8cb9 Convert some registry helper functions to use unicode versions of
CLSID & registry functions (untested).
2005-06-20 13:14:22 +00:00
Robert Shearman 5807cb79f0 Change the RPC code to use the unicode versions of the CLSID &
registry functions.
2005-06-20 10:33:28 +00:00