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

Windows Presentation Foundation Discussion :

[WPF][MapPoint] Utilisation de l'activeX MapPoint sous vista?


Sujet :

Windows Presentation Foundation

  1. #1
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut [WPF][MapPoint] Utilisation de l'activeX MapPoint sous vista?
    Bonjour,

    J'ai créé une appli en WPF incluant un control COM (MapPoint) via un windowsformsintegration.
    L'application marche sans problème sous XP, mais quand je l'execute sous Vista, il me dit qu'il ne peut pas créer une instance de MapPoint sans me préciser pourquoi?

    y a t-il des problèmes connues lié à l'integration d'activeX et/ou d'objets COM dans les Appli WPF sous Vista?

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Hum.. étrange que cela ne marche pas, il n'y a pas de limitations à ma connaissances.... Tu as essayé de débugger le poste Vista depuis ta machine de dev ?

  3. #3
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut
    euh.... je ne vois pas comment je peux debuger avec la machine de dev. Je travaille avec une version pro de VS, pas de team system.

    J'ai entendu dire que ca pourrait venir du fait que MapPoint n'est pas certifié Vista et qu'il faudrait enregistrer la dll d'interface MapPoint (par je sais plus où) dans Vista.

  4. #4
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut
    je rajoute la méthode que j'ai utilisé pour l'integration de MapPoint, j'ai peut etre fait une erreur pour Vista.

    déjà, j'utilise une assembly différente qui contient le controle MapPoint :

    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
     
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Data;
    using System.Text;
    using System.Windows.Forms;
    using MapPoint;
     
    namespace MapPointAPI
    {
        public partial class MPControl : UserControl
        {
            public MPControl()
            {
                InitializeComponent();
                this.axMappointControl1.NewMap(2);
                this.axMappointControl1.PaneState = GeoPaneState.geoPaneLegend;
            }
        }
    }
    Puis dans le XAML je rajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <WindowsFormsHost HorizontalAlignment="Right" Margin="0,125,14,225" Name="windowsFormsHost1" Width="290" />
    Et enfin je crée une instance de mon control que je met dans le windowsformhost :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void Window2_Loaded(object sender, RoutedEventArgs e)
            {
                try
                {
                    MPControl bleh = new MPControl();
                    this.windowsFormsHost1.Child = bleh;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Le code est correct: pour preuve, il tourne sous Vista.

    Là, je dois admettre que je ne comprend pas ce qu'il se passe

  6. #6
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut
    J'ai du nouveau, et ce n'est effectivement pas lié directement à la programmation.

    J'ai essayé d'utiliser regsvr32 pour enregistrer l'ocx de MapPoint sous vista, et quand j'essaie, j'ai ce message d'erreur qui apparait :

    ...Le module "MapPointControl.ocx" a été chargé, mais l'appel à DllRegisterServer a échoué avec le code d'erreur 0x80070005........
    Ce qui semble être une erreur dûe à la sécurité. Pourtant, je suis sur un compte utilisateur possedant les droits administrateur (le compte administrateur lui même etant désactivé).

  7. #7
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Essayé de faire une recherche sur Internet sur le sujet pour voir si il ne s'agit pas d'un pb connu.

  8. #8
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut
    Apparament, ca viendrait d'une mauvaise config DCOM sur la machine Vista.

    Comment peut-on vérifier/modifier la config DCOM?

    [EDIT]
    J'ai essayé quelque chose. Avant dans mon constructeur, je faisais un NewMap. j'ai retiré cette ligne, et maintenant je n'ai plus d'erreurs
    Donc c'est bien, je peux créer une instance de MapPoint mais pas lui donner de commande..........

    J'ai vérifié ma config DCOM, elle est correcte...........
    [/EDIT]

  9. #9
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut
    J'ai trouvé une réponse à mon problème. Ca viendrait d'un bug de visual studio 2008 sous vista. Le meme code marche très bien sous vista si il est fait en 2.0 avec visual studio 2005.

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

Discussions similaires

  1. Utiliser un control activeX VB6 sous Visual Studio
    Par yal001 dans le forum Développement Windows
    Réponses: 3
    Dernier message: 03/12/2013, 10h07
  2. Réponses: 5
    Dernier message: 08/10/2010, 12h52
  3. [ActiveX] Instancier un ActiveX MapPoint
    Par brazilia28 dans le forum C#
    Réponses: 3
    Dernier message: 25/06/2010, 11h34
  4. Installation du composant ActiveX mappoint
    Par rpg71 dans le forum Composants VCL
    Réponses: 0
    Dernier message: 20/09/2007, 15h27
  5. Utiliser Borland C++ avec Emacs sous Windows
    Par Eikichi dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 02/03/2003, 08h40

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