Commit e8f4fff3 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

oleaut32: res50 is number of impinfos. Fix its usage.

parent 735c4343
...@@ -79,7 +79,7 @@ typedef struct tagMSFT_Header { ...@@ -79,7 +79,7 @@ typedef struct tagMSFT_Header {
INT res44; /* unknown always: 0x20 (guid hash size?) */ INT res44; /* unknown always: 0x20 (guid hash size?) */
INT res48; /* unknown always: 0x80 (name hash size?) */ INT res48; /* unknown always: 0x80 (name hash size?) */
INT dispatchpos; /* HREFTYPE to IDispatch, or -1 if no IDispatch */ 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; } MSFT_Header;
/* segments in the type lib file have a structure like this: */ /* segments in the type lib file have a structure like this: */
......
...@@ -232,7 +232,7 @@ static void ctl2_init_header( ...@@ -232,7 +232,7 @@ static void ctl2_init_header(
This->typelib_header.res44 = 0x20; This->typelib_header.res44 = 0x20;
This->typelib_header.res48 = 0x80; This->typelib_header.res48 = 0x80;
This->typelib_header.dispatchpos = -1; This->typelib_header.dispatchpos = -1;
This->typelib_header.res50 = 0; This->typelib_header.nimpinfos = 0;
} }
/**************************************************************************** /****************************************************************************
...@@ -677,6 +677,8 @@ static int ctl2_alloc_importinfo( ...@@ -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); offset = ctl2_alloc_segment(This, MSFT_SEG_IMPORTINFO, sizeof(MSFT_ImpInfo), 0);
if (offset == -1) return -1; if (offset == -1) return -1;
...@@ -1252,7 +1254,6 @@ static HRESULT WINAPI ICreateTypeInfo2_fnSetTypeFlags(ICreateTypeInfo2 *iface, U ...@@ -1252,7 +1254,6 @@ static HRESULT WINAPI ICreateTypeInfo2_fnSetTypeFlags(ICreateTypeInfo2 *iface, U
ctl2_alloc_importinfo(This->typelib, &impinfo); ctl2_alloc_importinfo(This->typelib, &impinfo);
This->typelib->typelib_header.dispatchpos = 1; This->typelib->typelib_header.dispatchpos = 1;
This->typelib->typelib_header.res50 = 1;
This->typeinfo->typekind |= 0x10; This->typeinfo->typekind |= 0x10;
This->typeinfo->typekind &= ~0x0f; This->typeinfo->typekind &= ~0x0f;
......
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