https://bugs.winehq.org/show_bug.cgi?id=38189
Bug ID: 38189 Summary: Yarxi Product: Wine Version: 1.7.38 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: serjflint@gmail.com Distribution: ---
When I start Yarxi 7.5 from http://www.susi.ru/yarxi/ on wine 1.7.38 I have Error "OLE erorr 80004001" three times. After clicking on help I have the same error. And main menu buttons didn't appear until I clicked on it. It works good but menu behaivor is annoying. On Windows works perfectly. P.S. sorry for English.
https://bugs.winehq.org/show_bug.cgi?id=38189
Serj Flint serjflint@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |http://www.susi.ru/yarxi/
https://bugs.winehq.org/show_bug.cgi?id=38189
Serj Flint serjflint@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |serjflint@gmail.com Distribution|--- |Mint
https://bugs.winehq.org/show_bug.cgi?id=38189
Serj Flint serjflint@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |integration
https://bugs.winehq.org/show_bug.cgi?id=38189
--- Comment #1 from Serj Flint serjflint@gmail.com --- I think it caused by some fonts. When I clicked some element in help it became to text in Russian and error appears again.
https://bugs.winehq.org/show_bug.cgi?id=38189
--- Comment #2 from Serj Flint serjflint@gmail.com --- Created attachment 50966 --> https://bugs.winehq.org/attachment.cgi?id=50966 screenshot of error
While clicking element of navigation became right but cause the same error. Other elements have error with font
https://bugs.winehq.org/show_bug.cgi?id=38189
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|integration |
https://bugs.winehq.org/show_bug.cgi?id=38189
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Yarxi |Yarxi shows error | |0x80004001 on startup
https://bugs.winehq.org/show_bug.cgi?id=38189
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Yarxi shows error |Yarxi Japanese -> Russian |0x80004001 on startup |dictionary shows error | |0x80004001 on startup
https://bugs.winehq.org/show_bug.cgi?id=38189
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |mshtml
https://bugs.winehq.org/show_bug.cgi?id=38189
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1
--- Comment #3 from Nikolay Sivov bunglehead@gmail.com --- I can confirm that, I suspect this one to be related:
--- fixme:mshtml:HTMLDocument_put_charset (0x2879c30)->(L"windows-1251") ---
By the way, it looks like application uses some UI toolkit that depends on current locale, so make sure you have Russian locale active when you start it.
https://bugs.winehq.org/show_bug.cgi?id=38189
--- Comment #4 from Serj Flint serjflint@gmail.com --- I've changed locale to Russian but bug still appears.
https://bugs.winehq.org/show_bug.cgi?id=38189
--- Comment #5 from Nikolay Sivov bunglehead@gmail.com --- (In reply to Serj Flint from comment #4)
I've changed locale to Russian but bug still appears.
Which one? Popups with 0x80004001 error? Yes, that's not something fixable with a locale. You could try installing ie8 with winetricks, to see if it makes it better.
https://bugs.winehq.org/show_bug.cgi?id=38189
--- Comment #6 from Serj Flint serjflint@gmail.com --- All fine with ie8. But buttons in menu still invisible until click on it.
https://bugs.winehq.org/show_bug.cgi?id=38189
--- Comment #7 from Serj Flint serjflint@gmail.com --- And Russian locale
https://bugs.winehq.org/show_bug.cgi?id=38189
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Summary|Yarxi Japanese -> Russian |Multiple applications want |dictionary shows error |'IHTMLDocument2::put_charse |0x80004001 on startup |t' implementation (Yarxi | |dictionary, iPed 7G 2019) CC| |focht@gmx.net
--- Comment #8 from Anastasius Focht focht@gmx.net --- Hello folks,
found another app that calls this, although it doesn't seem critical.
iPed 7G 2019 (.NET 4.0 app) v13.0.10800
Download: ftp://pedfast.com/pub/iPed7g_Setup_x86_4980.msi
Prerequisite: 'winetricks -q dotnet40'
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files (x86)/PedFast Technologies/iPed(tm) 7G 2019/13.0.10800
$ wine ./iPed7G.exe ... 0035:fixme:mshtml:HTMLDocument_put_charset (0x53590d0)->(L"unicode") ... --- snip ---
Running with managed debugger to trap at CLR exceptions at first chance:
--- snip --- (34.35): CLR exception - code e0434352 (first chance) Exception object: 00e28e14 Exception type: System.NotImplementedException Message: The method or operation is not implemented. InnerException: <none> StackTrace (generated): <none> StackTraceString: <none> HResult: 80004001
OS Thread Id: 0x35 (0) Child SP IP Call Site 0033c20c 7b43c81b [HelperMethodFrame: 0033c20c] 0033c25c 0398961d DomainBoundILStubClass.IL_STUB_CLRtoCOM(System.String) 0033c278 03472e8e [InlinedCallFrame: 0033c278] System.Windows.Forms.UnsafeNativeMethods+IHTMLDocument2.SetCharset(System.String) 0033c2f0 03472e8e System.Windows.Forms.WebBrowser+WebBrowserEvent.DocumentComplete(System.Object, System.Object ByRef) 0033c874 791421db [DebuggerU2MCatchHandlerFrame: 0033c874] 0033c840 791421db [CustomGCFrame: 0033c840] 0033c814 791421db [GCFrame: 0033c814] 0033c7f8 791421db [GCFrame: 0033c7f8] 0033ca1c 791421db [HelperMethodFrame_PROTECTOBJ: 0033ca1c] System.RuntimeMethodHandle._InvokeMethodFast(System.IRuntimeMethodInfo, System.Object, System.Object[], System.SignatureStruct ByRef, System.Reflection.MethodAttributes, System.RuntimeType) 0033ca98 79b3d689 System.RuntimeMethodHandle.InvokeMethodFast(System.IRuntimeMethodInfo, System.Object, System.Object[], System.Signature, System.Reflection.MethodAttributes, System.RuntimeType) 0033caec 79b3d37c System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo, Boolean) 0033cb28 79b3bfed System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo) 0033d95c 791421db [DebuggerU2MCatchHandlerFrame: 0033d95c] 0033d910 791421db [GCFrame: 0033d910] 0033d8f4 791421db [GCFrame: 0033d8f4] 0033ea90 791421db [InlinedCallFrame: 0033ea90] 0033ea8c 034b2eec DomainBoundILStubClass.IL_STUB_PInvoke(MSG ByRef) 0033ea90 034a71ff [InlinedCallFrame: 0033ea90] System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef) 0033ead4 034a71ff System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr, Int32, Int32) 0033ead8 034a6e2c [InlinedCallFrame: 0033ead8] 0033eb70 034a6e2c System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext) 0033ebc8 034a6c81 System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext) 0033ebf8 0399fefb System.Windows.Forms.Application.RunDialog(System.Windows.Forms.Form) 0033ec0c 039c9f83 System.Windows.Forms.Form.ShowDialog(System.Windows.Forms.IWin32Window) 0033ec10 039ca1b7 [InlinedCallFrame: 0033ec10] 0033eca8 039ca1b7 System.Windows.Forms.Form.ShowDialog() 0033ecac 039a0f2a System.Windows.Forms.Application+ThreadContext.OnThreadException(System.Exception) 0033ece8 039a9866 System.Windows.Forms.Control.WndProcException(System.Exception) 0033ecf4 039aff9c System.Windows.Forms.Control+ControlNativeWindow.OnThreadException(System.Exception) 0033ecf8 03496fd1 System.Windows.Forms.NativeWindow.Callback(IntPtr, Int32, IntPtr, IntPtr) 0033f0a0 00a10528 [InlinedCallFrame: 0033f0a0] 0033f09c 034b2388 DomainBoundILStubClass.IL_STUB_PInvoke(System.Runtime.InteropServices.HandleRef, Int32) 0033f0a0 03494a17 [InlinedCallFrame: 0033f0a0] System.Windows.Forms.SafeNativeMethods.ShowWindow(System.Runtime.InteropServices.HandleRef, Int32) 0033f0e8 03494a17 System.Windows.Forms.Control.SetVisibleCore(Boolean) 0033f180 0349f8fb System.Windows.Forms.Form.SetVisibleCore(Boolean) 0033f1b4 03492c60 System.Windows.Forms.Control.set_Visible(Boolean) 0033f1bc 034a6d9d System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext) 0033f214 034a6c81 System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext) 0033f244 003f3745 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() 0033f270 003f0d97 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() 0033f29c 003f07e8 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(System.String[]) 0033f2e8 003f00e5 iPed7G.My.MyApplication.Main(System.String[]) 0033f548 791421db [GCFrame: 0033f548]
First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=7b4298b1 ebx=00000010 ecx=0033c0a4 edx=0033c160 esi=00000000 edi=0014a4e0 eip=7b43c81b esp=0033c084 ebp=0033c0f8 iopl=0 nv up ei pl nz ac pe nc cs=0023 ss=002b ds=002b es=002b fs=0063 gs=006b efl=00200216 KERNEL32!RaiseException+0x9b: 7b43c81b 83c40c add esp,0Ch --- snip ---
Wine source:
https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/mshtml/htmldoc.c#l911
--- snip --- 910 static HRESULT WINAPI HTMLDocument_put_charset(IHTMLDocument2 *iface, BSTR v) 911 { 912 HTMLDocument *This = impl_from_IHTMLDocument2(iface); 913 FIXME("(%p)->(%s)\n", This, debugstr_w(v)); 914 return E_NOTIMPL; 915 } 916 917 static HRESULT WINAPI HTMLDocument_get_charset(IHTMLDocument2 *iface, BSTR *p) 918 { 919 HTMLDocument *This = impl_from_IHTMLDocument2(iface); 920 921 TRACE("(%p)->(%p)\n", This, p); 922 923 return IHTMLDocument7_get_characterSet(&This->IHTMLDocument7_iface, p); 924 } 925 926 static HRESULT WINAPI HTMLDocument_put_defaultCharset(IHTMLDocument2 *iface, BSTR v) 927 { 928 HTMLDocument *This = impl_from_IHTMLDocument2(iface); 929 FIXME("(%p)->(%s)\n", This, debugstr_w(v)); 930 return E_NOTIMPL; 931 } 932 933 static HRESULT WINAPI HTMLDocument_get_defaultCharset(IHTMLDocument2 *iface, BSTR *p) 934 { 935 HTMLDocument *This = impl_from_IHTMLDocument2(iface); 936 937 TRACE("(%p)->(%p)\n", This, p); 938 939 *p = charset_string_from_cp(GetACP()); 940 return *p ? S_OK : E_OUTOFMEMORY; 941 } --- snip ---
$ sha1sum iPed7g_Setup_x86_4980.msi fb8312d835822043eceb3dc282e0e4a6ac95a4d3 iPed7g_Setup_x86_4980.msi
$ du -sh iPed7g_Setup_x86_4980.msi 39M iPed7g_Setup_x86_4980.msi
$ wine --version wine-3.18
Regards
https://bugs.winehq.org/show_bug.cgi?id=38189
Jacek Caban jacek@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jacek@codeweavers.com
--- Comment #9 from Jacek Caban jacek@codeweavers.com --- Created attachment 62567 --> https://bugs.winehq.org/attachment.cgi?id=62567 hack
It's not clear to me how this is supposed to work on already loaded document. Does the attached hack help?
https://bugs.winehq.org/show_bug.cgi?id=38189
--- Comment #10 from Anastasius Focht focht@gmx.net --- Hello Jacek,
--- quote --- It's not clear to me how this is supposed to work on already loaded document. Does the attached hack help? --- quote ---
sure it helps. No dialog box for the first app, no first chance exception (harmless) for the other app.
If properly implemented, the charset property is taken into account upon next reload/refresh. I found a discussion related to the topic: "web browser control: cannot change encoding/charset":
https://stackoverflow.com/questions/9039932/c-web-browser-control-cannot-cha...
--- quote --- Here's what eventually worked:
In the handler of the "NavigateComplete2" browser event,
the charset is modified using the charset property, then the META tag is thrown away by setting its outerHTML to empty string, and then the control is refreshed.
Modifying the order of these actions, or omitting a step, will render the entire operation void. MSHTML is picky. --- quote ---
Reference Source:
https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed...
--- snip --- public void DocumentComplete(object pDisp, ref object urlObject) {
Debug.Assert(urlObject == null || urlObject is string, "invalid url"); haveNavigated = true;
if (this.parent.documentStreamToSetOnLoad != null && (string)urlObject == "about:blank") { HtmlDocument htmlDocument = this.parent.Document; if (htmlDocument != null) { UnsafeNativeMethods.IPersistStreamInit psi = htmlDocument.DomDocument as UnsafeNativeMethods.IPersistStreamInit; Debug.Assert(psi != null, "The Document does not implement IPersistStreamInit"); UnsafeNativeMethods.IStream iStream = (UnsafeNativeMethods.IStream)new UnsafeNativeMethods.ComStreamFromDataStream( this.parent.documentStreamToSetOnLoad); psi.Load(iStream); htmlDocument.Encoding = "unicode"; } this.parent.documentStreamToSetOnLoad = null; } else { string urlString = urlObject == null ? "" : urlObject.ToString(); WebBrowserDocumentCompletedEventArgs e = new WebBrowserDocumentCompletedEventArgs( new Uri(urlString)); this.parent.OnDocumentCompleted(e); } } --- snip ---
https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed...
--- snip ---
/// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public string Encoding { get { return this.NativeHtmlDocument2.GetCharset(); } set { this.NativeHtmlDocument2.SetCharset(value); } } --- snip ---
Regards
https://bugs.winehq.org/show_bug.cgi?id=38189
--- Comment #11 from Jacek Caban jacek@codeweavers.com --- Thanks for the research. In quoted DocumentComplete Load() is called before setting charset, but the actual loading is asynchronous, so it makes sense. I guess we could use nsIContentViewer::GetHintCharacterSet or nsIDocShell::SetForceCharset to support that, but I'd prefer to avoid messing with those without a real test case (one that really needs true implementation).
A succeeding stub seems good enough for now. I will send a patch.
https://bugs.winehq.org/show_bug.cgi?id=38189
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Fixed by SHA1| |481360f472b91e1a91c0f1d5118 | |3ca3be88ff2ab Status|NEW |RESOLVED
--- Comment #12 from Anastasius Focht focht@gmx.net --- Hello folks,
this is fixed by commit https://source.winehq.org/git/wine.git/commitdiff/481360f472b91e1a91c0f1d511...
Thanks Jacek
I couldn't reproduce the problem with the original app, version 8.0. Although it makes use of msthml component there was no call to 'IHTMLDocument2::put_charset' method (I clicked a lot of menus). Maybe they changed something in between 7.5 and 8.0 or due to Wine improvements in 3 years other code paths are taken.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files (x86)/Yarxi
$ WINEDEBUG=+seh,+relay,+mshtml wine ./yarxi.exe >>log.txt 2>&1 ... --- snip ---
For the second app, 'iPed 7G 2019' I've already validated before.
$ sha1sum yarxi-setup.exe aebb3e1b90d8671ec6a9fbd85b5bbc217d65ed5f yarxi-setup.exe
$ du -sh yarxi-setup.exe 15M yarxi-setup.exe
$ wine --version wine-3.18-105-g63cd3de5e8
Regards
https://bugs.winehq.org/show_bug.cgi?id=38189
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #13 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.19.