Add more magic to find the start of the nametable.
This commit is contained in:
parent
d3cab1857a
commit
61fc6f8cd3
|
@ -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. */
|
||||
|
|
Loading…
Reference in New Issue