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