// This method will fill the source stream with data from a buffer
void FillSourceFromMemory(UCHAR *pData, long lSize, IltmmPlay *pPlay)
{
IltmmMemory *pMemSource = NULL;
// try to get the play source stream object
HRESULT hr = pPlay->get_SourceStream((IUnknown**)&pMemSource);
if(FAILED(hr) || pMemSource == NULL)
return;
// set our desired buffer size
pMemSource->put_BufferSize(lSize);
SAFEARRAY sa;
VARIANT var;
// setup the safe array
memset(&sa, 0, sizeof(sa));
sa.cbElements = sizeof(unsigned char);
sa.cDims = 1;
sa.fFeatures = (FADF_AUTO | FADF_FIXEDSIZE);
sa.pvData = pData;
sa.rgsabound[0].cElements = lSize;
// associate the safe array with our variant
VariantInit(&var);
V_VT(&var) = (VT_ARRAY | VT_UI1);
V_ARRAY(&var) = &sa;
// set the source data to the variant safe array data
pMemSource->SetData(0, lSize, var);
// release the source object
pMemSource->Release();
}
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.