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