https://bugs.winehq.org/show_bug.cgi?id=40446
--- Comment #10 from Damjan Jovanovic damjan.jov@gmail.com --- Adding a stubbed ieframe:ClientSite_GetContainer() didn't help, even though all the methods called (LockContainer, Release) return S_OK.
However I did see I was wrong. GenerateAppHtmlPage() and LoadBrowserDocument() are not functions in some third-party library, they are within-application functions in source/windows/GUITools.cpp.
GenerateAppHtmlPage() converts the HTML fragment into a full HTML page, by adding surrounding <html> and <body> tags etc.
LoadBrowserDocument() is more interesting: ---snip--- void LoadBrowserDocument(TWebBrowserEx * WebBrowser, const UnicodeString & Document) { std::unique_ptr<TMemoryStream> DocumentStream(new TMemoryStream()); UTF8String DocumentUTF8 = UTF8String(Document); DocumentStream->Write(DocumentUTF8.c_str(), DocumentUTF8.Length()); DocumentStream->Seek(0, 0);
// For stream-loaded document, when set only after loading from OnDocumentComplete, // browser stops working SetBrowserDesignModeOff(WebBrowser);
TStreamAdapter * DocumentStreamAdapter = new TStreamAdapter(DocumentStream.get(), soReference); IPersistStreamInit * PersistStreamInit = NULL; if (DebugAlwaysTrue(WebBrowser->Document != NULL) && SUCCEEDED(WebBrowser->Document->QueryInterface(IID_IPersistStreamInit, (void **)&PersistStreamInit)) && DebugAlwaysTrue(PersistStreamInit != NULL)) { PersistStreamInit->Load(static_cast<_di_IStream>(*DocumentStreamAdapter)); } } ---snip---
We don't seem to get as far as PersistStreamInit->Load(), which is a stub on our side anyway.