Dateien speichern mit TCppWebBrowser



  • Hallo,

    ich benutze den TCppWebBrowser unter BCB 5.0 Pro,
    und würde gern wissen, ob es möglich ist, eine im Browser geöffnete Textdatei oder HTML-Datei zu speichern. Und wenn ja, wie sieht die Syntax dafür aus? Irgendwie finde ich keine Beispiele dafür.

    Danke



  • Hiermit ...

    AnsiString GetHTMLSourceFromCppWebBrowser(TCppWebBrowser *WebBrowser) {
    
    	AnsiString Source = "";
    
    	IHTMLDocument2 *htm = NULL;     // #include <mshtml.h>
    
    	if (WebBrowser->Document &&
    		SUCCEEDED(WebBrowser->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&htm))) {
    
    		IPersistStreamInit *spPsi = NULL;    // ocidl.h
    
    		if(SUCCEEDED(htm->QueryInterface(IID_IPersistStreamInit, (LPVOID*)&spPsi)) && spPsi) {
    
    			IStream *spStream = NULL;            // objidl.h
    			OleCheck(CreateStreamOnHGlobal(NULL, true, &spStream));
    
    			if(spStream) {
    
    				__int64 nSize = 0;
    				STATSTG ss;
    				LARGE_INTEGER nMove;
    				nMove.QuadPart = 0;
    				OleCheck(spPsi->Save(spStream, true));
    				OleCheck(spStream->Seek(nMove, STREAM_SEEK_SET, (ULARGE_INTEGER *)&nSize));
    				OleCheck(spStream->Stat(&ss, STATFLAG_NONAME));
    				nSize = ss.cbSize.QuadPart;
    
    				Source.SetLength(nSize);
    				OleCheck(spStream->Read((void *)Source.data(), nSize, (ULONG *)&nSize));
    				OleCheck(spStream->Release());
    			}
    
    			spPsi->Release();
    		}
    		htm->Release();
    	}
    	return Source;
    }
    

    kannst du dir die geladene HTML Seite als AnsiString zurückgeben lassen,
    dann müsste das speichern das geringste Problem sein.



  • Vielen Dank.


Anmelden zum Antworten