DosTimerStop

This call stops a periodic interval timer started by DosTimerStart, or an asynchronous timer started by DosTimerAsync.

Syntax
DosTimerStop (Handle)

Parameters

 * Handle (HTIMER) - input : Handle of the timer to be stopped.

Return Code

 * rc (USHORT) - return:Return code descriptions are:
 * 0 NO_ERROR
 * 326 ERROR_TS_HANDLE

Remarks
DosTimerStop is used to stop an asynchronous one-shot timer started with DosTimerAsync or an asynchronous periodic interval timer started with DosTimerStart.

No assumptions can be made about the state of the semaphore specified with DosTimerStart or DosTimerAsync. The application should put the semaphores into a known state.

C

 * 1) define INCL_DOSDATETIME

USHORT rc = DosTimerStop(Handle);

HTIMER Handle;        /* Handle of the timer */ USHORT rc;            /* return code */ 

MASM
 EXTRN DosTimerStop:FAR INCL_DOSDATETIME   EQU 1

PUSH  WORD    Handle        ;Handle of the timer CALL  DosTimerStop

Returns WORD 

Example Code
The following example sets an asynchronous one-shot timer for one second. It then sets an asynchronous recurring timer with a one-second interval, reporting each time an interval elapses. Finally, it stops the recurring timer. 
 * 1) define INCL_DOSDATETIME
 * 2) define INCL_DOSSEMAPHORES


 * 1) include 


 * 1) define SEM_NAME      "\\SEM\\timer.sem"  /* Semaphore name */
 * 2) define TIME_INTERVAL 1000L  /* Timer interval (in milliseconds) */

main { HSEM      SemHandle; HTIMER   TimerHandle; USHORT   i;  USHORT    rc;

/* Create system semaphore to be used by timers */ DosCreateSem(CSEM_PUBLIC,       /* Ownership - nonexclusive */               &SemHandle,         /* Semaphore handle (returned) */               SEM_NAME);          /* Semaphore name */

/* Set the semaphore, then start a one-shot timer */ if(!DosSemSet(SemHandle))       /* Semaphore handle */ printf("Semaphore set.\n"); if(!(rc=DosTimerAsync(TIME_INTERVAL,   /* Timer interval */                        SemHandle,        /* Semaphore handle */                        &TimerHandle)))   /* Timer handle (returned) */ printf("One shot timer for %f seconds started.\n", TIME_INTERVAL/1000.0);

/* Report when timer expires (other work may be done here) */ if(!DosSemWait(SemHandle,              /* Semaphore handle */ SEM_INDEFINITE_WAIT))   /* Timeout period - indefinite */ printf("Time interval has elapsed.\n");

/* Start a recurring timer */ if(!(rc=DosTimerStart(TIME_INTERVAL,   /* Timer interval */                        SemHandle,        /* Semaphore handle */                        &TimerHandle)))   /* Timer handle (returned) */ printf("Recurring timer with %f second interval started.\n",          TIME_INTERVAL/1000.0); /* */  for(i=1; i<4; i++) if(!DosSemSetWait(SemHandle,            /* Semaphore handle */ SEM_INDEFINITE_WAIT)) /* Timeout period - indefinite */ printf("Recurring timer cleared semaphore %d times.\n", i); if(!(rc=DosTimerStop(TimerHandle)))       /* Timer handle */ printf("Recurring timer has been stopped.\n"); } 