IReferenceClock::AdvisePeriodic method

The AdvisePeriodic method creates a periodic advise request.

Syntax


HRESULT AdvisePeriodic(
  [in]  REFERENCE_TIME rtStartTime,
  [in]  REFERENCE_TIME rtPeriodTime,
  [in]  HSEMAPHORE     hSemaphore,
  [out] DWORD_PTR      *pdwAdviseCookie
);

Parameters

rtStartTime [in]

Time of the first notification, in 100-nanosecond units. Must be greater than zero and less than MAX_TIME.

rtPeriodTime [in]

Time between notifications, in 100-nanosecond units. Must be greater than zero.

hSemaphore [in]

Handle to a semaphore, created by the caller.

pdwAdviseCookie [out]

Pointer to a variable that receives an identifier for the advise request.

Return value

Returns an HRESULT value. Possible values include the following.

Return codeDescription
S_OK

Success.

E_INVALIDARG

Invalid time values.

E_OUTOFMEMORY

Failure.

E_POINTER

NULL pointer argument.

 

Remarks

At each notification time, the clock releases the semaphore specified in the hSemaphore parameter. When no further notifications are required, call IReferenceClock::Unadvise and pass the pdwAdviseToken value returned from this call.

The following code example creates an advise request that signals five seconds from the time it is created, and again every second thereafter:



IReferenceClock *pRefClock = NULL;
// Get an IReferenceClock pointer (not shown).

DWORD          dwAdviseToken;
HANDLE         hSemaphore = CreateSemaphore(NULL, 0, 0x7FFFFFFF, NULL);
REFERENCE_TIME rtPeriodTime = 10000000; // A one-second interval
REFERENCE_TIME rtNow;

pRefClock->GetTime(&rtNow);
pRefClock->AdvisePeriodic(rtNow + (5 * rtPeriodTime),
                          rtPeriodTime, 
                          hSemaphore, 
                          &dwAdviseToken);
...

pRefClock->Unadvise(dwAdviseToken);


Requirements

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Header

Strmif.h (include Dshow.h)

Library

Strmiids.lib

See also

Error and Success Codes
IReferenceClock Interface

 

 

Show: