Commit Graph

777 Commits

Author SHA1 Message Date
Robert Shearman a633e22bdd oleaut: Make TLB_ReadTypeLib not rely on the signature of executables or dlls.
Try loading the dll first and then fall back to the regular file case.
Only call SearchPath for the regular file case since LoadLibraryEx
will do this for us and it previously excluded builtin dlls and
executables from having their type libraries opened.
2006-02-09 12:11:54 +01:00
Robert Shearman 19b6046e21 oleaut: Move the call to SearchPath inside of TLB_ReadTypeLib. 2006-02-09 12:11:01 +01:00
Robert Shearman 00ecbd05e8 oleaut: Revert incorrect patch changing the order of parameters passed
into DispCallFunc. A test with native indeed shows that the parameter
index increases from the leftmost parameter to the rightmost.
2006-02-09 12:10:26 +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
Francois Gouget 379b62c04e Assorted spelling fixes. 2006-02-06 20:58:36 +01:00
Huw Davies 7000aca824 oleaut32: Fixes and tests for CreateDispTypeInfo.
CreateDispTypeInfo returns the typeinfo of a coclass which implements
the described interface.
2006-02-06 20:57:09 +01:00
Fatih Aşıcı b1a67bba3a oleaut32: Turkish translation. 2006-02-06 13:05:30 +01:00
Huw Davies 16cc1858d0 ole: Initialize a few more funcdesc members in CreateDispTypeInfo. 2006-02-03 12:29:39 +01:00
Ulrich Czekalla 37f1d4cb54 oleaut32: Prevent freeing of random memory.
Don't assign type to variant until we're sure we are assigning a
value.
2006-02-02 13:18:43 +01:00
Robert Shearman 61708da1c8 oleaut: Dump the pointer for VT_ARRAY/VT_VECTOR typed variants. 2006-01-31 12:21:27 +01:00
Robert Shearman be13d154c6 oleaut: Fix the order of parameters passed into DispCallFunc. 2006-01-30 14:55:57 +01:00
Alexandre Julliard a76d5a10ed oleaut32: Ignore new test ok file. 2006-01-27 15:47:57 +01:00
Robert Shearman 385e693e44 ole: Test and implement LPSAFEARRAY marshaling. 2006-01-27 12:54:22 +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
Dmitry Timoshkov 57a579ffcd Make more arrays const. 2006-01-24 14:00:32 +01:00
Michael Stefaniuc ba23adba41 oleaut: Add missing SysFreeString to the Var{Mul,Add,Cmp} tests. 2006-01-18 11:30:23 +01:00
Michael Stefaniuc 0d00d9af0e oleaut: Merge the VarCmp tests from vartype.c into vartest.c. 2006-01-18 11:30:01 +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
Michael Stefaniuc 2f9c9b31ae oleaut32: Tests for the VarCmp reimplementation. 2006-01-16 21:34:59 +01:00
Michael Stefaniuc f73b68b016 oleaut32: Reimplement VarCmp().
- Supports now all WinXP allowed combinations of input variants.
- VT_RESERVED on input variants is handled now.
- Removed complicated VT_DATE comparision; that's not how Windows does it.
- Improved documentation.
2006-01-16 21:34:50 +01:00
Michael Stefaniuc e47b813fc6 oleaut32: Define missing but useful VTBIT_* macros. 2006-01-16 21:32:24 +01:00
Robert Shearman 1f04fc6a49 oleaut: Handle a non-byref variant being passed for a byref param in
ITypeInfo::Invoke.
2006-01-16 20:44:13 +01:00
Robert Shearman d86f8d2ef2 oleaut: Only allocate memory once for each array needed for the
arguments in ITypeInfo::Invoke.
2006-01-16 20:43:55 +01:00
Robert Shearman 0f8db3feca oleaut: Simplify missing argument handling in ITypeInfo::Invoke.
Simplify missing argument handling by pre-allocating an array of the
maximum number of missing arguments there could be.
2006-01-16 20:43:20 +01:00
Robert Shearman 1616f81d00 oleaut: Add const attribute to iterators in get functions. 2006-01-14 17:48:12 +01:00
Robert Shearman 0b2c0d8365 oleaut: Initialise more fields in CreateDispTypeInfo.
Don't leave some of the fields of the TLBFuncDesc structure
uninitialised in CreateDispTypeInfo.
2006-01-14 17:47:36 +01:00
Robert Shearman 878af6661e oleaut: Support VT_CY in the typelib marshaller. 2006-01-14 17:47:25 +01:00
Robert Shearman 9227902714 oleaut: Support conversion of VT_SAFEARRAY into VT_ARRAY|type.
Typelib variant types that cannot be converted should return
DISP_E_BADVARTYPE.
Don't call DispCallFunc if conversion of one of the arguments failed.
2006-01-12 11:53:47 +01:00
Marcus Meissner cf173911a3 ole: ITypeInfo::Invoke stack overwrite fix.
Have enough stack space up to even VT_VARIANTs, fixes a stack
corruption.
2006-01-11 20:55:07 +01:00
Robert Shearman d2bdbd4ea5 ole: Remove the no longer used _copy_arg function. 2006-01-06 21:16:21 +01:00
Robert Shearman 8cf5373f60 ole: ITypeInfo::Invoke rewrite.
Re-implement ITypeInfo::Invoke on top of DispCallFunc and
VariantChangeType instead of _invoke and _copy_arg.
2006-01-06 21:15:48 +01:00
Mike McCormack 98ed3fa553 oleaut32: Output a FIXME message only once. 2006-01-06 12:16:58 +01:00
Dan Kegel d69366a171 oleaut32: Allow _invoke to handle up to 23 parameters. 2006-01-05 13:41:35 +01:00
Robert Shearman 83ff8560c3 ole: Store the result from _invoke in a VARIANTARG structure. 2006-01-05 12:18:54 +01:00
Mike McCormack 8193d97bfd oleaut32: Allow _invoke to handle up to 17 parameters. 2006-01-03 12:11:44 +01:00
Robert Shearman e6fa361967 oleaut: Small re-organisation of ITypeInfo::Invoke.
Only output the one function in the trace for ITypeInfo::Invoke.
Process the return value on output in ITypeInfo::Invoke, but only copy
it to pVarResult if pVarResult is not NULL.
2005-12-26 13:04:31 +01:00
Robert Shearman 6b97438011 oleaut32: Convert some tabs to spaces and some other formatting changes. 2005-12-26 13:04:02 +01:00
Robert Shearman fa49c971f1 oleaut32: Initialize member IDs to MEMBERID_NIL inITypeInfo::GetIDsOfNames.
Better tracing.
2005-12-26 13:03:27 +01:00
Robert Shearman 088fc70ede ole: Improve typelib traces.
Move the debug channel check from dump_TLBFuncDesc[One] to its callers
for more flexibility in which channel controls the output.
2005-12-26 13:02:47 +01:00
Robert Shearman 9f1c6bf6bc OLE: Fix SafeArrayCopy for NULL pvData.
It is allowed to copy a SAFEARRAY with a NULL pvData, as long as
cbElements is non-zero. Add a test for this and fix the safe array
code.
2005-12-12 11:52:51 +01:00
Robert Shearman 69aa9f9d2e OLE: Add const to several typelib functions.
Add const attributes to parameters for several functions and fix up
some formatting.
2005-12-12 11:52:23 +01:00
Robert Shearman e7299cdf47 OleTranslateColor trace fix.
OleTranslateColor isn't a stub so don't print ":stub" in the trace
message.
2005-12-12 11:52:02 +01:00
Robert Shearman a056a9a89c OLE: Implement undocumented behaviour in DispCallFunc.
Fix DispCallFunc to work with MSDN-undocumented behaviour used by
Office 2003 and document the function.
2005-12-06 21:25:51 +01:00
Robert Shearman 1f68feeef1 OLE: Implement ITypeInfo_AddressOfMember. 2005-12-06 21:24:45 +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
Robert Shearman 36f112973e OLE: Add tests for the typelib version of ITypeComp_Bind. 2005-12-06 21:23:19 +01:00
Robert Shearman 806cdce355 OLE: Update the type of the oVft parameter for DispCallFunc. 2005-12-06 21:23:09 +01:00
Robert Shearman 3dd7ba394c OLE: ITypeInfo_Invoke parameter naming change.
Rename the dwFlags parameter of ITypeInfo_Invoke since it is not a
DWORD, but an unsigned short.
2005-12-06 10:57:45 +01:00