[Bug 40446] WinSCP is missing text in the "About" window

WineHQ Bugzilla wine-bugs at winehq.org
Sat May 2 02:46:05 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=40446

Damjan Jovanovic <damjan.jov at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |damjan.jov at gmail.com

--- Comment #9 from Damjan Jovanovic <damjan.jov at gmail.com> ---
We can't directly use the WinSCP source code
(https://github.com/winscp/winscp/blob/master/source/forms/About.cpp) to figure
out what its “About” box does to our web browser component, as it:
#include <WebBrowserEx.hpp>
which I can't find anywhere; presumably it's some kind of compiler vendor
extension, as it uses Embarcadero C++ Builder XE6 Professional to build.

However comparing the contents of that file against our WINEDEBUG='+resource'
run, we can roughly figure out where it's failing. Output, with irrelevant
lines removed:

---snip---
0151:trace:resource:LoadStringW L"Filemanager Toolset library Version 2.6"
loaded !
0151:trace:resource:LoadStringW L"https://jcl.delphi-jedi.org/" loaded !
0151:trace:resource:LoadStringW L"JEDI Code Library (JCL) %s" loaded !
0151:trace:resource:LoadStringW L"https://bitbucket.org/uweraabe/pngcomponents"
loaded !
0151:trace:resource:LoadStringW L"Copyright \00a9 Uwe Raabe and Martijn Saly"
loaded !
0151:trace:resource:LoadStringW L"PngComponents 1.4.1" loaded !
---snip---

which is exactly what happens in method TAboutDialog::DoLoadThirdParty():

---snip---
  AddPara(ThirdParty,
    LoadStr(ABOUT_FILEMANAGER) + Br +
    LoadStr(ABOUT_FILEMANAGER_COPYRIGHT));

#endif

  UnicodeString JclVersion =
    FormatVersion(JclVersionMajor, JclVersionMinor, JclVersionRelease);
  AddPara(ThirdParty,
    FMTLOAD(ABOUT_JCL, (JclVersion)) + Br +
    CreateLink(LoadStr(ABOUT_JCL_URL)));

  AddPara(ThirdParty,
    LoadStr(ABOUT_PNG) + Br +
    LoadStr(ABOUT_PNG_COPYRIGHT) + Br +
    CreateLink(LoadStr(ABOUT_PNG_URL)));
---snip---

which means the failure probably happens somewhere here:
---snip---
300   ThirdParty = GenerateAppHtmlPage(DefaultFont.get(), ThirdPartyPanel,
ThirdParty, false);
301 
302   LoadBrowserDocument(FThirdPartyWebBrowser, ThirdParty);
303 }
---snip---

Those functions appear to come from that WebBrowserEx.hpp header file mentioned
earlier, which can't be found anywhere.

What else can we discover from Wine's debug log?

---snip---
0151:fixme:mshtml:HTMLDocument_put_designMode Unsupported arg L"Off"
0151:fixme:ieframe:ClientSite_GetContainer (0332F460)->(0031EBD4)
0151:err:mshtml:create_document_node SetDesignMode failed: 80070057
---snip---

Hacking HTMLDocument_put_designMode() to return S_OK instead of the current
E_NOTIMPL changes nothing. The last line with create_document_node(), is
irrelevant as that result, 80070057 (a Gecko failure), is ignored.

That leaves ieframe:ClientSite_GetContainer() which returns E_NOTIMPL. Hacking
it to return E_NOINTERFACE and set *ppContainer=NULL doesn't change anything.
Returning S_OK and setting *ppContainer=NULL causes WinSCP to crash. Maybe it
requires that function to succeed and return a valid IOleContainter.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list