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 :

[MFC] Help ! Récupérer l'instance d'Internet Explorer


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 84
    Par défaut [MFC] Help ! Récupérer l'instance d'Internet Explorer
    Bonjour à tous,

    j'essaye de faire un controle ATL pour Internet Explorer qui serait un listbox toute simple, mais qui gérerait le drag and drop. J'ai donc mis DragAcceptFiles(true) dans le OnCreate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
    	{
    		DragAcceptFiles(true);
    [...]
    mais IE "mange" l'évènement drop. Après avoir un peu cherché, j'ai vu qu'il y avait une interface IWebBrowser2, et que apparament, on pouvait récupérer l'instance d'IE avec CLSID_WebBrowser. Comment est ce que l'on peut récupérer cette instance ? est ce qu'il faut utiliser l'objet m_hWnd de mon contrôle ?

    Merci d'avance !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 84
    Par défaut
    J'ai essayé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HRESULT hResult;
    		CComPtr<IWebBrowser2> m_spWebBrower;
    		AtlAxWinInit();
     
    		AtlAxGetHost(m_hWnd, (IUnknown**)&m_spWebBrower);
    		m_spWebBrower->get_RegisterAsDropTarget(VARIANT_FALSE);
    Ca compile, mais, j'ai un gros plantage sur le m_spWebBrower->get_RegisterAsDropTarget(VARIANT_FALSE);

    Quelqu'un a t-il une idée ?

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Normal, on ne fait pas comme ça.

    Tu dois récupérer une IUnknown et ensuite demander une IWebBrowser2 avec QueryInterface() (qui peut réussir ou échouer selon que ce soit le bon objet ou non. Je ne connais pas assez IE pour savoir ça).

    Et n'oublie pas les Release() qui vont avec.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 84
    Par défaut
    J'ai essayé autre chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    IOleContainer * pContainer;
    		IOleClientSite * pClientSite;
     
    		GetClientSite(&pClientSite);
    		//IOleClientSite::GetContainer to get the IOleContainer interface
    		pClientSite->GetContainer(&pContainer);
    		//2. QI the IOleContainer for the IServiceProvider
    		IServiceProvider * pServiceProvider;
    		pContainer->QueryInterface(IID_IServiceProvider,(void**)&pServiceProvider);
    		//3. QI the IServiceProvider for the IWebBrowser2.
    		IWebBrowser2 * pWebBrowser2;
    		pServiceProvider->QueryInterface(IID_IWebBrowser2,(void**)&pWebBrowser2);
    Ca compile aussi, mais dès que j'essaye d'appeller un méthode de pWebBrowser2, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pWebBrowser2->put_RegisterAsDropTarget(true);
    l'activeX plante ! La j'ai du mal à voir ou est le problème.

    Quelqu'un aurait-il une idée s'il vous plait ?

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Citation Envoyé par Médinoc
    qui peut réussir ou échouer
    Teste les valeurs de retour...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 13
    Dernier message: 08/10/2008, 16h16
  2. Réponses: 6
    Dernier message: 04/09/2008, 19h17
  3. Problème de création d'instance d'Internet Explorer
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/03/2008, 17h57
  4. Acces à une instance d'internet explorer en cours
    Par snopims dans le forum Windows Forms
    Réponses: 2
    Dernier message: 15/05/2007, 17h22
  5. Récupérer le path d'Internet Explorer et Firefox
    Par cpdump dans le forum Langage
    Réponses: 4
    Dernier message: 11/09/2005, 20h23

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