*--------------------------
* YFORCEOL.EXE
*ForceOl to Work
*Yuri Rubinov, 2002
LPARAMETER pcFlFlagNAme
IF VERSION(2)=0
_SCREEN.LEFT=-5000
ENDIF
LOCAL plFlagFileEndMode
* File Flag removed or TimeOut
plFlagFileEndMode = (TYPE("pcFlFlagNAme")="C")
pnTimeOut=120000 && 2 min
IF plFlagFileEndMode
ERASE (pcFlFlagNAme)
=STRTOFILE(" ",pcFlFlagNAme)
ENDIF
PRIVATE oShell, LtimerOL, Starttime
Starttime=SECONDS()
oShell = CREATEOBJECT("WScript.Shell")
LtimerOL=CREATEOBJECT("ForceOL",pnTimeOut,pcFlFlagNAme)
READ EVENTS
LtimerOL=.NULL.
oShell=.NULL.
RETURN
*----------------------------------------
DEFINE CLASS ForceOL AS TIMER
INTERVAL = 1000
NAME = "ForceOL"
timeoutdef = 60000
FlagName=""
PROCEDURE INIT
LPARAMETER pnTimeOut, pcFlFlagNAme
IF TYPE("pnTimeOut")="N"
THIS.timeoutdef=pnTimeOut
ENDIF
IF TYPE("pcFlFlagNAme")="C"
THIS.FlagName=pcFlFlagNAme
ENDIF
ENDPROC
PROCEDURE TIMER
IF oShell.AppActivate("Microsoft Outlook")
oShell.SendKeys("Y")
ENDIF
DO CASE
CASE SECONDS()-Starttime>=THIS.timeoutdef/1000 CLEAR EVENTS
CASE NOT EMPTY(THIS.FlagName) AND NOT FILE(THIS.FlagName)
CLEAR EVENTS
ENDCASE
ENDPROC
ENDDEFINE
*--------------------------
*You should RUN THIS PROGRAM AS EXE BEFORE calling email *PROCEDURE IN your PROGRAM.
DECLARE INTEGER ShellExecute ;
IN SHELL32.DLL ;
INTEGER nWinHandle,;
STRING cOperation,;
STRING cFileName,;
STRING cParameters,;
STRING cDirectory,;
INTEGER nShowWindow
lcflag=SYS(5)+CURDIR()+"flag.fff"
= ShellExecute(0,"open",FULLPATH("yforceol.exe"),lcflag,"",0)
* send email here