COM (произносится «ком», от Component Object Model — компонентная модель объектов) — технологический стандарт компании Microsoft, предназначенный для создания программного обеспечения на основе взаимодействующих распределенных компонентов, каждый из которых может использоваться во многих программах одновременно. Технология воплощает в себе идеи полиморфизма и инкапсуляции объектно-ориентированного программирования. Технология COM является универсальной и платформо-независимой, но закрепилась на операционных системах семейства Windows. На основе COM также было созданы стандарты OLE Automation, ActiveX, DCOM, COM+.
В СОМ используется более жесткая объектно-ориентированная модель, чем модели, принятые в языках типа C++. Доступ к СОМ-объектам осуществляется с помощью функций. СОМ-объекты не могут иметь открытых переменных. Наследование в СОМ выглядит ограниченным по сравнению с C++. В СОМ разграничены понятия объектов и интерфейсов; СОМ-объекты обеспечивают функциональность, тогда как СОМ-интерфейсы предоставляют способы работы с ней. Обращения к СОМ-объектам осуществляются только через интерфейсы, а не напрямую, так как имена СОМ-объектов не известны, а известны лишь имена интерфейсов, используемых для работы с объектами.
СОМ-объект может поддерживать сразу несколько интерфейсов. Объясняется это тем, что в соответствии со спецификацией СОМ-интерфейс после своего определения не может быть изменен или дополнен. Это было сделано для того, чтобы не нарушать работу старых программ при обновлении СОМ-объекта. Исходный интерфейс остается неизменным, а для работы с новыми функциональными возможностями объекта добавляется новый альтернативный интерфейс.