COM objects in general and UMDF drivers in particular are nearly always written in C++. This chapter assumes that you have a reasonable familiarity with object-oriented programming (OOP) in general and C++ programming in particular. You should understand basic concepts such as:
Class structure: the struct and class keywords, public and private members, static methods, constructors, destructors, and pure abstract classes.
Object creation and destruction by using the new and delete operators.
Inheritance, including base and derived classes, multiple inheritance, and pure virtual methods.
If you are new to C++ programming, you should become familiar with these basic topics. Other aspects of C++, such as operator overloading or templates, are not necessary for UMDF drivers. UMDF drivers can use standard C++ template libraries, such as the Standard Template Library (STL) or Active Template Library (ATL), but these libraries are not required and are not used in the samples in this chapter.
It is technically possible-although significantly less convenient-to use the C programming language to implement COM objects. This approach is relatively rare and is not discussed here. For details, see Inside OLE from Microsoft Press.