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();
}
};