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 :

Fenetre dans une dll ATL


Sujet :

MFC

  1. #1
    LEK
    LEK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par défaut Fenetre dans une dll ATL
    Bonsoir, j'aimerais savoir si quelq'un saurait comment instancier dans une méthode de dll atl une classe implémentant CWindowImpl et ensuite avec une boucle de message récupérer les évènements oncreate,onresize,ondestroy ?

  2. #2
    LEK
    LEK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par défaut
    Est ce que vous sauriez ci ce que je voudrais effectuer est au moins possible, svp ?

  3. #3
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    http://msdn.microsoft.com/library/en-us/vccore/html/_atl_Implementing_a_Window_with_CWindowImpl.asp

  4. #4
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    yes, c'est effectivement possible
    Regarde un peu dans l'MSDN ou dans ton CD MSDN tu as des exemples de VC++ sur ATL...

  5. #5
    LEK
    LEK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Par défaut
    Bonsoir,
    merci pour vos réponses, en fait j'ai déjà parcouru plus ou moins la doc sur le sujet et la msdn. Mon objectif c'est l'écriture d'une classe implémentant CwinowImpl laquelle charge un contrôle WebBrowser, j'appelle ac tuellment une méthode simple de ma dll depuis vbscript qui instancie la classe de fenêtre et... c'est bon la fenêtre et créée. Par contre le point suivant que je veux implémenter c'est le chargement d'une page dans le contrôle browser et la rcupération du code chargé. Pour ça j'ai créé une classe de collecteur d'évènement : CEventSink, je voudrais pouvoir repéré le chargement complet du document, mais pour relier mon collecteur d'évènement à la fenêtre nouvellement créé j'ai un nouveau problème.
    Je fais pour cela appel à AtlAxGetControl pour avoir un pointeur d'interface sur le contrôle browser et déjà là ça plante... Voici ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    //générer à la création de la fenetre
    LRESULT CMainWindow::OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
    {
     
     
      MessageBox("création de la fen","Messagebox");  
     
     
    	HRESULT hr;
        RECT old;
        IUnknown * pUnk = NULL;
        GetClientRect(&old);
     
        m_hwndWebBrowser = ::CreateWindow(_T(ATLAXWIN_CLASS), m_URI,
            /*WS_POPUP|*/WS_CHILD|WS_DISABLED, old.top, old.left, old.right,
            old.bottom, m_hWnd, NULL, ::GetModuleHandle(NULL), NULL);
     
    MessageBox("création de la fen effectuée 1","Messagebox");  
     
    //a ce niveau j'ai un plantage!!!
        hr = AtlAxGetControl(m_hwndWebBrowser, &m_pWebBrowserUnk);
     
    MessageBox("création de la fen effectuée 10 ","Messagebox");  
     
        if (FAILED(hr))
            return 1;
     
    MessageBox("création de la fen effectuée 2 ","Messagebox");  
    	if (m_pWebBrowserUnk == NULL)
            return 1;
     
    MessageBox("création de la fen effectuée 3 ","Messagebox");  
     
        hr = m_pWebBrowserUnk->QueryInterface(IID_IWebBrowser2, (void**)&m_pWebBrowser);
     
     
     
        if (FAILED(hr))
            return 1;
     
     
    	MessageBox("création de la fen effectuée 4 ","Messagebox");  
        hr = CComObject<CEventSink>::CreateInstance(&m_pEventSink);
     
        if (FAILED(hr))
            return 1;
     
    	MessageBox("création de la fen effectuée 5 ","Messagebox");  
        m_pEventSink->m_pMain = this;
     
    	MessageBox("création de la fen effectuée 6 ","Messagebox");  
     
        hr = AtlAdvise(m_pWebBrowserUnk, m_pEventSink->GetUnknown(),
                       DIID_DWebBrowserEvents2, &m_dwCookie);
     
     
        if (FAILED(hr))
            return 1;
     
     
    MessageBox("fin création de la fen","Messagebox");  
        return 0;
    }

Discussions similaires

  1. Créer une fenetre avec CreateWindow dans une DLL
    Par fx007 dans le forum Windows
    Réponses: 6
    Dernier message: 06/07/2007, 12h31
  2. [VStudio 6] pb avec fonctions dans une DLL
    Par MogDeChNord dans le forum MFC
    Réponses: 8
    Dernier message: 08/01/2004, 08h57
  3. [BP7] Problème chargement de ressource dans une DLL
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 26/07/2003, 21h36
  4. PB avec "self" dans une dll
    Par DiJiRiDouS dans le forum Langage
    Réponses: 2
    Dernier message: 21/02/2003, 09h32
  5. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 10h15

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