Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Mise à jour : novembre 2007
L'exemple DCOM montre comment appeler un objet COM implémenté dans un service Windows à partir de plusieurs clients exécutés sur des ordinateurs différents. Il comprend plusieurs parties :
DrawServ Service Windows qui implémente l'objet COM.
ATLDraw Client qui se connecte à l'objet COM DrawServ.
DrawCtl Version du contrôle de ATLDraw. Elle contient une méthode Connect (qui prend un paramètre de type chaîne représentant un nom d'ordinateur), une méthode Disconnect et une méthode Clear.
MFCCont Conteneur MFC pour DrawCtl. Entrez le nom du serveur (éventuellement distant) sans guillemets ni barres obliques.
ATLCont Conteneur ATL pour DrawCtl. Entrez le nom du serveur (éventuellement distant) sans guillemets ni barres obliques.
Pour que cet exemple puisse fonctionner, tous les ordinateurs doivent exécuter Windows 2000 ou une version ultérieure.
Comparez cet exemple à l'exemple DCOM ATL.
Note de sécurité : |
|---|
Cet exemple de code est fourni pour illustrer un concept et ne doit pas être utilisé dans des applications ou des sites Web, car il peut ne pas illustrer les pratiques de programmation les plus sûres. Microsoft n'assume aucune responsabilité pour tout dommage indirect ou consécutif en cas d'utilisation de l'exemple de code à des fins autres que celles prévues. |
Pour obtenir des exemples et des instructions d'installation :
Dans le menu ? (Aide) de Visual Studio, cliquez sur Exemples.
Pour plus d'informations, consultez Recherche des fichiers d'exemple.
La liste la plus récente et la plus complète d'exemples est disponible en ligne à partir de la page d'exemples Visual Studio 2008.
Des exemples sont également disponibles sur le disque dur de votre ordinateur. Par défaut, des exemples et un fichier Readme sont copiés dans un dossier sous \Program Files\Visual Studio 9.0\Samples\. Pour les éditions Express de Visual Studio, tous les exemples sont accessibles en ligne.
Génération et exécution de l'exemple
Pour générer et exécuter cet exemple
Ouvrez la solution dcom.sln.
Générez les exemples DrawServ et ATLDraw.
Copiez Drawserv.exe et ATLdraw.exe sur chaque ordinateur à partir duquel vous souhaitez exécuter l'exemple. Inscrivez le serveur sur chaque ordinateur en exécutant DrawServ sur la ligne de commande avec l'argument /RegServer ou -RegServer (ne respecte pas la casse). Par exemple :
DrawServ /RegServer(Register.dll doit être inscrit pour que ce code fonctionne.) Vous devez copier le serveur sur chaque client parce que le CLSID du serveur et la bibliothèque de types du serveur doivent être inscrits sur chaque client.
Démarrez le service sur le serveur à l'aide de l'icône Services du Panneau de configuration.
Utilisez DCOMCNFG sur chaque client pour sélectionner les Propriétés de la classe DrawServ. Sous l'onglet Emplacement, activez la case à cocher Exécuter l'application sur l'ordinateur suivant, puis entrez le nom de l'ordinateur sur lequel vous exécutez l'objet serveur. Désactivez la case à cocher Exécuter l'application sur cet ordinateur.
Exécutez ATLDraw et sélectionnez Server. Effectuez la connexion à partir du menu sur chaque client. Dessinez dans la fenêtre client en maintenant le bouton gauche de la souris enfoncé pour tracer une ligne. La ligne que vous dessinez doit s'afficher sur tous les clients connectés au même serveur. Vous pouvez également utiliser l'option Couleur du menu Affichage pour changer la couleur sur chaque client.
Si vous rencontrez un problème pour vous connecter à un serveur distant (par exemple, si Tstcon32.exe n'appelle pas CoInitializeSecurity), exécutez DCOMCNFG sur le client et ouvrez l'onglet Propriétés par défaut. Affectez à l'option Niveau d'authentification par défaut la valeur Aucun et à l'option Niveau d'emprunt d'identité par défaut la valeur Anonyme.
Voir aussi
Tâches
DCOM, exemple : illustre l'appel d'un objet COM à distance
Note de sécurité :