Delete Live Stream Example for C++
HRESULT DeleteLiveStream(IltmsServer* server, LPCTSTR path)
{
HRESULT hr;
long streamcount;
long streamindex;
CComPtr streams;
hr = server->GetLiveStreams(&streams);
if(FAILED(hr))
goto error;
if(!path)
{
// remove all the streams
hr = streams->Clear();
if(FAILED(hr))
goto error;
// save the new collection
hr = server->SetLiveStreams(streams);
if(FAILED(hr))
goto error;
}
else
{
// search for existing stream with same path
hr = streams->get_Count(&streamcount);
if(FAILED(hr))
goto error;
for(streamindex = 0; streamindex < streamcount; streamindex++)
{
CComPtr stream;
CComBSTR v;
hr = streams->GetLiveStream(streamindex, &stream);
if(FAILED(hr))
goto error;
hr = stream->get_Path(&v);
if(FAILED(hr))
goto error;
if(CStringW(path).CompareNoCase(v) == 0)
{
// remove it
hr = streams->Remove(streamindex);
if(FAILED(hr))
goto error;
// save the new collection
hr = server->SetLiveStreams(streams);
if(FAILED(hr))
goto error;
break;
}
}
}
error:
return hr;
}