Robert Shearman
1ce38682fb
oleaut32: Fix returning Typelib file name.
...
We can't use GetModuleFileName on a resource-only module, so the best
we can do is to copy the original name we used to find the type
library. Fix a couple of places where we were incorrectly using the
file name, rather than the path.
2006-02-14 11:33:40 +01:00
Robert Shearman
265f042801
oleaut: Fix importing the IDispatch interface for TKIND_DISPATCH type infos.
...
Fix importing the IDispatch interface for TKIND_DISPATCH type infos
when the offset isn't specified. It should be fetched from the
dispatch offset stored in the header, rather than using a hack that
doesn't work.
2006-02-10 14:50:53 +01:00
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
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
Huw Davies
16cc1858d0
ole: Initialize a few more funcdesc members in CreateDispTypeInfo.
2006-02-03 12:29:39 +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
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
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
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
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
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
Robert Shearman
190d05f4db
OLE: Support HREFTYPEs For ITypeInfos
...
Add support for reading the hreftype of a typeinfo, return it to the
application in ITypeComp_Bind for the DESKIND_APPOBJECT case and
support referencing it in ITypeInfo_GetRefTypeInfo.
2005-12-03 18:20:27 +01:00
Robert Shearman
d8d1693def
OLE: fix function name loading
...
Correctly get the name of the second function of a propget/propput
pair in MSFT typelibs when the name offset is set to -1.
2005-12-03 18:20:03 +01:00
Robert Shearman
bd8fefd66b
OLE: fix invoking dispinterface functions
...
Fix invoking dispinterface functions by using the internal
representation of the function, not the one returned to applications.
2005-12-03 18:19:17 +01:00
Robert Shearman
d48f6f3682
OLE: Move the dispinterface return value handling to functions that
...
return the FUNCDESC to the user.
2005-12-03 18:10:30 +01:00
Robert Shearman
a61e4e802c
OLE: fix handling of INVOKE_PROPERTYGET flag in ITypeComp_fnBind.
...
The INVOKE_PROPERTYGET flag shouldn't affect binding to variables; it
should just affect which of a pair of [propget] and [propput]
functions should be returned.
2005-12-03 18:03:29 +01:00
Robert Shearman
cc9052c38e
Make dump functions const.
2005-12-01 12:55:31 +01:00
Robert Shearman
695556af16
Remove broken return value handling code and that would reference
...
memory beyond the end of the arguments array. Replace it with code
that properly handles referencing the return type and setting the
return type to VT_VOID when a dispinterface function doesn't have any
return value.
2005-12-01 12:48:56 +01:00
Robert Shearman
960aadaceb
Introduce a variable "elemdesc" to eliminate some long common
...
expressions.
Move the contents of the second arguments loop inside the first.
Move the MSFT_ReadLEDWords so that it is the last statement in the
loop since it is one of the iterators.
2005-12-01 12:34:39 +01:00
Robert Shearman
48e1a72a23
Don't truncate large integer constants.
2005-12-01 11:37:11 +01:00
Robert Shearman
55ffe637db
The pparamdescex of an ELEMDESC should only be copied if wParamFlags &
...
PARAMFLAG_DHASDEFAULT.
Make ITypeInfo_ReleaseVarDesc use TLB_FreeElemDesc.
2005-12-01 11:12:07 +01:00
Robert Shearman
6e2804e19a
Factor out code for doing ELEMDESC sizes and copies.
...
Copy FUNCDESC structures returned to calling applications instead of
passing a pointer to the master structure used internally.
Call VariantInit on newly allocated memory before calling VariantCopy.
2005-11-30 12:01:33 +01:00
Robert Shearman
f0a600a162
Implement ITypeInfo_Bind for typelibs.
...
Fix some places where a returned object was AddRef'd.
Make the search through implemented types work on all types, not just
interfaces.
2005-11-29 11:25:24 +01:00
Robert Shearman
25bfb811a3
Add functions for doing a deep copy of a TYPEDESC into a flat buffer.
...
Copy VARDESC structures returned to calling applications instead of
passing a pointer to the master structure used internally.
2005-11-29 10:42:22 +01:00
Francois Gouget
0edbaf7e80
Remove spaces before '\n' in traces.
2005-11-10 12:14:56 +00:00
Robert Shearman
7dc54af325
- Cleanup formating of DispCallFunc.
...
- Fix DispCallFunc for functions with return values.
- Don't rely on _copy_arg as it is going away soon.
2005-11-09 10:31:20 +00:00
Huw Davies
753e4ee9bd
Don't call Release on a null ptr.
2005-11-02 20:54:34 +00:00
Robert Shearman
1acbdd9d2a
- Make wParamFlags in the paramdesc dumping function human readable.
...
- Enums should be VT_I4 instead of VT_INT.
- Trace the return value from the ITypeInfo_fnInvoke.
2005-11-02 19:59:13 +00:00
Robert Shearman
0033a5a8e7
- Read DLL name from modules in MSFT typelibs.
...
- A name offset of -1 for a parameter means that it has the same name
as the function.
- Print an error if a ReadName is attempted with an offset of -1,
since this will read garbage.
- Implement ITypeInfo_GetDllEntry.
2005-10-29 10:30:57 +00:00