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.