summaryrefslogtreecommitdiffstats
path: root/dxsdk/Include/Iwstdec.h
diff options
context:
space:
mode:
Diffstat (limited to 'dxsdk/Include/Iwstdec.h')
-rw-r--r--dxsdk/Include/Iwstdec.h117
1 files changed, 117 insertions, 0 deletions
diff --git a/dxsdk/Include/Iwstdec.h b/dxsdk/Include/Iwstdec.h
new file mode 100644
index 00000000..40007a86
--- /dev/null
+++ b/dxsdk/Include/Iwstdec.h
@@ -0,0 +1,117 @@
+//------------------------------------------------------------------------------
+// File: iwstdec.h
+//
+// Desc: WST Decoder related definitions and interfaces for ActiveMovie
+//
+// Copyright (c) 1999 - 2001, Microsoft Corporation. All rights reserved.
+//------------------------------------------------------------------------------
+//
+
+#ifndef __IWSTDEC__
+#define __IWSTDEC__
+
+//
+// Some data types used as WST decoder parameters by the interface
+//
+typedef struct _AM_WST_PAGE {
+ DWORD dwPageNr ;
+ DWORD dwSubPageNr ;
+ BYTE *pucPageData;
+} AM_WST_PAGE, *PAM_WST_PAGE ;
+
+typedef enum _AM_WST_LEVEL {
+ AM_WST_LEVEL_1_5 = 0
+} AM_WST_LEVEL, *PAM_WST_LEVEL ;
+
+typedef enum _AM_WST_SERVICE {
+ AM_WST_SERVICE_None = 0,
+ AM_WST_SERVICE_Text,
+ AM_WST_SERVICE_IDS,
+ AM_WST_SERVICE_Invalid
+} AM_WST_SERVICE, *PAM_WST_SERVICE ;
+
+typedef enum _AM_WST_STATE {
+ AM_WST_STATE_Off = 0,
+ AM_WST_STATE_On
+} AM_WST_STATE, *PAM_WST_STATE ;
+
+typedef enum _AM_WST_STYLE {
+ AM_WST_STYLE_None = 0,
+ AM_WST_STYLE_Invers
+} AM_WST_STYLE, *PAM_WST_STYLE ;
+
+typedef enum _AM_WST_DRAWBGMODE {
+ AM_WST_DRAWBGMODE_Opaque,
+ AM_WST_DRAWBGMODE_Transparent
+} AM_WST_DRAWBGMODE, *PAM_WST_DRAWBGMODE ;
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif // __cplusplus
+
+//
+// WST Decoder standard COM interface
+//
+DECLARE_INTERFACE_(IAMWstDecoder, IUnknown)
+{
+ public:
+ //
+ // Decoder options to be used by apps
+ //
+
+ // What is the decoder's level
+ STDMETHOD(GetDecoderLevel)(THIS_ AM_WST_LEVEL *lpLevel) PURE ;
+
+// STDMETHOD(SetDecoderLevel)(THIS_ AM_WST_LEVEL Level) PURE ;
+
+ // Which of the services is being currently used
+ STDMETHOD(GetCurrentService)(THIS_ AM_WST_SERVICE *lpService) PURE ;
+// STDMETHOD(SetCurrentService)(THIS_ AM_WST_SERVICE Service) PURE ;
+
+ // Query/Set the service state (On/Off)
+ // supported state values are AM_WSTState_On and AM_WSTState_Off
+ STDMETHOD(GetServiceState)(THIS_ AM_WST_STATE *lpState) PURE ;
+ STDMETHOD(SetServiceState)(THIS_ AM_WST_STATE State) PURE ;
+
+ //
+ // Output options to be used by downstream filters
+ //
+
+ // What size, bitdepth etc should the output video be
+ STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE ;
+ // GetOutputFormat() method, if successful, returns
+ // 1. S_FALSE if no output format has so far been defined by downstream filters
+ // 2. S_OK if an output format has already been defined by downstream filters
+ STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE ;
+
+ // Specify physical color to be used in colorkeying the background
+ // for overlay mixing
+ STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE ;
+ STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE ;
+
+ // Specify if whole output bitmap should be redrawn for each sample
+ STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE ;
+ STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE ;
+
+ // Specify if the caption text background should be opaque/transparent
+ STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE *lpMode) PURE ;
+ STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE Mode) PURE ;
+ // supported mode values are AM_WST_DrawBGMode_Opaque and
+ // AM_WST_DrawBGMode_Transparent
+
+ STDMETHOD(SetAnswerMode)(THIS_ BOOL bAnswer) PURE ;
+ STDMETHOD(GetAnswerMode)(THIS_ BOOL* pbAnswer) PURE ;
+
+ STDMETHOD(SetHoldPage)(THIS_ BOOL bHoldPage) PURE ;
+ STDMETHOD(GetHoldPage)(THIS_ BOOL* pbHoldPage) PURE ;
+
+ STDMETHOD(GetCurrentPage)(THIS_ PAM_WST_PAGE pWstPage) PURE;
+ STDMETHOD(SetCurrentPage)(THIS_ AM_WST_PAGE WstPage) PURE;
+
+} ;
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+#endif // __IWSTDEC__