Partager via


CALCDRIV, exemple : illustre une application cliente Automation

Mise à jour : novembre 2007

L'exemple CALCDRIV est une application cliente Automation (précédemment OLE Automation) simple. CALCDRIV pilote l'exemple d'application MFCCALC, qui est un serveur Automation assurant des fonctions de calculatrice de base. MFCCALC présente une interface de calculatrice simple ressemblant à l'application Calculatrice fournie avec Microsoft Windows.

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 Visual Studio 2008 Samples.

  • Des exemples sont également disponibles sur le disque dur de votre ordinateur. Des exemples et un fichier Readme sont stockés par défaut dans un dossier sous \Program Files\Visual Studio 9.0\Samples\. Pour les éditions Express de Visual Studio, tous les exemples sont disponibles en ligne.

Génération et exécution de l'exemple

Pour générer et exécuter l'exemple CALCDRIV

  1. Suivez les instructions fournies par MFCCALC pour générer et exécuter ce projet.

  2. Ouvrez la solution calcdriv.sln.

  3. Dans le menu Générer, cliquez sur Générer.

    Remarque :

    Si vous ne générez ni n'inscrivez MFCCALC avant de générer CALCDRIV, vous obtenez le message "Impossible de créer l'objet 'MFCCALC.Application'".

Lorsque vous exécutez CALCDRIV, la boîte de dialogue Calc Driver de la bibliothèque MFC (Microsoft Foundation Class) s'affiche et l'application MFCCALC est lancée. À ce stade, vous pouvez directement utiliser l'interface utilisateur de la calculatrice MFCCALC ou piloter MFCCALC à partir de CALCDRIV, de la façon suivante :

  1. Dans la zone Expression de la boîte de dialogue Calc Driver MFC, entrez au moins deux nombres séparés par l'opérateur +, -, * ou /.

    Remarque :

    MFCCALC n'interprète pas les parenthèses et n'applique pas la priorité des opérateurs.

  2. Cliquez sur Go pour demander à MFCCALC d'évaluer l'expression en une étape.

  3. Cliquez sur Single Step pour exécuter l'expression en traitant un seul nombre ou opérateur à la fois.

  4. Cliquez sur Refresh pour obtenir des informations d'état pour MFCCALC (Last Accum et Last Operand).

Utilisation d'une classe dispatch

CALCDRIV utilise la classe CRemoteCalcDlg de la façon suivante :

  • La classe CRemoteCalcDlg de CALCDRIV représente l'interface de dispatch de MFCCALC. La classe CRemoteCalcDlg est dérivée de CCmdTarget, qui comporte quelques fonctions membres spécifiques à l'Automation, telles que CreateDispatch.

  • CDriverDlg incorpore un objet CRemoteCalcDlg, m_calc. L'objet CRemoteCalcDlg, comme l'objet CDriverDlg dans lequel il est incorporé, reste actif pendant presque toute la durée de CALCDRIV. CRemoteCalcDlg est construit au moment de la construction de l'objet dialog.

  • CDriverDlg::OnInitDialog appelle CCmdTarget::CreateDispatch pour l'objet CRemoteCalcDlg. CreateDispatch demande le nom de répartition en tant que premier paramètre. En général, le développeur d'une application serveur Automation fournit la documentation décrivant les noms des interfaces de dispatch et les propriétés et méthodes des interfaces. Une autre méthode de rechercher les noms des interfaces de dispatch d'une application serveur Automation consiste à consulter l'inscription Windows du serveur, à l'aide de REGEDIT /v (option "Commentaires").

  • CDriverDlg implémente l'évaluateur d'expression de CALCDRIV en appelant la méthode Button de MFCCALC, qui est l'émulateur des différents boutons de la boîte de dialogue de la calculatrice.

  • CDriverDlg implémente la fonction Refresh de CALCDRIV en appelant les méthodes GetOpnd et GetAccum de MFCCALC.

  • Le destructeur CDriverDlg appelle la méthode Quit exposée par MFCCALC pour arrêter MFCCALC lorsque CALCDRIV ferme.

Mots clés

Cet exemple illustre l'utilisation des mots clés suivants :

AfxMessageBox ; AfxOleInit ; CDialog::DoModal ; CDialog::EndDialog ; CDialog::OnInitDialog ; CEdit::GetSel ; CEdit::SetSel ; COleDispatchDriver::AttachDispatch ; COleDispatchDriver::CreateDispatch ; COleDispatchDriver::GetProperty ; COleDispatchDriver::InvokeHelper ; COleDispatchDriver::SetProperty ; CString::GetLength ; CWinApp::InitInstance ; CWnd::DoDataExchange ; CWnd::GetWindowText ; CWnd::SetWindowText ; GetWindowText ; afxMemDF ; min ; wsprintf

Remarque :

Certains exemples, tels que celui-ci, n'ont pas été modifiés pour refléter les changements apportés aux Assistants, aux bibliothèques et au compilateur Visual C++, mais ils illustrent bien l'exécution de la tâche souhaitée.

Voir aussi

Autres ressources

Exemples MFC