Commit Graph

393 Commits

Author SHA1 Message Date
Alexandre Julliard 0ed1041c63 oleaut32: Don't use 16-bit headers. 2009-04-01 18:20:21 +02:00
Michael Stefaniuc a3f8fd71e1 oleaut32: Remove superfluous pointer casts. 2009-02-09 14:37:23 +01:00
Marcus Meissner 4d8fffb24b oleaut32: Removed useless NULL ptr check (Coverity). 2009-02-02 15:21:43 +01:00
Rob Shearman 522662faa9 oleaut32: Fix the typelib tests on 64-bit platforms. 2009-01-29 14:06:59 +01:00
Rob Shearman b3c8124a15 oleaut32: Dump MSFT format typeinfos upon loading. 2009-01-12 13:07:01 +01:00
Alexandre Julliard c42130f010 oleaut32: Make some functions static. 2008-12-02 15:24:59 +01:00
Francois Gouget cc42922e08 oleaut32: Remove WINAPI on static functions where not needed. 2008-11-26 12:10:40 +01:00
Huw Davies 49368cb14b oleaut32: Add support for loading typelibs from NE files. 2008-11-26 12:08:23 +01:00
Andrew Talbot 5af3af2b2f oleaut32: Sign-compare warnings fix. 2008-11-03 14:06:07 +01:00
Michael Stefaniuc 0c07d3ba37 oleaut32: Use FAILED instead of !SUCCEEDED. 2008-10-08 13:43:22 +02:00
Detlef Riekenberg 410302d898 oleaut32: Remove redundant NULL check before SysFreeString. 2008-09-23 12:12:29 +02:00
Huw Davies fd3be66531 oleaut32: Use V_INT instead of V_UNION. 2008-09-16 11:28:53 +02:00
Huw Davies fbcd6422ef oleaut32: Add support for VT_INT and VT_UINT constants. 2008-09-16 11:28:50 +02:00
Mikołaj Zalewski 8b36e71590 oleaut32: Make _argsize and _xsize receive the full TYPEDESC and parent ITypeInfo, use a different function in IDispatch code. 2008-09-15 13:20:10 +02:00
Marcus Meissner 96412ee564 Annotate with allocation size attribute. 2008-09-05 11:22:26 +02:00
Rob Shearman fc269433ce oleaut32: Fix invalid free of import library entry name with SLTG typelibs.
Use TLB_MultiByteToBSTR to allocate import library entry name in
ITypeLib2_Constructor_MSFT as BSTR instead of a normal block of memory
to make the allocator the same as for SLTG typelibs. Free the name
with SysFreeString instead of TLB_Free.
2008-08-18 14:36:58 +02:00
Rob Shearman 2fab79955f oleaut32: Avoid unnecessary allocations in TLB_MultiByteToBSTR and SLTG_ReadString. 2008-08-18 14:36:51 +02:00
Rob Shearman 6f9baca256 oleaut32: Fix the loading of the parameter name for SLTG propget functions.
The parameter could have an offset of 0xffff/0xfffe, in which case the
parameter name should be the name of the function, rather than NULL.
2008-07-30 14:41:57 +02:00
Rob Shearman 9f9d8dc683 oleaut32: Handle strings with a length of 0xffff in SLTG_DoVars.
This means that the string is NULL so don't attempt to access the
string data in this case.
2008-07-30 14:41:47 +02:00
Rob Shearman caf875f4ee oleaut32: Dump the loaded module in SLTG_ProcessModule. 2008-07-30 14:41:37 +02:00
Rob Shearman 0ed6ebfec1 oleaut32: Move the debug logging of the variable type in SLTG_DoVars.
Move it before loading of the constant data to allow better debugging
of problems during the processing of loading the constant data.
2008-07-30 14:41:32 +02:00
Rob Shearman 48c5a06916 oleaut32: Use the typelib debug channel for debug messages output during loading of SLTG typelibs. 2008-07-30 14:41:22 +02:00
Andrew Talbot 3ac0983ab4 oleaut32: Remove unneeded address-of operators from array names. 2008-07-11 14:06:37 +02:00
Rob Shearman 501da4fa2a oleaut32: Dump symbolic names for VT_LPSTR and VT_LPWSTR in dump_TypeDesc. 2008-07-01 12:26:22 +02:00
Rob Shearman a2c1bdf1f8 oleaut32: Load string constants correctly from SLTG typelibs. 2008-07-01 12:26:17 +02:00
Rob Shearman 45989a1ff1 oleaut32: Implement the 0x08 flag in SLTG_DoVars.
It means that the data is stored directly in pItem->byte_offs instead
of the byte offset pointed to by it.
2008-07-01 12:26:11 +02:00
Austin English c531e2abdb Spelling fixes. 2008-04-23 12:31:07 +02:00
Andrew Talbot ba742868e5 oleaut32: Remove unused variables. 2008-04-23 12:23:27 +02:00
Austin English e8dbd66c23 oleaut32: Spelling fixes. 2008-04-14 21:28:38 +02:00
Francois Gouget 8a18e0e43a Assorted spelling fixes. 2008-04-07 13:36:18 +02:00
Rob Shearman a35dfc4510 oleaut32: Fix the return type of TLB_ReadTypeLib. 2008-03-15 10:58:38 +01:00
Rob Shearman 0ec1e2842a oleaut32: Split the methods for opening different sources of typelibs out of TLB_ReadTypeLib. 2008-03-12 19:21:15 +01:00
Andrew Talbot 9d16a42210 oleaut32: Assign to structs instead of using memcpy. 2008-03-12 11:59:27 +01:00
Andrew Talbot 5ea25c62b8 oleaut32: Remove unneeded casts. 2008-01-16 12:16:01 +01:00
Rob Shearman e68371040f oleaut32: Introduce a new helper function, TLB_FreeCustData, for freeing custom data.
Fix memory leaks caused by the variable and interface custom data not 
being freed properly.
2007-11-28 11:14:13 +01:00
Rob Shearman aaa6c4007f oleaut32: Free the correct custom data inside ITypeInfo_fnRelease.
Since the code is inside the loop for function data, it should be 
freeing the function's custom data, not the interface's.
2007-11-28 11:14:07 +01:00
Gerald Pfeifer 48d839822b oleaut32: Simplify two conditions based on the fact that unsigned variables cannot be negative. 2007-11-26 13:55:18 +01:00
Francois Gouget c4b1195c0c Assorted spelling fixes. 2007-10-23 18:20:27 +02:00
Mikolaj Zalewski bda66cc37a oleaut32: Function kind for dispatch interfaces should be FUNC_DISPATCH. 2007-10-10 21:33:38 +02:00
Andrew Talbot 4ed64d381c oleaut32: Constify some variables. 2007-07-31 22:24:46 +02:00
Andrew Talbot 36720b4945 oleaut32: Constify some variables. 2007-07-30 13:38:39 +02:00
Huw Davies ec35568970 oleaut32: Extend _invoke to cope with more args. 2007-06-25 11:34:49 +02:00
Huw Davies 17fca45d41 oleaut32: Interfaces that derive from IDispatch should be marshaled as VT_DISPATCH. 2007-06-25 11:34:23 +02:00
Michael Stefaniuc 34b45b311e oleaut32: Do not use wide character constants. 2007-06-22 12:18:50 +02:00
Misha Koshelev 428ed94fa9 oleaut32: Add support for vararg functions in ITypeInfo::Invoke. 2007-06-07 13:00:09 +02:00
Rob Shearman e98ec6db4c oleaut32: Fix the references in function descriptions returned for dual IDispatch interfaces.
Do this by changing references from other interfaces (and possibly other 
typelibs) to uniquely identify them.

Add special handling to GetRefTypeInfo to cope with this.
2007-05-30 11:51:54 +02:00
Rob Shearman bacf5c640f oleaut32: For automatic-value-getting in ITypeInfo::Invoke, it doesn't matter what flag(s) the function was executed with, just what type of function is being invoked. 2007-05-30 11:51:37 +02:00
Huw Davies cd3df383a5 oleaut32: SLTG references are only unique at the typeinfo level, so convert them to be unique to the typelib. 2007-05-25 19:37:12 +02:00
Huw Davies c1e89400aa oleaut32: Recurse through the impltype list so that dispinterfaces get the correct parents. 2007-05-18 19:59:35 +02:00
Huw Davies b698b2909b oleaut32: Fix CreateDispTypeInfo to store the correct number of functions. 2007-05-18 19:59:29 +02:00
Huw Davies 78bf6946ba oleaut32: GetRefTypeOfImplType(0) on TKIND_DISPATCH typeinfos should always return an href to IDispatch. 2007-05-18 19:57:34 +02:00
Huw Davies 356970e529 oleaut32: Fix return value in the element not found case. 2007-05-18 19:57:25 +02:00
Huw Davies 9afcaf2ae1 oleaut32: Type references are global to the typelib. 2007-05-17 12:44:44 +02:00
Rob Shearman 5edc7fd5ef oleaut32: TKIND_COCLASS parameters to Invoke'd functions should be converted into VT_DISPATCH instead of VT_UNKNOWN.
Add a test for this.
2007-03-08 13:50:45 +01:00
Rob Shearman 30b6f9acd6 oleaut32: Fix the return value of ITypeInfo::Invoke when the property-put named argument isn't DISPID_PROPERTYPUT. 2007-02-08 12:59:36 +01:00
Rob Shearman a3235dd1d4 oleaut32: Implement automatic value getting in ITypeInfo::Invoke.
If an IDispatch object is returned from in the retval for a propget 
function and an extra parameter was passed in to ITypeInfo::Invoke then 
it should call IDispatch::Invoke on the returned object with the extra 
parameter to retrieve the value of the object, which is then returned in 
pVarResult.
2007-02-08 12:59:32 +01:00
Rob Shearman e88d033044 oleaut32: Ignore the first named argument when invoking property-put methods
as it is mandatory and doesn't indicate that the arguments will be
passed in as named ones.
2007-02-06 22:06:16 +01:00
Rob Shearman 21140a9a53 oleaut32: Add support for named arguments in ITypeInfo::Invoke. 2007-02-06 22:05:59 +01:00
Rob Shearman 702e2c6dc2 oleaut32: Copy the value directly returned from the called function
if it is not an HRESULT value, instead of getting it from a [retval]
attribute.
2007-02-06 22:05:50 +01:00
Rob Shearman 8f38cd8c8c oleaut32: Fix the missing argument handling for non-byref variant arguments. 2007-02-06 21:36:34 +01:00
Rob Shearman e2108feec4 oleaut32: If an error info object was created when the invoked method failed then fill in exception info from the error info object. 2007-02-06 21:36:13 +01:00
Huw Davies a09cd1b88a oleaut32: Call SearchPath before LoadLibrary so that we get the full path of native exes and dlls.
For builtin dlls prepend the system directory.
2007-02-06 20:23:16 +01:00
Huw Davies a59e4899f5 oleaut32: The typelib version numbers should be written to the registry in hex. 2007-01-25 11:05:46 +01:00
Andrew Talbot d6fc116475 oleaut32: Declare some items static. 2007-01-22 12:08:55 +01:00
Dmitry Timoshkov 601bf6ea12 oleaut32: Make some data const and static. 2006-11-28 12:36:20 +01:00
Alex Villacís Lasso 64410e5907 oleaut32: typelib - fix regression in MSFT typelib parsing. 2006-11-09 10:44:13 +01:00
Francois Gouget 30e44c85c8 Assorted spelling fixes. 2006-11-07 15:25:24 +01:00
Rob Shearman 7f71545835 oleaut32: Update comments at the top of typelib.c and remove "stub" from several traces that are in implemented functions. 2006-10-27 11:59:50 +02:00
Rob Shearman 47bf80da8c oleaut32: Fix a crash in dump_DispParms when running the typelib test with debug tracing on. 2006-10-24 17:46:56 +02:00
Rob Shearman aa203f0919 oleaut32: Free the array subscript memory for type descriptions when freeing the typelib. 2006-10-24 17:46:49 +02:00
Rob Shearman a26af4861d oleaut32: Fix a reference count leak in CreateDispTypeInfo. 2006-10-24 17:46:34 +02:00
Rob Shearman d72ef78fa6 oleaut32: Initialise all members of the FUNCDESC structure in CreateDispTypeInfo. 2006-10-24 17:46:27 +02:00
Rob Shearman 053b6b21b6 oleaut32: Fix two more leaks on type info destruction. 2006-10-23 15:19:02 +02:00
Rob Shearman b5c78d0dff oleaut32: Rewrite MSFT_ReadName and MSFT_ReadString to need one less allocation and to fix a memory leak. 2006-10-23 15:18:56 +02:00
Rob Shearman b3d024a7bb oleaut32: Free allocated memory on typelib and typeinfo destruction. 2006-10-23 15:18:38 +02:00
Dmitry Timoshkov 20c40e0659 oleaut32: Make QueryPathOfRegTypeLib test pass under Wine. 2006-10-23 15:16:55 +02:00
Francois Gouget ef998ea6cb Assorted spelling fixes. 2006-10-16 11:33:38 +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
Huw Davies 03ec218326 oleaut32: Implement ITypeInfo_CreateInstance. 2006-10-09 20:38:41 +02:00
Robert Shearman dd70c0ae7c oleaut32: Fix ITypeInfo::GetFuncDesc to return the correct information for dual dispinterfaces. 2006-10-02 21:38:12 +02:00
Robert Shearman 65ca6a2f4d oleaut32: Make ITypeInfo::GetDocumentation work for functions/variables in inherited interfaces. 2006-10-02 21:38:07 +02:00
Andrew Talbot 0e9c97eba3 oleaut32: Cast-qual warnings fix. 2006-09-25 18:15:39 +02:00
Robert Shearman b7e88d8f8b oleaut32: Fix a leak of the module reference count. 2006-09-07 10:16:47 +02:00
Benjamin Arai d1282dce88 oleaut32: Add support for handling TKIND_COCLASS in userdefined_to_variantvt. 2006-08-22 12:00:01 +02:00
Stefan Siebert 9776f5b83f oleaut32: GetTypeInfoType - Return TYPE_E_ELEMENTNOTFOUND if index out of bounds. 2006-08-03 19:56:22 +02:00
Robert Shearman 40556ae08f oleaut32: Improve dump_DispParms. 2006-07-31 21:27:29 +02:00
Robert Shearman 33582cc69e oleaut32: Add some validation for the DISPPARAMS structure in ITypeInfo::Invoke. 2006-07-31 21:25:44 +02:00
Robert Shearman eb885a750f oleaut32: Initialize pRetVal in ITypeInfo::Invoke before calling VariantCopyInd
as native doesn't assume that it doesn't contain valid data.
2006-07-24 13:46:57 +02:00
Robert Shearman ad6b0dc281 oleaut32: Revert check for FUNCFLAG_FRESTRICTED in ITypeInfo::Invoke.
The change caused regressions in a number of applications and needs more 
study to see what the correct behaviour should be.
2006-07-18 11:12:35 +02:00
Robert Shearman 31f640274f oleaut32: Don't execute a function in ITypeInfo::Invoke if it has the FUNCFLAG_FRESTRICTED flag.
Add some more tests for ITypeInfo::Invoke.
2006-07-14 12:39:02 +02:00
Robert Shearman f9c9a2bf3d oleaut32: Convert void return types to the VT_EMPTY variant type in ITypeInfo::Invoke. 2006-07-13 16:26:19 +02:00
Robert Shearman 797bdbc2d9 oleaut32: Typelib interfaces with the FDUAL flag should also be registered,
since dispinterfaces don't have the FDISPATCHABLE flag.
2006-07-13 16:26:12 +02:00
Robert Shearman 688c6a78f1 oleaut32: MSFT_DoFuncs: "reclength" of the function information record is stored
in a 16 bit int and not in a 8 bit int as previously supposed, using a 0x1ff
mask. Upper 16 bits contains the ordinal number of the function. 
Allocation of the "recbuf" must be modified, to support larger data
(based on a patch by White Snake <whitesnake78@mail.com>).
2006-07-10 11:53:03 +02:00
Robert Shearman ef7b6e2740 oleaut32: ITypeComp_fnBind should do case-insensitive compares on the name passed in. 2006-07-07 13:31:43 +02:00
Robert Shearman dd677948b4 oleaut32: Fix the error code returned by ITypeComp on an interface when the name matches, but the flags don't. 2006-07-07 13:30:46 +02:00
Robert Shearman 65639ab722 oleaut: Implement processing of modules for SLTG typelibs.
Set funckind when processing SLTG functions.
2006-07-05 11:48:41 +02:00
Robert Shearman 3f97460c2b oleaut: Improve SLTG var support.
Pass both the start of the block and the offset to the first item into
SLTG_DoVars as they may be different.
Process 0xfffe offsets for variable names - this means to use the
previous name.
Add support for parsing the optional varflags field.
2006-07-05 11:48:29 +02:00
Robert Shearman 4b6b51ae99 oleaut: Fix function support for SLTG dispinterfaces. 2006-07-05 11:48:13 +02:00
Robert Shearman f2eb2d2309 oleaut: Move the processing of functions in SLTG typelibs into a
separate function and use it when processing dispinterfaces.
2006-07-05 11:48:03 +02:00