Compartir a través de


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

Actualización: noviembre 2007

El ejemplo IPDRIVE es una aplicación sencilla cliente de automatización (antes automatización OLE) que controla la aplicación de ejemplo INPROC. Prueba la funcionalidad que proporciona INPROC, un servidor en curso de automatización. IPDRIVE puede controlar la versión en curso y la versión de servidor local o inactivo de INPROC, lo que muestra las ventajas de rendimiento de los componentes en curso. Vea el ejemplo INPROC para obtener más información.

Nota:

Antes de ejecutar IPDRIVE, debe ejecutar la aplicación de ejemplo INPROC para que INPROC se registre en el Registro.

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 IPDRIVE

  1. Siga las instrucciones para ejecutar, generar y registrar el ejemplo INPROC.

  2. Abra la solución ipdrive.sln.

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

  4. Ejecute IPDRIVE una vez como aplicación independiente para que se registre en el sistema.

    Cuando ejecute IPDRIVE, cargará el ejemplo INPROC y creará un objeto de mapa de variantes que puede manipular mediante la interfaz IPDRIVE.

Un objeto de mapa de variantes es muy similar a la colección CMap de MFC. Se utiliza para asignar un valor arbitrario a otro valor arbitrario. Cada valor es un VARIANT, que consta de un tipo y un valor. La interfaz de usuario de IPDRIVE permite tener acceso al tipo y al valor. Cualquier par de tipo y valor se puede asignar a otro par de tipo y valor.

IPDRIVE proporciona también dos botones, Prueba1 y Prueba2, que se pueden utilizar para probar el rendimiento de la aplicación de servidor INPROC. En su mayor parte, estas funciones prueban la sobrecarga de llamadas a funciones de automatización. La sobrecarga de llamadas a funciones debe ser mayor con las versiones de servidor local de INPROC que con las versiones de servidor en curso. Un servidor local se ejecuta en su propio espacio de dirección como un ejecutable diferente. Como tal, requiere una llamada a un procedimiento remoto (RPC) para tener acceso a los métodos y propiedades de sus objetos. Un servidor en curso, sin embargo, se carga como una DLL en el espacio de dirección del cliente y no requiere una llamada a un procedimiento remoto. Los botones Prueba1 y Prueba2 se ejecutan durante cinco segundos exactamente y después muestran el número de llamadas. Cuantas más llamadas, mejor es el rendimiento.

INPROC puede contener una colección más sencilla (una matriz de cadenas), que no utiliza IPDRIVE.

Palabras clave

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

AfxMessageBox; AfxOleInit; AfxThrowUserException; CArchive::IsStoring; CComboBox::GetCurSel; CComboBox::SetCurSel; CControlBar::EnableDocking; CControlBar::GetBarStyle; CControlBar::SetBarStyle; CDialog::DoModal; CDocument::OnNewDocument; CFrameWnd::DockControlBar; CFrameWnd::EnableDocking; CObject::AssertValid; CObject::Dump; CObject::Serialize; COleDispatchDriver::GetProperty; COleDispatchDriver::InvokeHelper; COleDispatchDriver::SetProperty; CScrollView::ResizeParentToFit; CStatusBar::Create; CStatusBar::SetIndicators; CString::AllocSysString; CString::Format; CString::GetBuffer; CString::LoadString; CString::ReleaseBuffer; CToolBar::Create; CToolBar::LoadBitmap; CToolBar::SetButtons; CView::GetDocument; CView::OnInitialUpdate; CWinApp::AddDocTemplate; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::OnFileNew; CWnd::DoDataExchange; CWnd::GetDlgItem; CWnd::GetParentFrame; CWnd::GetWindowText; CWnd::OnCreate; CWnd::SetDlgItemText; CWnd::SetWindowText; DragAcceptFiles; GetKeyState; GetTickCount; max; 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