Home

Courseware

Course
Listing

Instruction

Philosophy

Clients

Publications

Résumé

OLE & ActiveX

Summary:This class may also be known as GUI COM or ActiveX because the focus is on the user interfaces built on COM: namely OLE and the Internet Extensions known as ActiveX.

Prerequisites: It requires the student be comfortable with MFC, the Microsoft Development Environment and C++.

Course Outline:

Introduction

Basics
Mapping Modes
MFC Containers
Globally Unique Identifiers (GUID)
Unicode
Compound Document Containers & Servers
Hit Testing & Class CRectTracker
Cut & Paste
Media (Metafiles, Bitmaps...)
The Registry
Example: Implement a simple Compound Document Server/Container
Appendix: Creating an OLE Client & In Process Server w/out AppWizard
Basic Interfaces: IClassFactory, IUnknown
Query Interface
Reference Counting>

Uniform Data Transfer (UDT) and Structured Storage
Drag & Drop, Cut & Paste with the OLE Data Cache
Metafiles
Custom Clipboard Formats
AppWizard Embedded Servers
MFC Class COleServerItem
Two OnDraw Functions
Mapping Modes
AppWizard Containers
Constraints
MFC Class: COleClientItem, COleDocument, COleDocItem
Methods
Structured Storage: Storages & Streams
In-Place Activation
Appendix: Implementing Structured Storage w/out AppWizard
Interfaces: IPersistStorage, IStorage,
Appendix: InPlace Activation w/out AppWizard
Interfaces: IViewObject2, IDataObject, IOleObject, IAdviseSink
Appendix: Linking & Monkers
The IMoniker Interface
Automatic v. Manual
The IROTVIEW Tools
OLE Automation
IDispatch v. Custom Interfaces
A Server with no Display
Adding a Display to a Server
Adding an Automation (IDispatch) Interface to a Application
Automation Controllers
Passing Arguments
By Reference, By Value
Arrays
Basic Strings (BSTRs)
Safe Arrays
Variants
Appendix: Beyond Appwizard
The IDispatch Interface
Dual Interfaces
Accommodating Other Localities (German, French...)
Accommodating other Argument Data Types

OLE Controls
Persistence
Properties and Property Pages
Data Binding
Events


Introduction to COM & ATL
Overview of ATL
MFC v. ATL
Why use ATL? When to use ATL?
Creating an ATL Server
Creating an ATL Client
Adding Objects, Controls & Interfaces
Fundamentals of ATL COM Objects
Implementing CComObjectRootEx, CComObject, CComAggObject & CComPolyObject
Supporting IDispatch & IerrorInfo
Changing the Default Class Factory & Aggregation Model
Creating an Aggregate
ATL Windows Classes
Message Maps
Implementing a window with CWindoImpl
Implementing a Dialog Box
ATL Enumerators
Implementing Enumerators in COM
Using CComEnum, _Copy, CcomIEnum & CcomIEnumImpl
Debugging Tips for ATL Objects
Using DebugBreak
Enabling QueryInterface & Reference Count Debugging
NT & Win95 Services
What is a Service? Why use one?
Win95 Services v. NT Services
Implementing Services using ATL: Start, ServiceMain, Run, Handler
Registry Entries
The ATL Registry Component
Creating Scripts
The Registrar Scripting Language Syntax
Replaceable Parameters
Invoking Scripts
Setting up a Static Link




Please contact Sieg to arrange for rapid, custom courseware development, or to inquire about his availability to deliver training to your organization: Phone 303-494-5509, Email siegfried@heintze.com.


Siegfried Heintze
(303) 494-5509
www.heintze.com
siegfried@heintze.com



Home ||| Courseware ||| Course Listing ||| Instruction
Philosophy ||| Clients ||| Publications ||| Résumé