TESTING -- override pthreads to fix gstreamer v5
[wine/multimedia.git] / include / dyngraph.idl
blob92f91e84155b4726f5300850b0fbdd5be6542b30
1 /*
2 * Copyright (C) 2002 Robert Shearman
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #if 0
20 #pragma makedep install
21 #endif
23 interface IPinConnection;
24 interface IPinFlowControl;
25 interface IGraphConfig;
26 interface IGraphConfigCallback;
29 local,
30 object,
31 uuid(4a9a62d3-27d4-403d-91e9-89f540e55534),
32 pointer_default(unique)
34 interface IPinConnection : IUnknown
36 HRESULT DynamicQueryAccept([in] const AM_MEDIA_TYPE *pmt);
38 HRESULT NotifyEndOfStream([in] HANDLE hNotifyEvent);
40 HRESULT IsEndPin();
42 HRESULT DynamicDisconnect();
46 local,
47 object,
48 uuid(c56e9858-dbf3-4f6b-8119-384af2060deb),
49 pointer_default(unique)
51 interface IPinFlowControl : IUnknown
53 HRESULT Block([in] DWORD dwBlockFlags, [in] HANDLE hEvent);
56 enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS
58 AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001,
61 typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS
63 AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x00000001,
64 AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x00000002,
65 AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004
66 } AM_GRAPH_CONFIG_RECONNECT_FLAGS;
68 enum _REM_FILTER_FLAGS
70 REMFILTERF_LEAVECONNECTED = 0x00000001
73 typedef enum _AM_FILTER_FLAGS
75 AM_FILTER_FLAGS_REMOVABLE = 0x00000001
76 } AM_FILTER_FLAGS;
79 local,
80 object,
81 uuid(03A1EB8E-32BF-4245-8502-114D08A9CB88),
82 pointer_default(unique)
84 interface IGraphConfig : IUnknown
86 HRESULT Reconnect(
87 [in] IPin *pOutputPin,
88 [in] IPin *pInputPin,
89 [in] const AM_MEDIA_TYPE *pmtFirstConnection,
90 [in] IBaseFilter *pUsingFilter,
91 [in] HANDLE hAbortEvent,
92 [in] DWORD dwFlags);
94 HRESULT Reconfigure(
95 [in] IGraphConfigCallback *pCallback,
96 [in] PVOID pvContext,
97 [in] DWORD dwFlags,
98 [in] HANDLE hAbortEvent);
100 HRESULT AddFilterToCache([in] IBaseFilter *pFilter);
102 HRESULT EnumCacheFilter([out] IEnumFilters **pEnum);
104 HRESULT RemoveFilterFromCache([in]IBaseFilter *pFilter);
106 HRESULT GetStartTime([out] REFERENCE_TIME *prtStart);
108 HRESULT PushThroughData(
109 [in] IPin *pOutputPin,
110 [in] IPinConnection *pConnection,
111 [in] HANDLE hEventAbort);
113 HRESULT SetFilterFlags([in] IBaseFilter *pFilter, [in] DWORD dwFlags);
115 HRESULT GetFilterFlags([in] IBaseFilter *pFilter, [out] DWORD *pdwFlags);
117 HRESULT RemoveFilterEx([in] IBaseFilter *pFilter, DWORD Flags);
121 local,
122 object,
123 uuid(ade0fd60-d19d-11d2-abf6-00a0c905f375),
124 pointer_default(unique)
126 interface IGraphConfigCallback : IUnknown
128 HRESULT Reconfigure(PVOID pvContext, DWORD dwFlags);
132 local,
133 object,
134 uuid(DCFBDCF6-0DC2-45f5-9AB2-7C330EA09C29),
135 pointer_default(unique)
137 interface IFilterChain : IUnknown
139 HRESULT StartChain(
140 [in] IBaseFilter *pStartFilter,
141 [in] IBaseFilter *pEndFilter);
143 HRESULT PauseChain(
144 [in] IBaseFilter *pStartFilter,
145 [in] IBaseFilter *pEndFilter);
147 HRESULT StopChain(
148 [in] IBaseFilter *pStartFilter,
149 [in] IBaseFilter *pEndFilter);
151 HRESULT RemoveChain(
152 [in] IBaseFilter *pStartFilter,
153 [in] IBaseFilter *pEndFilter);