build_class_typeinfo now adds IDispatch as the implicit base via AddRefTypeInfo + AddImplType so the resulting typeinfo reports cImplTypes == 1 and returns the IDispatch typeinfo via GetRefTypeOfImplType -> GetRefTypeInfo, matching native. Compile-time slot 0 is reserved for the default getter/method, so build_class_typeinfo previously emitted the default at FUNCDESC index 0 ahead of declaration-order members. Native lays out non-default funcs first and places the default last. Iterate desc->funcs[1..N] before desc->funcs[0] so 'Public Sub method' lands at index 0 with INVOKE_FUNC and 'Public Default Property Get defprop' lands last. Drop the corresponding todo_wine markers from test_vbdisp_typeinfo; together with the matching oleaut32 changes (cbSizeVft accounting and the GetFuncDesc bound for TKIND_DISPATCH built via ICreateTypeLib2) the four todos and the GetFuncDesc(cFuncs) probe pass on Wine. This requires !10851, !10856, !10857 to be merged first -- v2: vbscript: Register IDispatch as the class typeinfo's parent and lay non-default funcs first. https://gitlab.winehq.org/wine/wine/-/merge_requests/10858