Commit ab548adf authored by Alastair Bridgewater's avatar Alastair Bridgewater Committed by Alexandre Julliard

Rename some of the fields in typelib.h to makes more evocative than

'unk00'.
parent 464e59f6
......@@ -76,9 +76,9 @@ typedef struct tagMSFT_Header {
INT helpfile; /* position of helpfile in stringtable */
/*0x40*/INT CustomDataOffset; /* if -1 no custom data, else it is offset */
/* in customer data/guid offset table */
INT res44; /* unknown always: 0x20 */
INT res48; /* unknown always: 0x80 */
INT dispatchpos; /* gets a value (1+n*0x0c) with Idispatch interfaces */
INT res44; /* unknown always: 0x20 (guid hash size?) */
INT res48; /* unknown always: 0x80 (name hash size?) */
INT dispatchpos; /* HREFTYPE to IDispatch, or -1 if no IDispatch */
/*0x50*/INT res50; /* is zero becomes one when an interface is derived */
} MSFT_Header;
......@@ -172,11 +172,11 @@ typedef struct {
INT DataType; /* data type of the memeber, eg return of function */
INT Flags; /* something to do with attribute flags (LOWORD) */
#ifdef WORDS_BIGENDIAN
INT16 res3; /* some offset into dunno what */
INT16 funcdescsize; /* size of reconstituted FUNCDESC and related structs */
INT16 VtableOffset; /* offset in vtable */
#else
INT16 VtableOffset; /* offset in vtable */
INT16 res3; /* some offset into dunno what */
INT16 funcdescsize; /* size of reconstituted FUNCDESC and related structs */
#endif
INT FKCCIC; /* bit string with the following */
/* meaning (bit 0 is the msb): */
......@@ -226,11 +226,11 @@ typedef struct {
INT DataType; /* data type of the variable */
INT Flags; /* VarFlags (LOWORD) */
#ifdef WORDS_BIGENDIAN
INT16 res3; /* some offset into dunno what */
INT16 vardescsize; /* size of reconstituted VARDESC and related structs */
INT16 VarKind; /* VarKind */
#else
INT16 VarKind; /* VarKind */
INT16 res3; /* some offset into dunno what */
INT16 vardescsize; /* size of reconstituted VARDESC and related structs */
#endif
INT OffsValue; /* value of the variable or the offset */
/* in the data structure */
......@@ -258,17 +258,23 @@ typedef struct {
/* this is how a guid is stored */
typedef struct {
GUID guid;
INT unk10; /* differntiate with libid, classid etc? */
/* it's -2 for a libary */
/* it's 0 for an interface */
INT unk14; /* always? -1 */
INT hreftype; /* -2 for the typelib guid, typeinfo offset
for typeinfo guid, low two bits are 01 if
this is an imported typeinfo, low two bits
are 10 if this is an imported typelib (used
by imported typeinfos) */
INT next_hash; /* offset to next guid in the hash bucket */
} MSFT_GuidEntry;
/* some data preceding entries in the name table */
typedef struct {
INT unk00; /* sometimes -1 (lib, parameter) ,
sometimes 0 (interface, func) */
INT unk10; /* sometimes -1 (lib) , sometimes 0 (interface, func),
sometimes 0x10 (par) */
INT hreftype; /* is -1 if name is for neither a typeinfo,
a variable, or a function (that is, name
is for a typelib or a function parameter).
otherwise is the offset of the first
typeinfo that this name refers to (either
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 */
......
......@@ -521,7 +521,7 @@ static int ctl2_alloc_guid(
}
hash_key = (hash & 0xf) | ((hash & 0x10) & (0 - !!(hash & 0xe0)));
guid_space->unk14 = This->typelib_guidhash_segment[hash_key];
guid_space->next_hash = This->typelib_guidhash_segment[hash_key];
This->typelib_guidhash_segment[hash_key] = offset;
TRACE("Updating GUID hash table (%s,0x%x).\n", debugstr_guid(&guid->guid), hash);
......@@ -558,12 +558,12 @@ static int ctl2_alloc_name(
if (offset == -1) return -1;
name_space = (void *)(This->typelib_segment_data[MSFT_SEG_NAME] + offset);
name_space->unk00 = -1;
name_space->unk10 = -1;
name_space->hreftype = -1;
name_space->next_hash = -1;
memcpy(&name_space->namelen, encoded_name, length);
if (This->typelib_namehash_segment[encoded_name[2] & 0x7f] != -1)
name_space->unk10 = This->typelib_namehash_segment[encoded_name[2] & 0x7f];
name_space->next_hash = This->typelib_namehash_segment[encoded_name[2] & 0x7f];
This->typelib_namehash_segment[encoded_name[2] & 0x7f] = offset;
......@@ -751,8 +751,8 @@ static HRESULT ctl2_set_custdata(
guidentry.guid = *guid;
guidentry.unk10 = -1;
guidentry.unk14 = -1;
guidentry.hreftype = -1;
guidentry.next_hash = -1;
guidoffset = ctl2_alloc_guid(This, &guidentry);
if (guidoffset == -1) return E_OUTOFMEMORY;
......@@ -1114,8 +1114,8 @@ static HRESULT WINAPI ICreateTypeInfo2_fnSetGuid(ICreateTypeInfo2 *iface, REFGUI
TRACE("(%p,%s)\n", iface, debugstr_guid(guid));
guidentry.guid = *guid;
guidentry.unk10 = 0;
guidentry.unk14 = 0x18;
guidentry.hreftype = 0;
guidentry.next_hash = 0x18;
offset = ctl2_alloc_guid(This->typelib, &guidentry);
......@@ -1147,8 +1147,8 @@ static HRESULT WINAPI ICreateTypeInfo2_fnSetTypeFlags(ICreateTypeInfo2 *iface, U
WCHAR stdole2tlb[] = { 's','t','d','o','l','e','2','.','t','l','b',0 };
foo.guid = IID_StdOle;
foo.unk10 = 2;
foo.unk14 = -1;
foo.hreftype = 2;
foo.next_hash = -1;
guidoffset = ctl2_alloc_guid(This->typelib, &foo);
if (guidoffset == -1) return E_OUTOFMEMORY;
......@@ -1156,8 +1156,8 @@ static HRESULT WINAPI ICreateTypeInfo2_fnSetTypeFlags(ICreateTypeInfo2 *iface, U
if (fileoffset == -1) return E_OUTOFMEMORY;
foo.guid = IID_IDispatch;
foo.unk10 = 1;
foo.unk14 = -1;
foo.hreftype = 1;
foo.next_hash = -1;
guidoffset = ctl2_alloc_guid(This->typelib, &foo);
if (guidoffset == -1) return E_OUTOFMEMORY;
......@@ -3028,8 +3028,8 @@ static HRESULT WINAPI ICreateTypeLib2_fnSetGuid(ICreateTypeLib2 * iface, REFGUID
TRACE("(%p,%s)\n", iface, debugstr_guid(guid));
guidentry.guid = *guid;
guidentry.unk10 = -2;
guidentry.unk14 = -1;
guidentry.hreftype = -2;
guidentry.next_hash = -1;
offset = ctl2_alloc_guid(This, &guidentry);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment