ObjectAccess

Opens or creates a COM/OLE Automation object.

Syntax:

ObjectAccess(app.objname, create-flag)

Parameters:

(s) app.objname name of the desired object.

(i) create-flag @TRUE, it will create an instance of the object, and return a handle to it. @FALSE, it will fail and return an error.

Returns:

(i) a special object handle to be used when referring to the object. See discussion in COM/OLE section.

 

ObjectAccess has been superceded with the function ObjectGet.

If there is already a running instance of the object specified by "app.objname", this function will return a handle to that object.

If there is not a running instance of the specified object, the behavior will depend on the value of 'create-flag':

If 'create-flag' == @TRUE, it will create an instance of the object, and return a handle to it.

If 'create-flag' == @FALSE, it will fail and return an error.

 

This function is similar to ObjectOpen, except that ObjectOpen always creates a new object and cannot be used to access an existing one.

See COM/OLE section for information on COM/OLE Automation.

 

Example:


types = "Doc Files|*.doc"
file = AskFilename("SelectFile", "C:\", types, "", 1)
wdGoToLine = 3
wdLine = 5
wdExtend = 1
wdCharacter = 1
If AppExist("winword.exe")
   oWORD = ObjectAccess("Word.Application", @FALSE)
   newWord = @FALSE
Else
   oWORD = ObjectOpen("Word.Application")
   newWord = @TRUE
EndIf
oDOCS = oWORD.Documents
oDOC = oDOCS.Open(file)
oWORD.visible=@TRUE
oActiveDoc = oWORD.activedocument
oSel=oWORD.selection
oSel.GoTo(wdGoToLine,1)
While @TRUE
   oSel.EndKey(:: Unit=wdLine, Extend=wdExtend)
   oSel.Copy
   line = ClipGet()
   Message("Line",line)
   oSel.MoveRight(:: Unit=wdCharacter, Count=1)
   If oSel.MoveRight == 0 Then Break
   oSel.MoveLeft(:: Unit=wdCharacter, Count=1)
   ; compensate for MoveRight
EndWhile
oActiveDoc.close()
ObjectClose(oSel)
ObjectClose(oActiveDoc)
ObjectClose(oDOC)
ObjectClose(oDOCS)
If newWord
   oWord.Quit
EndIf
ObjectClose(oWORD)
Exit
See Also:

COM/OLE, ObjectGet