Erich Hoover wrote:
dlls/oleaut32/typelib.c does not currently support VT_BYREF | VT_I4 in _copy_arg, this causes InstallShield to crash when attempting to install the demo for "Prince of Persia: Warrior Within" (and probably other InstallShield programs as well). Installation can complete with this fix under Win9x w/ Desktop (2K and XP options still fail due to "unimplemented function imagehlp.dll.StackWalk64" and non-Desktop fails for unknown reason).
It sounds like it is crashing further down the line. Using +seh debug flags will confirm or deny this.
*** typelib.c 2004-12-09 21:09:07.000000000 -0700 --- typelib.c.new 2004-12-09 21:18:10.202385336 -0700
*** 4543,4550 **** memcpy(argpos, &V_UNION(arg,lVal), 4); hres = S_OK; break; default: ! FIXME("vt 0x%x -> TKIND_ENUM unhandled.\n",V_VT(arg)); hres = E_FAIL; break;
}
--- 4543,4554 ---- memcpy(argpos, &V_UNION(arg,lVal), 4); hres = S_OK; break;
case VT_BYREF | VT_I4:
*argpos = V_UNION(arg,iVal);
hres = S_OK;
break; default:
! FIXME("vt 0x%x 0x%x -> TKIND_ENUM unhandled.\n", V_VT(arg), VT_BYREF | VT_I4); hres = E_FAIL; break; }
Please generate patches using diff -u -p and send them to wine-patches.
Rob