Rob Shearman
8608e895eb
Add a new convenience macro for an exception handler that handles all exceptions.
...
When using native compiler exceptions, the previous method of doing
this, __EXCEPT(NULL), would expand to __except(
(NULL)(GetExceptionInformation())) which doesn't compile as NULL isn't a
function.
So add a new macro, __EXCEPT_ALL, which works correctly both when using
native compiler exceptions and without and which makes the meaning of
code in which it is used clearer.
2008-02-16 14:58:24 +01:00
Rob Shearman
29c06dff20
oleaut32: Fix big memory leak in xCall.
...
Call IRpcChannelBuffer_FreeBuffer to free the buffer and other resources
allocated by IRpcChannelBuffer_GetBuffer and IRpcChannelBuffer_SendReceive.
2008-02-04 11:11:04 +01:00
Peter Dons Tychsen
1e1b29f842
oleaut32: Add missing types to serialize/deserialize.
2007-12-31 17:30:21 +01:00
Rob Shearman
bc9b5c22fe
oleaut32: Fix a reference count leak of the TMarshalDispatchChannel.
2007-12-07 17:06:13 +01:00
Alexandre Julliard
2a2e303dc5
oleaut32: Fixed asm proxys to support more than 128 methods.
...
Reported by Martin Kochanski.
2007-11-12 13:18:38 +01:00
Andrew Talbot
edbcf7c215
oleaut32: Fix some memory leaks.
2007-10-02 11:44:13 +02:00
Andrew Talbot
f73821c286
oleaut32: Constify some variables.
2007-07-26 11:49:13 +02:00
Huw Davies
c24a53dc28
oleaut32: non-dual dispinterfaces should be marshaled via IDispatch.
2007-05-18 19:59:21 +02:00
Huw Davies
f1da672df3
oleaut32: Move the proxy thunk creation code to a separate function.
2007-05-18 19:59:12 +02:00
Andrew Talbot
048a5d6fc5
oleaut32: Exclude unused headers.
2007-05-16 11:55:58 +02:00
Huw Davies
c4c5d64ccf
oleaut32: Remove useless initialization of an [out] parameter.
2007-04-30 12:19:17 +02:00
Huw Davies
294b3ebba1
oleaut32: Rewrite get_funcdesc to avoid using the funcdesc's oVft member so that it works correctly for non-dual dispinterfaces.
2007-04-26 16:42:26 +02:00
Huw Davies
b8a50daec7
oleaut32: Don't try to free the typeinfo if get_funcdesc fails.
2007-04-26 16:42:22 +02:00
Jan Zerebecki
1e176b4739
oleaut32: Add DebugInfo to critical sections.
2007-03-12 13:39:07 +01:00
Huw Davies
d5664881e5
oleaut32: Fix a TypeAttr leak.
2007-02-21 19:48:33 +01:00
Rob Shearman
0f45b2badf
oleaut32: A value of PARAMFLAG_FNONE for wParamFlags means that the parameter is also marshaled and unmarshaled in the PARAMFLAG_FOUT case.
2007-02-07 21:45:06 +01:00
Rob Shearman
30f2b444c6
oleaut32: Add a wrapper around the channel supplied to the IDispatch proxy
...
to fixup the IID used to connect to the server and fix somewhat common
"err:rpc:RPCRT4_OpenBinding" messages.
2007-02-06 21:32:11 +01:00
James Hawkins
c8eb807639
oleaut32: Initialize nrofnames to keep from freeing unused memory in the error case.
2007-01-16 16:54:14 +01:00
Rob Shearman
ecfe54df46
oleaut32: Fix _nroffuncs to return the correct number of functions by taking into account inherited interfaces.
2007-01-02 20:49:01 +01:00
Michael Stefaniuc
9d625ad0e4
oleaut32: Fix the warnings introduced by the "unsigned long" to "ULONG" header changes.
2006-11-09 10:43:41 +01:00
Rob Shearman
053f69aced
oleaut32: Fix a missing ITypeInfo::ReleaseTypeAttr in the typelib marshaling code.
2006-10-23 15:19:13 +02:00
Rob Shearman
d1b15c8ed7
oleaut32: Fix some reference count and memory leaks in the typelib marshaling code.
2006-10-23 15:18:17 +02:00
Rob Shearman
0fa33bb69b
oleaut32: Fix memory leaks after calling ITypeInfo::GetNames.
2006-10-23 15:18:08 +02:00
Francois Gouget
1f67fa0acf
Add '\n's to Wine traces.
2006-10-20 14:10:34 +02:00
Michael Stefaniuc
15765dd953
The Data1 member of the GUID struct needs to be an unsigned int too for Win64 compatibility.
2006-10-16 10:53:04 +02:00
Hans Leidekker
ce66f5d684
oleaut32: Win64 printf format warning fixes.
2006-10-13 12:08:47 +02:00
Robert Shearman
cc21d23539
oleaut32: Make sure to free the allocated vtable when the tmarshal proxy is released.
2006-09-28 11:56:00 +02:00
Robert Shearman
4d0b1e3d07
oleaut32: Delay the creation of the stub object for IDispatch until it is actually used.
2006-09-07 10:16:55 +02:00
Robert Shearman
a05672e55f
oleaut32: Add an exception handler around code executed on the server side from the typelib marshaler.
2006-07-18 11:16:02 +02:00
Alexandre Julliard
cfc6c4891d
oleaut32: Make the virtual table functions static where possible.
2006-06-10 11:59:33 +02:00
Robert Shearman
70c34ccc47
oleaut32: We always pass in an IRpcChannelBuffer to IRpcStubBuffer::Invoke now,
...
so remove the case for it being NULL.
2006-06-09 21:11:32 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Huw Davies
3dce323d69
oleaut32: Update the marshal state buffer size when resizing (Doh!).
2006-05-15 14:25:59 +02:00
Thomas Weidenmueller
05d629264c
oleaut32: Fix converting file name to Unicode.
...
Fix converting the typelib file name to Unicode by using the correct
buffer size.
2006-05-15 11:06:28 +02:00
Huw Davies
86d9457cdc
oleaut32: Support VT_SAFEARRAY in the typelib marshaler.
...
Based on a patch by Rob Shearman.
2006-05-10 19:23:43 +02:00
Huw Davies
d0bdf685f5
oleaut32: Add a function to grow the marshal state buffer to a specified size.
2006-05-10 19:23:29 +02:00
Robert Shearman
9030ff2c13
oleaut32: Don't try to release NULL COM objects in the typelib
...
marshaler.
2006-02-14 11:33:03 +01:00
Robert Shearman
b0218db90a
oleaut32: Fix circular reference count in Typelib marshaler.
...
The current method of handling typelib-marshaled interfaces that derive
from IDispatch is to query for an IDispatch pointer from the proxy, but
this causes a circular reference count.
Fix the reference counting by loading using the IRpcProxyBuffer of
IDispatch without an outer unknown, so that the lifetime is controlled
by the typelib-marshaled interface's proxy. The IDispatch proxy now
shares the same channel as the typelib-marshaled interface, so fix up
the stub side to handle this.
2006-02-07 16:26:23 +01:00
Robert Shearman
fd81d9c56e
oleaut32: Handle VT_INT in serialize_param and deserialize_param.
2006-02-07 16:26:02 +01:00
Robert Shearman
ec5d73910c
oleaut32: Release interfaces when told to.
...
Make the VT_DISPATCH and VT_UNKNOWN cases of serialize_param match the
TKIND_INTERFACE case below by releasing their respective interfaces as
necessary.
2006-02-07 16:25:42 +01:00
Robert Shearman
799ebfc499
oleaut: Improve the typelib marshaler traces.
...
Improve the typelib marshaler traces for lazy developers like me who
don't want to grep for constants.
2006-01-27 12:54:03 +01:00
Robert Shearman
89846948e3
oleaut: Reduce an ERR down to a WARN since a NULL interface pointer
...
doesn't signify an error; it is just unusual.
2006-01-18 11:29:01 +01:00
Robert Shearman
878af6661e
oleaut: Support VT_CY in the typelib marshaller.
2006-01-14 17:47:25 +01:00
Robert Shearman
b0d8e06caf
OLE: Fix brokenness in typelib marshaller caused by dispinterface retval fix.
...
Fix more fallout from dispinterface retval patch: make typelib
marshaler use the internal function description so that it calls
dispinterface functions with the correct number of parameters again.
Also fixes some memory leaks caused by the fact that a corresponding
ReleaseXDesc function has to be called for each GetXDesc.
2005-12-06 21:24:19 +01:00
Marcus Meissner
2045ed2299
Added support for VT_I8/VT_UI8 marshalling.
2005-11-04 11:13:55 +00:00
Robert Shearman
efe606fddb
- Make sure to clean up properly on error.
...
- Restrict the critical section to getting the channel buffer and
adding a reference to it.
2005-11-02 20:00:00 +00:00
Robert Shearman
69562b0edf
There is no need to call IUnknown_QueryInterface since getting the
...
correct object is handled by the proxy manager.
2005-10-27 12:08:58 +00:00
Huw Davies
0c6d54631f
Treat paramflags == 0 like PARAMFLAG_FIN.
2005-10-26 12:06:49 +00:00
Robert Shearman
5c2a708d51
- Forward IDispatch functions to the MIDL-generated proxy.
...
- Remove special cases caused by previous marshaling of IDispatch &
IUnknown that is no longer done.
- Add error messages if an IUnknown or IDispatch method is called when
it no longer should be.
2005-10-26 10:12:30 +00:00
Pierre d'Herbemont
f26e8090c2
Allow compilation on non-i386.
2005-10-19 19:06:49 +00:00