OBJACTIVE function

Purpose | Return TRUE/ FALSE as an indication of the running state of an initialized COM object (EXE based).
Syntax | lResult& = OBJACTIVE(prgid$)
Remarks | OBJACTIVE can provide information that may prove useful in determining whether to use the NEWCOM or GETCOM options with the LET (with Objects) statement. OBJACTIVE may only be used on COM objects that are in EXE format, not DLL/OCX/etc. In the latter case, OBJACTIVE returns FALSE (0).
prgid$ | The registered program ID string for the COM object. For example, "Word.Application.8", or a version-independent program ID such as "Word.Application". A valid program ID string can be obtained from a 16-byte class ID string using the PROGID$ function, or derived from a 38 character GUID string using PROGID$ and GUID$.
See also | DIM, CLSID$, GUID$, GUIDTXT$, INTERFACE (Direct), INTERFACE (IDBind), ISNOTHING, ISOBJECT, Just what is COM?, LET (with Objects), OBJECT, OBJEQUAL, OBJPTR, OBJRESULT, PROGID$, What is a COM component?

Example

' Create a reference to the MSWORD object

LOCAL oWord AS IDISPATCH ' use late-binding

LOCAL i AS LONG

IF OBJACTIVE("Word.Application") THEN

' Word is already active, use the existing instance

oWord = GETCOM "Word.Application"

ELSE

' Word is not active, create a new instance

oWord = NEWCOM "Word.Application"

END IF

' Set MS Word to a normal visible state

i = 0

OBJECT LET oWord.WindowState = i

' more code here