Patch to support VT_BYREF | VT_I4 in typelib.c _copy_arg
Robert Shearman
rob at codeweavers.com
Fri Dec 10 10:05:33 CST 2004
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
More information about the wine-devel
mailing list