Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

199 lines
5.6 KiB

  1. //==========================================================================;
  2. //
  3. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  4. // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  5. // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  6. // PURPOSE.
  7. //
  8. // Copyright (c) 1992 - 1997 Microsoft Corporation. All Rights Reserved.
  9. //
  10. //--------------------------------------------------------------------------;
  11. // CutList related definitions and interfaces for ActiveMovie
  12. #ifndef __CUTLIST__
  13. #define __CUTLIST__
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif // __cplusplus
  17. #define CL_DEFAULT_TIME (-1L)
  18. enum CL_ELEM_STATUS {
  19. CL_NOT_PLAYED = 0,
  20. CL_PLAYING = 1,
  21. CL_FINISHED = 2,
  22. CL_STATE_INVALID = 3,
  23. CL_STATE_MASK = CL_STATE_INVALID,
  24. CL_WAIT_FOR_STATE = 0xF0000000
  25. };
  26. enum CL_ELEM_FLAGS{
  27. CL_ELEM_FIRST = 1,
  28. CL_ELEM_LAST = 2,
  29. CL_ELEM_NULL = 4,
  30. CL_ELEM_ALL = 0xFFFFFFFF,
  31. CL_ELEM_NONE = 0x0L
  32. };
  33. #ifndef __IAMCutListElement_INTERFACE_DEFINED__
  34. #define __IAMCutListElement_INTERFACE_DEFINED__
  35. #define __IAMFileCutListElement_INTERFACE_DEFINED__
  36. #define __IAMVideoCutListElement_INTERFACE_DEFINED__
  37. #define __IAMAudioCutListElement_INTERFACE_DEFINED__
  38. interface IAMCutListElement : public IUnknown
  39. {
  40. public:
  41. virtual HRESULT __stdcall GetElementStartPosition(
  42. /* [out] */ REFERENCE_TIME *pmtStart) = 0;
  43. virtual HRESULT __stdcall GetElementDuration(
  44. /* [out] */ REFERENCE_TIME *pmtDuration) = 0;
  45. virtual HRESULT __stdcall IsFirstElement( void ) = 0;
  46. virtual HRESULT __stdcall IsLastElement( void ) = 0;
  47. virtual HRESULT __stdcall IsNull( void ) = 0;
  48. virtual HRESULT __stdcall ElementStatus(
  49. DWORD *pdwStatus,
  50. DWORD dwTimeoutMs) = 0;
  51. };
  52. interface IAMFileCutListElement : public IUnknown
  53. {
  54. public:
  55. virtual HRESULT __stdcall GetFileName(
  56. /* [out] */ LPWSTR *ppwstrFileName) = 0;
  57. virtual HRESULT __stdcall GetTrimInPosition(
  58. /* [out] */ REFERENCE_TIME *pmtTrimIn) = 0;
  59. virtual HRESULT __stdcall GetTrimOutPosition(
  60. /* [out] */ REFERENCE_TIME *pmtTrimOut) = 0;
  61. virtual HRESULT __stdcall GetOriginPosition(
  62. /* [out] */ REFERENCE_TIME *pmtOrigin) = 0;
  63. virtual HRESULT __stdcall GetTrimLength(
  64. /* [out] */ REFERENCE_TIME *pmtLength) = 0;
  65. virtual HRESULT __stdcall GetElementSplitOffset(
  66. /* [out] */ REFERENCE_TIME *pmtOffset) = 0;
  67. };
  68. interface IAMVideoCutListElement : public IUnknown
  69. {
  70. public:
  71. virtual HRESULT __stdcall IsSingleFrame( void) = 0;
  72. virtual HRESULT __stdcall GetStreamIndex(
  73. /* [out] */ DWORD *piStream) = 0;
  74. };
  75. interface IAMAudioCutListElement : public IUnknown
  76. {
  77. public:
  78. virtual HRESULT __stdcall GetStreamIndex(
  79. /* [out] */ DWORD *piStream) = 0;
  80. virtual HRESULT __stdcall HasFadeIn( void) = 0;
  81. virtual HRESULT __stdcall HasFadeOut( void) = 0;
  82. };
  83. #endif // #ifndef IAMCutListElement
  84. interface IStandardCutList : public IUnknown
  85. {
  86. public:
  87. virtual HRESULT __stdcall AddElement(
  88. /* [in] */ IAMCutListElement *pElement,
  89. /* [in] */ REFERENCE_TIME mtStart,
  90. /* [in] */ REFERENCE_TIME mtDuration)=0;
  91. virtual HRESULT __stdcall RemoveElement(
  92. /* [in] */ IAMCutListElement *pElement) = 0;
  93. virtual HRESULT __stdcall GetFirstElement(
  94. /* [out] */ IAMCutListElement **ppElement)=0;
  95. virtual HRESULT __stdcall GetLastElement(
  96. /* [out] */ IAMCutListElement **ppElement)=0;
  97. virtual HRESULT __stdcall GetNextElement(
  98. /* [out] */ IAMCutListElement **ppElement)=0;
  99. virtual HRESULT __stdcall GetPreviousElement(
  100. /* [out] */ IAMCutListElement **ppElement)=0;
  101. virtual HRESULT __stdcall GetMediaType(
  102. /* [out] */ AM_MEDIA_TYPE *pmt)=0;
  103. virtual HRESULT __stdcall SetMediaType(
  104. /* [in] */ AM_MEDIA_TYPE *pmt)=0;
  105. };
  106. interface IFileClip : public IUnknown
  107. {
  108. public:
  109. virtual HRESULT __stdcall SetFileAndStream(
  110. /* [in] */ LPWSTR wstrFileName,
  111. /* [in] */ DWORD streamNum) = 0;
  112. virtual HRESULT __stdcall CreateCut(
  113. /* [out] */ IAMCutListElement **ppElement,
  114. /* [in] */ REFERENCE_TIME mtTrimIn,
  115. /* [in] */ REFERENCE_TIME mtTrimOut,
  116. /* [in] */ REFERENCE_TIME mtOrigin,
  117. /* [in] */ REFERENCE_TIME mtLength,
  118. /* [in] */ REFERENCE_TIME mtOffset) = 0;
  119. virtual HRESULT __stdcall GetMediaType(
  120. /* [out] */ AM_MEDIA_TYPE *pmt) = 0;
  121. };
  122. interface ICutListGraphBuilder : public IUnknown
  123. {
  124. public:
  125. virtual HRESULT __stdcall SetFilterGraph(
  126. /*[in]*/ IGraphBuilder *pFilterGraph)=0;
  127. virtual HRESULT __stdcall GetFilterGraph(
  128. /*[out]*/ IGraphBuilder **ppFilterGraph)=0;
  129. virtual HRESULT __stdcall AddCutList(
  130. /*[in]*/ IStandardCutList *pCutList,
  131. /*[out]*/ IPin **ppPin)=0;
  132. virtual HRESULT __stdcall RemoveCutList(
  133. /*[in]*/ IStandardCutList *pCutList)=0;
  134. virtual HRESULT __stdcall SetOutputFileName(
  135. /*[in]*/ const GUID *pType,
  136. /*[in]*/ LPCOLESTR lpwstrFile,
  137. /*[in]*/ IBaseFilter **ppf,
  138. /*[in]*/ IFileSinkFilter **pSink) = 0;
  139. virtual HRESULT __stdcall Render(void) = 0;
  140. virtual HRESULT __stdcall GetElementFlags(
  141. /*[in]*/ IAMCutListElement *pElement,
  142. /*[out]*/ LPDWORD lpdwFlags) = 0;
  143. };
  144. #ifdef __cplusplus
  145. }
  146. #endif // __cplusplus
  147. #endif // __CUTLIST__