Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2012
Avatar de kotai
kotai kotai is offline
Miembro
 
Registrado: mar 2004
Ubicación: Gandia
Posts: 31
Poder: 0
kotai Va por buen camino
TWebBrowser error "Interface not supported"

Hola.

Tengo un programa que lee el código HTML de una página web y todos sus frames con el componente TWebBrowser. Hace tiempo funcionaba perfectamente, pero ahora lo vuelvo a probar y el código fuente de la página principal lo saca bien, pero cuando va a sacar el de los frames me da un error: EIntfCastError with message "Interface not supported".

Creo que debe ser por la versión de Internet Explorer que ahora tengo la 9 y cuando usaba este programa supongo que tendría la 6 o la 7, pero no estoy seguro si es por eso.

El progama es:


Código Delphi [-]
procedure TF_Principal.ObtenerHTML;
var
  IpStream     : IPersistStreamInit;
  AStream      : TMemoryStream;
  iw           : IWebbrowser2;
  i            : Integer;
  sl           : TStringList;
  OleContainer : IOleContainer;
  enum         : IEnumUnknown;
  unk          : IUnknown;
  Fetched      : System.PLongint;
  ss           : TStringStream;
  sa           : IStream;
  s            : string;
  HTML         : String;
  StreamA      : TStreamadapter;
begin
     if WB <> nil then
     begin
          // Obtenemos el HTML de la página principal
          WB.Silent := True;
          IpStream := WB.Document as IPersistStreamInit;
          s := '';
          ss := TStringStream.Create(s);
          try
             sa := TStreamAdapter.Create(ss, soReference) as IStream;
             if Succeeded(IpStream.Save(sa, True)) then
                HTML := ss.Datastring
             else
                HTML := '';
          finally
            ss.Free;
          end;
          // Analizamos el HTML de la página principal
          AnalizarHTML(HTML);
          // Obtenemos el HTML de los frames
          for i := 0 to WB.OleObject.Document.frames.Length - 1 do
          begin
               if Assigned(WB.document) then
               begin
                    Fetched := nil;
                    OleContainer := WB.Document as IOleContainer;
                    OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum);
                    Enum.Skip(i);
                    Enum.Next(1, Unk, Fetched);
                    try
                       iw := Unk as IWebbrowser2;     ****  LINEA DONDE DA EL ERROR  *****
                    except
                    end;
               end;
               AStream  := TMemoryStream.Create;
               IpStream := iw.document as IPersistStreamInit;
               StreamA  := TStreamadapter.Create(AStream);
               if Succeeded(IpStream.save(StreamA, True)) then
               begin
                    AStream.Seek(0, 0);
                    sl := TStringList.Create;
                    sl.LoadFromStream(AStream);
                    AnalizarHTML(sl.Text);
                    sl.Free;
               end;
               StreamA.Free;
               AStream.Free;
          end;
     end;
end;


¿ Alguien sabe que puede estar pasando ?

Gracias.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TSocketConnection y error "Interface not supported" Aldo Providers 1 13-03-2008 17:52:29
Delphi 5.0 / Firebird 2.0 - Error: Interface not supported RicardoG Conexión con bases de datos 0 19-10-2007 17:39:12
"connection rejected by remote interface" Gigabyte1024 Conexión con bases de datos 3 29-08-2007 06:27:48
JVCL "No personalities supported" vtdeleon Varios 1 10-09-2006 22:01:44
Method "elquesea" not supported by automation object mercury2005 Providers 0 08-12-2004 22:22:29


La franja horaria es GMT +2. Ahora son las 10:30:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi