Piotr Caban
0725276f0f
ole32: Change returned size in CoGetMarshalSizeMax if object implements IMarshal.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-15 13:53:49 +02:00
Piotr Caban
475b2d6b5f
ole32: Make standard marshaler responsible for marshaling OBJREF header.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-15 13:53:47 +02:00
Piotr Caban
862ea5074a
ole32: Use CLSID_StdMarshal in standard marshaler.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-15 13:53:45 +02:00
Piotr Caban
6cc09e3424
ole32: Don't pass incorrect iface pointer to StdMarshalImpl functions.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-15 13:53:43 +02:00
Zebediah Figura
904d1688a3
ole32: Use the real proxy IID in ClientRpcChannelBuffer_GetBuffer().
...
Delegated proxies pass the IID of the parent interface to
NdrProxyGetBuffer(). However, this interface was never registered with ole32
on the server side, so calls to delegated methods will return
RPC_S_UNKNOWN_IF. Therefore we have ole32 ignore the passed-in parameter and
use the real proxy ID.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45673
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-09-17 15:37:41 +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
Zebediah Figura
a4cf16db08
ole32: Allow unmarshalling objects into 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:11 +02:00
Michael Stefaniuc
08e571cf95
ole32: Avoid casts from the IMultiQI iface to the COM object.
...
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-06 16:19:23 +09:00
Andrey Gusev
e6199d6640
ole32: Fix a typo in comment.
...
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-17 21:02:20 +09:00
Francois Gouget
1ec8fa53db
ole32: Fix a typo in a TRACE() message.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-26 21:37:36 +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
Jacek Caban
60451f9855
ole32: Create interface stub only if it's not already created.
2015-08-29 14:28:22 +09:00
Francois Gouget
25870c1fba
ole32: A cosmetic fix for the CoMarshalInterface() trace.
2015-08-29 14:27:39 +09:00
Andrey Gusev
5cdcd4493f
Assorted spelling and typos fixes.
2015-08-18 15:00:13 +09:00
Nikolay Sivov
7c5f639cb8
ole32: Initialize returned value for disconnected case too in proxy_manager_get_remunknown() (Coverity).
2015-06-01 14:52:56 +09:00
Sebastian Lackner
c23db594aa
ole32: Fix an invalid usage of InterlockedCompareExchange.
2015-03-03 17:13:46 +09:00
Nikolay Sivov
a6944484a4
ole32: Explicitly check for S_OK.
2013-12-05 12:40:55 +01:00
Nikolay Sivov
97ec8b0150
ole32: Use existing code to return IMarshal from CoGetStandardMarshal().
2013-12-05 12:40:55 +01:00
Nikolay Sivov
d52f18da8e
ole32: COM cleanup for StdMarshal.
2013-12-05 12:40:55 +01:00
Dmitry Timoshkov
41d3085522
ole32: Fix an apartment reference count leak on error path.
2013-03-28 17:36:53 +01:00
Nikolay Sivov
90407224d0
ole32: Cleanup IClientSecurity interface of a proxy manager.
2012-10-16 11:37:28 +02:00
Nikolay Sivov
21a04f5621
ole32: Cleanup IMarshal interface of proxy manager.
2012-10-16 11:37:20 +02:00
Nikolay Sivov
ba4b88bc00
ole32: Cleanup IMultiQI interface of proxy manager.
2012-10-15 15:25:36 +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
Alexandre Julliard
54bf38575e
ole32: Get rid of the ICOM_THIS_MULTI macro.
2010-11-11 20:16:59 +01:00
Nikolay Sivov
286c5f8816
ole32/marshal: Compare with S_OK instead of keeping in mind that it's zero.
2010-05-03 15:43:01 +02: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
Rob Shearman
0228008bb8
widl: Allow pointers, type-qualifiers and other more complicated constructions in sizeof and cast expressions.
2009-11-09 20:42:57 +01:00
Huw Davies
9b38ffe6c6
ole32: The server principal name can be the constant COLE_DEFAULT_PRINCIPAL.
2009-09-08 13:51:18 +02:00
Alexandre Julliard
c98ce23fd2
ole32: Get rid of line feeds and tabs in traces.
2009-06-09 17:01:14 +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
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
461ce6e4a2
ole32: Fix potential NULL dereference of qiresults in ClientIdentity_QueryMultipleInterfaces.
...
This could happen if proxy_manager_get_remunknown returns S_FALSE, so
fix the check of the return code to match that below.
2008-02-13 16:42:42 +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
6f917d49c1
ole32: Fix a race in find_proxy_manager.
2007-11-26 12:26:46 +01:00
Rob Shearman
33abd94d35
ole32: Intialise some out parameters in ProxyCliSec_QueryBlanket.
2007-11-15 11:09:22 +01:00
Rob Shearman
dd8a736c3f
ole32: The identity functions can be used from apartments other than the one the proxy was unmarshaled into.
...
In this case, don't use the cached This->remunk and don't cache the
unmarshaled object in This->remunk.
2007-05-22 12:18:55 +02:00
Rob Shearman
bf2b49b4e0
ole32: Make proxy_manager_get_remunknown AddRef the return IRemUnknown object.
...
Fix up the callers to release the returned IRemUnknown object.
2007-05-22 12:18:50 +02:00
Rob Shearman
5369d4dffd
ole32: Handle MSHLFLAGS_TABLEWEAK and MSHLFLAGS_TABLESTRONG when marshaling a proxy.
...
Add tests for this behaviour.
2007-05-22 12:18:31 +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
Andrew Talbot
24a197490c
ole32: Replace inline static with static inline.
2007-03-23 12:29:45 +01:00
Rob Shearman
3047ea9e78
ole32: Make an error message more useful by printing the returned error code.
2007-02-20 11:39:18 +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
723592cf5a
ole32: Release iobject and the IRpcStubBuffer object no matter which code path we take.
...
Otherwise we would leak a reference for both of these if the ifstub was already created.
Fix the FIXME in the code by releasing the stub manager if necessary.
2007-02-06 21:33:47 +01:00
Rob Shearman
f658adffc2
ole32: Fix the detection of when we need an additional QueryInterface in CoUnmarshalInterface.
2007-01-10 12:22:06 +01:00