|
| |
Title: Introduction to COM using C++
This 2-day course is intended to give students an introduction to COM in
anticipation of DCOM.
Prerequisites
This course assumes that you have a good knowledge of programming using C++
Description
This course emphasizes the merits and fundamentals programming using C++. It
starts out with identifying the problems with client-server software on the
internet such as version independence, CPU vendor independence, OS vendor
independence, application vendor independence and so on... The remainder of the
course identifies how COM and DCOM solve these problems.
Learning Objectives
 | Identify the merits and perils of COM |
 | Learn how to create basic COM clients and servers with and without the ATL
Wizard |
Course Duration: 2 days
Topics
 | Introduction to COM
 | The Intranet problem |
 | The Intranet solutions: RPC, CORBA, COM & Java |
 | How does DCOM solve the Intranet problem? |
|
 | Internationalization
 | Problem: Too many alphabets |
 | Solutions
 | Unicode |
 | Same source code for Unicode v. ANSI |
 | Converting ANSI to/from Unicode and back |
|
|
 | Fundamentals of COM
 | Version independence |
 | New clients call old servers (and vice versa)
 | NO recompilation |
 | NO relinking |
|
 | Language independence
 | Platform independence |
 | Distributed COM (DCOM) |
 | How do COM applications achieve this independence? |
|
|
 | COM Client Programming
 | COM Interfaces
 | Perils & merits of custom COM interfaces |
 | Basic concepts: usage counts, ProgID, CLSID |
 | Create a COM client |
|
 | Microsoft implementations
 | Automation: IDispatch |
 | Storing object: IStorage, IStream & ILockBytes |
 | Object Linking: IMoniker |
 | ClipBoard: IDataObject |
|
|
 | COM Server Programming
 | Introduction
 | Three different approaches
 | ATL (ActiveX Template Library) |
 | MFC & AppWizard |
 | Write the code yourself |
|
 | Registering DLL COM servers |
 | GUIDGEN |
 | COM replacements for new
 | CoCreateInstance |
 | Class factories classes |
|
 | EXE servers v. DLL servers |
|
 | Writing DLL Servers |
 | Writing EXE Servers |
|
|