Course info
May 14, 2013
3h 1m

This is the first in a series of courses exploring the essentials of COM and the Windows Runtime. In this first course, you are going to learn everything you need to know to use COM confidently and effectively. This course explores the history of COM. You will learn about how C++ shaped the design of COM. You will learn the essentials of compilation and linking, fundamental to the idea of dynamically linking applications and components together. By the end of this course you will have a thorough understanding of COM’s IUnknown interface, how and why it works the way it does, how to implement it, how to use it, and how to wrap it up in a safe and efficient manner with modern C++ libraries

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
2h 41m
Jul 30, 2015
SQLite with Modern C++
2h 33m
Feb 18, 2015
The Essentials of the Windows Runtime
2h 48m
Sep 2, 2014
More courses by Kenny Kerr
Section Introduction Transcripts
Section Introduction Transcripts

Microsoft's Component Object Model
Welcome to The Essentials of COM on Pluralsight. My name is Kenny Kerr and in this course, I'm going to introduce you to one of the most successful and underrated technology building blocks on Windows. This course is about Microsoft's Component Object Model, simply referred to as COM. Like many of the marketing terms to come out of Redmond, COM has been known by many names. Many related technologies have also become synonymous with COM; however, such a far reaching definition of COM has only led to confusion and unnecessary challenges for the developers eager to learn the essentials of COM. My aim in this course is to teach you the fundamentals of COM, the stuff you need to know and understand to be a productive developer on any modern version of Windows — whether it's Windows 7 and 8 or whether you're more interested in Windows Store and Windows Phone app development. The essentials of COM doesn't rely on any runtime facilities. You can take the knowledge learned in this course and apply it to virtually any platform and obviously older versions of Windows as well. As Steve Ballmer said sometime around the year 2000, the work of the COM Team was the only significant change in the Windows API since the Windows 1 release in 1985. Interestingly, I would say that this statement still holds today, but what is COM really? Let's find out.

COM and C++
Welcome back to The Essentials of COM on Pluralsight. My name is Kenny Kerr and in this module I'm going to tell you the story of COM and C++. The story of COM is quite inseparable from the story of C++. Both have grown up and matured in roughly the same time period, both experienced a lull in development while Managed Code held the spotlight, and both have since bloomed in this new post. NET era. To understand what I mean by this, we need to return to the 90s and consider C++ as it was back then.

IUnknown and modern C++
Welcome back to The Essentials of COM on Pluralsight. My name is Kenny Kerr and in this module we're going to dig into the specifics of what makes IUnknown work and how modern C++ helps to restore some of the type safety that COM necessarily needs to put aside in order for it to work in a portable fashion. We're going to learn about GUIDs and HRESULTs - two types that, while not fundamental to C++, are certainly fundamental to the COM type system. I'm also going to introduce you to the use of smart pointers, which is absolutely essential for the safe and effective use of COM, but smart pointers can be dangerous too, so you'd better know how they work and what to watch out for. Let's get started.

Welcome back to The Essentials of COM on Pluralsight. My name is Kenny Kerr and in this module, we're going to take a look at some libraries and see just how COM and modern C++ may be used together to make life easier for developers. The thing about COM is that it really gets better with age. We've come a long way as an industry, but COM is still here and really it is thriving, thanks largely to its minimal roots and its basis in C++. For much of the COM code we've looked at thus far in this course, I've avoided using an C++11 specific features of the language to give you a sense of what COM looked like in its heyday and also to keep the focus on COM. But to appreciate how COM can continue to thrive in this day and age, we need to step back into the future and make good use of C++11 wherever we can. You will quickly realize that any burdensome feelings you might still be holding onto with respect to writing COM code will quickly fall away. With that, it's time to start looking at some modern C++ Libraries.