GUI MFC/COM
Home Up DCOM Adv COM GUI MFC/COM COM+ DNA Web COM Introduction

Programming COM and OLE Using MFC

This course is a thorough introduction to OLE and ActiveX technology using Microsoft Foundation Class library (MFC). The course also introduces the Active Template Library (ATL). The course emphasizes understanding the fundamental concepts of OLE, including COM, laying a foundation for the effective use of OLE in your applications and for understanding new OLE technologies such as ActiveX. The course presents OLE at both the interface and MFC levels. An overview of the OLE technologies is presented, including a careful examination of the rationale of the OLE approach to developing software using components. The course is hands-on, with extensive laboratory exercises using the Visual C++ development environment. The student will also gain experience using various tools, documentation and sample programs that are furnished with the OLE Software Development Kit (SDK).

The component object model (COM) is presented and compared with the C++ object model, laying a foundation for understanding the basic structure of OLE. Implementation of COM objects is discussed. A custom interface is implemented as a DLL, and a standard interface is implemented as an executable. The use of class factories is studied. The use of the Windows system registry is described for storing the information needed for OLE clients and servers to connect. MFC low level support of COM is covered, including implementation of IUnknown, interface maps, and implementation of class factories. Visual C++ tool support of Automation is leveraged to partially automate the implementation of COM. The Active Template Library (ATL) is introduced, including use of Visual C++ wizard support, to create and use COM objects. Hands-on lab exercises give the student practice in writing both clients and servers using COM.

Automation is introduced, and the Visual C++ and MFC tools are used to build Automation servers and clients. Visual Basic is also used to illustrate how Automation components implemented in one language can be accessed by applications implemented in another language. The use of Object Description Language (ODL) and type libraries for describing Automation interfaces is discussed.

ActiveX controls are introduced, and the student will build an ActiveX control using the Visual C++ Control Wizard and support provided by Class Wizard. The principal features of ActiveX controls are illustrated, including custom, stock and ambient properties, methods, events, property persistence, and property pages. The use of Visual C++ for implementing control containers is presented.

Structured storage and compound files are covered. OLE compound documents architecture is thoroughly explored. Both embedding and linking are described. The implementation of in-place activation is discussed. ActiveX documents are introduced. Extensive laboratory exercises illustrate the development of both OLE compound document container and server applications The OLE Uniform Data Transfer (UDT) technology is described, including the IDataObject interface. The MFC encapsulation of UDT is discussed, and the student will learn how to implement data transfer using both the clipboard and drag and drop.

Course Duration: 5 days

Prerequisites

A basic knowledge of C++ (including virtual functions), Windows architecture, and MFC programming.

Topics

bulletMFC Low Level COM Support
bulletMultiple Interfaces and Nested Classes
bulletCCmdTarget Implementation of IUnknown
bulletInterface Maps
bulletMFC Class Factory Implementation
bulletLeveraging Automation Support
bulletImplementing a COM Object DLL Using MFC
bulletOLE Compound Document Architecture
bulletStructured Storage and Compound Files
bulletPersistent Objects
bulletNative Data and Presentation Data
bulletData Cache and Viewable Objects
bulletObject Handlers
bulletIn-place Activation
bulletOLE and Microsoft Foundation Class Library
bulletDocument/View Architecture
bulletExtensions for OLE Documents
bulletOLE Items
bulletIn Place Frame Windows
bulletImplementing an OLE Document Server with MFC
bulletMini Servers and Full Servers
bulletAppWizard Generated Server Application
bulletExtending the Document Template
bulletDrawing the Server Item
bulletMenus and Toolbars
bulletActiveX Documents
bulletImplementing an OLE Container with MFC
bulletAppWizard Generated Container Applications
bulletSize Negotiation with Server
bulletDrawing Multiple Items
bulletHit Testing and Selection
bulletTracker Rectangles and User Feedback
bulletLinking and Monikers
bulletOLE Naming and Binding Architecture
bulletIMoniker Interface
bulletFile Monikers and Item Monikers
bulletAsynchronous and URL Monikers
bulletRunning Object Table and Linking
bulletPseudo Objects
bulletAutomation
bulletIDispatch Interface
bulletObject Description Language
bulletType Libraries
bulletAppWizard Support for Automation Servers
bulletMethods and Properties
bulletClassWizard Support
bulletVisual Basic Automation Controllers
bulletBuilding an Automation Controller with MFC
bulletSecondary Dispatch Interfaces
bulletActiveX Controls
bulletCustom Controls and VBX Controls
bulletActiveX Control Architecture
bulletMethods, Properties and Events
bulletStock Properties and Ambient Properties
bulletProperty Persistence
bulletProperty Pages
bulletUsing Control Wizard to Build an ActiveX Control
bulletVisual C++ Components and Controls Gallery
bulletActiveX Control Containers with Visual C++
bulletUniform Data Transfer and the Clipboard
bulletUnifying Data Transfer Mechanisms
bulletProgramming Clipboard Data Transfer
bulletClipboard Formats and DOBJVIEW
bulletFORMATETC and STGMEDIUM
bulletDrag and Drop
bulletDrag and Drop User Interface
bulletDrop Sources and Targets
bulletProgramming Drag and Drop Transfers
bulletAppendix A. Learning Resources
bulletAppendix B. Active Template Library
bulletMultiple Interfaces Using Multiple Inheritance
bulletATL COM AppWizard
bulletATL Object Wizard
bulletSpecifying Interfaces Using IDL
bulletUsing Type Libraries with Import Directive
bulletVisual C++ Smart Pointers
Last modified: Fri Jul 21 11:40:11 2000  

 

Home Up Feedback Contents Search

Send mail to webmaster@SIGNITEK.com with questions or comments about this web site.