Commit Graph

109 Commits

Author SHA1 Message Date
Andrey Turkin d0a345f914 ole32: Add a few fields to OLE TLS area to match native memory layout. 2009-01-19 14:46:02 +01:00
Andrey Turkin a06f568a2a ole32: Add CoGetCallContext and CoSwitchCallContext implementations. 2009-01-19 14:44:32 +01:00
Alexandre Julliard 4bb2199c8e ole32: Make a function static. 2008-12-04 12:47:56 +01:00
Alexandre Julliard 16b5e6b9b5 ole32: Register interfaces through dlldata.c as far as possible. 2008-12-02 20:52:09 +01:00
Alexandre Julliard 1bd26cca94 ole32: Use a dlldata.c file instead of maintaining the data manually. 2008-12-01 18:56:15 +01:00
Maarten Lankhorst 92dca953d9 ole32: Add Co*InitializeSpy functions. 2008-11-26 13:44:36 +01:00
Alexandre Julliard ebdb933b6d ole32: Convert source files to utf-8. 2008-10-18 19:20:29 +02:00
Rob Shearman 8580198dc8 ole32: Keep track of the number of weak references to an object.
This is so that an object will only be released when a weak-reference is 
used after the last weak reference has been released (either by 
CoReleaseMarshalData or CoUnmarshalInterface + Release).
2008-04-29 12:35:26 +02:00
Rob Shearman 630e273d17 uuid: Add CLSID_InProcFreeMarshaler.
Remove its initialisation from ole32.
2008-03-06 17:43:19 +01:00
Francois Gouget 29ef0b90ee Assorted spelling, punctuation and case fixes. 2008-03-03 12:04:48 +01:00
James Hawkins 7b56757cf6 janitorial: Remove links to any microsoft site. 2008-03-01 12:17:13 +01:00
Rob Shearman 31b2d81ea0 ole32: Ignore the threading model of the PSFactoryBuffer object created during standard marshaling.
This is so that we don't try to host it.
2007-12-03 11:55:00 +01:00
Rob Shearman d792a522c3 ole32: Remove an incorrect comment. 2007-11-02 12:18:50 +01:00
Andrew Talbot 66b05dde02 ole32: Constify some variables. 2007-06-29 14:30:48 +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
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 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 d6a435fc56 ole32: Pass the OXID info to RPC_CreateClientChannel and use this to pass the server process ID to channel hooks. 2007-03-28 12:10:40 +02:00
Rob Shearman d1ec56c871 ole32: Generate OXID_INFO in the stub manager.
Copy the OXID_INFO from the stub manager, if available, in 
proxy_manager_construct. Otherwise, attempt to resolve it.

Use ipidRemUnknown from OXID_INFO in the proxy manager instead of 
magically generating the IPID for RemUnknown.
2007-03-27 12:39:44 +02:00
Rob Shearman 061a29ee44 ole32: Add a stubbed out implementation of IClientSecurity to the proxy manager. 2007-03-27 12:39:25 +02:00
Rob Shearman 15a0b7fad5 ole32: Don't keep the local server named pipe open for a single-use object. 2007-03-09 21:16:44 +01:00
Rob Shearman 880542a9f8 ole32: Close the named pipe after revoking local server objects. 2007-03-09 21:16:37 +01:00
Rob Shearman cb9c40a8cf ole32: Add the external references that the server gave to us to any existing ifproxy,
so that the right external reference count is released when the proxy is destroyed.
Protect all changes to refs in the ifproxy using interlocked functions 
and update the thread-safety documentation.
2007-02-06 21:35:25 +01:00
Rob Shearman a45a2e37f9 ole32: Add a field to the TLS data to determine whether OLE has been initialised for the current thread. 2007-01-08 12:35:41 +01:00
Rob Shearman 844037ab01 ole32: Performing a COM call from within the processing of a sent message during a wait for completion of another COM call is not allowed.
Add a test for the behaviour where RPC_E_CANTCALLOUT_ININPUTSYNCCALL is returned.
2006-12-24 13:08:02 +01:00
Rob Shearman aca17cd120 ole32: Track the pending call count so that the correct call type can be passed to the message filter HandleInComingCall function. 2006-12-24 13:07:35 +01:00
Rob Shearman e236edb91e ole32: Send a causality ID in the ORPCTHIS header for a call.
Use the causality ID to determine whether this is a top-level or a 
nested (called-back) call for the purposes of IMessageFilter::HandleInComingCall.
2006-12-20 12:41:01 +01:00
Rob Shearman a089e57983 ole32: Pass in the IID and IUnknown* of the object being executed to the server notification and message filter functions. 2006-12-20 12:40:38 +01:00
Rob Shearman 5788ee9f05 ole32: Implement CoRegisterChannelHook and call channel hook methods on the client side. 2006-12-20 12:39:50 +01:00
Robert Shearman 986027af9f ole32: Add support for main-threaded apartments.
A main-threaded apartment is the first single-threaded apartment in the 
process. It was designed to be used for legacy applications that don't 
want to think about threading at all, even if they are always called 
from the same context, as is the case for regular STAs.
2006-08-26 19:36:56 +02:00
Robert Shearman 83d24a6408 ole32: Move the opening of the AppId key for a clsid to a helper function. 2006-08-26 19:28:10 +02:00
Robert Shearman 619ba90dbe ole32: CoGetClassObject should host a single-threaded object in a
single-threaded apartment if executing in a multi-threaded apartment,
if one exists.
2006-08-26 19:27:52 +02:00
Robert Shearman 6455b9e1a0 ole32: Fix CoLockObjectExternal to respect fLastUnlockReleases. 2006-08-03 22:23:13 +02:00
Alexandre Julliard 518ee99f6f ole32: Make some functions and variables static. 2006-08-02 13:31:26 +02:00
Robert Shearman 2308d49bcb ole32: Implement CoRegisterPSClsid. 2006-07-21 10:52:03 +02:00
Alexandre Julliard 32f57b0214 ole32: Use the standard DEFINE_OLEGUID macro to define GUIDs. 2006-06-09 21:09:49 +02:00
Robert Shearman f2bd261f12 ole32: Add a class factory for CLSID_InProcFreeMarshaler. 2006-05-25 10:43:29 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Robert Shearman b155f233f3 ole32: Remove duplicated CLSIDs. 2006-05-08 21:13:38 +02: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
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
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 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 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 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
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