Jacek Caban
df6b7324df
ole32: Use queried interface destination context for marshaling RemQueryInterface result.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-25 12:09:15 +02:00
Jacek Caban
d1a480a2c9
ole32: Introduce new ipid_to_ifstub helper and use it in ipid_get_dispatch_params.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-25 12:09:02 +02:00
Zebediah Figura
95299607f9
ole32: Allow marshalling objects from an implicit MTA.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-10 11:15:13 +02:00
Huw Davies
afbb4afc6c
ole32: Silence an incorrect fixme.
...
The remote unknown object should not implement IExternalConnection.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-14 12:43:28 +09:00
Huw Davies
327100fef9
ole32: Don't block inside CoDisconnectObject.
...
This may be called inside a COM call to the object.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-14 12:43:17 +09:00
Huw Davies
35571a7254
ole32: Hold a reference to the stub manager throughout an incoming call.
...
This will enable us to defer deleting the manager until the call has finished.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-14 12:43:13 +09:00
Jacek Caban
38a9a232f7
ole32: Use get_stub_manager_from_object in CoDisconnectObject.
2015-09-04 19:29:29 +09:00
Jacek Caban
cb183688bb
ole32: Catch crashes in stub object destructors when destroying stub manager.
2015-09-02 22:45:17 +09:00
Jacek Caban
9bdb97e694
ole32: Use proper interface pointer in CreateStub call.
2015-08-29 14:28:23 +09:00
Jacek Caban
e5edbc6fa0
ole32: Use proper IUnknown implementation when finding and creating stub manager.
2015-08-29 14:28:22 +09:00
Francois Gouget
7fe0600237
ole32: Remove unneeded NONAMELESSXXX directives.
2015-03-17 14:18:54 +09:00
Huw Davies
5077fc895f
ole32: If an object exposes IExternalConnection then don't take down the stub manager if we have remaining weak refs in a call that would otherwise ignore them.
2013-10-24 19:01:57 +02:00
Huw Davies
1864db2faa
ole32: Call IExternalConnection_ReleaseConnection with the correct final parameter.
2013-10-24 19:01:57 +02:00
Huw Davies
8235b55917
ole32: When releasing marshal data of a normal ref ignore any remaining weak refs.
2013-10-24 19:01:56 +02:00
Frédéric Delanoy
4bb61ec0df
ole32: Use BOOL type where appropriate.
2013-10-15 14:28:20 +02:00
Jacek Caban
070b22ebb4
ole32: Don't call AddConnection for weak references.
2013-06-27 15:31:33 +02:00
Jacek Caban
a30cc75fe0
ole32: Added IExternalConnection support.
2013-05-23 20:18:16 +02:00
Nikolay Sivov
0b5c0855be
ole32: Store destination context and context data in server channel.
2012-10-15 15:25:34 +02:00
Jacek Caban
153b94b3c5
ole32: Use proper helpers for iface calls.
2012-08-13 16:28:48 +02:00
Michael Stefaniuc
f27f7544fe
ole32: Use an iface instead of a vtbl pointer in RemUnknown.
2010-12-09 12:23:25 +01:00
Rob Shearman
a7b621bd9b
ole32: Fix behaviour of CoLockObjectExternal with fLastUnlockReleases as FALSE.
...
The parameter controls whether weak references are ignored, not
whether the last stub_manager_int_release should be called when the
total reference count goes to zero.
2009-11-24 10:46:06 +01:00
Francois Gouget
872035f1ab
ole32: Make stub_manager_int_addref() static.
2009-06-22 13:31:03 +02:00
Francois Gouget
887c395ce2
ole32: Reorder some stubmanager functions to avoid forward declarations.
2009-06-22 13:30:58 +02:00
Michael Stefaniuc
efbb4ebf3e
widl: Output "LONG" instead of "long" for a 32bit integer.
...
long is always 32bit in IDL files but that's not true in C.
2009-03-13 11:15:21 +01:00
Michael Stefaniuc
0449701c31
ole32: Remove superfluous pointer casts.
2009-02-11 12:29:56 +01:00
Alexandre Julliard
4bb2199c8e
ole32: Make a function static.
2008-12-04 12:47:56 +01:00
Andrew Talbot
749184a1e8
ole32: Remove unneeded address-of operators from array names.
2008-07-11 14:06:31 +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
Austin English
c531e2abdb
Spelling fixes.
2008-04-23 12:31:07 +02:00
Andrew Talbot
d4417c3c14
ole32: Cast-qual warning fix.
2007-07-09 11:46:01 +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
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
ba25254d9f
ole32: Remove some unneeded inclusions of headers.
...
Change some incorrect usages of SEEK_SET to the intended STREAM_SEEK_SET
instead.
2007-01-10 12:08:51 +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
Michael Stefaniuc
21ff87bf50
ole32: Win64 printf format warning fixes.
2006-10-16 10:53:28 +02:00
Robert Shearman
9038705919
ole32: Fix functions defined without specifying argument types by changing them to "(void)".
2006-08-28 17:48:40 +02:00
Robert Shearman
6455b9e1a0
ole32: Fix CoLockObjectExternal to respect fLastUnlockReleases.
2006-08-03 22:23:13 +02:00
Alexandre Julliard
32f57b0214
ole32: Use the standard DEFINE_OLEGUID macro to define GUIDs.
2006-06-09 21:09:49 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Robert Shearman
9a9981bad5
ole: Change NORMALEXTREFS to 5, like it is in native.
2006-03-01 19:54:45 +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
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
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
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
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
Mike McCormack
c7fdb4565a
Fix gcc 4.0 -Wpointer-sign warnings.
2005-07-05 11:02:54 +00:00
Robert Shearman
037bdc0dc0
IUnknown isn't a remotable interface so the stub manager shouldn't
...
need a marshaller for it.
2005-06-09 09:45:59 +00:00
Robert Shearman
1b5ebabdce
- Add critsec debugging info.
...
- Move the modal loop called during RPCs into CoWaitForMultipleHandles.
- Use a mutex for long remoting calls to IRemUnknown methods.
- Remove locking in apartment_disconnectproxies as it is not needed.
- Use PostMessage instead of SendMessage so we can run the message
loop or not as appropriate.
2005-03-17 10:26:20 +00:00
Robert Shearman
8971f06225
- Rename apartment functions to become more object-oriented.
...
- Rename register_ifstub to marshal_object to more accurately describe
what it does.
- Add new function, apartment_getoxid, to prepare for a possible
future patch where remoting is started on demand.
2005-03-11 10:19:10 +00:00