This corresponds to 652ec646ad3 affecting widl.
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/oleaut32/typelib.c | 2 +- dlls/oleaut32/typelib.h | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index 4ee6aa540d..9b1c782e8d 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -2675,7 +2675,7 @@ static ITypeInfoImpl * MSFT_DoTypeInfo( ptiRet->typeattr.wMajorVerNum = LOWORD(tiBase.version); ptiRet->typeattr.wMinorVerNum = HIWORD(tiBase.version); ptiRet->typeattr.cImplTypes = tiBase.cImplTypes; - ptiRet->typeattr.cbSizeVft = tiBase.cbSizeVft; /* FIXME: this is only the non inherited part */ + ptiRet->typeattr.cbSizeVft = tiBase.cbSizeVft; if (ptiRet->typeattr.typekind == TKIND_ALIAS) { TYPEDESC tmp; MSFT_GetTdesc(pcx, tiBase.datatype1, &tmp); diff --git a/dlls/oleaut32/typelib.h b/dlls/oleaut32/typelib.h index c404b3d311..7699a9a1f3 100644 --- a/dlls/oleaut32/typelib.h +++ b/dlls/oleaut32/typelib.h @@ -142,11 +142,11 @@ typedef struct tagMSFT_TypeInfoBase { INT helpcontext; /* */ INT oCustData; /* offset in customer data table */ #ifdef WORDS_BIGENDIAN - INT16 cbSizeVft; /* virtual table size, not including inherits */ + INT16 cbSizeVft; /* virtual table size, including inherits */ INT16 cImplTypes; /* nr of implemented interfaces */ #else INT16 cImplTypes; /* nr of implemented interfaces */ - INT16 cbSizeVft; /* virtual table size, not including inherits */ + INT16 cbSizeVft; /* virtual table size, including inherits */ #endif /*050*/ INT size; /* size in bytes, at least for structures */ /* FIXME: name of this field */ @@ -155,10 +155,8 @@ typedef struct tagMSFT_TypeInfoBase { /* if coclass: offset in reftable */ /* if interface: reference to inherited if */ /* if module: offset to dllname in name table */ - INT datatype2; /* if 0x8000, entry above is valid */ - /* actually dunno */ - /* else it is zero? */ - /* if interface: inheritance level | no of inherited funcs */ + INT datatype2; /* for interfaces: hiword is num of inherited funcs */ + /* loword is num of inherited interfaces */ INT res18; /* always? 0 */ /*060*/ INT res19; /* always? -1 */ } MSFT_TypeInfoBase; @@ -281,9 +279,10 @@ typedef struct { to the typeinfo itself or to a member of the typeinfo */ INT next_hash; /* offset to next name in the hash bucket */ - INT namelen; /* only lower 8 bits are valid, - lower-middle 8 bits are unknown (flags?), - upper 16 bits are hash code */ + INT namelen; /* only lower 8 bits are valid */ + /* 0x1000 if name is only used once as a variable name */ + /* 0x2000 if name is a variable in an enumeration */ + /* 0x3800 if name is typeinfo name */ } MSFT_NameIntro; /* the custom data table directory has entries like this */ typedef struct {