This example shows how you can wait for the DVR sink to write data past a certain offset. This is useful if you want to wait for the data to become available before reading it. The error checking has been omitted for clarity.
void WaitForData(ILMDVRSink* pSink, _int64 startOffset, long nBytes)
{
long registrationId; // set this to a unique value in your application
OLE_HANDLE dataWrittenEvent;
OLE_HANDLE listChangedEvent;
OLE_HANDLE offsetReachedEvent;
// create the offset reached event
ILMDVRSink_CreateEvents2(pSink, registrationId, GetCurrentProcessId(), &dataWrittenEvent, &listChangedEvent, &offsetReachedEvent);
// instruct the sink to set the offset reached event once it reached nBytes past offset startOffset
ILMDVRSink_SetOffsetToReach(pSink, registrationId, (double)(startOffset + nBytes));
// wait for the event to be set
WaitForSingleObject((HANDLE)offsetReachedEvent, INFINITE);
// free the events
ILMDVRSink_FreeEvents(pSink, registrationId);
}
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.