Ejemplo CALCDRIV: muestra una aplicación de cliente de automatización

Actualización: noviembre 2007

El ejemplo CALCDRIV es una sencilla aplicación de cliente de automatización (antes automatización OLE). CALCDRIV controla la aplicación de ejemplo MFCCALC, que es un servidor de automatización que proporciona funciones de calculadora básicas. MFCCALC tiene una sencilla interfaz de calculadora similar a la aplicación Calculadora que incluye Microsoft Windows.

Nota de seguridad:

Este código de ejemplo se proporciona para ilustrar un concepto y no debe utilizarse en aplicaciones o sitios Web, ya que quizás no ilustre las prácticas de codificación más seguras. Microsoft no asume ninguna responsabilidad por daños incidentales o consecuentes en caso de que el código de ejemplo se utilice para propósitos distintos de aquellos para los que se concibió.

Para obtener ejemplos e instrucciones para su instalación:

  • En el menú Ayuda de Visual Studio, haga clic en Ejemplos.

    Para obtener más información, vea Localizar archivos de ejemplo.

  • La lista de ejemplos completa con la versión más reciente está disponible en línea en la página Visual Studio 2008 Samples.

  • También encontrará ejemplos en el disco duro de su equipo. De manera predeterminada, los ejemplos y el archivo Léame se copian en una carpeta bajo \Archivos de programa\Visual Studio 9.0\Samples\. Para las versiones Express de Visual Studio, todos los ejemplos están en línea.

Generar y ejecutar el ejemplo

Para generar y ejecutar el ejemplo CALCDRIV

  1. Siga las instrucciones de MFCCALC para generar y ejecutar este proyecto.

  2. Abra la solución calcdriv.sln

  3. En el menú Generar, haga clic en Generar.

    Nota:

    Si no genera y registra MFCCALC antes de generar CALCDRIV, puede obtener el mensaje "No se puede crear el objeto 'MFCCALC.Application'".

Cuando ejecute CALCDRIV, aparecerá el cuadro de diálogo Controlador de calculadora de la biblioteca MFC (Microsoft Foundation Class) y se iniciará la aplicación MFCCALC. Puede utilizar la interfaz de usuario de la calculadora MFCCALC directamente en este punto; o bien, puede controlar MFCCALC desde CALCDRIV como se muestra a continuación:

  1. En el cuadro Expresión del controlador de calculadora MFC, escriba dos o más números separados por el operador +, -, * o /.

    Nota:

    MFCCALC no interpreta los paréntesis y no implementa la prioridad de los operadores.

  2. Haga clic en Buscar para que MFCCALC evalúe la expresión en un paso.

  3. Haga clic en Un paso para ver la expresión a un número u operador cada vez.

  4. Haga clic en Actualizar para solicitar información de estado de MFCCALC (Última acumulación y Último operando).

Utilizar una clase de envío

CALCDRIV utiliza la clase CRemoteCalcDlg como se explica a continuación:

  • La clase CRemoteCalcDlg de CALCDRIV representa la interfaz de envío de MFCCALC. Se deriva de CCmdTarget, que tiene algunas funciones de miembro específicas de automatización, como CreateDispatch.

  • CDriverDlg incrusta un objeto CRemoteCalcDlg, m_calc. Este objetoCRemoteCalcDlg, al igual que el objeto CDriverDlg en el que está incrustado, está activo casi el mismo tiempo que CALCDRIV. El cuadro de diálogo CRemoteCalcDlg se crea cuando se construye el objeto cuadro de diálogo.

  • CDriverDlg::OnInitDialog llama a CCmdTarget::CreateDispatch para el objeto CRemoteCalcDlg. CreateDispatch requiere el nombre del envío como primer parámetro. Normalmente, el desarrollador de una aplicación de servidor de automatización proporciona documentación con descripciones de los nombres de las interfaces de envío, así como las propiedades y los métodos de las interfaces. Otro modo de encontrar los nombres de las interfaces de envío de una aplicación de servidor de automatización es buscar en el registro de Windows del servidor al utilizar REGEDIT /v (opción de información detallada).

  • CDriverDlg implementa el evaluador de expresiones de CALCDRIV al llamar al método Button de MFCCALC, que es un emulador de los botones del cuadro de diálogo de la calculadora.

  • CDriverDlg implementa la función Refresh de CALCDRIV mediante llamadas a los métodos GetOpnd y GetAccum de MFCCALC.

  • El destructor CDriverDlg llama al método Quit expuesto por MFCCALC para cerrar MFCCALC cuando se cierra CALCDRIV.

Palabras clave

En este ejemplo, se muestra el uso de las siguientes palabras clave:

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

Nota:

Algunos ejemplos, como éste, no se han modificado para reflejar los cambios en los asistentes, las bibliotecas y el compilador de Visual C++, pero, aun así, muestran cómo realizar la tarea deseada.

Vea también

Otros recursos

Ejemplos de MFC