/*++ Copyright (c) 1999 Microsoft Corporation Module Name: mp2prop.h Abstract: This module contains the class declarations for the filter properties Author: Matthijs Gates (mgates) Revision History: 06-Jul-1999 created --*/ #ifndef _mp2demux__prop_h #define _mp2demux__prop_h // forward declarations class CMPEG2PropOutputPins ; class CMPEG2PropPIDMap ; class CListview ; // --------------------------------------------------------------------------- // property page GUIDs // --------------------------------------------------------------------------- // output pin manipulation // {960F051B-A25C-4ac4-8D30-050CD47A814F} DEFINE_GUID (CLSID_MPEG2DemuxPropOutputPins, 0x960f051b, 0xa25c, 0x4ac4, 0x8d, 0x30, 0x5, 0xc, 0xd4, 0x7a, 0x81, 0x4f) ; // PID mappings // {ae83f13d-51b5-4a85-8c3a-ecc9f50c557a} DEFINE_GUID (CLSID_MPEG2DemuxPropPIDMap, 0xae83f13d, 0x51b5, 0x4a85, 0x8c, 0x3a, 0xec, 0xc9, 0xf5, 0xc, 0x55, 0x7a) ; // stream_id mappings // {E04BBB8F-CB77-499e-B815-468B1C3ED88F} DEFINE_GUID(CLSID_MPEG2DemuxPropStreamIdMap, 0xe04bbb8f, 0xcb77, 0x499e, 0xb8, 0x15, 0x46, 0x8b, 0x1c, 0x3e, 0xd8, 0x8f) ; // --------------------------------------------------------------------------- // class declarations // --------------------------------------------------------------------------- // output pin manipulation property page class CMPEG2PropOutputPins : public CBasePropertyPage { IMpeg2Demultiplexer * m_pIMpeg2Demultiplexer ; HWND m_hwnd ; HRESULT RefreshPinList_ ( ) ; HRESULT PopulateComboBoxes_ ( ) ; HRESULT TearDownPinList_ ( ) ; HRESULT OnCreatePin_ ( ) ; HRESULT OnDeletePin_ ( ) ; void SetDirty_ ( IN BOOL fDirty = TRUE ) ; public : CMPEG2PropOutputPins ( IN TCHAR * pClassName, IN IUnknown * pIUnknown, IN REFCLSID rclsid, OUT HRESULT * pHr ) ; HRESULT OnActivate ( ) ; HRESULT OnApplyChanges ( ) ; HRESULT OnConnect ( IN IUnknown * pIUnknown ) ; HRESULT OnDeactivate ( ) ; HRESULT OnDisconnect ( ) ; INT_PTR OnReceiveMessage ( IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam ) ; DECLARE_IUNKNOWN ; static CUnknown * WINAPI CreateInstance ( IN IUnknown * pIUnknown, IN HRESULT * pHr ) ; } ; // PID mappings property page class CMpeg2PropStreamMap : public CBasePropertyPage { HRESULT PopulatePinList_ ( ) ; HRESULT TearDownPinList_ ( ) ; protected : HRESULT RefreshStreamMap_ ( ); virtual HRESULT PopulateStreamList_ ( ) = 0 ; virtual HRESULT PopulateMediaSampleContentList_ ( ) = 0 ; virtual HRESULT OnMapStream_ ( ) = 0 ; virtual HRESULT OnUnmapStream_ ( ) = 0 ; virtual HRESULT TearDownStreamMap_ ( ) = 0 ; virtual HRESULT AppendStreamMaps ( IN IPin * pIPin, IN CListview * plv ) = 0 ; virtual int GetStreamMapColCount ( ) = 0 ; virtual WCHAR * GetStreamMapColTitle ( IN int iCol ) = 0 ; virtual int GetStreamMapColWidth ( IN int iCol ) = 0 ; virtual void DialogInit_ ( ) = 0 ; HWND m_hwnd ; IUnknown * m_pIUnknown ; public : CMpeg2PropStreamMap ( IN TCHAR * pClassName, IN IUnknown * pIUnknown, IN REFCLSID rclsid, IN int iTitleStringResource, OUT HRESULT * pHr ) ; void SetDirty ( IN BOOL fDirty = TRUE ) ; HRESULT OnActivate ( ) ; HRESULT OnApplyChanges ( ) ; HRESULT OnConnect ( IN IUnknown * pIUnknown ) ; HRESULT OnDeactivate ( ) ; HRESULT OnDisconnect ( ) ; INT_PTR OnReceiveMessage ( IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam ) ; } ; class CMPEG2PropPIDMap : public CMpeg2PropStreamMap { virtual HRESULT PopulateStreamList_ ( ) ; virtual HRESULT TearDownStreamMap_ ( ) ; virtual HRESULT PopulateMediaSampleContentList_ ( ) ; virtual HRESULT OnMapStream_ ( ) ; virtual HRESULT OnUnmapStream_ ( ) ; virtual HRESULT AppendStreamMaps ( IN IPin * pIPin, IN CListview * plv ) ; virtual int GetStreamMapColCount ( ) ; virtual WCHAR * GetStreamMapColTitle ( IN int iCol ) ; virtual int GetStreamMapColWidth ( IN int iCol ) ; virtual void DialogInit_ ( ) ; public : CMPEG2PropPIDMap ( IN TCHAR * pClassName, IN IUnknown * pIUnknown, IN REFCLSID rclsid, OUT HRESULT * pHr ) ; DECLARE_IUNKNOWN ; static CUnknown * WINAPI CreateInstance ( IN IUnknown * pIUnknown, IN HRESULT * pHr ) ; } ; class CMPEG2PropStreamIdMap : public CMpeg2PropStreamMap { virtual HRESULT PopulateStreamList_ ( ) ; virtual HRESULT TearDownStreamMap_ ( ) ; virtual HRESULT PopulateMediaSampleContentList_ ( ) ; virtual HRESULT OnMapStream_ ( ) ; virtual HRESULT OnUnmapStream_ ( ) ; virtual HRESULT AppendStreamMaps ( IN IPin * pIPin, IN CListview * plv ) ; virtual WCHAR * GetStreamMapColTitle ( IN int iCol ) ; virtual int GetStreamMapColCount ( ) ; virtual int GetStreamMapColWidth ( IN int iCol ) ; virtual void DialogInit_ ( ) ; public : CMPEG2PropStreamIdMap ( IN TCHAR * pClassName, IN IUnknown * pIUnknown, IN REFCLSID rclsid, OUT HRESULT * pHr ) ; DECLARE_IUNKNOWN ; static CUnknown * WINAPI CreateInstance ( IN IUnknown * pIUnknown, IN HRESULT * pHr ) ; } ; #endif // _mp2demux__prop_h