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

'unk00'.
This commit is contained in:
Alastair Bridgewater 2004-03-13 19:24:58 +00:00 committed by Alexandre Julliard
parent 464e59f6a4
commit ab548adf86
2 changed files with 35 additions and 29 deletions

View File

@ -76,9 +76,9 @@ typedef struct tagMSFT_Header {
INT helpfile; /* position of helpfile in stringtable */ INT helpfile; /* position of helpfile in stringtable */
/*0x40*/INT CustomDataOffset; /* if -1 no custom data, else it is offset */ /*0x40*/INT CustomDataOffset; /* if -1 no custom data, else it is offset */
/* in customer data/guid offset table */ /* in customer data/guid offset table */
INT res44; /* unknown always: 0x20 */ INT res44; /* unknown always: 0x20 (guid hash size?) */
INT res48; /* unknown always: 0x80 */ INT res48; /* unknown always: 0x80 (name hash size?) */
INT dispatchpos; /* gets a value (1+n*0x0c) with Idispatch interfaces */ INT dispatchpos; /* HREFTYPE to IDispatch, or -1 if no IDispatch */
/*0x50*/INT res50; /* is zero becomes one when an interface is derived */ /*0x50*/INT res50; /* is zero becomes one when an interface is derived */
} MSFT_Header; } MSFT_Header;
@ -172,11 +172,11 @@ typedef struct {
INT DataType; /* data type of the memeber, eg return of function */ INT DataType; /* data type of the memeber, eg return of function */
INT Flags; /* something to do with attribute flags (LOWORD) */ INT Flags; /* something to do with attribute flags (LOWORD) */
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
INT16 res3; /* some offset into dunno what */ INT16 funcdescsize; /* size of reconstituted FUNCDESC and related structs */
INT16 VtableOffset; /* offset in vtable */ INT16 VtableOffset; /* offset in vtable */
#else #else
INT16 VtableOffset; /* offset in vtable */ INT16 VtableOffset; /* offset in vtable */
INT16 res3; /* some offset into dunno what */ INT16 funcdescsize; /* size of reconstituted FUNCDESC and related structs */
#endif #endif
INT FKCCIC; /* bit string with the following */ INT FKCCIC; /* bit string with the following */
/* meaning (bit 0 is the msb): */ /* meaning (bit 0 is the msb): */
@ -226,11 +226,11 @@ typedef struct {
INT DataType; /* data type of the variable */ INT DataType; /* data type of the variable */
INT Flags; /* VarFlags (LOWORD) */ INT Flags; /* VarFlags (LOWORD) */
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
INT16 res3; /* some offset into dunno what */ INT16 vardescsize; /* size of reconstituted VARDESC and related structs */
INT16 VarKind; /* VarKind */ INT16 VarKind; /* VarKind */
#else #else
INT16 VarKind; /* VarKind */ INT16 VarKind; /* VarKind */
INT16 res3; /* some offset into dunno what */ INT16 vardescsize; /* size of reconstituted VARDESC and related structs */
#endif #endif
INT OffsValue; /* value of the variable or the offset */ INT OffsValue; /* value of the variable or the offset */
/* in the data structure */ /* in the data structure */
@ -258,17 +258,23 @@ typedef struct {
/* this is how a guid is stored */ /* this is how a guid is stored */
typedef struct { typedef struct {
GUID guid; GUID guid;
INT unk10; /* differntiate with libid, classid etc? */ INT hreftype; /* -2 for the typelib guid, typeinfo offset
/* it's -2 for a libary */ for typeinfo guid, low two bits are 01 if
/* it's 0 for an interface */ this is an imported typeinfo, low two bits
INT unk14; /* always? -1 */ 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; } MSFT_GuidEntry;
/* some data preceding entries in the name table */ /* some data preceding entries in the name table */
typedef struct { typedef struct {
INT unk00; /* sometimes -1 (lib, parameter) , INT hreftype; /* is -1 if name is for neither a typeinfo,
sometimes 0 (interface, func) */ a variable, or a function (that is, name
INT unk10; /* sometimes -1 (lib) , sometimes 0 (interface, func), is for a typelib or a function parameter).
sometimes 0x10 (par) */ 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, INT namelen; /* only lower 8 bits are valid,
lower-middle 8 bits are unknown (flags?), lower-middle 8 bits are unknown (flags?),
upper 16 bits are hash code */ upper 16 bits are hash code */

View File

@ -521,7 +521,7 @@ static int ctl2_alloc_guid(
} }
hash_key = (hash & 0xf) | ((hash & 0x10) & (0 - !!(hash & 0xe0))); 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; This->typelib_guidhash_segment[hash_key] = offset;
TRACE("Updating GUID hash table (%s,0x%x).\n", debugstr_guid(&guid->guid), hash); 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; if (offset == -1) return -1;
name_space = (void *)(This->typelib_segment_data[MSFT_SEG_NAME] + offset); name_space = (void *)(This->typelib_segment_data[MSFT_SEG_NAME] + offset);
name_space->unk00 = -1; name_space->hreftype = -1;
name_space->unk10 = -1; name_space->next_hash = -1;
memcpy(&name_space->namelen, encoded_name, length); memcpy(&name_space->namelen, encoded_name, length);
if (This->typelib_namehash_segment[encoded_name[2] & 0x7f] != -1) 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; This->typelib_namehash_segment[encoded_name[2] & 0x7f] = offset;
@ -751,8 +751,8 @@ static HRESULT ctl2_set_custdata(
guidentry.guid = *guid; guidentry.guid = *guid;
guidentry.unk10 = -1; guidentry.hreftype = -1;
guidentry.unk14 = -1; guidentry.next_hash = -1;
guidoffset = ctl2_alloc_guid(This, &guidentry); guidoffset = ctl2_alloc_guid(This, &guidentry);
if (guidoffset == -1) return E_OUTOFMEMORY; 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)); TRACE("(%p,%s)\n", iface, debugstr_guid(guid));
guidentry.guid = *guid; guidentry.guid = *guid;
guidentry.unk10 = 0; guidentry.hreftype = 0;
guidentry.unk14 = 0x18; guidentry.next_hash = 0x18;
offset = ctl2_alloc_guid(This->typelib, &guidentry); 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 }; WCHAR stdole2tlb[] = { 's','t','d','o','l','e','2','.','t','l','b',0 };
foo.guid = IID_StdOle; foo.guid = IID_StdOle;
foo.unk10 = 2; foo.hreftype = 2;
foo.unk14 = -1; foo.next_hash = -1;
guidoffset = ctl2_alloc_guid(This->typelib, &foo); guidoffset = ctl2_alloc_guid(This->typelib, &foo);
if (guidoffset == -1) return E_OUTOFMEMORY; if (guidoffset == -1) return E_OUTOFMEMORY;
@ -1156,8 +1156,8 @@ static HRESULT WINAPI ICreateTypeInfo2_fnSetTypeFlags(ICreateTypeInfo2 *iface, U
if (fileoffset == -1) return E_OUTOFMEMORY; if (fileoffset == -1) return E_OUTOFMEMORY;
foo.guid = IID_IDispatch; foo.guid = IID_IDispatch;
foo.unk10 = 1; foo.hreftype = 1;
foo.unk14 = -1; foo.next_hash = -1;
guidoffset = ctl2_alloc_guid(This->typelib, &foo); guidoffset = ctl2_alloc_guid(This->typelib, &foo);
if (guidoffset == -1) return E_OUTOFMEMORY; 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)); TRACE("(%p,%s)\n", iface, debugstr_guid(guid));
guidentry.guid = *guid; guidentry.guid = *guid;
guidentry.unk10 = -2; guidentry.hreftype = -2;
guidentry.unk14 = -1; guidentry.next_hash = -1;
offset = ctl2_alloc_guid(This, &guidentry); offset = ctl2_alloc_guid(This, &guidentry);