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
Robert Shearman
b3a4b59668
Fix ref-counting rules to match native DCOM Dlls.
2005-09-18 11:10:37 +00:00
Marcus Meissner
6f823db58b
VT_PTR->VT_USERDEFINED chains depend on the TKIND of the userdefined
...
type due to our handling of COM interfaces in there.
2005-09-07 09:23:04 +00:00
Robert Shearman
44d6e39c8b
Make typelib marshaler use IRpcChannelBuffer::GetBuffer if possible.
2005-08-29 21:46:51 +00:00
Robert Shearman
4519b1bd1d
- Remove redundant QueryInterface in marshal_interface - the object is
...
always queried later on for the correct interface of the object.
- Make sure to Release the marshaled pointer in the typelib marshaler
once it is no longer required.
2005-08-24 09:44:41 +00:00
Alexandre Julliard
b8d0f4cd10
Get rid of the almost empty tmarshal.h file.
2005-08-09 10:38:54 +00:00
Mike McCormack
a04b77ddc2
gcc 4.0 warning fixes.
2005-08-08 18:38:29 +00:00
Robert Shearman
6bfae1a1b7
- IRpcStubBuffer_Disconnect can be called multiple times.
...
- Release TypeLib when freeing stub buffer.
2005-07-19 20:00:07 +00:00
Robert Shearman
d8780c7546
Fix confusion between number of characters and number of bytes in
...
unmarshaling BSTRs. Convert it all to characters for consistency with
the BSTR_User* routines.
2005-07-19 19:42:50 +00:00
Robert Shearman
d2e2e851da
Marshal and unmarshal TKIND_ENUM and TKIND_ALIAS.
2005-07-19 19:13:23 +00:00
Mike McCormack
fc200d0ca7
Interlocked LONG* gcc warning fixes.
2005-07-11 10:25:19 +00:00
Mike McCormack
d7b9a23afd
gcc 4.0 -Wpointer-sign fixes (Reg* functions).
2005-07-06 19:08:05 +00:00
Robert Shearman
1329f87d46
- The typelib marshaler should only free the memory it actually allocated.
...
- Add special cases for two lesser used types that aren't
sizeof(DWORD) sized.
2005-06-09 09:43:38 +00:00
Dmitry Timoshkov
eba47f1dfe
Make remaining OLE interface vtables const.
2005-06-06 19:50:35 +00:00
Robert Shearman
c6296c418f
If we are accessing a method from a superclass then we need to use the
...
superclass's ITypeInfo otherwise we could get errors when accessing
hreftypes that aren't present in the subclass.
2005-06-01 11:03:40 +00:00
Robert Shearman
5ef4748c7c
Use I_RpcGetBuffer instead of HeapReAlloc for getting the Buffer
...
memory.
2005-05-11 15:56:59 +00:00
Marcus Meissner
41079866f7
Serialize NULL pointer interfaces correctly.
2005-03-29 13:06:44 +00:00
Marcus Meissner
4b5f3c61ad
Fixed VT_BSTR|VT_BYREF marshalling.
...
Added VT_I4|VT_BYREF marshalling.
2005-03-29 11:29:11 +00:00
Marcus Meissner
89feaca290
Fixed ppvObject serializer (deref twice instead of once).
...
Actually pass back return value of remote call in type marshaller.
2005-03-28 10:00:49 +00:00
Mike Hearn
edcbd13665
Fix BSTR tracing in the typelib marshaller.
2005-03-27 18:20:10 +00:00
Marcus Meissner
c91df67f11
Format VT_UI1, VT_I1, VT_UI2, VT_I2 correctly.
2005-03-27 18:17:19 +00:00
Marcus Meissner
e6260a3625
Added IDispatch::GetIDsOfNames() special case serializing.
...
Handle VT_PTR / NULL marshalling correctly.
2005-03-27 17:51:59 +00:00
Mike Hearn
9b79651579
Fix PARAMFLAG_FOUT typo in the tmarshaller.
2005-03-25 16:38:37 +00:00
Alexandre Julliard
232760ded0
Authors: Mike Hearn <mh@codeweavers.com>, Robert Shearman <rob@codeweavers.com>
...
- Implement VT_BYREF | VT_BSTR marshalling.
- Add more integer types for marshaling and unmarshaling.
- Implement VT_BYREF | VT_BSTR unmarshaling.
- Don't allocate memory for TKIND_DISPATCH/TKIND_INTERFACE
unmarshaling as it will be lost in the success case and interferes
with the failure case.
2005-03-14 10:09:11 +00:00
Robert Shearman
ac23f2c810
Add outer unknown support for typelib marshaler.
2005-03-11 10:18:31 +00:00
Mike Hearn
64eac75fe4
- Change some FIXMEs to ERRs to reflect the fact that nothing needs
...
fixing.
- Fix some memory leaks on error paths in _marshal_interface.
2005-01-27 11:11:32 +00:00
Mike Hearn
6c093f39a4
Fix a typo, propagate errors better from inside the typelib
...
marshaller.
2005-01-26 19:42:17 +00:00
James Hawkins
ba92d2924a
- Use Interlocked* instead of ++/-- in AddRef/Release.
...
- Use only stored result of Interlocked* in AddRef/Release.
- Expand TRACEs to display the ref count.
2005-01-14 16:02:20 +00:00
Eric Pouech
cf1d00bb08
Removed excessive statement (break after return or goto, not useful
...
break, not needed vars...)
2005-01-09 16:42:53 +00:00
Bill Medland
405abd5b06
Fully initialise the structure to prevent ill-defined behaviour.
2004-12-20 17:05:44 +00:00
Jon Griffiths
f82272c92f
Remove unneeded headers to reduce unneeded rebuilds.
2004-12-16 14:35:55 +00:00
Robert Shearman
67942791e2
Implement RPC_E_DISCONNECTED in proxies.
2004-12-14 11:44:11 +00:00
Francois Gouget
486d020c1b
Don't define COBJMACROS in objbase.h.
...
Update the Wine sources accordingly.
2004-10-07 03:06:48 +00:00
Marcus Meissner
5539e288a6
Function return types cannot be const.
2004-09-27 20:33:27 +00:00
Alexandre Julliard
241a4c34b1
Get rid of the non-standard ICOM_THIS macro.
2004-09-09 21:03:58 +00:00
Robert Shearman
2a54aac7c5
- Make typelib marshaler thread-safe (problem reported by Aric
...
Stewart).
- Several small cleanups.
2004-09-07 20:42:26 +00:00
Alexandre Julliard
f714b39762
Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
...
macro.
2004-08-23 19:39:48 +00:00
Alexandre Julliard
936198ce45
Moved ICOM_THIS_MULTI definition out of objbase.h and into the files
...
that use it.
2004-08-13 00:44:22 +00:00
Alexandre Julliard
48c4bb3c31
Get rid of the non-standard ICOM_VTABLE macro.
2004-08-12 23:00:51 +00:00
Mike Hearn
6545d994af
Disconnect the server object from the stub on stub destruction.
2004-07-30 18:43:27 +00:00
Mike Hearn
3186bd2300
Make typelib marshaller safe for systems that don't allow executable
...
code on the heap, plug a leak of the assembly stub block.
2004-06-28 23:51:24 +00:00
Mike Hearn
86cc2d54c7
- Don't ERR on a used connection being destroyed.
...
- Don't print an extra newline in the olerelay code.
2004-06-23 00:10:29 +00:00
Mike Hearn
d440ca4a89
Fix typelib marshaller relaying, add a comment describing what it is,
...
don't print the ugly L"" parts of Unicode strings in the relay trace.
2004-06-17 23:03:26 +00:00
Robert Shearman
bc06d4ba8e
- Fix ref count on standard proxy creation.
...
- Release channel buffer in StdMarshal_UnmarshalInterface, since we no
longer use it and the proxy should have taken a reference on it.
- Add a few comments.
2004-06-14 17:58:03 +00:00
Ge van Geldorp
399901e054
Rename LARGE_INTEGER and ULARGE_INTEGER members "s" to "u" to conform
...
with PSDK.
2004-01-23 01:51:33 +00:00
Alexandre Julliard
e8283089cb
Get rid of no longer needed WINE_PACKED define.
2004-01-09 22:18:49 +00:00
Marcus Meissner
236ad0df3c
Use correct pointer for SysFreeString.
2003-12-01 22:36:49 +00:00
Marcus Meissner
995389ef57
_nrroffuncs: Check for error before dereferencing returned pointer.
2003-09-22 19:21:32 +00:00
Alexandre Julliard
e37c6e18d0
Fixed header dependencies to be fully compatible with the Windows
...
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard
864ca06832
winnls.h must not include winbase.h.
2003-08-20 18:22:31 +00:00
Francois Gouget
f803e2a92d
Fix miscellaneous spelling errors and typos.
2003-05-13 00:41:57 +00:00
Alexandre Julliard
150cd5a784
Avoid local WINAPI function pointers in _invoke.
2003-04-17 02:20:52 +00:00
Alexandre Julliard
43690e9e47
Removed no longer needed inclusion of heap.h.
2003-01-24 00:54:58 +00:00
Dimitrie O. Paun
297f3d898d
Define NONAMELESS{STRUCT,UNION} explicitly in the files that need them.
2003-01-07 20:36:20 +00:00
Marcus Meissner
26ffca49a2
Reverted last VT_USERDEFINED patch (was broken).
...
Marshal TKIND_DISPATCH interfaces just like TKIND_INTERFACE.
2002-12-12 22:25:07 +00:00
Marcus Meissner
5f9e3ffdb9
Serialize/deserialize all reftypes in VT_USERDEFINED.
2002-12-12 02:15:46 +00:00
Ove Kaaven
1f5315c80f
Make sure that no files except unknwn.h include wine/obj_base.h
...
directly.
2002-12-05 20:33:07 +00:00
Marcus Meissner
d344849e4e
Marshal VT_R4 (4 byte float).
2002-12-05 19:12:50 +00:00
Patrik Stridvall
9c1de6de30
Moved all the content of the DDK files ntdef.h and ntddk.h to
...
winternl.h.
2002-09-12 22:07:02 +00:00
Marcus Meissner
30f9da4b58
ITypelib::Invoke: Handle different length arguments better, we also
...
return 1 VARIANT only.
2002-06-20 22:45:08 +00:00
Marcus Meissner
c18a6aa8fd
Handle argsize for VT_DATE.
2002-06-14 00:36:42 +00:00
Marcus Meissner
e81f10c97c
Merged the two serializer and unserializer functions into one, cleaned
...
them up.
VT_PTR: Handle NULL pointers by sending a cookie.
Added support for: VT_CARRAY, VT_DISPATCH, TKIND_RECORD, VT_VOID,
VT_UI1, VT_UI2, VT_ERROR, VT_UI4, VT_UINT.
Added a custom serializer for DISPPARAMS struct.
2002-06-10 02:30:20 +00:00
Marcus Meissner
fd625ddb0b
Added marshalling of IUnknown.
2002-06-04 22:14:06 +00:00
Vincent Béron
9a62491660
Removed trailing whitespace.
2002-05-31 23:06:46 +00:00
Marcus Meissner
5b63cc22e8
BSTRs can be NULL, handle them seperately.
2002-05-06 20:12:11 +00:00
Alexandre Julliard
0799c1a780
Added LGPL standard comment, and copyright notices where necessary.
...
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Marcus Meissner
0749fc2034
Implemented Local Server COM.
...
Implemented the Typelib based Marshaler.
2002-02-05 18:11:17 +00:00