Recuperer source page web
bonjour
je n'arrive pas a faire fonctionner le code décrit dans la faq pour récupérer la source d'un page web.
je souhaite l'affichez dans un doc pour voir ce qu'il recupere mais mon doc reste vide.
avez vous une idée de mon erreur? merci
mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| // fonction non modifiée de la faq
AnsiString __fastcall GetSource (TCppWebBrowser * browser)
{
IHTMLDocument3 *html = NULL;
IHTMLElement *element = NULL;
BSTR string = L"";
try
{
if (browser->Document != NULL)
{
OleCheck(browser->Document->QueryInterface(IID_IHTMLDocument3,(LPVOID*)&html));
OleCheck(html->get_documentElement(&element));
OleCheck(element->get_outerHTML(&string));
}
}
catch (EOleSysError &eOSE)
{
if (element != NULL)
{
element->Release();
}
if (html != NULL)
{
html->Release();
}
throw eOSE;
}
return (AnsiString) string;
}
// un bouton pour la tester
void __fastcall TForm3::Button7Click(TObject *Sender)
{
GetSource (Form2 -> CppWebBrowser1);
}
// affichage sous word
void __fastcall TForm3::Button2Click(TObject *Sender)
{
WideString source;
//txt = VarToStr(aContenuHTML);
source = string.c_str();
Variant vFileName, vReadOnly, vWDocuments, vWDocument;
vFileName = "c:\\test.doc";
Variant vMSWord;
try
{
vMSWord = Variant::CreateObject("Word.Application");
}
catch(...)
{
vMSWord = Variant::CreateObject("Word.Application");
}
vMSWord.OlePropertySet("Visible", true);
vReadOnly = false; // lecture seule
vWDocuments = vMSWord.OlePropertyGet("Documents");
vWDocument = vWDocuments.OleFunction("Open", vFileName,vReadOnly);
vMSWord.OlePropertyGet("Selection").OleProcedure("TypeText",source);
} |