Adds enough of ks.h, ksguid.h and ksmedia.h to start adding support
[wine] / include / ddstream.h
1 /*** Autogenerated by WIDL 0.1 from ddstream.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
4
5 #ifndef __WIDL_DDSTREAM_H
6 #define __WIDL_DDSTREAM_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <unknwn.h>
11 #include <mmstream.h>
12 #ifndef __WINE_DDRAW_H
13 typedef void *LPDDSURFACEDESC;
14
15 typedef struct tDDSURFACEDESC DDSURFACEDESC;
16
17 #ifndef __IDirectDraw_FWD_DEFINED__
18 #define __IDirectDraw_FWD_DEFINED__
19 typedef struct IDirectDraw IDirectDraw;
20 #endif
21
22 #ifndef __IDirectDrawSurface_FWD_DEFINED__
23 #define __IDirectDrawSurface_FWD_DEFINED__
24 typedef struct IDirectDrawSurface IDirectDrawSurface;
25 #endif
26
27 #ifndef __IDirectDrawPalette_FWD_DEFINED__
28 #define __IDirectDrawPalette_FWD_DEFINED__
29 typedef struct IDirectDrawPalette IDirectDrawPalette;
30 #endif
31
32 #endif
33 #include <ddraw.h>
34 enum {
35     DDSFF_PROGRESSIVERENDER = 0x1
36 };
37
38 #ifndef __IDirectDrawMediaStream_FWD_DEFINED__
39 #define __IDirectDrawMediaStream_FWD_DEFINED__
40 typedef struct IDirectDrawMediaStream IDirectDrawMediaStream;
41 #endif
42
43 #ifndef __IDirectDrawStreamSample_FWD_DEFINED__
44 #define __IDirectDrawStreamSample_FWD_DEFINED__
45 typedef struct IDirectDrawStreamSample IDirectDrawStreamSample;
46 #endif
47
48 /*****************************************************************************
49  * IDirectDrawMediaStream interface
50  */
51 #ifndef __IDirectDrawMediaStream_INTERFACE_DEFINED__
52 #define __IDirectDrawMediaStream_INTERFACE_DEFINED__
53
54 DEFINE_GUID(IID_IDirectDrawMediaStream, 0xf4104fce, 0x9a70, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
55 #if defined(__cplusplus) && !defined(CINTERFACE)
56 struct IDirectDrawMediaStream : public IMediaStream
57 {
58     virtual HRESULT STDMETHODCALLTYPE GetFormat(
59         DDSURFACEDESC* pDDSDCurrent,
60         IDirectDrawPalette** ppDirectDrawPalette,
61         DDSURFACEDESC* pDDSDDesired,
62         DWORD* pdwFlags) = 0;
63
64     virtual HRESULT STDMETHODCALLTYPE SetFormat(
65         const DDSURFACEDESC* pDDSurfaceDesc,
66         IDirectDrawPalette* pDirectDrawPalette) = 0;
67
68     virtual HRESULT STDMETHODCALLTYPE GetDirectDraw(
69         IDirectDraw** ppDirectDraw) = 0;
70
71     virtual HRESULT STDMETHODCALLTYPE SetDirectDraw(
72         IDirectDraw* pDirectDraw) = 0;
73
74     virtual HRESULT STDMETHODCALLTYPE CreateSample(
75         IDirectDrawSurface* pSurface,
76         const RECT* pRect,
77         DWORD dwFlags,
78         IDirectDrawStreamSample** ppSample) = 0;
79
80     virtual HRESULT STDMETHODCALLTYPE GetTimePerFrame(
81         STREAM_TIME* pFrameTime) = 0;
82
83 };
84 #else
85 typedef struct IDirectDrawMediaStreamVtbl IDirectDrawMediaStreamVtbl;
86 struct IDirectDrawMediaStream {
87     const IDirectDrawMediaStreamVtbl* lpVtbl;
88 };
89 struct IDirectDrawMediaStreamVtbl {
90     ICOM_MSVTABLE_COMPAT_FIELDS
91
92     /*** IUnknown methods ***/
93     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
94         IDirectDrawMediaStream* This,
95         REFIID riid,
96         void** ppvObject);
97
98     ULONG (STDMETHODCALLTYPE *AddRef)(
99         IDirectDrawMediaStream* This);
100
101     ULONG (STDMETHODCALLTYPE *Release)(
102         IDirectDrawMediaStream* This);
103
104     /*** IMediaStream methods ***/
105     HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
106         IDirectDrawMediaStream* This,
107         IMultiMediaStream** ppMultiMediaStream);
108
109     HRESULT (STDMETHODCALLTYPE *GetInformation)(
110         IDirectDrawMediaStream* This,
111         MSPID* pPurposeId,
112         STREAM_TYPE* pType);
113
114     HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
115         IDirectDrawMediaStream* This,
116         IMediaStream* pStreamThatHasDesiredFormat,
117         DWORD dwFlags);
118
119     HRESULT (STDMETHODCALLTYPE *AllocateSample)(
120         IDirectDrawMediaStream* This,
121         DWORD dwFlags,
122         IStreamSample** ppSample);
123
124     HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
125         IDirectDrawMediaStream* This,
126         IStreamSample* pExistingSample,
127         DWORD dwFlags,
128         IStreamSample** ppNewSample);
129
130     HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
131         IDirectDrawMediaStream* This,
132         DWORD dwFlags);
133
134     /*** IDirectDrawMediaStream methods ***/
135     HRESULT (STDMETHODCALLTYPE *GetFormat)(
136         IDirectDrawMediaStream* This,
137         DDSURFACEDESC* pDDSDCurrent,
138         IDirectDrawPalette** ppDirectDrawPalette,
139         DDSURFACEDESC* pDDSDDesired,
140         DWORD* pdwFlags);
141
142     HRESULT (STDMETHODCALLTYPE *SetFormat)(
143         IDirectDrawMediaStream* This,
144         const DDSURFACEDESC* pDDSurfaceDesc,
145         IDirectDrawPalette* pDirectDrawPalette);
146
147     HRESULT (STDMETHODCALLTYPE *GetDirectDraw)(
148         IDirectDrawMediaStream* This,
149         IDirectDraw** ppDirectDraw);
150
151     HRESULT (STDMETHODCALLTYPE *SetDirectDraw)(
152         IDirectDrawMediaStream* This,
153         IDirectDraw* pDirectDraw);
154
155     HRESULT (STDMETHODCALLTYPE *CreateSample)(
156         IDirectDrawMediaStream* This,
157         IDirectDrawSurface* pSurface,
158         const RECT* pRect,
159         DWORD dwFlags,
160         IDirectDrawStreamSample** ppSample);
161
162     HRESULT (STDMETHODCALLTYPE *GetTimePerFrame)(
163         IDirectDrawMediaStream* This,
164         STREAM_TIME* pFrameTime);
165
166 };
167
168 #ifdef COBJMACROS
169 /*** IUnknown methods ***/
170 #define IDirectDrawMediaStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
171 #define IDirectDrawMediaStream_AddRef(p) (p)->lpVtbl->AddRef(p)
172 #define IDirectDrawMediaStream_Release(p) (p)->lpVtbl->Release(p)
173 /*** IMediaStream methods ***/
174 #define IDirectDrawMediaStream_GetMultiMediaStream(p,a) (p)->lpVtbl->GetMultiMediaStream(p,a)
175 #define IDirectDrawMediaStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
176 #define IDirectDrawMediaStream_SetSameFormat(p,a,b) (p)->lpVtbl->SetSameFormat(p,a,b)
177 #define IDirectDrawMediaStream_AllocateSample(p,a,b) (p)->lpVtbl->AllocateSample(p,a,b)
178 #define IDirectDrawMediaStream_CreateSharedSample(p,a,b,c) (p)->lpVtbl->CreateSharedSample(p,a,b,c)
179 #define IDirectDrawMediaStream_SendEndOfStream(p,a) (p)->lpVtbl->SendEndOfStream(p,a)
180 /*** IDirectDrawMediaStream methods ***/
181 #define IDirectDrawMediaStream_GetFormat(p,a,b,c,d) (p)->lpVtbl->GetFormat(p,a,b,c,d)
182 #define IDirectDrawMediaStream_SetFormat(p,a,b) (p)->lpVtbl->SetFormat(p,a,b)
183 #define IDirectDrawMediaStream_GetDirectDraw(p,a) (p)->lpVtbl->GetDirectDraw(p,a)
184 #define IDirectDrawMediaStream_SetDirectDraw(p,a) (p)->lpVtbl->SetDirectDraw(p,a)
185 #define IDirectDrawMediaStream_CreateSample(p,a,b,c,d) (p)->lpVtbl->CreateSample(p,a,b,c,d)
186 #define IDirectDrawMediaStream_GetTimePerFrame(p,a) (p)->lpVtbl->GetTimePerFrame(p,a)
187 #endif
188
189 #endif
190
191 #define IDirectDrawMediaStream_METHODS \
192     ICOM_MSVTABLE_COMPAT_FIELDS \
193     /*** IUnknown methods ***/ \
194     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
195     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
196     STDMETHOD_(ULONG,Release)(THIS) PURE; \
197     /*** IMediaStream methods ***/ \
198     STDMETHOD_(HRESULT,GetMultiMediaStream)(THIS_ IMultiMediaStream** ppMultiMediaStream) PURE; \
199     STDMETHOD_(HRESULT,GetInformation)(THIS_ MSPID* pPurposeId, STREAM_TYPE* pType) PURE; \
200     STDMETHOD_(HRESULT,SetSameFormat)(THIS_ IMediaStream* pStreamThatHasDesiredFormat, DWORD dwFlags) PURE; \
201     STDMETHOD_(HRESULT,AllocateSample)(THIS_ DWORD dwFlags, IStreamSample** ppSample) PURE; \
202     STDMETHOD_(HRESULT,CreateSharedSample)(THIS_ IStreamSample* pExistingSample, DWORD dwFlags, IStreamSample** ppNewSample) PURE; \
203     STDMETHOD_(HRESULT,SendEndOfStream)(THIS_ DWORD dwFlags) PURE; \
204     /*** IDirectDrawMediaStream methods ***/ \
205     STDMETHOD_(HRESULT,GetFormat)(THIS_ DDSURFACEDESC* pDDSDCurrent, IDirectDrawPalette** ppDirectDrawPalette, DDSURFACEDESC* pDDSDDesired, DWORD* pdwFlags) PURE; \
206     STDMETHOD_(HRESULT,SetFormat)(THIS_ const DDSURFACEDESC* pDDSurfaceDesc, IDirectDrawPalette* pDirectDrawPalette) PURE; \
207     STDMETHOD_(HRESULT,GetDirectDraw)(THIS_ IDirectDraw** ppDirectDraw) PURE; \
208     STDMETHOD_(HRESULT,SetDirectDraw)(THIS_ IDirectDraw* pDirectDraw) PURE; \
209     STDMETHOD_(HRESULT,CreateSample)(THIS_ IDirectDrawSurface* pSurface, const RECT* pRect, DWORD dwFlags, IDirectDrawStreamSample** ppSample) PURE; \
210     STDMETHOD_(HRESULT,GetTimePerFrame)(THIS_ STREAM_TIME* pFrameTime) PURE;
211
212 HRESULT CALLBACK IDirectDrawMediaStream_GetFormat_Proxy(
213     IDirectDrawMediaStream* This,
214     DDSURFACEDESC* pDDSDCurrent,
215     IDirectDrawPalette** ppDirectDrawPalette,
216     DDSURFACEDESC* pDDSDDesired,
217     DWORD* pdwFlags);
218 void __RPC_STUB IDirectDrawMediaStream_GetFormat_Stub(
219     struct IRpcStubBuffer* This,
220     struct IRpcChannelBuffer* pRpcChannelBuffer,
221     PRPC_MESSAGE pRpcMessage,
222     DWORD* pdwStubPhase);
223 HRESULT CALLBACK IDirectDrawMediaStream_SetFormat_Proxy(
224     IDirectDrawMediaStream* This,
225     const DDSURFACEDESC* pDDSurfaceDesc,
226     IDirectDrawPalette* pDirectDrawPalette);
227 void __RPC_STUB IDirectDrawMediaStream_SetFormat_Stub(
228     struct IRpcStubBuffer* This,
229     struct IRpcChannelBuffer* pRpcChannelBuffer,
230     PRPC_MESSAGE pRpcMessage,
231     DWORD* pdwStubPhase);
232 HRESULT CALLBACK IDirectDrawMediaStream_GetDirectDraw_Proxy(
233     IDirectDrawMediaStream* This,
234     IDirectDraw** ppDirectDraw);
235 void __RPC_STUB IDirectDrawMediaStream_GetDirectDraw_Stub(
236     struct IRpcStubBuffer* This,
237     struct IRpcChannelBuffer* pRpcChannelBuffer,
238     PRPC_MESSAGE pRpcMessage,
239     DWORD* pdwStubPhase);
240 HRESULT CALLBACK IDirectDrawMediaStream_SetDirectDraw_Proxy(
241     IDirectDrawMediaStream* This,
242     IDirectDraw* pDirectDraw);
243 void __RPC_STUB IDirectDrawMediaStream_SetDirectDraw_Stub(
244     struct IRpcStubBuffer* This,
245     struct IRpcChannelBuffer* pRpcChannelBuffer,
246     PRPC_MESSAGE pRpcMessage,
247     DWORD* pdwStubPhase);
248 HRESULT CALLBACK IDirectDrawMediaStream_CreateSample_Proxy(
249     IDirectDrawMediaStream* This,
250     IDirectDrawSurface* pSurface,
251     const RECT* pRect,
252     DWORD dwFlags,
253     IDirectDrawStreamSample** ppSample);
254 void __RPC_STUB IDirectDrawMediaStream_CreateSample_Stub(
255     struct IRpcStubBuffer* This,
256     struct IRpcChannelBuffer* pRpcChannelBuffer,
257     PRPC_MESSAGE pRpcMessage,
258     DWORD* pdwStubPhase);
259 HRESULT CALLBACK IDirectDrawMediaStream_GetTimePerFrame_Proxy(
260     IDirectDrawMediaStream* This,
261     STREAM_TIME* pFrameTime);
262 void __RPC_STUB IDirectDrawMediaStream_GetTimePerFrame_Stub(
263     struct IRpcStubBuffer* This,
264     struct IRpcChannelBuffer* pRpcChannelBuffer,
265     PRPC_MESSAGE pRpcMessage,
266     DWORD* pdwStubPhase);
267
268 #endif  /* __IDirectDrawMediaStream_INTERFACE_DEFINED__ */
269
270 /*****************************************************************************
271  * IDirectDrawStreamSample interface
272  */
273 #ifndef __IDirectDrawStreamSample_INTERFACE_DEFINED__
274 #define __IDirectDrawStreamSample_INTERFACE_DEFINED__
275
276 DEFINE_GUID(IID_IDirectDrawStreamSample, 0xf4104fcf, 0x9a70, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
277 #if defined(__cplusplus) && !defined(CINTERFACE)
278 struct IDirectDrawStreamSample : public IStreamSample
279 {
280     virtual HRESULT STDMETHODCALLTYPE GetSurface(
281         IDirectDrawSurface** ppDirectDrawSurface,
282         RECT* pRect) = 0;
283
284     virtual HRESULT STDMETHODCALLTYPE SetRect(
285         const RECT* pRect) = 0;
286
287 };
288 #else
289 typedef struct IDirectDrawStreamSampleVtbl IDirectDrawStreamSampleVtbl;
290 struct IDirectDrawStreamSample {
291     const IDirectDrawStreamSampleVtbl* lpVtbl;
292 };
293 struct IDirectDrawStreamSampleVtbl {
294     ICOM_MSVTABLE_COMPAT_FIELDS
295
296     /*** IUnknown methods ***/
297     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
298         IDirectDrawStreamSample* This,
299         REFIID riid,
300         void** ppvObject);
301
302     ULONG (STDMETHODCALLTYPE *AddRef)(
303         IDirectDrawStreamSample* This);
304
305     ULONG (STDMETHODCALLTYPE *Release)(
306         IDirectDrawStreamSample* This);
307
308     /*** IStreamSample methods ***/
309     HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
310         IDirectDrawStreamSample* This,
311         IMediaStream** ppMediaStream);
312
313     HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
314         IDirectDrawStreamSample* This,
315         STREAM_TIME* pStartTime,
316         STREAM_TIME* pEndTime,
317         STREAM_TIME* pCurrentTime);
318
319     HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
320         IDirectDrawStreamSample* This,
321         const STREAM_TIME* pStartTime,
322         const STREAM_TIME* pEndTime);
323
324     HRESULT (STDMETHODCALLTYPE *Update)(
325         IDirectDrawStreamSample* This,
326         DWORD dwFlags,
327         HANDLE hEvent,
328         PAPCFUNC pfnAPC,
329         DWORD dwAPCData);
330
331     HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
332         IDirectDrawStreamSample* This,
333         DWORD dwFlags,
334         DWORD dwMilliseconds);
335
336     /*** IDirectDrawStreamSample methods ***/
337     HRESULT (STDMETHODCALLTYPE *GetSurface)(
338         IDirectDrawStreamSample* This,
339         IDirectDrawSurface** ppDirectDrawSurface,
340         RECT* pRect);
341
342     HRESULT (STDMETHODCALLTYPE *SetRect)(
343         IDirectDrawStreamSample* This,
344         const RECT* pRect);
345
346 };
347
348 #ifdef COBJMACROS
349 /*** IUnknown methods ***/
350 #define IDirectDrawStreamSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
351 #define IDirectDrawStreamSample_AddRef(p) (p)->lpVtbl->AddRef(p)
352 #define IDirectDrawStreamSample_Release(p) (p)->lpVtbl->Release(p)
353 /*** IStreamSample methods ***/
354 #define IDirectDrawStreamSample_GetMediaStream(p,a) (p)->lpVtbl->GetMediaStream(p,a)
355 #define IDirectDrawStreamSample_GetSampleTimes(p,a,b,c) (p)->lpVtbl->GetSampleTimes(p,a,b,c)
356 #define IDirectDrawStreamSample_SetSampleTimes(p,a,b) (p)->lpVtbl->SetSampleTimes(p,a,b)
357 #define IDirectDrawStreamSample_Update(p,a,b,c,d) (p)->lpVtbl->Update(p,a,b,c,d)
358 #define IDirectDrawStreamSample_CompletionStatus(p,a,b) (p)->lpVtbl->CompletionStatus(p,a,b)
359 /*** IDirectDrawStreamSample methods ***/
360 #define IDirectDrawStreamSample_GetSurface(p,a,b) (p)->lpVtbl->GetSurface(p,a,b)
361 #define IDirectDrawStreamSample_SetRect(p,a) (p)->lpVtbl->SetRect(p,a)
362 #endif
363
364 #endif
365
366 #define IDirectDrawStreamSample_METHODS \
367     ICOM_MSVTABLE_COMPAT_FIELDS \
368     /*** IUnknown methods ***/ \
369     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
370     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
371     STDMETHOD_(ULONG,Release)(THIS) PURE; \
372     /*** IStreamSample methods ***/ \
373     STDMETHOD_(HRESULT,GetMediaStream)(THIS_ IMediaStream** ppMediaStream) PURE; \
374     STDMETHOD_(HRESULT,GetSampleTimes)(THIS_ STREAM_TIME* pStartTime, STREAM_TIME* pEndTime, STREAM_TIME* pCurrentTime) PURE; \
375     STDMETHOD_(HRESULT,SetSampleTimes)(THIS_ const STREAM_TIME* pStartTime, const STREAM_TIME* pEndTime) PURE; \
376     STDMETHOD_(HRESULT,Update)(THIS_ DWORD dwFlags, HANDLE hEvent, PAPCFUNC pfnAPC, DWORD dwAPCData) PURE; \
377     STDMETHOD_(HRESULT,CompletionStatus)(THIS_ DWORD dwFlags, DWORD dwMilliseconds) PURE; \
378     /*** IDirectDrawStreamSample methods ***/ \
379     STDMETHOD_(HRESULT,GetSurface)(THIS_ IDirectDrawSurface** ppDirectDrawSurface, RECT* pRect) PURE; \
380     STDMETHOD_(HRESULT,SetRect)(THIS_ const RECT* pRect) PURE;
381
382 HRESULT CALLBACK IDirectDrawStreamSample_GetSurface_Proxy(
383     IDirectDrawStreamSample* This,
384     IDirectDrawSurface** ppDirectDrawSurface,
385     RECT* pRect);
386 void __RPC_STUB IDirectDrawStreamSample_GetSurface_Stub(
387     struct IRpcStubBuffer* This,
388     struct IRpcChannelBuffer* pRpcChannelBuffer,
389     PRPC_MESSAGE pRpcMessage,
390     DWORD* pdwStubPhase);
391 HRESULT CALLBACK IDirectDrawStreamSample_SetRect_Proxy(
392     IDirectDrawStreamSample* This,
393     const RECT* pRect);
394 void __RPC_STUB IDirectDrawStreamSample_SetRect_Stub(
395     struct IRpcStubBuffer* This,
396     struct IRpcChannelBuffer* pRpcChannelBuffer,
397     PRPC_MESSAGE pRpcMessage,
398     DWORD* pdwStubPhase);
399
400 #endif  /* __IDirectDrawStreamSample_INTERFACE_DEFINED__ */
401
402 #ifdef __cplusplus
403 }
404 #endif
405 #endif /* __WIDL_DDSTREAM_H */