IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

téléchargement dans un webBrowser


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 80
    Par défaut téléchargement dans un webBrowser
    Bonjour,
    J'utilise une classe dérivée de CHtmlView pour faire un mini webBrowser et il y a quelque chose que je n'arrive pas à faire:
    Lorsque l'on clique sur un lien vers un fichier à télécharger de la page html, normalement, une fenetre windows apparait proposant de télécharger le fichier et demandant où le sauver.
    Moi, j'aimerais que cette fenetre ne s'affiche pas et que je gere moi meme le téléchargement. est ce que quelqu'un peut maider.
    merci

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    salut, il faut intercepter l'évenement FileDownload envoyé par l'interface IWebBrowser2, l'annuler et gerer toi meme le téléchargement

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 80
    Par défaut
    mais dans ce cas, comment avoir acces à l'interface IWebBrowser2? Si j'ai bonne mémoire, c'est de l'activeX mais moi, je n'utilise qu'un vulgaire CHtmlView...

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    regarde le post numéro 11 sur cette page http://www.developpez.net/forums/showthread.php?t=8070

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 80
    Par défaut
    oui !!! c'est bien cool cette FAQ... je ne l'avais pas vue...
    Mais malheureusement, je ne vois toujours pas comment intercepter l'évenement FileDownload... Quelle fonction utiliser, comment...

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    ce qui ne va pas c'est que IE n'utilise pas la meme signature que celle des mfc par défaut, donc faut changer le prototype, contrairement à ce que pourrait générer le wizard

    utiliser cette définition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnFileDownloadExplorer(BOOL isPageDownload,BOOL FAR*Cancel)
    alors que dans l'idl on trouve
    [id(DISPID_FILEDOWNLOAD), helpstring("Fired to indicate the File Download dialog is opening"), helpcontext(0x0000)]
    void FileDownload([in, out] VARIANT_BOOL * Cancel);
    quand isPageDownload=0, ca veut dire que c'est un téléchargement de fichier

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 80
    Par défaut
    je viens d'essayer: j'ai mis le OnFileDownloadExplorer dans mon appli mais ça ne passe jamais dedant...

    voici ce que j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void CNavigateurView::OnFileDownloadExplorer(BOOL isPageDownload,BOOL FAR*Cancel) {
     ...
    }
    qu'est ce qu'il manque?

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    faut définir le mapping, un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ON_EVENT(CDlg, IDC_EXPLORER1, 270 /* FileDownload */,
    OnFileDownloadExplorer,  VTS_BOOL VTS_PBOOL)
     //}}AFX_EVENTSINK_MAP
    END_EVENTSINK_MAP()

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 80
    Par défaut
    je suis désolé, je me sent un peu mauvais mais ca ne marche toujours pas...
    alors pour expliquer ce que j'ai:
    ma classe CHtmlView est déclarée comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CSingleDocTemplate* pDocTemplate;
    pDocTemplate = new CSingleDocTemplate(
    	IDR_MAINFRAME,
    	RUNTIME_CLASS(CNavigateurDoc),
    	RUNTIME_CLASS(CMainFrame),       // main SDI frame window
    	RUNTIME_CLASS(CNavigateurView));
    AddDocTemplate(pDocTemplate);
    et je fais mon mapping comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BEGIN_EVENTSINK_MAP(CNavigateurView, CHtmlView)
    	//{{AFX_EVENTSINK_MAP(CNavigateurView)
    	ON_EVENT(CNavigateurView,IDR_MAINFRAME,270,OnFileDownloadExplorer,VTS_BOOL VTS_PBOOL)
    	//}}AFX_EVENTSINK_MAP
    END_EVENTSINK_MAP ()
    mais ca ne marche toujours pas... où est l'erreur??????

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    il faudrait regarder comment s'est géré en interne pour les autres événements

    devons nous conclure de ton autre post que tu abandonnes cette méthodes ?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 80
    Par défaut
    oui,
    Je pense que l'utilisation d'un activeX est plus simple et pour preuve, j'ai réussit ce que je voulais faire!!!
    en tout cas, merci pour ton aide précieuse !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA/VB] créer une page dynamiquement dans un WebBrowser
    Par SilkyRoad dans le forum Contribuez
    Réponses: 3
    Dernier message: 13/03/2013, 22h24
  2. [C#] Visualisation d'un PDF dans un WebBrowser
    Par StormimOn dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/04/2007, 18h21
  3. [VB.NET] Suppression d'un fichier chargé dans un WebBrowser
    Par Vonotar dans le forum Windows Forms
    Réponses: 9
    Dernier message: 27/09/2004, 11h09
  4. Attendre la fin du chargement de la page dans un WebBrowser
    Par core1 dans le forum Web & réseau
    Réponses: 5
    Dernier message: 15/06/2003, 04h12
  5. Empécher la sélection du texte des pages dans un WebBrowser
    Par DevelOpeR13 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 05/06/2003, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo