Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problema con leer HTML desde Builder

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problema con leer HTML desde Builder Responder citando

Hola, tengo el Builder 4, y tengo un problema al intentar leer el código HTML de una pagina web. Envio el código que uso.

Código:


  Variant IE;

  IE = CreateOleObject("InternetExplorer.Application");

  IE.OlePropertySet("Visible", true);
  IE.OleFunction("Navigate", "www.terra.es");

  while (IE.OlePropertyGet("Busy"))
    Application->ProcessMessages();

  Application->BringToFront();

  if (VarType(IE.OlePropertyGet("document"))!=varEmpty)
  {

    IHTMLDocument2 * pDocument;
    static_cast<IDispatch*>(IE.OlePropertyGet("document"))->QueryInterface<IHTMLDocument2>(&pDocument);
    IHTMLElement *pElement;
    pDocument->get_body(&pElement);
    pElement->get_parentElement(&pElement);
    wchar_t *tmp;
    pElement->get_outerHTML(&tmp);
    Memo1->Lines->Text = tmp;
    pElement->Release();
    pDocument->Release();

  }



El Problema me lo da en la linea del QueryInterface, que me dice Improper use of typedef.

Tengo includas las librerias creo:

#include <mshtml.h>
#include <OleCtrls.hpp>
#include <Comobj.hpp>
#include <utilcls.h>

pero no consigo que funcione. A ver si alguien sabe como puedo obtener esto.

Gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola, el código anterior funciona perfectamente en el C++Builder *6*, pero no en la versión 4, en caso de que estés usando la 4, cambia la línea:

static_cast<IDispatch*>(IE.OlePropertyGet("document"))->QueryInterface<IHTMLDocument2>(&pDocument);

por lo siguiente:

IDispatch* disp = static_cast<IDispatch*>(IE.OlePropertyGet("document"));
disp->QueryInterface(IID_IHTMLDocument2, reinterpret_cast<void**>(&pDocument));
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.