May 9, 2026
6:59 p.m.
ITypeInfoImpl_GetInternalDispatchFuncDesc walked impltypes whenever any impl type was registered, surfacing inherited IDispatch slots ahead of own funcs in the index space. That matches MIDL-built TKIND_DISPATCH typelibs (where cbSizeVft includes inherited slots and cFuncs is inflated to match) but mismatches ICreateTypeLib2-built ones where cbSizeVft only spans own funcs and GetFuncDesc should expose only those. Skip the walk when the stored cbSizeVft has no room beyond own_count * ptr_size, so GetFuncDesc on ICreateTypeLib2 typelibs hits own funcs at indices 0..cFuncs-1 and returns TYPE_E_ELEMENTNOTFOUND past the end, matching native. This is needs !10856 merged first -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10857