From e8f4fff3eacc6c61a2bd99148ed3c57a5387d816 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sat, 13 May 2006 18:06:45 +0200 Subject: [PATCH] oleaut32: res50 is number of impinfos. Fix its usage. --- dlls/oleaut32/typelib.h | 2 +- dlls/oleaut32/typelib2.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/oleaut32/typelib.h b/dlls/oleaut32/typelib.h index c286fae069c..f82ca125e4e 100644 --- a/dlls/oleaut32/typelib.h +++ b/dlls/oleaut32/typelib.h @@ -79,7 +79,7 @@ typedef struct tagMSFT_Header { 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 */ +/*0x50*/INT nimpinfos; /* number of impinfos */ } MSFT_Header; /* segments in the type lib file have a structure like this: */ diff --git a/dlls/oleaut32/typelib2.c b/dlls/oleaut32/typelib2.c index 7b4c670a836..ecebdc39161 100644 --- a/dlls/oleaut32/typelib2.c +++ b/dlls/oleaut32/typelib2.c @@ -232,7 +232,7 @@ static void ctl2_init_header( This->typelib_header.res44 = 0x20; This->typelib_header.res48 = 0x80; This->typelib_header.dispatchpos = -1; - This->typelib_header.res50 = 0; + This->typelib_header.nimpinfos = 0; } /**************************************************************************** @@ -677,6 +677,8 @@ static int ctl2_alloc_importinfo( } } + impinfo->flags |= This->typelib_header.nimpinfos++; + offset = ctl2_alloc_segment(This, MSFT_SEG_IMPORTINFO, sizeof(MSFT_ImpInfo), 0); if (offset == -1) return -1; @@ -1252,7 +1254,6 @@ static HRESULT WINAPI ICreateTypeInfo2_fnSetTypeFlags(ICreateTypeInfo2 *iface, U ctl2_alloc_importinfo(This->typelib, &impinfo); This->typelib->typelib_header.dispatchpos = 1; - This->typelib->typelib_header.res50 = 1; This->typeinfo->typekind |= 0x10; This->typeinfo->typekind &= ~0x0f; -- 2.11.4.GIT