Template:AVO Sample of copying

From AVObjects Knowledge Base
Revision as of 15:08, 8 July 2014 by Rod (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

for(int n = 0; n < nStreams; n++) {

 HRESULT hr = spDest->CanPutFrame(n, 0);
 if ( FAILED(hr) )
    return hr;
  else if (hr != S_OK)
    continue;
 hr = spSource->CanGetFrame(n, 0);
 if ( FAILED(hr) )
   return hr;
 else if (hr != S_OK)
   continue;
 DWORD cbActual = 0;
 REFERENCE_TIME tS = 0, tE = 0;
 DWORD dwFlags = 0;
 hr = spSource->GetFrame(n, m_pbBuffer, m_cbBuffer, &cbActual, &dwFlags, &tS, &tE, NULL);
 if (hr == S_OK)
 {
    hr = spDest->PutFrame(n, m_pbBuffer, cbActual, dwFlags, tS, tE, NULL);
 }
 else if (hr == HRESULT_FROM_WIN32(ERROR_HANDLE_EOF))
 {
    hr = spDest->PutFrame(n, NULL, 0, 0, 0, 0, NULL);
 }  
 if (FAILED(hr))
   return hr;

}

Personal tools