www.pudn.com > WavDest.rar > wavdest.h


//------------------------------------------------------------------------------
// File: WavDest.h
//
// Desc: DirectShow sample code - header file for WAV audio file writer filter.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------


#pragma warning(disable: 4097 4511 4512 4514 4705)

class CWavDestOutputPin : public CTransformOutputPin
{
public:
CWavDestOutputPin(CTransformFilter *pFilter, HRESULT * phr);

STDMETHODIMP EnumMediaTypes( IEnumMediaTypes **ppEnum );
HRESULT CheckMediaType(const CMediaType* pmt);
};

class CWavDestFilter : public CTransformFilter
{

public:

DECLARE_IUNKNOWN;

CWavDestFilter(LPUNKNOWN pUnk, HRESULT *pHr);
~CWavDestFilter();
static CUnknown * WINAPI CreateInstance(LPUNKNOWN punk, HRESULT *pHr);

HRESULT Transform(IMediaSample *pIn, IMediaSample *pOut);
HRESULT Receive(IMediaSample *pSample);

HRESULT CheckInputType(const CMediaType* mtIn) ;
HRESULT CheckTransform(const CMediaType *mtIn,const CMediaType *mtOut);
HRESULT GetMediaType(int iPosition, CMediaType *pMediaType) ;

HRESULT DecideBufferSize(IMemAllocator *pAlloc,
ALLOCATOR_PROPERTIES *pProperties);

HRESULT StartStreaming();
HRESULT StopStreaming();

HRESULT CompleteConnect(PIN_DIRECTION direction,IPin *pReceivePin) { return S_OK; }

private:

HRESULT Copy(IMediaSample *pSource, IMediaSample *pDest) const;
HRESULT Transform(IMediaSample *pMediaSample);
HRESULT Transform(AM_MEDIA_TYPE *pType, const signed char ContrastLevel) const;

ULONG m_cbWavData;
ULONG m_cbHeader;
};