CSE775 - Distributed Objects

Lecture #23 - Automation using IDispatch

Scriptable Components

Web Resources:

Linux Tutorials eclipse Code Project SysInternals Best SysInternals Tools Dr. Dobb's Journal Windows Forms COM at MSDN IDL Language base MIDL types OLE data types IDL attributes MIDL data types MIDL Language Reference

Content:

In this lecture we discuss COM Automation.

  1. Syllabus describes topics to be covered, reading material for you to digest before coming to class, and due dates for the assigned projects.
  2. Vijay's port of Blocking Queue to Linux

    Blocking Queue for Linux
    You will find this useful for Project #2 and many of the Project #3s.

  3. Yun's port of Sockets to Linux

    Sockets for Linux
    Yun Xing ported the full Socket Communicator from CoreTechnologies. That fits well with Project #2, but is much more than what is needed for all the Tiny Web Server related Project #3s. I'm suggesting using the Sockets, Threads, and Locks she ported while omitting the Communicator. She also has a port of the BlockingQueue.

  4. Ajax Demo

    Ajax Demo
    This demo illustrates how to make Ajax calls using the jQuery JavaScript library. You may find this useful for the Tiny Web Server based projects.

  5. Automation - Road to ActiveX Controls:
    Automation Presentation
    This presentation discusses the standard COM IDispatch interface.

    Raw C++ Automation Project using IDispatch, Automation class diagram
    Here, an automation server is build with ATL and its client is build in C++ without using MFC or ATL. This too is somewhat complicated, although not as bad as the Connection Point example below.

    Connectable Objects
    Introduction to Connection Points.
    Connection Points Demo - Simple ATL Object with callbacks to C# client
    Step-by-Step Connection Points

  6. ActiveX Controls:

    ActiveX Controls Presentation
    ActiveX controls have many duties to their containers and the user. A full control supports an enormous number of interfaces.
    ActiveX Control Demo with properties and connection points
    Step-by-Step ActiveX Controls