Commit 61fc6f8c authored by Huw D M Davies's avatar Huw D M Davies Committed by Alexandre Julliard

Add more magic to find the start of the nametable.

parent d3cab185
......@@ -2920,11 +2920,25 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength)
/* Skip this WORD and get the next DWORD */
len = *(DWORD*)(pAfterOTIBlks + 2);
/* Now add this to pLibBLk and then add 0x216, sprinkle a bit a
magic dust and we should be pointing at the beginning of the name
/* Now add this to pLibBLk look at what we're pointing at and
possibly add 0x20, then add 0x216, sprinkle a bit a magic
dust and we should be pointing at the beginning of the name
table */
pNameTable = (char*)pLibBlk + len + 0x216;
pNameTable = (char*)pLibBlk + len;
switch(*(WORD*)pNameTable) {
case 0xffff:
break;
case 0x0200:
pNameTable += 0x20;
break;
default:
FIXME("pNameTable jump = %x\n", *(WORD*)pNameTable);
break;
}
pNameTable += 0x216;
pNameTable += 2;
......
......@@ -303,7 +303,7 @@ typedef struct {
#define SLTG_DIR_MAGIC "dir"
/* Next we have SLTG_Header.nrOfFileBlks - 2 of Index strings. These
are persumbably unique to within the file and look something like
are presumably unique to within the file and look something like
"AAAAAAAAAA" with the first character incremented from 'A' to ensure
uniqueness. I guess successive chars increment when we need to wrap
the first one. */
......
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