Home

Courseware

Course
Listing

Instruction

Philosophy

Clients

Publications

Résumé

Custom DCOM Interfaces using ActiveX Template Library

Summary: In contrast to most classes on COM/OLE/ActiveX that focus on the graphical user interface (such as controls, drag & drop etc...), this class focuses on creating custom COM interfaces with the ActiveX Template Library (ATL) for distributed asynchronous computing.

Course Outline:

Overview & Introduction to COM & ATL

Overview of ATL
MFC v. ATL
Why use ATL? When to use ATL?
Fundamentals of COM
Goals of COM
The Problem COM Solves
Interface Theory
Components
HRESULTS, GUIDS, Registry
Custom COM Interfaces for Clients
Perils & Merits of Custom COM interfaces
Basic Concepts
Usage Counts
ProgIDs & CLSID
Create a Client for Custom COM interface
Identify the necessary function calls
Implement a client
Custom COM Interfaces for DLL Servers
Class Libraries: ATL v. MFC v. Your Own
Registering DLL COM Servers
GUIDGEN
COM Replacements for new and delete
EXE Servers v. DLL Servers
Class Factories
Loading DLL
Unloading DLLs
Creating a Custom COM Interface Clients with ATL
Smart Pointers & Usage Counting
Overloaded Operators
C++ Wrappers: ATL and C++ built-in features
Creating a Custom COM Interface Server with ATL
Using the ATL Wizard
Dispatch Maps
Adding Objects, Controls & Interfaces
COM Containment and Aggregation
Containment, Aggregation and Inheritance in
C++ v. COM
Implementing Containment in COM
Implementing Aggregation in COM
The Two IUnkowns
Usage Counting
Blind Aggregation v. Closed
Surveying the ATL Class Library
ATL Classes and Macros
Supporting IDispatch & IErrorInfo
The Tear-Off Interface
Creating ATL ActiveX Controls with No User Interfaces
Using ATL COM objects in an MFC Server
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
Servers in EXEs
Local Procedure Calls
Proxy/Stubs & Marshalling
The Microsoft Interface Description Language
Implementing a Local Server
Remote Procedure Calls with DCOM
Automation: IDispatch, Dual Interfaces & Type Libraries
Using IDispatch
Function Invoke
Automation Parameters
Variants
SAFEARRAY
BSTR
Converting Types
Type Libraries: Creating, Loading, Storing
Dual Interfaces with ATL
Strategies for Implementing Automation
Marshalling
Synchronization of Threads
Threads v. Processes
Synchronization
Events
Mutexes
Semaphore
Critical Sections
MFC Containers
Threads and Fibers
Terms
Kinds of Threads
Worker Threads
User Interface (UI) Threads
Thread Communication
Fibers
Thread Local Memory Management
Thread Local Heaps
Using the TLS services for thread local memory
Using the compiler directive for thread local memory
Managing UI threads with a new class: ThreadFactory
Threading in COM
Apartment v. Free Threads
Out of Process Components
Marshalling and Synchronization
Automatic v. Manual Marshalling
Apartment Threading with COM
Free Threading with COM
Threading Registry Keys




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é