Ayuda con Interop.shdocvw.......

31/01/2007 - 18:23 por NATHALY_EC | Informe spam
Hola amigostengo una aplicacion que navega a paginas HTML , mi problema
es que debo de accesar a los frames de dichas paginas, yo tengo el siguiente
codigo para accesar a los frames:

public IHTMLDocument2 recupererDocumentFrame(string nomFrame)
{
// Transformer le document du Browser en IHTMLDocument2
IHTMLDocument2 doc = (IHTMLDocument2)_ie.Document;
if (doc != null)
{

IHTMLWindow2 windowFrame = (IHTMLWindow2)doc.frames;
if (windowFrame != null)
{
// Récupération of collection frames
IHTMLFramesCollection2 framescol;
framescol = windowFrame.frames;
if (framescol != null)
{
string strFrame = nomFrame;
object objName = (object)strFrame;
object obj;
obj = framescol.item(ref objName);
if (obj != null)
{
// Récupération document IHTMLDocument2 the
frame
IHTMLWindow2 windowFmain = (IHTMLWindow2)obj;
IHTMLDocument2 docFmain = windowFmain.document;
return docFmain;
}
}
}
}
return null;

}

Si executo este codigo en mi aplicacion funciona muy bien pero si lo coloco
en un hilo que mi aplicacion dispare me aparece el siguiente mensaje de error:

Specified cast is not valid

Revice el objeto DOC por lo que denote que el item "frames" se ve lo
siguiente:
frames 'doc.frames' threw an exception of type
'System.InvalidCastException' mshtml.FramesCollection
{System.InvalidCastException}
Source "Microsoft.mshtml"

Message "Specified cast is not valid."
StackTrace " at mshtml.HTMLDocumentClass.IHTMLDocument2_get_frames()"
TargetSite {mshtml.FramesCollection
IHTMLDocument2_get_frames()} System.Reflection.MethodBase
{System.Reflection.RuntimeMethodInfo}


porque???
Como podria arreglar esto????
Es que necesito ejecutar este proceso con hilos porque son varias paginas a
las que debo accesar, ya por si demora su acceso si hago esto secuencialmente
se demoraria muchisimo mas, por eso lo de crear "thread".

Please heeeeeeeeeellllllllllpppppp!!!!!
:O(
 

Leer las respuestas

#1 carlosmsr
31/01/2007 - 20:09 | Informe spam
Verificaste que todos las clases y los métodos que estás invocando sean
Thread Safe ?

"NATHALY_EC" wrote:

Hola amigostengo una aplicacion que navega a paginas HTML , mi problema
es que debo de accesar a los frames de dichas paginas, yo tengo el siguiente
codigo para accesar a los frames:

public IHTMLDocument2 recupererDocumentFrame(string nomFrame)
{
// Transformer le document du Browser en IHTMLDocument2
IHTMLDocument2 doc = (IHTMLDocument2)_ie.Document;
if (doc != null)
{

IHTMLWindow2 windowFrame = (IHTMLWindow2)doc.frames;
if (windowFrame != null)
{
// Récupération of collection frames
IHTMLFramesCollection2 framescol;
framescol = windowFrame.frames;
if (framescol != null)
{
string strFrame = nomFrame;
object objName = (object)strFrame;
object obj;
obj = framescol.item(ref objName);
if (obj != null)
{
// Récupération document IHTMLDocument2 the
frame
IHTMLWindow2 windowFmain = (IHTMLWindow2)obj;
IHTMLDocument2 docFmain = windowFmain.document;
return docFmain;
}
}
}
}
return null;

}

Si executo este codigo en mi aplicacion funciona muy bien pero si lo coloco
en un hilo que mi aplicacion dispare me aparece el siguiente mensaje de error:

Specified cast is not valid

Revice el objeto DOC por lo que denote que el item "frames" se ve lo
siguiente:
frames 'doc.frames' threw an exception of type
'System.InvalidCastException' mshtml.FramesCollection
{System.InvalidCastException}
Source "Microsoft.mshtml"

Message "Specified cast is not valid."
StackTrace " at mshtml.HTMLDocumentClass.IHTMLDocument2_get_frames()"
TargetSite {mshtml.FramesCollection
IHTMLDocument2_get_frames()} System.Reflection.MethodBase
{System.Reflection.RuntimeMethodInfo}


porque???
Como podria arreglar esto????
Es que necesito ejecutar este proceso con hilos porque son varias paginas a
las que debo accesar, ya por si demora su acceso si hago esto secuencialmente
se demoraria muchisimo mas, por eso lo de crear "thread".

Please heeeeeeeeeellllllllllpppppp!!!!!
:O(

Preguntas similares