The Essentials of COM - Part 2

Explore the essentials of the COM runtime. Understand how activation and registration decouple COM clients and servers. Learn about class factories, server lifetime issues, and COM’s remoting architecture.
Course info
Rating
(126)
Level
Intermediate
Updated
Jul 12, 2013
Duration
3h 41m
Table of contents
The Runtime
Activation
Registration
Class Factories
Remoting
Description
Course info
Rating
(126)
Level
Intermediate
Updated
Jul 12, 2013
Duration
3h 41m
Description

This is the second in a series of courses exploring the essentials of COM and the Windows Runtime. In this second course, you are going to learn everything you need to know to understand and use the classic COM runtime. You will learn how to implement COM servers from scratch, including activation through class objects, registration, and class factories. You will learn techniques for reliably registering COM servers with the Kernel Transaction Manager and how to support registration-free activation. You will learn how a COM server keeps track of its lifetime requirements, and how COM clients may schedule COM servers to be unloaded. Finally, you’re going to be introduced to COM’s remoting architecture, including local and remotable interfaces, proxies and stubs, IDL and the MIDL compiler. Having completed these two courses on the essentials of COM, you be in a great position to start learning about the Windows Runtime.

About the author
About the author

Kenny Kerr is a computer programmer and recognized expert in Windows operating system development and programming languages.

More from the author
Windows Runtime Internals
Advanced
2h 41m
Jul 30, 2015
SQLite with Modern C++
Intermediate
2h 33m
Feb 18, 2015
The Essentials of the Windows Runtime
Intermediate
2h 48m
Sep 2, 2014
More courses by Kenny Kerr
Section Introduction Transcripts
Section Introduction Transcripts

The Runtime
Welcome to part two of The Essentials of COM on Pluralsight. My name is Kenny Kerr and in this course I'm going to take you deeper into the world of COM. This course is all about the essentials of the COM runtime In the first part of this course I introduced the fundamentals of COM the stuff you need to know and understand to use the core concepts behind COM namely the INON interface and the C++ Compiler. I had originally planned to do a follow-up course on COM's advanced topics. But there were just so many advanced topics that I decided to focus instead on the essentials of the COM runtime in the second course on COM. So my aim here is not to describe every feature of the Component Object Model rather I'm going to cover those fairly universal COM features that while not essential to COM are widely used to bold COM based applications and use Com based servers provided by the operating system I like to call it the COM runtime because that's what it is but don't get hang up on the name it's been called many things from the COM library to DCOM or just plain COM it really doesn't matter but there are some essential ingredients runtime services provided by the operating system that take COM beyond just INON. In this overview I'm going to give you an overview of this COM runtime facilities the rest of the course will walk you through this layers one by one by the end of this course you should have a very clear understanding of how the COM runtime works and be in a good position to start learning about the Windows runtime the topic of the next course in this series.

Activation
Welcome back to part two of the essentials of COM on Pluralsight. My name is Kenny Kerr and in this module I'm going to take you from the static form of activation that I described in part one of this course to a more dynamic form of activation that frees the application from having to know exactly how a COM sever is packaged and deployed. The first step to understanding activation is to appreciate the client server model that the com run time prescribes, and how clients and servers interact.

Registration
Welcome back to part two of The Essentials of COM on Pluralsight. My name is Kenny Kerr and in this module, I'm going to show you how the COM runtime finds out where a server is located and how you can register your own servers so that clients can create COM objects given just a class ID. We're going to cover the registry. How a DLL registers itself. You're going to learn how to use the Kernel Transaction Manager to write simple and robust code. The essentials of the registry API, as well as how to register COM Servers without using the registry at all.

Class Factories
Welcome back to part 2 of The Essentials of COM on Pluralsight. My name is Kenny Kerr, and in this module I'm going to introduce you to the class factory. A class factory is just a general purpose object creation interface that may be implemented by your COM server's class objects. Although not required, COM provides special assistance to class objects that implement this interface. This is convenient, improves performance, and is often a necessity, if you want to support non C++ clients that don't know how, or may not be able to call the CoGetClassObject function directly.

Remoting
Welcome back to part 2 of The Essentials of COM, on Pluralsight. My name is Kenny Kerr, and in this module I am going to introduce you to COM's remoting architecture. I have avoided talking about remoting up until now, because before you can understand the remoting architecture, you need to know a fair amount about the COM runtime. As it is, I don't have enough time in this course to adequately prepare you for a thorough exploration of remoting. At a minimum we need to dive into the Windows Security model, as well as how Microsoft RPC works. Still you know enough at this stage to begin to explore COM's approach to remoting. Well I have to gloss over some details, but this module will give you a good sense for how COM's remoting architecture works. The good news is that COM hides much of the complexity of RPC, and tools are provided to simplify that which remains. The Windows Runtime also changes a few things about how COM remoting works. So, I'll leave a lot of that discussion for my upcoming course on the essentials of the Windows Runtime. On the other hand, the Windows Runtime builds on the foundation that I'm going to show you in this module. So you'll be well on your way to understanding the Windows Runtimes threading model.