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
Rob Shearman
7730e1408f
ole32: Return an error from CoUnmarshalInterface if pStream is NULL or if ppv is NULL.
2007-01-10 12:15:10 +01:00
Rob Shearman
923bc6bf3d
ole32: Return an error in CoMarshalInterface if pStream is NULL.
2007-01-10 12:14:21 +01: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
Huw Davies
8519a6c49e
ole32: Spelling fixes.
2006-11-22 11:39:03 +01:00
Huw Davies
1f34fdffee
ole32: CoGetInterfaceAndReleaseStream shouldn't crash when passed a NULL stream.
2006-11-22 11:38:57 +01:00
Francois Gouget
ef998ea6cb
Assorted spelling fixes.
2006-10-16 11:33:38 +02:00
Michael Stefaniuc
21ff87bf50
ole32: Win64 printf format warning fixes.
2006-10-16 10:53:28 +02:00
Robert Shearman
6455b9e1a0
ole32: Fix CoLockObjectExternal to respect fLastUnlockReleases.
2006-08-03 22:23:13 +02:00
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
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +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
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
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
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
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
cd2fafb775
ole: Defer apartment window creation until the first object is marshalled.
2006-01-10 20:41:23 +01: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
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
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
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
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
Rob Shearman
e46047e4da
Don't disconnect proxies flagged with SORFP_NOLIFETIMEMGMT. It makes
...
no sense and only causes trouble for proxies that depend on these
proxies being available.
2005-06-05 19:19:24 +00:00
Robert Shearman
27d73d6115
- Add a useful trace message.
...
- Fix more places where custom header size was calculated exclusive of
the data size member.
- Optimize custom marshaling by getting size before calling the custom
marshaler so we can write the header before and not use a second
stream.
2005-05-23 10:27:23 +00:00
Robert Shearman
a890293f33
- Change remaining blocks of code with 2-space indentation to 4-space
...
indentation.
- Make vtables const.
- Remove an unnecessary memcpy and let the compiler do the work.
2005-05-19 12:04:58 +00:00
Robert Shearman
447ab61288
Write custom header up to and including size, not excluding.
2005-05-19 11:15:50 +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