CAsyncMonikerFile

CAsyncMonikerFile - Programmation

Marsh Posté le 14-03-2001 à 12:15:07    

voila, je fais une application VC++ qui charge des informations depuis une page web.
Pour cela j'utilise l'objet CAsyncMonikerFile qui me permet de faire d'autre opération pendant le téléchargement de la page.
 
Hors lorsque la page web n'existe pas, mon programme plante...
pourtant voici le code que j'utilise :
 
void CHttpDlg::OnStopBinding(HRESULT hresult, LPCTSTR szError)  
{
 try
 {
  UINT nBytesRead = Read( m_Buffer, MAX_LENGTH - 1 );
  TRACE("nBytesRead = %d\n", nBytesRead);
  m_Buffer[nBytesRead] = '\0';
 
  TRACE("Texte : %s\n", m_Buffer );
 }
 catch (CFileException* pe)
 {
  TRACE("Exception fichier %d\n", pe->m_cause);
  pe->Delete();
 }
 
 CAsyncMonikerFile::OnStopBinding(hresult, szError);
}
 
Une erreur ce produit lors du Read. Normalement je pensais qu'il devait y avoir une exception, mais apparement c'est pas le cas.
Es-ce que quelqu'un pourrait m'aider ?
(PS : le Open( url ) me renvoie TRUE même si la page est inexistante !)

Reply

Marsh Posté le 14-03-2001 à 12:15:07   

Reply

Marsh Posté le 14-03-2001 à 13:28:23    

J'imagine que CHttpDlg dérive de CFile.
Donc je pense que l'instance de CHttpDlg n'est pas crée du fait que ton fichier n'existe pas ( c'est à ce moment que l'exception est lancéee).  
Et quand tu appeles OnStopBinding ça fait un beau crash.

Reply

Marsh Posté le 14-03-2001 à 20:12:35    

oualallaala, t'as vraiment compris mon problème...
 
CHttpDlg dérive de CAsyncMoniker (oups, c'est vrai que sans cette info c'est dur de comprendre, désolé).
Et j'ai bien crée une instance de CHttpDlg. Et la fonction OnStopBinding est appelé automatiquement lorsque la page web a fini d'être télécharger... C'est une fontion virtuelle.
 
voila, voila. J'espère que j'ai été plus clair cette fois.
Mon code marche d'ailleurs très bien, lorsque la page web existe. C'est dans le cas contraire que ça marche pas

Reply

Marsh Posté le 15-03-2001 à 08:45:24    

up

Reply

Marsh Posté le 16-03-2001 à 08:59:16    

re up...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed