|
|
//==========================================================================;
//
// 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.
//
// Copyright (c) 1992 - 1997 Microsoft Corporation. All Rights Reserved.
//
//--------------------------------------------------------------------------;
// CutList related definitions and interfaces for ActiveMovie
#ifndef __CUTLIST__
#define __CUTLIST__
#ifdef __cplusplus
extern "C" { #endif // __cplusplus
#define CL_DEFAULT_TIME (-1L)
enum CL_ELEM_STATUS { CL_NOT_PLAYED = 0, CL_PLAYING = 1, CL_FINISHED = 2, CL_STATE_INVALID = 3, CL_STATE_MASK = CL_STATE_INVALID, CL_WAIT_FOR_STATE = 0xF0000000 };
enum CL_ELEM_FLAGS{ CL_ELEM_FIRST = 1, CL_ELEM_LAST = 2, CL_ELEM_NULL = 4, CL_ELEM_ALL = 0xFFFFFFFF, CL_ELEM_NONE = 0x0L };
#ifndef __IAMCutListElement_INTERFACE_DEFINED__
#define __IAMCutListElement_INTERFACE_DEFINED__
#define __IAMFileCutListElement_INTERFACE_DEFINED__
#define __IAMVideoCutListElement_INTERFACE_DEFINED__
#define __IAMAudioCutListElement_INTERFACE_DEFINED__
interface IAMCutListElement : public IUnknown { public: virtual HRESULT __stdcall GetElementStartPosition( /* [out] */ REFERENCE_TIME *pmtStart) = 0; virtual HRESULT __stdcall GetElementDuration( /* [out] */ REFERENCE_TIME *pmtDuration) = 0; virtual HRESULT __stdcall IsFirstElement( void ) = 0; virtual HRESULT __stdcall IsLastElement( void ) = 0; virtual HRESULT __stdcall IsNull( void ) = 0; virtual HRESULT __stdcall ElementStatus( DWORD *pdwStatus, DWORD dwTimeoutMs) = 0; };
interface IAMFileCutListElement : public IUnknown { public: virtual HRESULT __stdcall GetFileName( /* [out] */ LPWSTR *ppwstrFileName) = 0; virtual HRESULT __stdcall GetTrimInPosition( /* [out] */ REFERENCE_TIME *pmtTrimIn) = 0; virtual HRESULT __stdcall GetTrimOutPosition( /* [out] */ REFERENCE_TIME *pmtTrimOut) = 0; virtual HRESULT __stdcall GetOriginPosition( /* [out] */ REFERENCE_TIME *pmtOrigin) = 0; virtual HRESULT __stdcall GetTrimLength( /* [out] */ REFERENCE_TIME *pmtLength) = 0; virtual HRESULT __stdcall GetElementSplitOffset( /* [out] */ REFERENCE_TIME *pmtOffset) = 0; };
interface IAMVideoCutListElement : public IUnknown { public: virtual HRESULT __stdcall IsSingleFrame( void) = 0; virtual HRESULT __stdcall GetStreamIndex( /* [out] */ DWORD *piStream) = 0; };
interface IAMAudioCutListElement : public IUnknown { public: virtual HRESULT __stdcall GetStreamIndex( /* [out] */ DWORD *piStream) = 0; virtual HRESULT __stdcall HasFadeIn( void) = 0; virtual HRESULT __stdcall HasFadeOut( void) = 0; };
#endif // #ifndef IAMCutListElement
interface IStandardCutList : public IUnknown { public: virtual HRESULT __stdcall AddElement( /* [in] */ IAMCutListElement *pElement, /* [in] */ REFERENCE_TIME mtStart, /* [in] */ REFERENCE_TIME mtDuration)=0;
virtual HRESULT __stdcall RemoveElement( /* [in] */ IAMCutListElement *pElement) = 0;
virtual HRESULT __stdcall GetFirstElement( /* [out] */ IAMCutListElement **ppElement)=0; virtual HRESULT __stdcall GetLastElement( /* [out] */ IAMCutListElement **ppElement)=0; virtual HRESULT __stdcall GetNextElement( /* [out] */ IAMCutListElement **ppElement)=0; virtual HRESULT __stdcall GetPreviousElement( /* [out] */ IAMCutListElement **ppElement)=0; virtual HRESULT __stdcall GetMediaType( /* [out] */ AM_MEDIA_TYPE *pmt)=0; virtual HRESULT __stdcall SetMediaType( /* [in] */ AM_MEDIA_TYPE *pmt)=0; };
interface IFileClip : public IUnknown { public: virtual HRESULT __stdcall SetFileAndStream( /* [in] */ LPWSTR wstrFileName, /* [in] */ DWORD streamNum) = 0; virtual HRESULT __stdcall CreateCut( /* [out] */ IAMCutListElement **ppElement, /* [in] */ REFERENCE_TIME mtTrimIn, /* [in] */ REFERENCE_TIME mtTrimOut, /* [in] */ REFERENCE_TIME mtOrigin, /* [in] */ REFERENCE_TIME mtLength, /* [in] */ REFERENCE_TIME mtOffset) = 0;
virtual HRESULT __stdcall GetMediaType( /* [out] */ AM_MEDIA_TYPE *pmt) = 0; };
interface ICutListGraphBuilder : public IUnknown { public: virtual HRESULT __stdcall SetFilterGraph( /*[in]*/ IGraphBuilder *pFilterGraph)=0;
virtual HRESULT __stdcall GetFilterGraph( /*[out]*/ IGraphBuilder **ppFilterGraph)=0; virtual HRESULT __stdcall AddCutList( /*[in]*/ IStandardCutList *pCutList, /*[out]*/ IPin **ppPin)=0; virtual HRESULT __stdcall RemoveCutList( /*[in]*/ IStandardCutList *pCutList)=0; virtual HRESULT __stdcall SetOutputFileName( /*[in]*/ const GUID *pType, /*[in]*/ LPCOLESTR lpwstrFile, /*[in]*/ IBaseFilter **ppf, /*[in]*/ IFileSinkFilter **pSink) = 0; virtual HRESULT __stdcall Render(void) = 0;
virtual HRESULT __stdcall GetElementFlags( /*[in]*/ IAMCutListElement *pElement, /*[out]*/ LPDWORD lpdwFlags) = 0; };
#ifdef __cplusplus
} #endif // __cplusplus
#endif // __CUTLIST__
|