Update the import table code to eliminate a few magic constants.

This commit is contained in:
Huw Davies 2005-06-29 19:18:41 +00:00 committed by Alexandre Julliard
parent fe311461a7
commit a2051075fe
2 changed files with 6 additions and 4 deletions

View File

@ -153,17 +153,19 @@ typedef struct tagMSFT_TypeInfoBase {
/* loword is num of inherited interfaces */ /* loword is num of inherited interfaces */
INT res18; /* always? 0 */ INT res18; /* always? 0 */
/*060*/ INT res19; /* always? -1 */ /*060*/ INT res19; /* always? -1 */
} MSFT_TypeInfoBase; } MSFT_TypeInfoBase;
/* layout of an entry with information on imported types */ /* layout of an entry with information on imported types */
typedef struct tagMSFT_ImpInfo { typedef struct tagMSFT_ImpInfo {
INT res0; /* bits 0 - 15: count */ INT flags; /* bits 0 - 15: count */
/* bit 16: if set oGuid is an offset to Guid */ /* bit 16: if set oGuid is an offset to Guid */
/* if clear oGuid is a typeinfo index in the specified typelib */ /* if clear oGuid is a typeinfo index in the specified typelib */
/* bits 24 - 31: TKIND of reference */ /* bits 24 - 31: TKIND of reference */
INT oImpFile; /* offset in the Import File table */ INT oImpFile; /* offset in the Import File table */
INT oGuid; /* offset in Guid table or typeinfo index (see bit 16 of res0) */ INT oGuid; /* offset in Guid table or typeinfo index (see bit 16 of res0) */
} MSFT_ImpInfo; } MSFT_ImpInfo;
#define MSFT_IMPINFO_OFFSET_IS_GUID 0x00010000
/* function description data */ /* function description data */
typedef struct { typedef struct {

View File

@ -1751,7 +1751,7 @@ static void add_dispatch(msft_typelib_t *typelib)
guidentry.guid = iid_idispatch; guidentry.guid = iid_idispatch;
guidentry.hreftype = 1; guidentry.hreftype = 1;
guidentry.next_hash = -1; guidentry.next_hash = -1;
impinfo.res0 = 0x301 << 16; impinfo.flags = TKIND_INTERFACE << 24 | MSFT_IMPINFO_OFFSET_IS_GUID;
impinfo.oImpFile = impfile_offset; impinfo.oImpFile = impfile_offset;
impinfo.oGuid = ctl2_alloc_guid(typelib, &guidentry); impinfo.oGuid = ctl2_alloc_guid(typelib, &guidentry);
typelib->typelib_header.dispatchpos = alloc_importinfo(typelib, &impinfo) | 0x01; typelib->typelib_header.dispatchpos = alloc_importinfo(typelib, &impinfo) | 0x01;