http://bugs.winehq.org/show_bug.cgi?id=27387
Summary: Lexware installers need some IXMLDOMParseError properties implemented (srcText, line, linepos) Product: Wine Version: 1.3.21 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: msxml3 AssignedTo: wine-bugs@winehq.org ReportedBy: focht@gmx.net
Hello,
Lexware installers currently need native msxml3 override due to incomplete XML ParseError implementation. Unlike other apps where the parse error is queried _after_ something bad happened, the installer also queries parse error on successful load of XML document which breaks the installer.
--- snip --- 0025:Call KERNEL32.CreateFileA(00840610 "C:\users\focht\Local Settings\Application Data\Lexware\LxSetupTemp\LxSetupConfig.xml",80000000,00000001,00000000,00000003,00000080,00000000) ret=0048fcb1 0025:Ret KERNEL32.CreateFileA() retval=0000000c ret=0048fcb1 ... 0025:trace:msxml:DOMClassFactory_CreateInstance (nil) {00000000-0000-0000-c000-000000000046} 0x32f76c 0025:trace:msxml:DOMDocument_create ({2933bf90-7b36-11d2-b20e-00c04f983e60}, (nil), 0x32f628) ... 0025:Ret ole32.CoCreateInstance() retval=00000000 ret=00478580 0025:Call ole32.OleRun(001578d4) ret=0047858f 0025:trace:msxml:domdoc_QueryInterface (0x1578b8)->({00000126-0000-0000-c000-000000000046} 0x32f6cc) 0025:trace:msxml:domdoc_QueryInterface interface {00000126-0000-0000-c000-000000000046} not implemented 0025:Ret ole32.OleRun() retval=00000000 ret=0047858f 0025:trace:msxml:domdoc_QueryInterface (0x1578b8)->({2933bf81-7b36-11d2-b20e-00c04f983e60} 0x32f79c) 0025:trace:msxml:domdoc_AddRef (0x1578b8)->(2) 0025:trace:msxml:domdoc_Release (0x1578b8)->(1) 0025:trace:msxml:domdoc_AddRef (0x1578b8)->(2) 0025:trace:msxml:domdoc_Release (0x1578b8)->(1) 0025:trace:msxml:domdoc_put_async (0x1578b8)->(0) 0025:trace:msxml:domdoc_put_validateOnParse (0x1578b8)->(0) 0025:trace:msxml:domdoc_put_resolveExternals (0x1578b8)->(0) 0025:trace:msxml:domdoc_AddRef (0x1578b8)->(2) 0025:trace:msxml:domdoc_Release (0x1578b8)->(1) 0025:Call ole32.CreateStreamOnHGlobal(00000000,00000001,0032f7c4) ret=00478803 ... 0025:Ret ole32.CreateStreamOnHGlobal() retval=00000000 ret=00478803 ... 0025:trace:msxml:domdoc_load (0x1578b8)->({VT_UNKNOWN: 0x157868}) 0025:trace:msxml:domdoc_QueryInterface (0x1578b8)->({00000109-0000-0000-c000-000000000046} 0x32f6f8) 0025:trace:msxml:domdoc_AddRef (0x1578b8)->(2) 0025:trace:msxml:domdoc_IPersistStreamInit_Load (0x1578b8)->(0x157868) 0025:Call ole32.CreateStreamOnHGlobal(00000000,00000001,00157904) ret=44744a9c ... 0025:Ret ole32.CreateStreamOnHGlobal() retval=00000000 ret=44744a9c ... 0025:Call ole32.GetHGlobalFromStream(0015a9e0,0032e66c) ret=44744bd6 0025:Ret ole32.GetHGlobalFromStream() retval=00000000 ret=44744bd6 ... 0025:trace:msxml:xmldoc_release (0x7df571b0)->(0) 0025:trace:msxml:xmldoc_release freeing docptr 0x7df571b0 ... 0025:trace:msxml:xmldoc_add_ref (0x7df575b8)->(1) 0025:trace:msxml:domdoc_load Using IStream to load Document 0025:Call oleaut32.VariantClear(0032f7a4) ret=004788d7 0025:Ret oleaut32.VariantClear() retval=00000000 ret=004788d7 0025:fixme:msxml:domdoc_get_parseError (0x1578d4)->(0x32f734): creating a dummy parseError 0025:Call ntdll.RtlAllocateHeap(00110000,00000000,00000024) ret=4475fed2 0025:Ret ntdll.RtlAllocateHeap() retval=0015da80 ret=4475fed2 0025:fixme:msxml:parseError_get_srcText (0x15da80)->(0x32f734) 0025:trace:msxml:parseError_QueryInterface (0x15da80)->({df0b3d60-548f-101b-8e65-08002b2bd119} 0x32f728) 0025:fixme:msxml:parseError_QueryInterface interface {df0b3d60-548f-101b-8e65-08002b2bd119} not implemented 0025:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0032f6e4) ret=004a35e2 0025:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b838b9b ip=7b838b9b tid=0025 0025:trace:seh:raise_exception info[0]=19930520 0025:trace:seh:raise_exception info[1]=0032f700 0025:trace:seh:raise_exception info[2]=004e46b4 0025:trace:seh:raise_exception eax=7b825f1d ebx=7b891ff4 ecx=19930520 edx=0032f5f4 esi=0032f6d0 edi=0032f650 0025:trace:seh:raise_exception ebp=0032f638 esp=0032f5d4 cs=0073 ds=007b es=007b fs=0033 gs=003b flags=00000203 ... --- snip ---
Current stubs:
http://source.winehq.org/git/wine.git/blob/HEAD:/dlls/msxml3/parseerror.c#l2...
With parse error implemented, the installer succeeds:
--- snip --- 0021:trace:msxml:domdoc_load Using IStream to load Document 0021:Call oleaut32.VariantClear(0032f7a4) ret=004788d7 0021:Ret oleaut32.VariantClear() retval=00000000 ret=004788d7 0021:fixme:msxml:domdoc_get_parseError (0x1578d4)->(0x32f734): creating a dummy parseError ... 0021:fixme:msxml:parseError_get_srcText (0x15da80)->(0x32f734) ... 0021:trace:msxml:parseError_get_reason (0x15da80)->(0x32f734) ... 0021:fixme:msxml:parseError_get_linepos (0x15da80)->(0x32f754) 0021:fixme:msxml:parseError_get_line (0x15da80)->(0x32f758) 0021:trace:msxml:parseError_get_errorCode (0x15da80)->(0x32f75c) 0021:trace:msxml:parseError_get_errorCode (0x15da80)->(0x32f760) ... 0021:trace:msxml:parseError_Release (0x15da80) ref now 0 ... 0021:trace:msxml:domdoc_get_xml (0x1578b8)->(0x32f864) 0021:trace:msxml:domdoc_get_xml 0, len=12087 0021:Call KERNEL32.MultiByteToWideChar(0000fde9,00000000,7d19d4d0 "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<!-- edited with XML Spy v4.1 U (http://www.xmlspy.com) by m (Lexware GmbH & Co, KG) -->\n<lxsetup currentmode="" currentpage="welcome" serialnumber="" product="office" workingdirectory="" tempdirectory="" setuptype="" licenseaccepted="f"...,ffffffff,00000000,00000000) ret=20051675 ... ---
The snippet shows the following stubs need implementation:
parseError_get_srcText parseError_get_line parseError_get_linepos
Might help other apps too ...
Regards