Component Object Model
Aunque estas tecnologías han sido implementadas en muchas plataformas, son principalmente usadas con un programa Microsoft Windows.Se espera que COM sea sustituido, al menos en un cierto grado, por Microsoft.NET, y soporte para Web Services a través de Windows Communication Foundation (WCF).DCOM en red usa formatos binarios propietarios, mientras que WCF usa mensajes SOAP basados en XML.Esto permite técnicas como inter-proceso, incluso programación entre ordenadores (este último mediante el apoyo de DCOM).El efecto de QueryInterface() es similar a dynamic_cast <> en C++ o casting en C# y Java.Las interfaces de un componente COM es necesario que muestren las propiedades reflexiva, simétrica y transitiva.COM especifica muchas otras interfaces estándar usadas para permitir comunicación entre componentes.IOleObject contiene métodos que permiten a los interesados determinar el tamaño de los límites de un componente rectángulo, si el componente soporta operaciones como ‘Open’, ‘Save’ y así sucesivamente.Una clase en COM se denomina coclass, que es la forma contraída de Component Object class.Sin embargo, estos tipos deben ser primero descritos usando el Microsoft Interface Definition Language (MIDL).Un archivo IDL es lo que proporciona COM que permite a los desarrolladores definir las clases orientadas a objetos, interfaces, estructuras, enumeraciones y otros tipos definidos por el usuario en un lenguaje de forma independiente.Este Proxy contiene métodos stubs para convertir llamadas COM en RPC, esto permitido por el DCOM.El valor interno sigue siendo un miembro privado del objeto COM y nunca será accesible directamente.También debe ser asociada con su propia clase Factory (que se logra mediante el uso de un registro centralizado).Es un objeto que debe exponer la interfaz IClassFactory o IClassFactory2 (este último con la soporte licencias de apoyo).En versiones anteriores de Windows no hacerlo podría causar en todo el sistema bloqueos.El diseño de una aplicación debe tener esto en cuenta para que los objetos no se queden huérfanos.Por lo tanto, COM sufre seriamente del DLL hell, en que dos o más aplicaciones requieren diferentes versiones de un mismo componente.DLL hell, se pueden evitar mediante Registro-COM libre, la única limitación que se requiere, al menos, Windows XP o posteriores versiones de Windows y que no debe utilizarse para EXE, COM o servidores en todo el sistema de componentes, tales como MDAC, MSXML, DirectX o Internet Explorer.