+++ /dev/null
-/*
- * Copyright (C) 2002 Robert Shearman
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-interface IPinConnection;
-interface IPinFlowControl;
-interface IGraphConfig;
-interface IGraphConfigCallback;
-
-[
- local,
- object,
- uuid(4a9a62d3-27d4-403d-91e9-89f540e55534),
- pointer_default(unique)
-]
-interface IPinConnection : IUnknown
-{
- HRESULT DynamicQueryAccept([in] const AM_MEDIA_TYPE *pmt);
-
- HRESULT NotifyEndOfStream([in] HANDLE hNotifyEvent);
-
- HRESULT IsEndPin();
-
- HRESULT DynamicDisconnect();
-}
-
-[
- local,
- object,
- uuid(c56e9858-dbf3-4f6b-8119-384af2060deb),
- pointer_default(unique)
-]
-interface IPinFlowControl : IUnknown
-{
- HRESULT Block([in] DWORD dwBlockFlags, [in] HANDLE hEvent);
-}
-
-enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS
-{
- AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001,
-};
-
-typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS
-{
- AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x00000001,
- AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x00000002,
- AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004
-} AM_GRAPH_CONFIG_RECONNECT_FLAGS;
-
-enum _REM_FILTER_FLAGS
-{
- REMFILTERF_LEAVECONNECTED = 0x00000001
-};
-
-typedef enum _AM_FILTER_FLAGS
-{
- AM_FILTER_FLAGS_REMOVABLE = 0x00000001
-} AM_FILTER_FLAGS;
-
-[
- local,
- object,
- uuid(03A1EB8E-32BF-4245-8502-114D08A9CB88),
- pointer_default(unique)
-]
-interface IGraphConfig : IUnknown
-{
- HRESULT Reconnect(
- [in] IPin *pOutputPin,
- [in] IPin *pInputPin,
- [in] const AM_MEDIA_TYPE *pmtFirstConnection,
- [in] IBaseFilter *pUsingFilter,
- [in] HANDLE hAbortEvent,
- [in] DWORD dwFlags);
-
- HRESULT Reconfigure(
- [in] IGraphConfigCallback *pCallback,
- [in] PVOID pvContext,
- [in] DWORD dwFlags,
- [in] HANDLE hAbortEvent);
-
- HRESULT AddFilterToCache([in] IBaseFilter *pFilter);
-
- HRESULT EnumCacheFilter([out] IEnumFilters **pEnum);
-
- HRESULT RemoveFilterFromCache([in]IBaseFilter *pFilter);
-
- HRESULT GetStartTime([out] REFERENCE_TIME *prtStart);
-
- HRESULT PushThroughData(
- [in] IPin *pOutputPin,
- [in] IPinConnection *pConnection,
- [in] HANDLE hEventAbort);
-
- HRESULT SetFilterFlags([in] IBaseFilter *pFilter, [in] DWORD dwFlags);
-
- HRESULT GetFilterFlags([in] IBaseFilter *pFilter, [out] DWORD *pdwFlags);
-
- HRESULT RemoveFilterEx([in] IBaseFilter *pFilter, DWORD Flags);
-}
-
-[
- local,
- object,
- uuid(ade0fd60-d19d-11d2-abf6-00a0c905f375),
- pointer_default(unique)
-]
-interface IGraphConfigCallback : IUnknown
-{
- HRESULT Reconfigure(PVOID pvContext, DWORD dwFlags);
-}
-
-[
- local,
- object,
- uuid(DCFBDCF6-0DC2-45f5-9AB2-7C330EA09C29),
- pointer_default(unique)
-]
-interface IFilterChain : IUnknown
-{
- HRESULT StartChain(
- [in] IBaseFilter *pStartFilter,
- [in] IBaseFilter *pEndFilter);
-
- HRESULT PauseChain(
- [in] IBaseFilter *pStartFilter,
- [in] IBaseFilter *pEndFilter);
-
- HRESULT StopChain(
- [in] IBaseFilter *pStartFilter,
- [in] IBaseFilter *pEndFilter);
-
- HRESULT RemoveChain(
- [in] IBaseFilter *pStartFilter,
- [in] IBaseFilter *pEndFilter);
-}