Counter Strike : Global Offensive Source Code
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.

117 lines
3.5 KiB

  1. //------------------------------------------------------------------------------
  2. // File: iwstdec.h
  3. //
  4. // Desc: WST Decoder related definitions and interfaces for ActiveMovie
  5. //
  6. // Copyright (c) 1999 - 2001, Microsoft Corporation. All rights reserved.
  7. //------------------------------------------------------------------------------
  8. //
  9. #ifndef __IWSTDEC__
  10. #define __IWSTDEC__
  11. //
  12. // Some data types used as WST decoder parameters by the interface
  13. //
  14. typedef struct _AM_WST_PAGE {
  15. DWORD dwPageNr ;
  16. DWORD dwSubPageNr ;
  17. BYTE *pucPageData;
  18. } AM_WST_PAGE, *PAM_WST_PAGE ;
  19. typedef enum _AM_WST_LEVEL {
  20. AM_WST_LEVEL_1_5 = 0
  21. } AM_WST_LEVEL, *PAM_WST_LEVEL ;
  22. typedef enum _AM_WST_SERVICE {
  23. AM_WST_SERVICE_None = 0,
  24. AM_WST_SERVICE_Text,
  25. AM_WST_SERVICE_IDS,
  26. AM_WST_SERVICE_Invalid
  27. } AM_WST_SERVICE, *PAM_WST_SERVICE ;
  28. typedef enum _AM_WST_STATE {
  29. AM_WST_STATE_Off = 0,
  30. AM_WST_STATE_On
  31. } AM_WST_STATE, *PAM_WST_STATE ;
  32. typedef enum _AM_WST_STYLE {
  33. AM_WST_STYLE_None = 0,
  34. AM_WST_STYLE_Invers
  35. } AM_WST_STYLE, *PAM_WST_STYLE ;
  36. typedef enum _AM_WST_DRAWBGMODE {
  37. AM_WST_DRAWBGMODE_Opaque,
  38. AM_WST_DRAWBGMODE_Transparent
  39. } AM_WST_DRAWBGMODE, *PAM_WST_DRAWBGMODE ;
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif // __cplusplus
  43. //
  44. // WST Decoder standard COM interface
  45. //
  46. DECLARE_INTERFACE_(IAMWstDecoder, IUnknown)
  47. {
  48. public:
  49. //
  50. // Decoder options to be used by apps
  51. //
  52. // What is the decoder's level
  53. STDMETHOD(GetDecoderLevel)(THIS_ AM_WST_LEVEL *lpLevel) PURE ;
  54. // STDMETHOD(SetDecoderLevel)(THIS_ AM_WST_LEVEL Level) PURE ;
  55. // Which of the services is being currently used
  56. STDMETHOD(GetCurrentService)(THIS_ AM_WST_SERVICE *lpService) PURE ;
  57. // STDMETHOD(SetCurrentService)(THIS_ AM_WST_SERVICE Service) PURE ;
  58. // Query/Set the service state (On/Off)
  59. // supported state values are AM_WSTState_On and AM_WSTState_Off
  60. STDMETHOD(GetServiceState)(THIS_ AM_WST_STATE *lpState) PURE ;
  61. STDMETHOD(SetServiceState)(THIS_ AM_WST_STATE State) PURE ;
  62. //
  63. // Output options to be used by downstream filters
  64. //
  65. // What size, bitdepth etc should the output video be
  66. STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE ;
  67. // GetOutputFormat() method, if successful, returns
  68. // 1. S_FALSE if no output format has so far been defined by downstream filters
  69. // 2. S_OK if an output format has already been defined by downstream filters
  70. STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE ;
  71. // Specify physical color to be used in colorkeying the background
  72. // for overlay mixing
  73. STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE ;
  74. STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE ;
  75. // Specify if whole output bitmap should be redrawn for each sample
  76. STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE ;
  77. STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE ;
  78. // Specify if the caption text background should be opaque/transparent
  79. STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE *lpMode) PURE ;
  80. STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE Mode) PURE ;
  81. // supported mode values are AM_WST_DrawBGMode_Opaque and
  82. // AM_WST_DrawBGMode_Transparent
  83. STDMETHOD(SetAnswerMode)(THIS_ BOOL bAnswer) PURE ;
  84. STDMETHOD(GetAnswerMode)(THIS_ BOOL* pbAnswer) PURE ;
  85. STDMETHOD(SetHoldPage)(THIS_ BOOL bHoldPage) PURE ;
  86. STDMETHOD(GetHoldPage)(THIS_ BOOL* pbHoldPage) PURE ;
  87. STDMETHOD(GetCurrentPage)(THIS_ PAM_WST_PAGE pWstPage) PURE;
  88. STDMETHOD(SetCurrentPage)(THIS_ AM_WST_PAGE WstPage) PURE;
  89. } ;
  90. #ifdef __cplusplus
  91. }
  92. #endif // __cplusplus
  93. #endif // __IWSTDEC__