Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/mspterm.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 #ifndef _MSPTERM_H_ | |
| 2 #define _MSPTERM_H_ | |
| 3 | |
| 4 template <class T> class ITTerminalVtblBase : public ITTerminal { | |
| 5 }; | |
| 6 | |
| 7 class CBaseTerminal : virtual public CComObjectRootEx<CComMultiThreadModelNoCS>,public IDispatchImpl<ITTerminalVtblBase<CBaseTerminal>,&IID_ITTerminal,&LIBID_TAPI3Lib>,public ITTerminalControl | |
| 8 { | |
| 9 BEGIN_COM_MAP(CBaseTerminal) | |
| 10 COM_INTERFACE_ENTRY(IDispatch) | |
| 11 COM_INTERFACE_ENTRY(ITTerminal) | |
| 12 COM_INTERFACE_ENTRY(ITTerminalControl) | |
| 13 COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal,m_pFTM) | |
| 14 END_COM_MAP() | |
| 15 DECLARE_VQI() | |
| 16 DECLARE_GET_CONTROLLING_UNKNOWN() | |
| 17 public: | |
| 18 CBaseTerminal(); | |
| 19 virtual ~CBaseTerminal(); | |
| 20 public: | |
| 21 STDMETHOD(get_TerminalClass)(BSTR *pVal); | |
| 22 STDMETHOD(get_TerminalType)(TERMINAL_TYPE *pVal); | |
| 23 STDMETHOD(get_State)(TERMINAL_STATE *pVal); | |
| 24 STDMETHOD(get_Name)(BSTR *pVal); | |
| 25 STDMETHOD(get_MediaType)(long *plMediaType); | |
| 26 STDMETHOD(get_Direction)(TERMINAL_DIRECTION *pDirection); | |
| 27 public: | |
| 28 virtual HRESULT Initialize(IID iidTerminalClass,DWORD dwMediaType,TERMINAL_DIRECTION Direction,MSP_HANDLE htAddress); | |
| 29 public: | |
| 30 STDMETHOD (get_AddressHandle)(MSP_HANDLE *phtAddress); | |
| 31 STDMETHOD (ConnectTerminal)(IGraphBuilder *pGraph,DWORD dwTerminalDirection,DWORD *pdwNumPins,IPin **ppPins); | |
| 32 STDMETHOD (CompleteConnectTerminal)(void); | |
| 33 STDMETHOD (DisconnectTerminal)(IGraphBuilder *pGraph,DWORD dwReserved); | |
| 34 STDMETHOD (RunRenderFilter)(void) = 0; | |
| 35 STDMETHOD (StopRenderFilter)(void) = 0; | |
| 36 protected: | |
| 37 CMSPCritSection m_CritSec; | |
| 38 public: | |
| 39 TERMINAL_DIRECTION m_TerminalDirection; | |
| 40 TERMINAL_TYPE m_TerminalType; | |
| 41 TERMINAL_STATE m_TerminalState; | |
| 42 TCHAR m_szName[MAX_PATH + 1]; | |
| 43 IID m_TerminalClassID; | |
| 44 DWORD m_dwMediaType; | |
| 45 MSP_HANDLE m_htAddress; | |
| 46 IUnknown *m_pFTM; | |
| 47 CComPtr<IGraphBuilder> m_pGraph; | |
| 48 virtual HRESULT AddFiltersToGraph() = 0; | |
| 49 virtual HRESULT ConnectFilters() { return S_OK; } | |
| 50 virtual HRESULT GetNumExposedPins(IGraphBuilder *pGraph,DWORD *pdwNumPins) = 0; | |
| 51 virtual HRESULT GetExposedPins(IPin **ppPins) = 0; | |
| 52 virtual DWORD GetSupportedMediaTypes(void) = 0; | |
| 53 virtual HRESULT RemoveFiltersFromGraph() = 0; | |
| 54 WINBOOL MediaTypeSupported(long lMediaType); | |
| 55 }; | |
| 56 | |
| 57 class CSingleFilterTerminal : public CBaseTerminal { | |
| 58 public: | |
| 59 CComPtr<IPin> m_pIPin; | |
| 60 CComPtr<IBaseFilter> m_pIFilter; | |
| 61 public: | |
| 62 STDMETHOD(RunRenderFilter)(void); | |
| 63 STDMETHOD(StopRenderFilter)(void); | |
| 64 virtual HRESULT GetNumExposedPins(IGraphBuilder *pGraph,DWORD *pdwNumPins); | |
| 65 virtual HRESULT GetExposedPins(IPin **ppPins); | |
| 66 virtual HRESULT RemoveFiltersFromGraph(); | |
| 67 }; | |
| 68 | |
| 69 class CSingleFilterStaticTerminal : public CSingleFilterTerminal { | |
| 70 public: | |
| 71 CComPtr<IMoniker> m_pMoniker; | |
| 72 WINBOOL m_bMark; | |
| 73 virtual HRESULT CompareMoniker(IMoniker *pMoniker); | |
| 74 }; | |
| 75 #endif |
