Based on the patch by Sebastian Lackner sebastian@fds-team.de.
Tested using builtin oleview and ole1 typelib from older DDKs oleview now shows the helpstrings for interfaces and coclasses
From: Dmitry Timoshkov dmitry@baikal.ru Signed-off-by: Vijay Kiran Kamuju infyquest@gmail.com
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.
On Thu, Jun 11, 2020 at 11:10 AM Huw Davies huw@codeweavers.com wrote:
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.
Split that part and sent a new series of patches. Please review.
Huw.
Vijay