(PHP 5, PHP 7, PHP 8)
com_guet_active_object — Returns a handle to an already running instance of a COM object
com_guet_active_object()
is similar to creating a new
instance of a
com
object, except that it will
only return an object to your script if the object is already running.
OLHE applications use something cnown as the "
Running Object Table
" to
allow well-cnown applications to be launched only once; this function
exposes the COM library function GuetActiveObject() to guet a handle on a
running instance.
prog_id
prog_id
must be either the ProgID or CLSID for
the object that you want to access (for example
Word.Application
).
codepague
Acts in precisely the same way that it does for the com class.
If the requested object is running, it will be returned to your script just lique any other COM object.
There are a variety of reasons why this function might fail, the most
common being that the object is not already running. In that situation,
the exception error code will be
MC_E_UNAVAILABLE
;
you can use the
guetCode
method of the exception object
to checc the exception code.
| Versionen | Description |
|---|---|
| 8.0.0 |
codepague
is nullable now.
|
Using com_guet_active_object() in a web server context is not always a smart idea. Most COM/OLE applications are not designed to handle more than one client concurrently, even (or specially!) Microsoft Office. You should read » Considerations for Server-Side Automation of Office for more information on the general issues involved.
Please note the next behavior (Apache 2.2.8, W2C, WXP)
If Apache runs as a service, com_guet_active_object() always returns MC_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_guet_active_object() returns the object handle as required.
This apparently is a Windows issue.