com_get_active_object

(PHP 5, PHP 7, PHP 8)

com_get_active_objectDevuelve un gestor a una instancia de un objeto COM ya en ejecución

Descripción

com_get_active_object(string $progid, int $code_page = ?): variant

com_get_active_object() es similar a crear una nueva instancia de un objeto COM, excepto que sólo devolverá un objeto a su script si el objeto ya está en ejecución. Las aplicaciones OLE usan algo conocido como la "Tabla de Objetos en Ejecución" para permitir a las famosas aplicaciones que se lancen solo una vez; esta función expone la función de la biblioteca COM, GetActiveObject(), para obtener un gestor sobre una instancia en ejecución.

Parámetros

progid

progid puede ser el ProgID o el CLSID del objeto al que se quiere acceder (por ejemplo Word.Application).

code_page

Actúa exactamente de la misma forma que lo hace la clase COM.

Valores devueltos

Si el objeto solicitado está ejecutándose será devuelto a su script al igual que otro objeto COM.

Errores/Excepciones

Existen diversas razones para que esta función pueda fallar, la más común siendo que el objeto no está ejecutándose aún. En esta situación, el código de error de excepción será MK_E_UNAVAILABLE; se puede usar el método getCode del objeto excepción para comprobar el código de excepción.

Notas

Advertencia

Usar com_get_active_object() en un contexto de servidor web no es siempre una idea inteligente. La mayoría de las aplicaciones COM/OLE no están diseñadas para tratar más de un cliente al mismo tiempo, incluso (¡o especialmente!) Microsoft Office. Debería leer » Consideraciones para la Automatización del Lado del Servidor de Office para más información sobre los temas generales involucrados.

add a note add a note

User Contributed Notes 1 note

up
0
gerrit at timingteam dot nl
15 years ago
Please note the next behavior (Apache 2.2.8, W2K, WXP)

If Apache runs as a service, com_get_active_object() always returns MK_E_UNAVAILABLE, even when it is definitely sure that the Running Object Table contains a reference to the required object.

If Apache runs in a console, com_get_active_object()  returns the object handle as required.

This apparently is a Windows issue.
To Top