CSE775 - Distributed Objects

Lecture #17 - ActiveX Controls

Revised: 23 March 2008
Home Courses Code Handouts CoreTech Books Articles Math Research Masters Projects SWDev WebDev News OtherLinks SiteDesign Graduates AllPages Office Hours Notices Contents

CSE681-SWMAA CSE686-IP CSE687-OOD CSE775-DO CSE776-DP CSE778-AWP CSE784-SWS

Lecture #01 Lecture #02 Lecture #03 Lecture #04 Lecture #05 Lecture #06 Lecture #07
Lecture #08 Lecture #09 Lecture #10 Lecture #11 Lecture #12 Lecture #13 Lecture #14
Lecture #15 Lecture #16 Lecture #17 Lecture #18 Lecture #19 Lecture #20 Lecture #21
Lecture #22 Lecture #23 Lecture #24 Lecture #25 Lecture #26 Lecture #27 Lecture #28

Contents Syllabus

Web Resources:

Code Project Win32, COM, MFC DevelopMentor Windows Developer's Journal Windows Forms GotDotNet C# Corner IDL and WDSL COM at MSDN IDL Language base MIDL types OLE data types IDL attributes MIDL data types MIDL Language Reference conversion functions

Office Hours: Instructor & TAs

Content:

This lecture reviews Automation and Connection Points, the infrastructure for COM events, and introduces ActiveX Controls.
  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. Project #2, Project #3, Project #4
  3. Threads Help
    Help with Win32 and C# threads and synchronization.
  4. Automation Presentation
    This presentation discusses the standard COM IDispatch interface.
  5. Raw C++ Automation Project using IDispatch
    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.
  6. Connectable Objects
    Introduction to Connection Points.
  7. Raw C++ Connection Points Project
    This project demonstrates how to build a Connection Point server and client in C++ with using MFC or ATL. It also demonstrates why you don't want to do that.

    You'll find notes on how to build in connection points using ATL in the AxDemo notes below and the associated AxDemo Implementation notes below.
  8. ActiveX Controls Presentation
    ActiveX controls have many duties to their containers and the user. A full control supports an enormous number of interfaces
  9. AxDemo notes
  10. AxDemo Implementation
    AxDemo client
  11. C# and COM Interoperation
    This project demonstrates a C# form using an ActiveX control, developed with C++, using ATL. Both Connection Points and COM standard Error Handling are demonstrated.

    C# Form-based programs can easily use simple COM objects in conventional Client/Server configurations. However, if we want the Form to respond to COM events from the control, we require more than just adding Connection Points to the component. In order to see the COM events in our Form's property view, we need to construct a full ActiveX control.
  12. Lecture #9 folder
    Contains a page of links to presentations and code discussed in this class. The Lecture folders will occasionally hold physical files of interest as well. Usually, however, all the materials of interest to the class are in the presentations and code folders. The contents of these folders will grow as you progress through the course.