sync with trunk r46493
[reactos.git] / dll / directx / ksproxy / precomp.h
1 #pragma once
2
3 #define _FORCENAMELESSUNION
4 #define BUILDING_KS
5 #define _KSDDK_
6 //#define KSPROXY_TRACE
7 #include <dshow.h>
8 //#include <streams.h>
9 #include <ks.h>
10 #define __STREAMS__
11 #include <ksproxy.h>
12 #include <stdio.h>
13 #include <wchar.h>
14 #include <tchar.h>
15 #include <uuids.h>
16 #include <dvp.h>
17 #include <vptype.h>
18 #include <vpconfig.h>
19 #include <setupapi.h>
20 #include <stdio.h>
21 #include <vector>
22 #include <stack>
23 #include <list>
24 #include <assert.h>
25 #include <ksmedia.h>
26 //#include <debug.h>
27
28
29 interface DECLSPEC_UUID("877E4351-6FEA-11D0-B863-00AA00A216A1") IKsClock;
30
31 #undef INTERFACE
32 #define INTERFACE IKsClock
33
34 DECLARE_INTERFACE_(IKsClock, IUnknown)
35 {
36 STDMETHOD_(HANDLE, KsGetClockHandle)(
37 THIS
38 ) PURE;
39 };
40
41
42 typedef HRESULT (CALLBACK *LPFNCREATEINSTANCE)(IUnknown* pUnkOuter, REFIID riid, LPVOID* ppvObject);
43
44 typedef struct {
45 const GUID* riid;
46 LPFNCREATEINSTANCE lpfnCI;
47 } INTERFACE_TABLE;
48
49 /* classfactory.cpp */
50
51 IClassFactory *
52 CClassFactory_fnConstructor(
53 LPFNCREATEINSTANCE lpfnCI,
54 PLONG pcRefDll,
55 IID * riidInst);
56
57 /* datatype.cpp */
58 HRESULT
59 WINAPI
60 CKsDataTypeHandler_Constructor(
61 IUnknown * pUnkOuter,
62 REFIID riid,
63 LPVOID * ppv);
64
65 /* interface.cpp */
66 HRESULT
67 WINAPI
68 CKsInterfaceHandler_Constructor(
69 IUnknown * pUnkOuter,
70 REFIID riid,
71 LPVOID * ppv);
72
73 /* clockforward.cpp */
74 HRESULT
75 WINAPI
76 CKsClockForwarder_Constructor(
77 IUnknown * pUnkOuter,
78 REFIID riid,
79 LPVOID * ppv);
80
81 /* qualityforward.cpp */
82 HRESULT
83 WINAPI
84 CKsQualityForwarder_Constructor(
85 IUnknown * pUnkOuter,
86 REFIID riid,
87 LPVOID * ppv);
88
89 /* cvpconfig.cpp */
90 HRESULT
91 WINAPI
92 CVPConfig_Constructor(
93 IUnknown * pUnkOuter,
94 REFIID riid,
95 LPVOID * ppv);
96
97 /* cvpvbiconfig.cpp */
98 HRESULT
99 WINAPI
100 CVPVBIConfig_Constructor(
101 IUnknown * pUnkOuter,
102 REFIID riid,
103 LPVOID * ppv);
104
105 /* basicaudio.cpp */
106 HRESULT
107 WINAPI
108 CKsBasicAudio_Constructor(
109 IUnknown * pUnkOuter,
110 REFIID riid,
111 LPVOID * ppv);
112
113 /* proxy.cpp */
114 HRESULT
115 WINAPI
116 CKsProxy_Constructor(
117 IUnknown * pUnkOuter,
118 REFIID riid,
119 LPVOID * ppv);
120
121 /* input_pin.cpp */
122 HRESULT
123 WINAPI
124 CInputPin_Constructor(
125 IBaseFilter * ParentFilter,
126 LPCWSTR PinName,
127 HANDLE hFilter,
128 ULONG PinId,
129 KSPIN_COMMUNICATION Communication,
130 REFIID riid,
131 LPVOID * ppv);
132
133 /* output_pin.cpp */
134 HRESULT
135 WINAPI
136 COutputPin_Constructor(
137 IBaseFilter * ParentFilter,
138 LPCWSTR PinName,
139 ULONG PinId,
140 KSPIN_COMMUNICATION Communication,
141 REFIID riid,
142 LPVOID * ppv);
143
144 HRESULT
145 STDMETHODCALLTYPE
146 COutputPin_SetState(
147 IPin * Pin,
148 KSSTATE State);
149
150 /* enumpins.cpp */
151 HRESULT
152 WINAPI
153 CEnumPins_fnConstructor(
154 std::vector<IPin*> Pins,
155 REFIID riid,
156 LPVOID * ppv);
157
158 /* enum_mediatypes.cpp */
159 HRESULT
160 WINAPI
161 CEnumMediaTypes_fnConstructor(
162 ULONG MediaTypeCount,
163 AM_MEDIA_TYPE * MediaTypes,
164 REFIID riid,
165 LPVOID * ppv);
166
167 /* node.cpp */
168 HRESULT
169 WINAPI
170 CKsNode_Constructor(
171 IUnknown * pUnkOuter,
172 HANDLE ParentHandle,
173 ULONG NodeId,
174 ACCESS_MASK DesiredAccess,
175 REFIID riid,
176 LPVOID * ppv);
177
178 /* allocator.cpp */
179 HRESULT
180 WINAPI
181 CKsAllocator_Constructor(
182 IUnknown * pUnkOuter,
183 REFIID riid,
184 LPVOID * ppv);
185
186 /* mediasample.cpp */
187 HRESULT
188 WINAPI
189 CMediaSample_Constructor(
190 IMemAllocator* Allocator,
191 BYTE* pBuffer,
192 ULONG BufferSize,
193 REFIID riid,
194 LPVOID * ppv);
195
196
197 extern const GUID IID_IKsObject;
198 extern const GUID IID_IKsPinEx;
199 extern const GUID IID_IKsAggregateControl;
200 extern const GUID IID_IKsPinPipe;
201 extern const GUID IID_IKsPinFactory;
202 extern const GUID IID_IKsAllocatorEx;
203 extern KSPIN_INTERFACE StandardPinInterface;
204 extern KSPIN_MEDIUM StandardPinMedium;