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