COM (1/2)
Binary compatible components
Interface and implementation completely separated
Enables distributed computing
Multiple implementations possible
Objects can support multiple interfaces
No versioning problems; globally unique interface
identifiers
Strict rules about in/out parameters
Reference counting