How can I get the handle of a process that I started with START_PROCESS_AND_WAIT@ in a new thread?
!-----------------------------------------------------------------------------------
INTEGER FUNCTION ModWait (ProgramName, ParamString, iSilent)
! Start program in separate thread which waits for completion
USE ProcNameS
IMPLICIT NONE
CHARACTER*(*), INTENT(IN) :: ProgramName, ParamString
INTEGER, INTENT(IN) :: iSilent
INTEGER :: iThID, NULL4b
INTEGER :: iThread
INTEGER, EXTERNAL :: WaitForBingo
! STDCALL CreateThread 'CreateThread' (REF,VAL,REF,REF,VAL,REF) : INTEGER*4
! Original modified to call with NULL pointer:
STDCALL CreateThread 'CreateThread' (VAL,VAL,REF,REF,VAL,REF) : INTEGER*4
!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NULL4b = 0
iThID = 0
:
:
iThread = CreateThread (NULL4b, NULL4b, WaitForBingo, iSilent, NULL4b, iThID)
:
:
RETURN
END FUNCTION ModWait
!-----------------------------------------------------------------------------------
INTEGER FUNCTION WaitForBingo (iSilent)
! Start program and wait for completion
USE ProcNameS
IMPLICIT NONE
INCLUDE <clearwin.ins>
INTEGER, INTENT(IN) :: iSilent
CHARACTER CTX*256, cProgName*128, cRunString*128
INTEGER iStat
!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
:
:
iStat = START_PROCESS_AND_WAIT@ (cProgName, cRunString, -1)
:
:
WaitForBingo = 1
RETURN
END FUNCTION WaitForBingo
!-----------------------------------------------------------------------------------