Commit Graph

557 Commits

Author SHA1 Message Date
Andrew Eikum 35342cef60 oleaut32: Store all GUIDs in typelibs. 2013-05-31 11:59:53 +02:00
Andrew Eikum f7dbebef66 oleaut32: Pull TYPEATTR struct contents out. 2013-05-31 11:59:44 +02:00
Andrew Eikum 3a16568f41 oleaut32: Pull TLIBATTR struct contents out.
So we can store GUIDs outside of the structs.
2013-05-31 11:59:30 +02:00
Andrew Eikum 379e1c035a oleaut32: Store all Names in typelibs, too. 2013-05-31 11:59:17 +02:00
Andrew Eikum dc9cd02264 oleaut32: Load and store all of the strings in a typelib.
This lets us easily avoid duplicate strings in the typelib.
2013-05-31 11:59:07 +02:00
Andrew Eikum d8b98efb4f oleaut32: Implement ICreateTypeInfo::LayOut. 2013-05-30 10:56:34 +02:00
Andrew Eikum 02a2a6d936 oleaut32: Implement ICreateTypeInfo::SetCustData. 2013-05-30 10:56:32 +02:00
Andrew Eikum 92b9304ae4 oleaut32: Implement ICreateTypeInfo::SetImplTypeFlags. 2013-05-30 10:56:29 +02:00
Andrew Eikum 90e72d2d49 oleaut32: Implement ICreateTypeInfo::SetFuncAndParamNames. 2013-05-30 10:56:26 +02:00
Andrew Eikum aec4504c8a oleaut32: Implement ICreateTypeInfo::SetFuncHelpContext. 2013-05-29 11:25:00 +02:00
Andrew Eikum 479ffebf40 oleaut32: Implement ICreateTypeInfo::AddFuncDesc. 2013-05-29 11:24:58 +02:00
Andrew Eikum 8c6984ab7a oleaut32: Improve TYPEFLAG_FDUAL handling. 2013-05-29 11:24:56 +02:00
Andrew Eikum 0082256a3f oleaut32: Implement ICreateTypeInfo::AddImplType. 2013-05-29 11:24:53 +02:00
Andrew Eikum f9d42aee53 oleaut32: Implement ICreateTypeInfo::AddRefTypeInfo.
This also corrects our HREFTYPE values a little bit.
2013-05-29 11:24:43 +02:00
Andrew Eikum d72a797f00 oleaut32: Implement ICreateTypeLib::CreateTypeInfo. 2013-05-28 14:32:21 +02:00
Andrew Eikum 6f6a487579 oleaut32: Implement basic ICreateTypeInfo functions. 2013-05-28 14:32:13 +02:00
Andrew Eikum ba5c9c7d38 oleaut32: Implement basic ICreateTypeLib functions. 2013-05-28 14:32:07 +02:00
Andrew Eikum 97a96094bb oleaut32: Stub typelib and typeinfo creation interfaces in typelib.c. 2013-05-28 14:31:56 +02:00
Andrew Eikum 70ed25fa1a oleaut32: Also search local typeinfos in ITypeInfo::GetRefTypeInfo. 2013-05-16 17:31:39 +02:00
Andrew Eikum c74a9eac93 oleaut32: Always initialize PARAMDESCEX's cBytes field. 2013-05-16 17:31:35 +02:00
Andrew Eikum 5f85b7c8ac oleaut32: Don't return bogus pointers if no data is available. 2013-05-13 11:05:27 +02:00
Andrew Eikum 1a00e932ad oleaut32: Use containing TypeLib's HelpFile in ITypeInfo::GetDocumentation. 2013-05-13 11:05:23 +02:00
Andrew Eikum 787ac75045 oleaut32: Sanity check some arguments. 2013-05-13 11:05:20 +02:00
Andrew Eikum b301234f3a oleaut32: Finish COM cleanup for ITypeLib objects. 2013-05-10 12:00:09 +02:00
Andrew Eikum d7313b21e8 oleaut32: Finish COM cleanup for internal loading structures. 2013-05-10 12:00:07 +02:00
Andrew Eikum ab7fffaafa oleaut32: Finish COM cleanup for ITypeInfo objects. 2013-05-10 12:00:04 +02:00
Andrew Eikum 8897f6034c oleaut32: COM cleanup for internal loading structures. 2013-05-09 14:16:06 +02:00
Andrew Eikum ddcd368b28 oleaut32: COM cleanup for ITypeInfo object. 2013-05-09 14:16:04 +02:00
Andrew Eikum 19f3bbc903 oleaut32: COM cleanup for ITypeLib object. 2013-05-09 14:16:00 +02:00
Andrew Talbot eedf2f6fab oleaut32: Avoid signed-unsigned integer comparisons. 2013-02-22 10:17:32 +01:00
Jacek Caban 88367a3c58 oleaut32: Return error if VT_HRESULT is used as return type in DispCallFunc. 2013-02-12 15:01:55 +01:00
Jacek Caban 253fdf1574 oleaut32: COM clean up of ITypeLib2 interface implementation. 2013-02-12 14:51:50 +01:00
Alistair Leslie-Hughes f20427361c oleaut32: Don't output an error when the typelib cannot be found. 2012-12-20 12:21:39 +01:00
Alistair Leslie-Hughes 04d3ba5b35 oleaut32: Fail if we cannot find the TYPELIB resource. 2012-11-30 11:55:02 +01:00
André Hentschel 43ffbe5611 oleaut32: Fix remaining memory leak (coverity). 2012-11-13 18:07:06 +01:00
Andrew Eikum 561e46c435 oleaut32: helpcontext is not an offset. 2012-11-02 20:12:36 +01:00
André Hentschel a46bfd644d oleaut32: Don't leak memory allocated by heap_alloc_zero (coverity). 2012-10-29 10:39:59 +01:00
André Hentschel b45e4496af oleaut32: Don't leak SafeArray (coverity). 2012-10-29 10:35:33 +01:00
Jacek Caban 2f7afbebd1 oleaut32: Properly handle TKIND_ALIAS when looking for iface GUID. 2012-09-19 16:31:14 +02:00
Roman Dadkov 3eab4f8d96 oleaut32: Record DocString field in ITypeInfoImpl structure in function ITypeLib2_Constructor_SLTG. 2012-08-22 12:11:54 +02:00
Jacek Caban 44936abd84 oleaut32: Ensure that the right interface is passed to the callee in ITypeInfo::Invoke. 2012-08-20 20:17:30 +02:00
Jacek Caban 4a5eca88aa oleaut32: Use proper helpers for iface calls. 2012-07-27 17:05:27 +02:00
Alessandro Pignotti 25d6e9aee8 oleaut32: Avoid converting variants if it is not needed. 2012-03-16 13:02:49 +01:00
Huw Davies 0425a110d9 oleaut32: [restricted] members with negative dispids may still be called. 2012-02-07 09:34:22 -06:00
Nikolay Sivov a23dbc5dc5 oleaut32: Some tests for ITypeLib::FindName(), corrected parameter validation. 2012-01-26 21:27:59 +01:00
Hans Leidekker 110d96634b oleaut32: Handle negative offsets into the custom data table.
Fixes a crash in the Visio 2002 installer.
2012-01-17 13:59:03 +01:00
Frédéric Delanoy 7e309601f3 dlls: Assorted spelling fixes. 2011-08-03 14:15:50 +02:00
Andrew Eikum 22cc547156 oleaut32: Convert ITypeLibImpl to use standard linked list. 2011-03-16 16:31:54 +01:00
Andrew Eikum 3d03a5e239 oleaut32: Convert TLBImpLib to use standard linked list. 2011-03-16 16:31:54 +01:00
Andrew Eikum ec0a86002e oleaut32: Convert CustData to use standard linked lists. 2011-03-14 12:16:15 +01:00
Andrew Eikum 28fc129258 oleaut32: Use helper function to get CustData by GUID. 2011-03-14 12:16:04 +01:00
Andrew Eikum 517f5ba596 oleaut32: Convert TLBVarDesc to be stored as an array. 2011-03-11 11:44:12 +01:00
Andrew Eikum f76334fd3e oleaut32: Convert TLBImplType to be stored as an array. 2011-03-11 11:43:54 +01:00
Andrew Eikum 19fca2728b oleaut32: Convert TLBFuncDesc to be stored as an array. 2011-03-07 15:03:58 +01:00
Andrew Eikum b3e61a5661 oleaut32: Store ITypeInfoImpls in an array. 2011-03-07 15:03:13 +01:00
Huw Davies 060c8daf7f oleaut32: Mask off the lsb from the vtbl offset. This is set when the user specifies an offset in ICreateTypeInfo. 2011-02-24 15:49:27 +01:00
Nikolay Sivov a6de06aa4c oleaut32: Fix a couple of leaks on typeinfo release (Valgrind). 2011-01-24 14:43:28 +01:00
David Hedberg 900c5cde69 oleaut32: Make ITypeComp::BindType case-insensitive. 2011-01-11 16:05:46 +01:00
David Hedberg 454b1fca24 oleaut32: Handle NULL arguments to ITypeComp::BindType. 2011-01-11 16:05:45 +01:00
Nikolay Sivov ea3c215b57 oleaut32: Use VARENUM members instead of hardcoded values. 2011-01-04 14:55:41 +01:00
Nikolay Sivov 2e25e5e22c oleaut32: Use alloc/free helpers for typelib creation part too. 2011-01-04 14:53:50 +01:00
Nikolay Sivov ed749f51ce oleaut32: Use IDispatch vtable size instead of hardcoded value. 2011-01-04 14:52:52 +01:00
Nikolay Sivov b09fd556b0 oleaut32: Use implementation pointer to avoid casts. 2011-01-04 14:52:18 +01:00
Nikolay Sivov a90d2efd53 oleaut32: Use alloc/free helpers for all typelib parse methods. 2011-01-03 16:48:25 +01:00
Nikolay Sivov 8c8b5da9fc oleaut32: Update variable description and typeinfo size in ICreateTypeInfo2::SetVarHelpContext(). 2010-12-31 11:45:20 +01:00
Nikolay Sivov b3514b4718 oleaut32: Use function description layout instead of hardcoded byte offsets. 2010-12-28 16:35:39 +01:00
Nikolay Sivov 22022d13d1 oleaut32: Get rid of some magic offset values, use structure for that. 2010-12-27 11:50:38 +01:00
Nikolay Sivov 677302cf22 oleaut32: Move common define to a header. 2010-12-27 11:49:52 +01:00
Nikolay Sivov 6408679e44 oleaut32: Fix GetLibAttr for null argument, plus error handling. 2010-12-22 13:00:11 +01:00
Nikolay Sivov c395ae563e oleaut32: Basic parameter validation tests for some GetTypeInfo* methods. 2010-12-22 13:00:10 +01:00
Andrew Eikum c0f120db5d oleaut32: Search inherited interfaces again in ITypeComp::Bind. 2010-11-10 12:13:39 +01:00
Michael Stefaniuc ec382f4345 oleaut32: The function pointer should be const and not the return value. 2010-09-07 17:59:14 +02:00
Alexandre Julliard a0a4667fde oleaut32: Add tests for DispCallFunc and fix a number of corner cases. 2010-08-26 12:35:31 +02:00
Alexandre Julliard 21abfc5355 oleaut32: Implement DispCallFunc for x86_64. 2010-08-25 16:18:50 +02:00
Alexandre Julliard 3c380daa59 oleaut32: Simplify the i386 implementation of DispCallFunc. 2010-08-25 16:17:10 +02:00
Jacek Caban 7d7586d358 oleaut32: Try both SYS_WIN64 and SYS_WIN32 syskind in QueryPathOfRegTypeLib on win64. 2010-08-20 13:21:01 +02:00
Andrew Nguyen f2610a6109 oleaut32: Partially implement UnRegisterTypeLibForUser. 2010-07-30 14:59:42 +02:00
Andrew Nguyen f4fa417be9 oleaut32: Partially implement RegisterTypeLibForUser. 2010-07-30 14:59:41 +02:00
Huw Davies baef9a7e92 oleaut32: Don't invoke a function that has the restricted attribute or is part of an interface that's marked as restricted. 2010-07-29 17:33:36 +02:00
Alexandre Goujon 14db6a802c oleaut32/typelib: Fix ITypeInfo_Invoke with restricted keyword. 2010-07-20 12:35:51 +02:00
Andrew Eikum 3173305e88 oleaut32: Don't fail if member is missing in ITypeComp::Bind. 2010-07-19 14:38:17 +02:00
Michael Stefaniuc 0f82f68734 oleaut32: Avoid using long. 2010-05-10 13:46:08 +02:00
Alexandre Julliard 3681a28024 oleaut32: Query the path of the correct kind of typelib when unregistering it. 2010-04-09 11:14:16 +02:00
Alexandre Julliard e851556f6b oleaut32: Fix some pointer conversion warnings on 64-bit. 2010-04-07 14:25:02 +02:00
Vincent Povirk d9c01dcc40 oleaut32: Limit the number of arguments traced. 2010-04-07 13:50:28 +02:00
Huw Davies fbaaedd967 oleaut32: Only unregister those types that were registered. 2010-04-01 18:12:59 +02:00
Huw Davies adeba6ee80 oleaut32: Only oleautomation interfaces as well as all dispinterfaces should be registered. 2010-04-01 18:12:58 +02:00
Vincent Povirk 8ff7238ade oleaut32: Allow named args to be combined with positional args in fnInvoke. 2010-03-22 10:42:23 +01:00
Piotr Caban d2319ae841 oleaut32: Fix ITypeInfo GetImplTypeFlags for dispinterfaces. 2010-03-18 11:14:27 +01:00
Vincent Povirk 5893f3227c oleaut32: Always use DISPID_PROPERTYPUT to fill in the last argument. 2010-03-17 10:07:57 +01:00
Piotr Caban 914472ab81 oleaut32: Set parameter to NULL in GetMops stub. 2010-03-16 11:48:55 +01:00
Vincent Povirk da409d6a7b oleaut32: Return type mismatch errors in ITypeLibComp_fnBind. 2010-03-15 15:53:59 +01:00
Piotr Caban 2c911147b9 oleaut32: Fix crash in LoadTypeLib if typelib name is not specified. 2010-02-17 16:31:01 +01:00
Michael Stefaniuc ef7cafc11c oleaut32: Avoid using HIWORD on string pointers. 2010-02-10 14:33:27 +01:00
Rob Shearman 4f73fe3a09 oleaut32: Free the correct pointer on error in TLB_AllocAndInitVarDesc. 2009-11-29 16:42:20 +01:00
Rob Shearman 2a42f42951 oleaut32: Fix memory leak of name in ITypeLib2_Constructor_MSFT. 2009-11-19 14:24:11 +01:00
Rob Shearman 8a5886efad oleaut32: Fix circular reference counting in typelibs/typeinfos.
Do not rely on the reference count of ITypeInfo's to go to zero to
delete them. Instead only rely on the parent typelib's reference
count, but update the parent typelib's reference count based on
whether each typeinfo has a valid reference.
2009-11-19 14:24:05 +01:00
Rob Shearman 99d9983b61 oleaut32: Fix memory leaks in ITypeInfo_fnInvoke. 2009-11-18 11:15:39 +01:00
Sunil Mohan Adapa 59ae1705ac oleaut32: Do no check for dispatchable flag on dual interfaces. 2009-11-10 15:18:06 +01:00
Sunil Mohan Adapa 926b884cd6 oleaut32: Fix SLTG parser so that dual interfaces are returned as IDispatch first. 2009-11-10 15:18:05 +01:00
Sunil Mohan Adapa 05b2426031 oleaut32: Fix SLTG parser so that dispatch interface can inherit another interface. 2009-11-10 15:18:05 +01:00
Jeremy White b8d7088e88 oleaut32: Implement the ability to marshall VT_CARRAY's of user defined types. 2009-10-26 11:19:12 +01:00
Alexandre Julliard ceac768adf oleaut32: Use an assembly wrapper to implement DispCallFunc, and make it i386-only. 2009-10-06 16:12:35 +02:00
Vincent Povirk 03683b2530 oleaut32: Use DISPATCH_HREF_MASK even for non-dual dispatch types. 2009-09-16 15:36:35 -05:00
Vincent Povirk 9abdf54cb7 oleaut32: Implement ITypeLibComp::BindType. 2009-09-10 10:50:22 +02:00
Vincent Povirk 34f1d8a200 oleaut32: Handle LCID arguments in ITypeInfo::Invoke. 2009-09-02 15:48:14 +02:00
Austin English e7bbc32bd1 oleaut32: Avoid a NULL pointer dereference. 2009-09-01 12:52:05 +02:00
Vincent Povirk 80c870251f oleaut32: Make ITypeInfo2::GetCustData succeed when data is not found. 2009-08-26 12:09:25 +02:00
Vincent Povirk 3e542bc60e oleaut32: Map INT and UINT typedesc's to VT_I4 and VT_UI4. 2009-08-20 15:25:54 +02:00
Sunil Mohan f7f50d1252 oleaut32: Fix SLTG_ReadString to null terminate. 2009-08-18 11:25:44 +02:00
Alexandre Julliard 8fce9369b8 oleaut32: Replace long and unsigned long by more appropriate types. 2009-07-03 13:48:54 +02:00
Huw Davies 9da0b352f6 oleaut32: TLibAttr.lcid is read from the second lcid field in the header. Confirmed by manually editing a tlb file. 2009-06-09 17:01:15 +02:00
Alexandre Julliard 9955350ea1 oleaut32: Add support for registering 64-bit typelibs. 2009-05-21 16:17:19 +02:00
Dmitry Timoshkov 69ec6b4c6d oleaut32: Add some additional tests for QueryPathOfRegTypeLib, make them pass under Wine. 2009-04-13 17:35:51 -05:00
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