Ejemplo DCOM: llama a un objeto COM en un servicio de Windows desde varios clientes

Actualización: noviembre 2007

El ejemplo DCOM muestra cómo llamar a un objeto COM implementado en un servicio de Windows desde múltiples clientes que se ejecutan en diferentes equipos. Consta de varias partes:

  • DrawServ   El servicio de Windows que implementa el objeto COM.

  • ATLDraw   El cliente que se conecta al objeto COM DrawServ.

  • DrawCtl   Una versión de ATLDraw en forma de control. Tiene los métodos Connect (que utiliza un parámetro de cadena de nombre del equipo), Disconnect y Clear.

  • MFCCont   Un contenedor MFC para DrawCtl. Escriba el nombre del servidor (posiblemente remoto) sin comillas ni barras diagonales.

  • ATLCont   Un contenedor ATL para DrawCtl. Escriba el nombre del servidor (posiblemente remoto) sin comillas ni barras diagonales.

Todos los equipos deben ejecutar Windows 2000 o posterior para que este ejemplo funcione.

Compare este ejemplo con el Ejemplo DCOM de ATL.

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 consecuenciales en caso de que el código de ejemplo se utilice para otros 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 este ejemplo

  1. Abra la solución dcom.sln.

  2. Genere los ejemplos DrawServ y ATLDraw.

  3. Copie Drawserv.exe y Atldraw.exe en cada equipo desde el que desee ejecutar el ejemplo. Registre el servidor en cada equipo ejecutando DrawServ con el argumento de línea de comandos /RegServer o -RegServer (no se distinguen mayúsculas y minúsculas). Por ejemplo:

    DrawServ /RegServer
    

    (Register.dll debe estar registrado para que esto funcione.) La razón por la que tiene que copiar el servidor en cada cliente es que el CLSID para el servidor y la biblioteca de tipos del servidor debe estar registrado en el cliente.

  4. Inicie el servicio en el servidor utilizando el icono Servicios del Panel de control.

  5. Utilice DCOMCNFG en cada cliente para seleccionar las propiedades de la clase DrawServ. En la ficha Ubicación, seleccione Ejecutar la aplicación en el siguiente equipo y, a continuación, escriba el nombre del equipo en el que está ejecutando el objeto servidor. Desactive la casilla Ejecutar la aplicación en este equipo.

  6. Ejecute ATLDraw y seleccione Servidor. Establezca una conexión desde el menú de cada cliente. Dibuje en la ventana del cliente manteniendo presionado el botón primario del mouse (ratón) y arrastrando una línea. La línea dibujada debería aparecerá en cada cliente que también esté conectado al mismo servidor. También puede utilizar el comando Color del menú Ver para cambiar el color de cada cliente.

  7. Si hay algún problema para conectar con un servidor remoto (por ejemplo, si Tstcon32.exe no llama a CoInitializeSecurity), ejecute DCOMCNFG en el cliente y abra la ficha Propiedades predeterminadas. Establezca el valor de Nivel de autenticación predeterminado en Ninguno y el valor de Nivel de suplantación predeterminado en Anónimo.

Vea también

Tareas

Ejemplo DCOM: muestra la llamada remota a un objeto COM

Referencia

Compiler COM Support

Otros recursos

Ejemplos de compatibilidad con COM del compilador