Partager via


Procédure pas à pas : création d'un contrôle ActiveX multiplateforme ATL pour les appareils de type Smart Device

Mise à jour : novembre 2007

Vous pouvez utiliser Visual C++ pour les appareils pour écrire des contrôles ActiveX qui ciblent plusieurs appareils. La procédure pas à pas suivante montre comment générer un contrôle ActiveX ATL multiplateforme.

Dans cette procédure pas à pas, vous exécutez les tâches principales suivantes :

  • Créer un projet Smart Device ATL multiplateforme.

  • Ajoutez un contrôle ActiveX au projet à l'aide de l'Assistant. Remarquez que l'Assistant génère l'essentiel de la structure et du code de base.

  • Modifiez le code dans vos fichiers stdafx.h et samplecontrol.h pour définir votre modèle de thread et éviter des avertissements du compilateur.

  • Déployer la solution multiplateforme. Notez qu'un fichier Internet Explorer est également généré afin de faciliter le test et l'exécution du contrôle.

Cette procédure pas à pas a été écrite à l'aide des paramètres de développement Visual C++.

Remarque :

Les boîtes de dialogue et les commandes de menu que vous voyez peuvent différer de celles qui sont décrites dans l'aide selon vos paramètres actifs ou votre édition. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio.

Créer un contrôle ActiveX ATL multiplateforme

Pour créer un contrôle ActiveX ATL multiplateforme

  1. Dans le menu Fichier, pointez sur Nouveau, cliquez sur Projet, développez le nœud Visual C++ dans le volet Types de projets, puis cliquez sur Smart Device.

  2. Dans le volet Modèles, cliquez sur Projet Smart Device ATL.

  3. Dans la zone Nom, tapez ATLAXControl, puis cliquez sur OK.

    L'Assistant Projet Smart Device ATL est lancé.

  4. Cliquez sur Suivant dans la page d'accueil de l'Assistant Projet Smart Device ATL.

    Le Plates-formes, Assistant Projet Smart Device ATL s'affiche afin que vous puissiez sélectionner les Kits de développement logiciel de plateforme à ajouter au projet actuel.

  5. Dans la liste SDK installés, sélectionnez les plateformes que vous souhaitez ajouter au projet actuel, telles que Smartphone 2003 et Pocket PC 2003. Pour ajouter une plateforme, sélectionnez la plateforme dans le volet gauche, telle que Smartphone 2003 et cliquez sur le bouton contenant la flèche vers la droite >. Pour supprimer une plateforme, sélectionnez la plateforme dans le volet droit, telle que Pocket PC 2003 et cliquez sur le bouton contenant la flèche vers la gauche <.

  6. Cliquez sur Terminer pour terminer et fermer l'Assistant.

Ajouter un contrôle ActiveX au projet

Pour ajouter un contrôle ActiveX au projet

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ATLAXControl, pointez sur Ajouter, puis cliquez sur Classe.

  2. Dans le volet Catégories, cliquez sur Smart Device.

  3. Dans le volet Modèles, cliquez sur Contrôle ATL, puis cliquez sur Ajouter.

    La boîte de dialogue Assistant Contrôle ATL s'affiche.

  4. Dans la zone Nom court, tapez samplecontrol.

  5. Cliquez sur Terminer pour terminer et fermer l'Assistant.

Modifier le code dans les fichiers d'en-tête

Pour modifier le code dans stdafx.h

  1. Dans l'Explorateur de solutions, double-cliquez sur le fichier stdafx pour l'ouvrir dans l'éditeur.

  2. Ajoutez la définition suivante #define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA après le #pragma once, comme indiqué ci-après :

        // Add this define after 
        #pragma once
    #define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA
    
  3. Ajoutez un Contrôle ActiveX au projet comme décrit dans la procédure suivante.

Pour ajouter un contrôle ActiveX au projet

  1. Dans l'Explorateur de solutions, double-cliquez sur le fichier samplecontrol.h pour l'ouvrir dans l'éditeur.

  2. Remplacez la chaîne ATL 8.0 : samplecontrol par Hello World ActiveX Control dans le code définissant Isamplecontrol.

Remarque :

Les contrôles ActiveX destinés à une plateforme DCOM doivent être marqués comme modèles de thread lors de leur construction. Il s'agit du paramètre par défaut de l'Assistant Contrôle ATL. Vous pouvez ignorer sans risque l'avertissement généré pendant la compilation. De plus, les projets ATL, GUI et EXE, tels que ceux auxquels vous avez ajouté atlwin.h, atlctl.h ou atlhost.h à un projet ATL EXE, doivent avoir un _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA défini dans le stdafx.h avant l'inclusion des fichiers d'en-tête ATL. Cette pratique est la même que celle utilisée lors du développement de projets bureautiques. Pour plus d'informations, consultez Génération et débogage des projets smart device Visual C++.

Déployer la solution multiplateforme ATL

Pour déployer la solution

  1. Dans le menu Générer, cliquez sur Régénérer la solution pour générer le contrôle.

  2. Dans le menu Générer, cliquez sur Déployer la solution.

  3. Dans la liste déroulante Appareil cible de la barre d'outils Visual Studio, sélectionnez votre cible, par exemple Pocket PC 2003 SE - émulateur ou Pocket PC 2003 - appareil.

  4. Dans le menu Générer, cliquez sur Déployer.

Choix d'un appareil cible

La procédure suivante permet d'afficher un message vous invitant à sélectionner un appareil lorsque vous déployez une solution.

Pour être invité à sélectionner l'appareil au moment du déploiement

  1. Dans le menu Outils, cliquez sur Options, développez le nœud Outils d'appareils, puis cliquez sur Général.

  2. Si Outils d'appareils n'apparaît pas, sélectionnez Afficher tous les paramètres en bas de la boîte de dialogue Options.

  3. Activez la case à cocher Afficher les choix d'appareils avant de déployer un projet Smart Device, puis cliquez sur OK.

Pour exécuter le contrôle, utilisez l'Explorateur de fichiers sur l'appareil, naviguez jusqu'à Program Files\ATLAXControl et double-cliquez sur le fichier Internet Explorer ATLAXControl. Un ou plusieurs messages de sécurité s'affichent. Cliquez sur Oui pour lancer la page.

Voir aussi

Référence

Visual C++ (Comment faire dans les projets Smart Device)

Autres ressources

Comment : créer un projet smart device multiplateforme (Visual C++)