com_get_active_object

(PHP 5, PHP 7, PHP 8)

com_get_active_objectDevuelve un objeto que representa la instancia actual de un objeto COM

Descripción

com_get_active_object(string $prog_id, ?int $codepage = null): variant

com_get_active_object() es similar a la creación de una nueva instancia com de un objeto COM, excepto que solo devolverá un objeto al script si el objeto está actualmente instanciado. Las aplicaciones OLE utilizan algo conocido como "Running Object Table" que permite a las aplicaciones conocidas ser ejecutadas solo una vez; esta función expone la función GetActiveObject() de la biblioteca COM para recuperar un objeto de una instancia en uso.

Parámetros

prog_id

El parámetro prog_id debe ser el ProgID o el CLSID del objeto al que se desea acceder (por ejemplo, Word.Application).

codepage

utiliza las mismas reglas que en la com clase.

Valores devueltos

Si el objeto solicitado está en ejecución, la función devolverá al script lo que cualquier otro objeto COM devolvería.

Errores/Excepciones

Hay muchas razones por las cuales esta función puede fallar. En esta situación, el código de error de la excepción debería ser MK_E_UNAVAILABLE; se puede utilizar el método getCode del objeto excepción para verificar el código de la excepción.

Historial de cambios

Versión Descripción
8.0.0 codepage es ahora nullable.

Notas

Advertencia

Utilizar la función com_get_active_object() en un servidor web no siempre es la mejor idea. La mayoría de las aplicaciones COM/OLE no están diseñadas para manejar más de un cliente concurrente, como (¡¡y especialmente!!) Microsoft Office. Se debe leer las » consideraciones para los automatismos lado-servidor para Office para obtener más información sobre los comportamientos generales.

add a note

User Contributed Notes 1 note

up
-1
gerrit at timingteam dot nl
16 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