Commit Graph

596 Commits

Author SHA1 Message Date
Dmitry Timoshkov d3d6f94ab1 oleaut32: ICreateTypeInfo2::AddVarDesc() should handle failure of allocation and initialization of a variant description.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-01 22:34:31 +02:00
Nikolay Sivov e3ef9b5426 oleaut32: Added ICreateTypeInfo2::DeleteFuncDesc().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-05 15:38:22 +01:00
Nikolay Sivov c4a9a296ba oleaut32: Use wide-char string literals.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-26 21:31:53 +01:00
Kevin Puetz 65d917402f oleaut32: Load GetVarCustData from MSFT-format typelib.
Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:51 +01:00
Kevin Puetz cd38abc455 oleaut32: Fix error handling/reporting in TLB_copy_all_custdata.
VariantCopy clears existing contents of pvargDest and thus requires
it contain a valid (possibly-empty) VARIANT, not uninitialized garbage.

If a failure still occurs, propgate the HRESULT to GetAll*CustData.

Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:51 +01:00
Kevin Puetz 477fc581de oleaut32: Make GetNames omit same parameters as GetFuncDesc.
GetFuncDesc removes parameters which are handled specially by Invoke;
GetNames should also consistently omit their names.

Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 13:23:43 +02:00
Kevin Puetz 269207e6fd oleaut32: Omit [lcid] parameter when rewriting FUNCDESC to FUNC_DISPATCH.
[lcid] parameters are supplied from IDispatch::Invoke's parameters,
rather than via DISPPARAMS::rgvargs[] and should also be removed
from the FUNC_DISPATCH translation.

Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 13:23:43 +02:00
Kevin Puetz 9bc78976d9 oleaut32: Overwrite return type when rewriting FUNCDESC to FUNC_DISPATCH.
A [retval] parameter overwrites any return type, not just HRESULT.
But HRESULT is special even without a [retval] to replace it;
it's translated into pExcepInfo and so the return type becomes void.

This rewriting should occur only for functions not originally
defined as FUNC_DISPACH (e.g. inherited or [dual]).
A FUNCDESC originally declared as a dispinterface is left as-is,
and might e.g. return HRESULT.

Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 13:23:43 +02:00
Kevin Puetz 03b1b3920c oleaut32: FUNC_DISPATCH from dispinterface should have oVft == 0.
A dispinterface has no vtbl beyond IDispatch itself.

Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 13:23:43 +02:00
Puetz Kevin A 380fbe006a oleaut32: Cut off only non-empty \[0-9]+$ resource-id in RegisterTypeLib.
Check if szFullPath ended with '\\' (was explicitly a directory).

Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-17 00:04:12 +02:00
Porot Mo 48ef66e9e3 oleaut32: Match funcdesc using both memberid and invkind.
Property access functions can share the same memberid.

Signed-off-by: Porot Mo <porotmjp@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-11 15:51:18 +02:00
Huw Davies e9eb274db2 oleaut32: Return early if there is no matching funcdesc.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-11 15:51:18 +02:00
Jacek Caban 8fac69ba50 oleaut32: Fix handling dual interfaces in ITypeInfo::GetRefTypeInfo.
Based on patch by Puetz Kevin.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 21:20:14 +01:00
Jacek Caban db498b3bf2 oleaut32: Use ITypeInfoImpl_GetInternalFuncDesc in a few more places.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Jacek Caban cdb72b091e oleaut32: Return missing function custom data as VT_EMPTY.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Kevin Puetz af2edc175c oleaut32: Use ITypeInfoImpl_GetInternalFuncDesc in ITypeInfo2_fnGetFuncCustData.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Kevin Puetz e9f8971398 oleaut32: Return function description as TLBFuncDesc from ITypeInfoImpl_GetInternalDispatchFuncDesc.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Jacek Caban af905ffec9 oleaut32: Move TKIND_DISPATCH logic to ITypeInfoImpl_GetInternalFuncDesc.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Kevin Puetz 5ecd6e4807 oleaut32: Fix handling resource IDs in paths when registering typelib helpdir.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Kevin Puetz dc96f63f3f oleaut32: Search cache for requested typeinfo in GetRefTypeInfo.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Kevin Puetz fa0491f239 oleaut32: Use GetFinalPathNameByHandle to canonicalize file path.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-03 20:48:04 +01:00
Francois Gouget 8ecd037962 oleaut32: Fix the spelling of some comments.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-12 23:17:05 +01:00
Nikolay Sivov 06842c709d oleaut32/typelib: Simplify variable and function description lookup helpers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-10 20:59:19 +01:00
Nikolay Sivov 5d05d4acd6 oleaut32/typelib: Get rid of redundant argument in typeinfo lookup helper.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-10 20:59:19 +01:00
Francois Gouget 1a46034c46 oleaut32: Fix the spelling of a FIXME() message.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-09 23:47:46 +01:00
Nikolay Sivov ae67aa8bbf oleaut32/typelib: No need to query self for supported interface.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-09 23:47:45 +01:00
Jacek Caban 62ea59774b oleaut32: Fix sharing options in TLB_ReadTypeLib.
Spotted by Donna Whisnant and Kevin Puetz.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-06 22:30:23 +01:00
Nikolay Sivov 8aaa218b47 oleaut32/typelib: Implement DeleteImplType().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-06 22:30:23 +01:00
Nikolay Sivov 81908349d2 oleaut32/typelib: Add a helper to update custom data lists on reallocation.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-06 22:30:23 +01:00
Alexandre Julliard 27e976c4fb oleaut32: Fix scope of a local array variable.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-31 16:30:29 +01:00
Alexandre Julliard 03a590017e oleaut32: Fix handling of VARIANT parameters in DispCallFunc() on ARM64.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-29 17:23:02 +01:00
Alexandre Julliard d01470ad45 oleaut32: Return value pointer needs to be in x8 on ARM64.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-27 12:01:11 +02:00
Alexandre Julliard 71ab74a11f oleaut32: Implement DispCallFunc() for ARM64.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-26 21:00:13 +02:00
Alexandre Julliard 25d0c66238 oleaut32: Split DispCallFunc() into platform-specific functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-26 21:00:13 +02:00
Kevin Puetz e10e59fa0e oleaut32: Fix RegisterTypeLib prototype.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-25 16:30:41 +02:00
Alexandre Julliard 7b82fa1990 oleaut32: Add .seh annotations for x86_64.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-21 11:56:13 +02:00
Alexandre Julliard aa4ac3ad6c oleaut32: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-17 09:41:13 +02:00
Alexandre Julliard d5a372abbb include: Move inline assembly definitions to a new wine/asm.h header.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 13:45:07 +02:00
Piotr Caban fb30510352 oleaut32: Don't use strcasecmp.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-29 21:25:24 +01:00
Zebediah Figura f72f8e5c40 oleaut32: Register non-dual dispinterfaces using the correct proxy.
Fixes a bug where NetLinx Studio 4 would fail to compile files.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-11 11:52:00 +01:00
Dmitry Timoshkov 54d17b9532 oleaut32: Accept DISP_E_PARAMNOTFOUND for missing optional parameters in ITypeInfo::Invoke implementation.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-03 10:51:23 +01:00
Zebediah Figura 94f4b49d78 oleaut32: Handle coclasses in ITypeInfo_Invoke().
Based on a patch by Sebastian Lackner.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=39799
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-14 17:48:55 +01:00
Sebastian Lackner ab6d4a9d3d oleaut32: Pass a HREFTYPE to get_iface_guid.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-14 17:48:55 +01:00
Alexandre Julliard b73972b9df oleaut32: Fix argument order with instance and VARIANT return type.
Spotted by Dmitry Timoshkov.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-13 20:54:28 +01:00
Zebediah Figura 077b4391d4 oleaut32: Rip out the old typelib marshaller.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Marcus Meissner <marcus@jet.franken.de>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 13:15:27 +01:00
Michael Stefaniuc a1e0a029b0 oleaut32: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-29 22:01:39 +02:00
Alexandre Julliard 3c562da161 oleaut32: Explicitly define call_double_method() to avoid function mismatch warning.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-15 07:16:06 +02:00
Zebediah Figura bab41c8aea oleaut32: Correct some comments.
This corresponds to 652ec646ad affecting widl.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-21 11:16:18 +02:00
Michael Stefaniuc d0ecd514b4 oleaut32: Use the global HeapAlloc() wrappers.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-06 19:38:30 +01:00
Huw Davies dd012af92a oleaut32: Fix vtable offset for a SYS_WIN32 typelib loaded on WIN64.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-22 10:27:57 +01:00