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