(<img height='1' width='1' border='0' src="http://www.googleadservices.com/pagead/conversion/1072619999/?value=1&label=Lead&script=0" />)
F1
About F1Course ScheduleOther ServicesSite MapContactHome

Mastering COM Development Using Microsoft Visual C++ (Classroom View)

Exchange Server
Office (inc Access)
SQL Server
Visual Studio .NET
Windows
Web Development
Visual FoxPro
Programming
Business
Knowledge Management
Certification
Learning Options
Reserve a Place
No scheduled Course : Contact for Details
View Other Courses in Same Category

Module 1: Introduction to COM

  • Issues surrounding software development that the Component Object Model attempts to address.
Skills
  • List and explain the problems that confront component software developers today.
  • List and explain attempted solutions to traditional component software development.
  • Explain the drawbacks of various solutions to component software development.
  • List the solutions that COM provides for component software development problems.
Top

Module 2: Creating a Client of a COM Object

  • Creating a COM object client using C++
  • Lab: Registering a COM object
  • Lab: Creating a client of a COM object
Skills
  • Explain how COM uses strings.
  • Write code to initialize and uninitialize COM services.
  • Explain CLSIDs, ProgIDs, their use in the registry, and how COM system services and client applications use them.
  • Write code that creates and uses a simple COM object.
Top

Module 3: Creating a COM Object

  • Fundamentals of COM
  • Creating a simple COM object
  • Lab: Creating a simple COM object
  • Lab: Writing code that creates and uses a simple COM object
  • Lab: Coding the WinMain function for an out-of-process COM object server
  • Lab: Writing a registry file
Skills
  • Explain the concept of immutability in relation to interfaces.
  • Describe the purpose of the IUnknown interface.
  • List and describe the three methods of the IUnknown interface.
  • Explain reference counting and its implications.
  • Explain, generate, and use a globally unique identifier (GUID).
  • Derive a C++ class from an interface and implement all required methods.
  • Create a class factory for a COM object.
  • Explain the difference between a COM object and a COM object server.
  • Write code for the WinMain function of a simple COM object.
  • Register a COM object.
  • Add code to the registry functions for COM to support self-registration.
  • Create a registry (.reg) file and manually register an object.
Top

Module 4: Implementing Multiple Interfaces

  • Techniques to implement COM objects with multiple interfaces
  • Lab: Adding an interface to an object by using multiple inheritance
  • Lab: Modifying IUnknown::QueryInterface to reflect added interfaces
  • Lab: Calling QueryInterface in a client application to obtain additional interfaces
Skills
  • Use multiple inheritance to add a second interface manually to a simple COM object.
  • Add code for a second interface to the QueryInterface method.
  • Create a client that will use a COM object that has multiple interfaces.
  • Explain the VTBL layout of a COM object that supports multiple inheritance.
Top

Module 5: Introduction to the Active Template Library

  • Structure, primary features, and basic use of the Active Template Library in creating COM components
  • Using the Visual C++ extensions to create a client of a COM object
  • Lab: Using ATL COM AppWizard to create the shell for a COM object
  • Lab: Using ATL Object Wizard to add a simple COM object to the ATL project
  • Lab: Manually adding existing interfaces to the COM object server
  • Lab: Using C++ extensions and smart pointers to create a COM object client application
Skills
  • Use ATL COM AppWizard to create a COM object server.
  • Use ATL Object Wizard to add a simple COM object with a custom interface to an ATL COM project.
  • Use Visual C++ extensions to facilitate writing a COM client application.
  • Manually add an interface to an ATL COM project.
  • Describe the following items in an ATL COM project: COM map, Object map, CComModule, CComObjectRoot, and CComCoClass.
Top

Module 6: Automation

  • Creating COM components that support automation
  • Using IDispatch to implement automation
  • Dispinterfaces
  • Early and late binding
  • Interface Definition Language (IDL) basics
  • Lab: Using OLE/COM Object Viewer to locate and browse type libraries
  • Lab: Defining properties and methods in IDL for a dispinterface
  • Lab: Using the MIDL compiler to compile IDL into type libraries
Skills
  • Add properties and methods to a COM object.
  • Identify which data types can be passed with automation.
  • Create a type library.
Top

Module 7: Dual Interfaces

  • Improving efficiency of automation interfaces by turning them into dual interfaces
  • Lab: Creating an ActiveX technology component that supports automation using the ATL wizards
Skills
  • Explain the difference between dispinterfaces, custom interfaces, and dual interfaces.
  • Define a dual interface, with its properties and methods, in Interface Definition Language.
  • Explain the benefits and limitations of dual interfaces.
  • Create a dual interface with the ATL.
Top

Module 8: Adding Events

  • Using ATL classes to add events to a COM object and to an MFC client of the COM object
  • Lab: Creating a COM object that fires an event
  • Lab: Creating a client that receives an event fired by a COM object
Skills
  • Add event firing to an ATL-generated COM object.
  • Add an event-handling interface to a MFC-built COM client.
  • Explain how events work in COM from a server and client perspective.
Top

Module 9: Creating an ActiveX Control

  • Creating an ActiveX control using ATL
  • Basic parts of ATL used to make an ActiveX control work, such as the message map and the OnPaint method
  • Different property types, such as ambient properties and stock properties
  • Creating a property page
  • Lab: Creating an ActiveX control with ATL Object Wizard
  • Lab: Adding a stock property, custom property, custom method, and custom event
  • Lab: Reusing an existing window class
Skills
  • Create a control with ATL.
  • Modify the OnDraw method to draw graphical output for a control.
  • Create a property page.
  • Read ambient properties.
Top

Module 10: Object Reuse in COM

  • Reusing objects in COM through containment and aggregation
  • Differences between inheritance and aggregation
  • Differences between implementation inheritance and interface inheritance
  • Reuse through COM containment
  • Reuse through COM aggregation
  • Creating an aggregated object using ATL
  • Lab: Using ATL to create a COM object that can be aggregated
  • Lab: Using ATL to create a COM object that aggregates another COM object
Skills
  • Explain the difference between implementation inheritance and interface inheritance.
  • Explain the difference between COM containment and COM aggregation.
  • Create an aggregated object with ATL.
Top

Module 11: Custom Interfaces

  • Creating and marshaling custom interfaces
  • Creating a proxy/stub dynamic-link library (DLL) to marshal a custom interface
  • How the standard marshaling architecture works in COM
  • Lab: Creating a custom interface with ATL
  • Lab: Creating a proxy/stub DLL for a custom interface
  • Lab: Using the default allocator in COM to allocate and free memory dynamically
  • Lab: Writing IDL syntax to pass arrays efficiently
Skills
  • Explain why custom interfaces are necessary.
  • Create a custom interface in ATL that works across process boundaries.
  • Describe the process used by a proxy/ stub DLL to marshal data types.
  • Explain why marshaling creates memory management and distribution issues.
  • Create a proxy/stub DLL using ATL.
Top

Module 12: Threading Models

  • COM threading models
  • How mixed threading models with in-process and out-of-process clients and servers can cause marshaling issues
  • Lab: Identify which threading model combinations are most efficient, and which are the least efficient
  • Lab: Identify which threads can be called from a client to a server with different threading model scenarios
Skills
  • Explain the differences between single-threaded applications, single-threaded apartment models, and multithreaded apartment models.
  • Explain how mixing threading models with in-process and out-of-process servers can cause marshaling issues.
  • Identify the registry keys for threading models.
Top

Module 13: Collections

  • Creating and using enumerator components to create an object model
  • Creating an object model consisting of both public and private objects via COM services or some internal creation method
  • Lab: Creating a collection that contains COM objects
  • Lab: Creating a client that uses a collection
Skills
  • Add single and multilevel property collections to an ATL-built COM object.
  • Write client-side code in C++ for iterating over collections.
  • Create and use enumerator objects.
Top

Module 14:

Top

Exams:

  • There are no exams directly associated with this course

Price Options ex VAT:

Classroom Training
?
Distance Learning
?
eLearning Options
?
Book Learning
?
£ 1750
(2486)
£ 995.00
(1413)
- No Books Supported for Course at present

Call Free on 0800 169 1890
Print 2 Page Flyer
Last Modified 01 May 2008