oVFP = CREATEOBJECT('VfpCom.VfpApp')
oVFP.Exec('SELECT * FROM people WHERE peopleID=5 INTO CURSOR cPpl')
cFirstName = oVFP.Eval('cPpl.FirstName')
oVFP.Visible = .T.
oVFP.SCREEN.Height = 500
* etc
*******************************************
* The reason for this, is so that it can be an OLEPUBLIC, ActiveX Automation Server,
* which OLEPUBLIC class can only be created in code (in VFP6).
* So far, these adjustments are:
* o Wrap _SCREEN and _VFP so the client program can get to them directly.
* o Expose the current directory as a property: DataDir
* o Provide EVAL() and EXEC() methods, to wrap the functions by the same name
******************************************
DEFINE CLASS VfpApp AS Custom OLEPUBLIC
DataSession = 1 && Default
SCREEN = .NULL.
* SCREEN = _Screen && v10.11 wgcs..Now you can bind to _SCREEN Events!..This is broken deliberately in VFP8SP1 claiming it was unstable.
VFP = .NULL.
oApp = .null.
DataDir = ''
Visible = .f.
PROCEDURE INIT
SET EXCLUSIVE OFF
* Etc.
ENDPROC
FUNCTION Visible_Access
RETURN _Screen.Visible
ENDFUNC
FUNCTION Visible_Assign( lVal )
_Screen.Visible = lVal
ENDFUNC
FUNCTION DataDir_Access
RETURN Set('default')+addBs(Curdir())
ENDFUNC
FUNCTION DataDir_Assign( cVal )
set default to (cVal)
ENDFUNC
FUNCTION VFP_ACCESS
RETURN _VFP
ENDFUNC
FUNCTION SCREEN_ACCESS
RETURN _SCREEN
ENDFUNC
FUNCTION Exec( p1,p2,p3,p4,p5,p6,p7,p8,p9 )
LOCAL lnI, lcI
for lnI = 1 to PCOUNT()
lcI = 'p'+tran(lnI)
&lcI
endfor
ENDFUNC
FUNCTION Eval( cStr )
RETURN Eval( cStr )
ENDFUNC
FUNCTION DESTROY()
THIS.Screen = .NULL.
THIS.VFP = .NULL.
THIS.oApp = .NULL.
ON SHUTDOWN
ENDFUNC
ENDDEFINE