home *** CD-ROM | disk | FTP | other *** search
- //==========================================================================;
- //
- // 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__
- #pragma option push -b -a8 -pc -A- /*P_O_Push*/
- #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
- #pragma option pop /*P_O_Pop*/
- #endif // __CUTLIST__
-