[PATCH 1/3] oleaut32: Implement decoding of SLTG help strings.

Huw Davies huw at codeweavers.com
Thu Jun 11 04:09:53 CDT 2020


On Sat, Jun 06, 2020 at 01:27:37PM +0200, Vijay Kiran Kamuju wrote:
> @@ -4376,17 +4457,17 @@ static void SLTG_ProcessModule(char *pBlk, ITypeInfoImpl *pTI,
>  /* Because SLTG_OtherTypeInfo is such a painful struct, we make a more
>     manageable copy of it into this */
>  typedef struct {
> -  WORD small_no;
>    char *index_name;
>    char *other_name;
>    WORD res1a;
>    WORD name_offs;
> -  WORD more_bytes;
> +  WORD hlpstr_len;
>    char *extra;
>    WORD res20;
>    DWORD helpcontext;
>    WORD res26;
>    GUID uuid;
> +  WORD typekind;
>  } SLTG_InternalOtherTypeInfo;
>  
>  /****************************************************************************
> @@ -4405,8 +4486,8 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength)
>      LPVOID pBlk, pFirstBlk;
>      SLTG_LibBlk *pLibBlk;
>      SLTG_InternalOtherTypeInfo *pOtherTypeInfoBlks;
> -    char *pAfterOTIBlks = NULL;
>      char *pNameTable, *ptr;
> +    const BYTE *hlp_strings;
>      int i;
>      DWORD len, order;
>      ITypeInfoImpl **ppTypeInfoImpl;
> @@ -4472,53 +4553,55 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength)
>      len += 0x40;
>  
>      /* And now TypeInfoCount of SLTG_OtherTypeInfo */
> +    pTypeLibImpl->TypeInfoCount = *(WORD *)((char *)pLibBlk + len);
> +    len += sizeof(WORD);

Looks like this patch should be split, with the change to TypeInfoCount
being separated from the help string stuff.

Huw.



More information about the wine-devel mailing list