Según la Wikipedia:
Component Object Model (COM) es una plataforma de Microsoft para componentes de software introducida por dicha empresa en 1993. Esta plataforma es utilizada para permitir la comunicación entre procesos y la creación dinámica de objetos, en cualquier lenguaje de programación que soporte dicha tecnología. El término COM es a menudo usado en el mundo del desarrollo de software como un término que abarca las tecnologías OLE, OLE Automation, ActiveX, COM+ y DCOM.
PHP
$obj = new COM("nombre-objeto");
$obj->metodonombre();
$obj->atributo = "atributo";
VBScript
Dim obj Set obj = CreateObject(“nombreObjeto”) obj.metodo()
Jscript
var obj;
obj = new ActiveXObject("nombreObjeto");
Ruby
Require ‘win32ole’ obj = WIN32OLE.new(‘nombreObjeto’)
Perl
use Win32::OLE; $my obj = Win32::OLE->new(“nombreObjeto”);
Pascal
Var objeto: variant; Objeto := CreateOleObject(“nombreObjeto”);
El siguiente ejemplo es un validador de documentos XML en PHP (también se puede hacer gracias a COM en otros lenguajes)
if($argc > 1)
{
if($xmlDOM = new COM("Microsoft.XMLDOM"))
{
$xmlDOM->async = "false";
$xmlDOM->validateOnParse = "true";
$xmlDOM->load($argv[1]);
echo "\n[-] Archivo XML cargado\n";
echo "[-] validando...\n";
if($xmlDOM->parseError->errorCode == 0)
{
echo "[-] No se encontraron errores\n";
echo "[-] Documento XML valido (congratulations)\n";
}
else
{
echo "[*] Error: \n";
echo "\n Codigo de error: ".$xmlDOM->parseError->errorCode;
echo "\n Descripcion del error: ".$xmlDOM->parseError->reason;
echo "\n Linea: ".$xmlDOM->parseError->line."\n";
}
}
else
{
exit("[*] Error... objeto com no creado.\n");
}
}
else
{
echo "XML Validator Coded by Amir Canto | http://www.algoritmatica.com\n";
echo "Usage: $argv[0] archivo.xml\n";
exit(0);
}
Un saludo!.
Si alguien conoce alguno más! Que no dude en hacérnoslo saber! Ayudanos a completar la lista =).
Hola .
Pero para llamar aun servicio del middleware de una dll , desde VB6 como sería? vuelvo si me lo logran contestar…
Esta muy bueno el articulo !!
Me gustaría que tuvieras un ejemplo en Java.
Saludos !!