www.pudn.com > WMACompressor.zip > WriterSink.h


// 
//  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 
//  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 
//  PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER  
//  REMAINS UNCHANGED. 
// 
//  Email:  yetiicb@hotmail.com 
// 
//  Copyright (C) 2002-2004 Idael Cardoso.  
// 
#pragma once 
#include "Utility.h" 
#include "Buffer.h" 
 
__gc __interface IWriterSink 
{ 
   HRESULT OnHeader(/* [in] */INSSBuffer *pHeader); 
   HRESULT AllocateDataUnit(/* [in] */DWORD cbDataUnit,/* [out] */ INSSBuffer **ppDataUnit); 
   HRESULT IsRealTime(/* [out] */ BOOL *pfRealTime); 
   HRESULT OnDataUnit(/* [in] */INSSBuffer *pDataUnit); 
   HRESULT OnEndWriting( void); 
}; 
 
__nogc class CWriterSink : public ManWrapper 
{ 
public: 
  CWriterSink(void){} 
  ~CWriterSink(void){} 
public:  //IWMWriterSink 
  virtual HRESULT STDMETHODCALLTYPE OnHeader(/* [in] */ INSSBuffer *pHeader) 
  { 
    IWriterSink* pSink = GetIntf(); 
    return pSink->OnHeader(pHeader); 
  } 
  virtual HRESULT STDMETHODCALLTYPE IsRealTime(/* [out] */ BOOL *pfRealTime) 
  { 
    IWriterSink* pSink = GetIntf(); 
    return pSink->IsRealTime(pfRealTime); 
  } 
  virtual HRESULT STDMETHODCALLTYPE AllocateDataUnit(/* [in] */ DWORD cbDataUnit,/* [out] */ INSSBuffer **ppDataUnit) 
  { 
    IWriterSink* pSink = GetIntf(); 
    return pSink->AllocateDataUnit(cbDataUnit, ppDataUnit); 
  } 
  virtual HRESULT STDMETHODCALLTYPE OnDataUnit(/* [in] */ INSSBuffer *pDataUnit) 
  { 
    IWriterSink* pSink = GetIntf(); 
    return pSink->OnDataUnit(pDataUnit); 
  } 
  virtual HRESULT STDMETHODCALLTYPE OnEndWriting(void) 
  { 
    IWriterSink* pSink = GetIntf(); 
    return pSink->OnEndWriting(); 
  } 
};