source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/mfidl.h@ 1186

Last change on this file since 1186 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 232.2 KB
Line 
1/*** Autogenerated by WIDL 6.12 from include/mfidl.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __mfidl_h__
17#define __mfidl_h__
18
19/* Forward declarations */
20
21#ifndef __IMFTopologyNode_FWD_DEFINED__
22#define __IMFTopologyNode_FWD_DEFINED__
23typedef interface IMFTopologyNode IMFTopologyNode;
24#ifdef __cplusplus
25interface IMFTopologyNode;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IMFTopology_FWD_DEFINED__
30#define __IMFTopology_FWD_DEFINED__
31typedef interface IMFTopology IMFTopology;
32#ifdef __cplusplus
33interface IMFTopology;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IMFGetService_FWD_DEFINED__
38#define __IMFGetService_FWD_DEFINED__
39typedef interface IMFGetService IMFGetService;
40#ifdef __cplusplus
41interface IMFGetService;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IMFClock_FWD_DEFINED__
46#define __IMFClock_FWD_DEFINED__
47typedef interface IMFClock IMFClock;
48#ifdef __cplusplus
49interface IMFClock;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IMFMediaSession_FWD_DEFINED__
54#define __IMFMediaSession_FWD_DEFINED__
55typedef interface IMFMediaSession IMFMediaSession;
56#ifdef __cplusplus
57interface IMFMediaSession;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IMFMediaTypeHandler_FWD_DEFINED__
62#define __IMFMediaTypeHandler_FWD_DEFINED__
63typedef interface IMFMediaTypeHandler IMFMediaTypeHandler;
64#ifdef __cplusplus
65interface IMFMediaTypeHandler;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IMFStreamDescriptor_FWD_DEFINED__
70#define __IMFStreamDescriptor_FWD_DEFINED__
71typedef interface IMFStreamDescriptor IMFStreamDescriptor;
72#ifdef __cplusplus
73interface IMFStreamDescriptor;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IMFPresentationDescriptor_FWD_DEFINED__
78#define __IMFPresentationDescriptor_FWD_DEFINED__
79typedef interface IMFPresentationDescriptor IMFPresentationDescriptor;
80#ifdef __cplusplus
81interface IMFPresentationDescriptor;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __IMFMediaSource_FWD_DEFINED__
86#define __IMFMediaSource_FWD_DEFINED__
87typedef interface IMFMediaSource IMFMediaSource;
88#ifdef __cplusplus
89interface IMFMediaSource;
90#endif /* __cplusplus */
91#endif
92
93#ifndef __IMFByteStreamBuffering_FWD_DEFINED__
94#define __IMFByteStreamBuffering_FWD_DEFINED__
95typedef interface IMFByteStreamBuffering IMFByteStreamBuffering;
96#ifdef __cplusplus
97interface IMFByteStreamBuffering;
98#endif /* __cplusplus */
99#endif
100
101#ifndef __IMFClockStateSink_FWD_DEFINED__
102#define __IMFClockStateSink_FWD_DEFINED__
103typedef interface IMFClockStateSink IMFClockStateSink;
104#ifdef __cplusplus
105interface IMFClockStateSink;
106#endif /* __cplusplus */
107#endif
108
109#ifndef __IMFAudioStreamVolume_FWD_DEFINED__
110#define __IMFAudioStreamVolume_FWD_DEFINED__
111typedef interface IMFAudioStreamVolume IMFAudioStreamVolume;
112#ifdef __cplusplus
113interface IMFAudioStreamVolume;
114#endif /* __cplusplus */
115#endif
116
117#ifndef __IMFMediaSink_FWD_DEFINED__
118#define __IMFMediaSink_FWD_DEFINED__
119typedef interface IMFMediaSink IMFMediaSink;
120#ifdef __cplusplus
121interface IMFMediaSink;
122#endif /* __cplusplus */
123#endif
124
125#ifndef __IMFFinalizableMediaSink_FWD_DEFINED__
126#define __IMFFinalizableMediaSink_FWD_DEFINED__
127typedef interface IMFFinalizableMediaSink IMFFinalizableMediaSink;
128#ifdef __cplusplus
129interface IMFFinalizableMediaSink;
130#endif /* __cplusplus */
131#endif
132
133#ifndef __IMFMediaSinkPreroll_FWD_DEFINED__
134#define __IMFMediaSinkPreroll_FWD_DEFINED__
135typedef interface IMFMediaSinkPreroll IMFMediaSinkPreroll;
136#ifdef __cplusplus
137interface IMFMediaSinkPreroll;
138#endif /* __cplusplus */
139#endif
140
141#ifndef __IMFMediaStream_FWD_DEFINED__
142#define __IMFMediaStream_FWD_DEFINED__
143typedef interface IMFMediaStream IMFMediaStream;
144#ifdef __cplusplus
145interface IMFMediaStream;
146#endif /* __cplusplus */
147#endif
148
149#ifndef __IMFMetadata_FWD_DEFINED__
150#define __IMFMetadata_FWD_DEFINED__
151typedef interface IMFMetadata IMFMetadata;
152#ifdef __cplusplus
153interface IMFMetadata;
154#endif /* __cplusplus */
155#endif
156
157#ifndef __IMFMetadataProvider_FWD_DEFINED__
158#define __IMFMetadataProvider_FWD_DEFINED__
159typedef interface IMFMetadataProvider IMFMetadataProvider;
160#ifdef __cplusplus
161interface IMFMetadataProvider;
162#endif /* __cplusplus */
163#endif
164
165#ifndef __IMFPresentationTimeSource_FWD_DEFINED__
166#define __IMFPresentationTimeSource_FWD_DEFINED__
167typedef interface IMFPresentationTimeSource IMFPresentationTimeSource;
168#ifdef __cplusplus
169interface IMFPresentationTimeSource;
170#endif /* __cplusplus */
171#endif
172
173#ifndef __IMFPresentationClock_FWD_DEFINED__
174#define __IMFPresentationClock_FWD_DEFINED__
175typedef interface IMFPresentationClock IMFPresentationClock;
176#ifdef __cplusplus
177interface IMFPresentationClock;
178#endif /* __cplusplus */
179#endif
180
181#ifndef __IMFRateControl_FWD_DEFINED__
182#define __IMFRateControl_FWD_DEFINED__
183typedef interface IMFRateControl IMFRateControl;
184#ifdef __cplusplus
185interface IMFRateControl;
186#endif /* __cplusplus */
187#endif
188
189#ifndef __IMFRateSupport_FWD_DEFINED__
190#define __IMFRateSupport_FWD_DEFINED__
191typedef interface IMFRateSupport IMFRateSupport;
192#ifdef __cplusplus
193interface IMFRateSupport;
194#endif /* __cplusplus */
195#endif
196
197#ifndef __IMFSampleGrabberSinkCallback_FWD_DEFINED__
198#define __IMFSampleGrabberSinkCallback_FWD_DEFINED__
199typedef interface IMFSampleGrabberSinkCallback IMFSampleGrabberSinkCallback;
200#ifdef __cplusplus
201interface IMFSampleGrabberSinkCallback;
202#endif /* __cplusplus */
203#endif
204
205#ifndef __IMFSourceResolver_FWD_DEFINED__
206#define __IMFSourceResolver_FWD_DEFINED__
207typedef interface IMFSourceResolver IMFSourceResolver;
208#ifdef __cplusplus
209interface IMFSourceResolver;
210#endif /* __cplusplus */
211#endif
212
213#ifndef __IMFStreamSink_FWD_DEFINED__
214#define __IMFStreamSink_FWD_DEFINED__
215typedef interface IMFStreamSink IMFStreamSink;
216#ifdef __cplusplus
217interface IMFStreamSink;
218#endif /* __cplusplus */
219#endif
220
221#ifndef __IMFTopoLoader_FWD_DEFINED__
222#define __IMFTopoLoader_FWD_DEFINED__
223typedef interface IMFTopoLoader IMFTopoLoader;
224#ifdef __cplusplus
225interface IMFTopoLoader;
226#endif /* __cplusplus */
227#endif
228
229/* Headers for imported files */
230
231#include <mfobjects.h>
232
233#ifdef __cplusplus
234extern "C" {
235#endif
236
237#include <mftransform.h>
238#include <windef.h>
239typedef enum MFSESSION_SETTOPOLOGY_FLAGS {
240 MFSESSION_SETTOPOLOGY_IMMEDIATE = 0x1,
241 MFSESSION_SETTOPOLOGY_NORESOLUTION = 0x2,
242 MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = 0x4
243} MFSESSION_SETTOPOLOGY_FLAGS;
244typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS {
245 MFSESSION_GETFULLTOPOLOGY_CURRENT = 0
246} MFSESSION_GETFULLTOPOLOGY_FLAGS;
247typedef enum MFPMPSESSION_CREATION_FLAGS {
248 MFPMPSESSION_UNPROTECTED_PROCESS = 0x1
249} MFPMPSESSION_CREATION_FLAGS;
250typedef UINT64 TOPOID;
251typedef enum MF_TOPOLOGY_TYPE {
252 MF_TOPOLOGY_OUTPUT_NODE = 0,
253 MF_TOPOLOGY_SOURCESTREAM_NODE = 1,
254 MF_TOPOLOGY_TRANSFORM_NODE = 2,
255 MF_TOPOLOGY_TEE_NODE = 3,
256 MF_TOPOLOGY_MAX = 0xffffffff
257} MF_TOPOLOGY_TYPE;
258/*****************************************************************************
259 * IMFTopologyNode interface
260 */
261#ifndef __IMFTopologyNode_INTERFACE_DEFINED__
262#define __IMFTopologyNode_INTERFACE_DEFINED__
263
264DEFINE_GUID(IID_IMFTopologyNode, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x30);
265#if defined(__cplusplus) && !defined(CINTERFACE)
266MIDL_INTERFACE("83cf873a-f6da-4bc8-823f-bacfd55dc430")
267IMFTopologyNode : public IMFAttributes
268{
269 virtual HRESULT STDMETHODCALLTYPE SetObject(
270 IUnknown *pObject) = 0;
271
272 virtual HRESULT STDMETHODCALLTYPE GetObject(
273 IUnknown **ppObject) = 0;
274
275 virtual HRESULT STDMETHODCALLTYPE GetNodeType(
276 MF_TOPOLOGY_TYPE *pType) = 0;
277
278 virtual HRESULT STDMETHODCALLTYPE GetTopoNodeID(
279 TOPOID *pID) = 0;
280
281 virtual HRESULT STDMETHODCALLTYPE SetTopoNodeID(
282 TOPOID ullTopoID) = 0;
283
284 virtual HRESULT STDMETHODCALLTYPE GetInputCount(
285 DWORD *pcInputs) = 0;
286
287 virtual HRESULT STDMETHODCALLTYPE GetOutputCount(
288 DWORD *pcOutputs) = 0;
289
290 virtual HRESULT STDMETHODCALLTYPE ConnectOutput(
291 DWORD dwOutputIndex,
292 IMFTopologyNode *pDownstreamNode,
293 DWORD dwInputIndexOnDownstreamNode) = 0;
294
295 virtual HRESULT STDMETHODCALLTYPE DisconnectOutput(
296 DWORD dwOutputIndex) = 0;
297
298 virtual HRESULT STDMETHODCALLTYPE GetInput(
299 DWORD dwInputIndex,
300 IMFTopologyNode **ppUpstreamNode,
301 DWORD *pdwOutputIndexOnUpstreamNode) = 0;
302
303 virtual HRESULT STDMETHODCALLTYPE GetOutput(
304 DWORD dwOutputIndex,
305 IMFTopologyNode **ppDownstreamNode,
306 DWORD *pdwInputIndexOnDownstreamNode) = 0;
307
308 virtual HRESULT STDMETHODCALLTYPE SetOutputPrefType(
309 DWORD dwOutputIndex,
310 IMFMediaType *pType) = 0;
311
312 virtual HRESULT STDMETHODCALLTYPE GetOutputPrefType(
313 DWORD dwOutputIndex,
314 IMFMediaType **ppType) = 0;
315
316 virtual HRESULT STDMETHODCALLTYPE SetInputPrefType(
317 DWORD dwInputIndex,
318 IMFMediaType *pType) = 0;
319
320 virtual HRESULT STDMETHODCALLTYPE GetInputPrefType(
321 DWORD dwInputIndex,
322 IMFMediaType **ppType) = 0;
323
324 virtual HRESULT STDMETHODCALLTYPE CloneFrom(
325 IMFTopologyNode *pNode) = 0;
326
327};
328#ifdef __CRT_UUID_DECL
329__CRT_UUID_DECL(IMFTopologyNode, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x30)
330#endif
331#else
332typedef struct IMFTopologyNodeVtbl {
333 BEGIN_INTERFACE
334
335 /*** IUnknown methods ***/
336 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
337 IMFTopologyNode *This,
338 REFIID riid,
339 void **ppvObject);
340
341 ULONG (STDMETHODCALLTYPE *AddRef)(
342 IMFTopologyNode *This);
343
344 ULONG (STDMETHODCALLTYPE *Release)(
345 IMFTopologyNode *This);
346
347 /*** IMFAttributes methods ***/
348 HRESULT (STDMETHODCALLTYPE *GetItem)(
349 IMFTopologyNode *This,
350 REFGUID guidKey,
351 PROPVARIANT *pValue);
352
353 HRESULT (STDMETHODCALLTYPE *GetItemType)(
354 IMFTopologyNode *This,
355 REFGUID guidKey,
356 MF_ATTRIBUTE_TYPE *pType);
357
358 HRESULT (STDMETHODCALLTYPE *CompareItem)(
359 IMFTopologyNode *This,
360 REFGUID guidKey,
361 REFPROPVARIANT Value,
362 WINBOOL *pbResult);
363
364 HRESULT (STDMETHODCALLTYPE *Compare)(
365 IMFTopologyNode *This,
366 IMFAttributes *pTheirs,
367 MF_ATTRIBUTES_MATCH_TYPE MatchType,
368 WINBOOL *pbResult);
369
370 HRESULT (STDMETHODCALLTYPE *GetUINT32)(
371 IMFTopologyNode *This,
372 REFGUID guidKey,
373 UINT32 *punValue);
374
375 HRESULT (STDMETHODCALLTYPE *GetUINT64)(
376 IMFTopologyNode *This,
377 REFGUID guidKey,
378 UINT64 *punValue);
379
380 HRESULT (STDMETHODCALLTYPE *GetDouble)(
381 IMFTopologyNode *This,
382 REFGUID guidKey,
383 double *pfValue);
384
385 HRESULT (STDMETHODCALLTYPE *GetGUID)(
386 IMFTopologyNode *This,
387 REFGUID guidKey,
388 GUID *pguidValue);
389
390 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
391 IMFTopologyNode *This,
392 REFGUID guidKey,
393 UINT32 *pcchLength);
394
395 HRESULT (STDMETHODCALLTYPE *GetString)(
396 IMFTopologyNode *This,
397 REFGUID guidKey,
398 LPWSTR pwszValue,
399 UINT32 cchBufSize,
400 UINT32 *pcchLength);
401
402 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
403 IMFTopologyNode *This,
404 REFGUID guidKey,
405 LPWSTR *ppwszValue,
406 UINT32 *pcchLength);
407
408 HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
409 IMFTopologyNode *This,
410 REFGUID guidKey,
411 UINT32 *pcbBlobSize);
412
413 HRESULT (STDMETHODCALLTYPE *GetBlob)(
414 IMFTopologyNode *This,
415 REFGUID guidKey,
416 UINT8 *pBuf,
417 UINT32 cbBufSize,
418 UINT32 *pcbBlobSize);
419
420 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
421 IMFTopologyNode *This,
422 REFGUID guidKey,
423 UINT8 **ppBuf,
424 UINT32 *pcbSize);
425
426 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
427 IMFTopologyNode *This,
428 REFGUID guidKey,
429 REFIID riid,
430 LPVOID *ppv);
431
432 HRESULT (STDMETHODCALLTYPE *SetItem)(
433 IMFTopologyNode *This,
434 REFGUID guidKey,
435 REFPROPVARIANT Value);
436
437 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
438 IMFTopologyNode *This,
439 REFGUID guidKey);
440
441 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
442 IMFTopologyNode *This);
443
444 HRESULT (STDMETHODCALLTYPE *SetUINT32)(
445 IMFTopologyNode *This,
446 REFGUID guidKey,
447 UINT32 unValue);
448
449 HRESULT (STDMETHODCALLTYPE *SetUINT64)(
450 IMFTopologyNode *This,
451 REFGUID guidKey,
452 UINT64 unValue);
453
454 HRESULT (STDMETHODCALLTYPE *SetDouble)(
455 IMFTopologyNode *This,
456 REFGUID guidKey,
457 double fValue);
458
459 HRESULT (STDMETHODCALLTYPE *SetGUID)(
460 IMFTopologyNode *This,
461 REFGUID guidKey,
462 REFGUID guidValue);
463
464 HRESULT (STDMETHODCALLTYPE *SetString)(
465 IMFTopologyNode *This,
466 REFGUID guidKey,
467 LPCWSTR wszValue);
468
469 HRESULT (STDMETHODCALLTYPE *SetBlob)(
470 IMFTopologyNode *This,
471 REFGUID guidKey,
472 const UINT8 *pBuf,
473 UINT32 cbBufSize);
474
475 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
476 IMFTopologyNode *This,
477 REFGUID guidKey,
478 IUnknown *pUnknown);
479
480 HRESULT (STDMETHODCALLTYPE *LockStore)(
481 IMFTopologyNode *This);
482
483 HRESULT (STDMETHODCALLTYPE *UnlockStore)(
484 IMFTopologyNode *This);
485
486 HRESULT (STDMETHODCALLTYPE *GetCount)(
487 IMFTopologyNode *This,
488 UINT32 *pcItems);
489
490 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
491 IMFTopologyNode *This,
492 UINT32 unIndex,
493 GUID *pguidKey,
494 PROPVARIANT *pValue);
495
496 HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
497 IMFTopologyNode *This,
498 IMFAttributes *pDest);
499
500 /*** IMFTopologyNode methods ***/
501 HRESULT (STDMETHODCALLTYPE *SetObject)(
502 IMFTopologyNode *This,
503 IUnknown *pObject);
504
505 HRESULT (STDMETHODCALLTYPE *GetObject)(
506 IMFTopologyNode *This,
507 IUnknown **ppObject);
508
509 HRESULT (STDMETHODCALLTYPE *GetNodeType)(
510 IMFTopologyNode *This,
511 MF_TOPOLOGY_TYPE *pType);
512
513 HRESULT (STDMETHODCALLTYPE *GetTopoNodeID)(
514 IMFTopologyNode *This,
515 TOPOID *pID);
516
517 HRESULT (STDMETHODCALLTYPE *SetTopoNodeID)(
518 IMFTopologyNode *This,
519 TOPOID ullTopoID);
520
521 HRESULT (STDMETHODCALLTYPE *GetInputCount)(
522 IMFTopologyNode *This,
523 DWORD *pcInputs);
524
525 HRESULT (STDMETHODCALLTYPE *GetOutputCount)(
526 IMFTopologyNode *This,
527 DWORD *pcOutputs);
528
529 HRESULT (STDMETHODCALLTYPE *ConnectOutput)(
530 IMFTopologyNode *This,
531 DWORD dwOutputIndex,
532 IMFTopologyNode *pDownstreamNode,
533 DWORD dwInputIndexOnDownstreamNode);
534
535 HRESULT (STDMETHODCALLTYPE *DisconnectOutput)(
536 IMFTopologyNode *This,
537 DWORD dwOutputIndex);
538
539 HRESULT (STDMETHODCALLTYPE *GetInput)(
540 IMFTopologyNode *This,
541 DWORD dwInputIndex,
542 IMFTopologyNode **ppUpstreamNode,
543 DWORD *pdwOutputIndexOnUpstreamNode);
544
545 HRESULT (STDMETHODCALLTYPE *GetOutput)(
546 IMFTopologyNode *This,
547 DWORD dwOutputIndex,
548 IMFTopologyNode **ppDownstreamNode,
549 DWORD *pdwInputIndexOnDownstreamNode);
550
551 HRESULT (STDMETHODCALLTYPE *SetOutputPrefType)(
552 IMFTopologyNode *This,
553 DWORD dwOutputIndex,
554 IMFMediaType *pType);
555
556 HRESULT (STDMETHODCALLTYPE *GetOutputPrefType)(
557 IMFTopologyNode *This,
558 DWORD dwOutputIndex,
559 IMFMediaType **ppType);
560
561 HRESULT (STDMETHODCALLTYPE *SetInputPrefType)(
562 IMFTopologyNode *This,
563 DWORD dwInputIndex,
564 IMFMediaType *pType);
565
566 HRESULT (STDMETHODCALLTYPE *GetInputPrefType)(
567 IMFTopologyNode *This,
568 DWORD dwInputIndex,
569 IMFMediaType **ppType);
570
571 HRESULT (STDMETHODCALLTYPE *CloneFrom)(
572 IMFTopologyNode *This,
573 IMFTopologyNode *pNode);
574
575 END_INTERFACE
576} IMFTopologyNodeVtbl;
577
578interface IMFTopologyNode {
579 CONST_VTBL IMFTopologyNodeVtbl* lpVtbl;
580};
581
582#ifdef COBJMACROS
583#ifndef WIDL_C_INLINE_WRAPPERS
584/*** IUnknown methods ***/
585#define IMFTopologyNode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
586#define IMFTopologyNode_AddRef(This) (This)->lpVtbl->AddRef(This)
587#define IMFTopologyNode_Release(This) (This)->lpVtbl->Release(This)
588/*** IMFAttributes methods ***/
589#define IMFTopologyNode_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
590#define IMFTopologyNode_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
591#define IMFTopologyNode_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
592#define IMFTopologyNode_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
593#define IMFTopologyNode_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
594#define IMFTopologyNode_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
595#define IMFTopologyNode_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
596#define IMFTopologyNode_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
597#define IMFTopologyNode_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
598#define IMFTopologyNode_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
599#define IMFTopologyNode_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
600#define IMFTopologyNode_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
601#define IMFTopologyNode_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
602#define IMFTopologyNode_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
603#define IMFTopologyNode_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
604#define IMFTopologyNode_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
605#define IMFTopologyNode_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
606#define IMFTopologyNode_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
607#define IMFTopologyNode_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
608#define IMFTopologyNode_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
609#define IMFTopologyNode_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
610#define IMFTopologyNode_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
611#define IMFTopologyNode_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
612#define IMFTopologyNode_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
613#define IMFTopologyNode_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
614#define IMFTopologyNode_LockStore(This) (This)->lpVtbl->LockStore(This)
615#define IMFTopologyNode_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
616#define IMFTopologyNode_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
617#define IMFTopologyNode_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
618#define IMFTopologyNode_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
619/*** IMFTopologyNode methods ***/
620#define IMFTopologyNode_SetObject(This,pObject) (This)->lpVtbl->SetObject(This,pObject)
621#define IMFTopologyNode_GetObject(This,ppObject) (This)->lpVtbl->GetObject(This,ppObject)
622#define IMFTopologyNode_GetNodeType(This,pType) (This)->lpVtbl->GetNodeType(This,pType)
623#define IMFTopologyNode_GetTopoNodeID(This,pID) (This)->lpVtbl->GetTopoNodeID(This,pID)
624#define IMFTopologyNode_SetTopoNodeID(This,ullTopoID) (This)->lpVtbl->SetTopoNodeID(This,ullTopoID)
625#define IMFTopologyNode_GetInputCount(This,pcInputs) (This)->lpVtbl->GetInputCount(This,pcInputs)
626#define IMFTopologyNode_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs)
627#define IMFTopologyNode_ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode) (This)->lpVtbl->ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode)
628#define IMFTopologyNode_DisconnectOutput(This,dwOutputIndex) (This)->lpVtbl->DisconnectOutput(This,dwOutputIndex)
629#define IMFTopologyNode_GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode) (This)->lpVtbl->GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode)
630#define IMFTopologyNode_GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode) (This)->lpVtbl->GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode)
631#define IMFTopologyNode_SetOutputPrefType(This,dwOutputIndex,pType) (This)->lpVtbl->SetOutputPrefType(This,dwOutputIndex,pType)
632#define IMFTopologyNode_GetOutputPrefType(This,dwOutputIndex,ppType) (This)->lpVtbl->GetOutputPrefType(This,dwOutputIndex,ppType)
633#define IMFTopologyNode_SetInputPrefType(This,dwInputIndex,pType) (This)->lpVtbl->SetInputPrefType(This,dwInputIndex,pType)
634#define IMFTopologyNode_GetInputPrefType(This,dwInputIndex,ppType) (This)->lpVtbl->GetInputPrefType(This,dwInputIndex,ppType)
635#define IMFTopologyNode_CloneFrom(This,pNode) (This)->lpVtbl->CloneFrom(This,pNode)
636#else
637/*** IUnknown methods ***/
638static FORCEINLINE HRESULT IMFTopologyNode_QueryInterface(IMFTopologyNode* This,REFIID riid,void **ppvObject) {
639 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
640}
641static FORCEINLINE ULONG IMFTopologyNode_AddRef(IMFTopologyNode* This) {
642 return This->lpVtbl->AddRef(This);
643}
644static FORCEINLINE ULONG IMFTopologyNode_Release(IMFTopologyNode* This) {
645 return This->lpVtbl->Release(This);
646}
647/*** IMFAttributes methods ***/
648static FORCEINLINE HRESULT IMFTopologyNode_GetItem(IMFTopologyNode* This,REFGUID guidKey,PROPVARIANT *pValue) {
649 return This->lpVtbl->GetItem(This,guidKey,pValue);
650}
651static FORCEINLINE HRESULT IMFTopologyNode_GetItemType(IMFTopologyNode* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
652 return This->lpVtbl->GetItemType(This,guidKey,pType);
653}
654static FORCEINLINE HRESULT IMFTopologyNode_CompareItem(IMFTopologyNode* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
655 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
656}
657static FORCEINLINE HRESULT IMFTopologyNode_Compare(IMFTopologyNode* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
658 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
659}
660static FORCEINLINE HRESULT IMFTopologyNode_GetUINT32(IMFTopologyNode* This,REFGUID guidKey,UINT32 *punValue) {
661 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
662}
663static FORCEINLINE HRESULT IMFTopologyNode_GetUINT64(IMFTopologyNode* This,REFGUID guidKey,UINT64 *punValue) {
664 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
665}
666static FORCEINLINE HRESULT IMFTopologyNode_GetDouble(IMFTopologyNode* This,REFGUID guidKey,double *pfValue) {
667 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
668}
669static FORCEINLINE HRESULT IMFTopologyNode_GetGUID(IMFTopologyNode* This,REFGUID guidKey,GUID *pguidValue) {
670 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
671}
672static FORCEINLINE HRESULT IMFTopologyNode_GetStringLength(IMFTopologyNode* This,REFGUID guidKey,UINT32 *pcchLength) {
673 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
674}
675static FORCEINLINE HRESULT IMFTopologyNode_GetString(IMFTopologyNode* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
676 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
677}
678static FORCEINLINE HRESULT IMFTopologyNode_GetAllocatedString(IMFTopologyNode* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
679 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
680}
681static FORCEINLINE HRESULT IMFTopologyNode_GetBlobSize(IMFTopologyNode* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
682 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
683}
684static FORCEINLINE HRESULT IMFTopologyNode_GetBlob(IMFTopologyNode* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
685 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
686}
687static FORCEINLINE HRESULT IMFTopologyNode_GetAllocatedBlob(IMFTopologyNode* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
688 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
689}
690static FORCEINLINE HRESULT IMFTopologyNode_GetUnknown(IMFTopologyNode* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
691 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
692}
693static FORCEINLINE HRESULT IMFTopologyNode_SetItem(IMFTopologyNode* This,REFGUID guidKey,REFPROPVARIANT Value) {
694 return This->lpVtbl->SetItem(This,guidKey,Value);
695}
696static FORCEINLINE HRESULT IMFTopologyNode_DeleteItem(IMFTopologyNode* This,REFGUID guidKey) {
697 return This->lpVtbl->DeleteItem(This,guidKey);
698}
699static FORCEINLINE HRESULT IMFTopologyNode_DeleteAllItems(IMFTopologyNode* This) {
700 return This->lpVtbl->DeleteAllItems(This);
701}
702static FORCEINLINE HRESULT IMFTopologyNode_SetUINT32(IMFTopologyNode* This,REFGUID guidKey,UINT32 unValue) {
703 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
704}
705static FORCEINLINE HRESULT IMFTopologyNode_SetUINT64(IMFTopologyNode* This,REFGUID guidKey,UINT64 unValue) {
706 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
707}
708static FORCEINLINE HRESULT IMFTopologyNode_SetDouble(IMFTopologyNode* This,REFGUID guidKey,double fValue) {
709 return This->lpVtbl->SetDouble(This,guidKey,fValue);
710}
711static FORCEINLINE HRESULT IMFTopologyNode_SetGUID(IMFTopologyNode* This,REFGUID guidKey,REFGUID guidValue) {
712 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
713}
714static FORCEINLINE HRESULT IMFTopologyNode_SetString(IMFTopologyNode* This,REFGUID guidKey,LPCWSTR wszValue) {
715 return This->lpVtbl->SetString(This,guidKey,wszValue);
716}
717static FORCEINLINE HRESULT IMFTopologyNode_SetBlob(IMFTopologyNode* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
718 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
719}
720static FORCEINLINE HRESULT IMFTopologyNode_SetUnknown(IMFTopologyNode* This,REFGUID guidKey,IUnknown *pUnknown) {
721 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
722}
723static FORCEINLINE HRESULT IMFTopologyNode_LockStore(IMFTopologyNode* This) {
724 return This->lpVtbl->LockStore(This);
725}
726static FORCEINLINE HRESULT IMFTopologyNode_UnlockStore(IMFTopologyNode* This) {
727 return This->lpVtbl->UnlockStore(This);
728}
729static FORCEINLINE HRESULT IMFTopologyNode_GetCount(IMFTopologyNode* This,UINT32 *pcItems) {
730 return This->lpVtbl->GetCount(This,pcItems);
731}
732static FORCEINLINE HRESULT IMFTopologyNode_GetItemByIndex(IMFTopologyNode* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
733 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
734}
735static FORCEINLINE HRESULT IMFTopologyNode_CopyAllItems(IMFTopologyNode* This,IMFAttributes *pDest) {
736 return This->lpVtbl->CopyAllItems(This,pDest);
737}
738/*** IMFTopologyNode methods ***/
739static FORCEINLINE HRESULT IMFTopologyNode_SetObject(IMFTopologyNode* This,IUnknown *pObject) {
740 return This->lpVtbl->SetObject(This,pObject);
741}
742static FORCEINLINE HRESULT IMFTopologyNode_GetObject(IMFTopologyNode* This,IUnknown **ppObject) {
743 return This->lpVtbl->GetObject(This,ppObject);
744}
745static FORCEINLINE HRESULT IMFTopologyNode_GetNodeType(IMFTopologyNode* This,MF_TOPOLOGY_TYPE *pType) {
746 return This->lpVtbl->GetNodeType(This,pType);
747}
748static FORCEINLINE HRESULT IMFTopologyNode_GetTopoNodeID(IMFTopologyNode* This,TOPOID *pID) {
749 return This->lpVtbl->GetTopoNodeID(This,pID);
750}
751static FORCEINLINE HRESULT IMFTopologyNode_SetTopoNodeID(IMFTopologyNode* This,TOPOID ullTopoID) {
752 return This->lpVtbl->SetTopoNodeID(This,ullTopoID);
753}
754static FORCEINLINE HRESULT IMFTopologyNode_GetInputCount(IMFTopologyNode* This,DWORD *pcInputs) {
755 return This->lpVtbl->GetInputCount(This,pcInputs);
756}
757static FORCEINLINE HRESULT IMFTopologyNode_GetOutputCount(IMFTopologyNode* This,DWORD *pcOutputs) {
758 return This->lpVtbl->GetOutputCount(This,pcOutputs);
759}
760static FORCEINLINE HRESULT IMFTopologyNode_ConnectOutput(IMFTopologyNode* This,DWORD dwOutputIndex,IMFTopologyNode *pDownstreamNode,DWORD dwInputIndexOnDownstreamNode) {
761 return This->lpVtbl->ConnectOutput(This,dwOutputIndex,pDownstreamNode,dwInputIndexOnDownstreamNode);
762}
763static FORCEINLINE HRESULT IMFTopologyNode_DisconnectOutput(IMFTopologyNode* This,DWORD dwOutputIndex) {
764 return This->lpVtbl->DisconnectOutput(This,dwOutputIndex);
765}
766static FORCEINLINE HRESULT IMFTopologyNode_GetInput(IMFTopologyNode* This,DWORD dwInputIndex,IMFTopologyNode **ppUpstreamNode,DWORD *pdwOutputIndexOnUpstreamNode) {
767 return This->lpVtbl->GetInput(This,dwInputIndex,ppUpstreamNode,pdwOutputIndexOnUpstreamNode);
768}
769static FORCEINLINE HRESULT IMFTopologyNode_GetOutput(IMFTopologyNode* This,DWORD dwOutputIndex,IMFTopologyNode **ppDownstreamNode,DWORD *pdwInputIndexOnDownstreamNode) {
770 return This->lpVtbl->GetOutput(This,dwOutputIndex,ppDownstreamNode,pdwInputIndexOnDownstreamNode);
771}
772static FORCEINLINE HRESULT IMFTopologyNode_SetOutputPrefType(IMFTopologyNode* This,DWORD dwOutputIndex,IMFMediaType *pType) {
773 return This->lpVtbl->SetOutputPrefType(This,dwOutputIndex,pType);
774}
775static FORCEINLINE HRESULT IMFTopologyNode_GetOutputPrefType(IMFTopologyNode* This,DWORD dwOutputIndex,IMFMediaType **ppType) {
776 return This->lpVtbl->GetOutputPrefType(This,dwOutputIndex,ppType);
777}
778static FORCEINLINE HRESULT IMFTopologyNode_SetInputPrefType(IMFTopologyNode* This,DWORD dwInputIndex,IMFMediaType *pType) {
779 return This->lpVtbl->SetInputPrefType(This,dwInputIndex,pType);
780}
781static FORCEINLINE HRESULT IMFTopologyNode_GetInputPrefType(IMFTopologyNode* This,DWORD dwInputIndex,IMFMediaType **ppType) {
782 return This->lpVtbl->GetInputPrefType(This,dwInputIndex,ppType);
783}
784static FORCEINLINE HRESULT IMFTopologyNode_CloneFrom(IMFTopologyNode* This,IMFTopologyNode *pNode) {
785 return This->lpVtbl->CloneFrom(This,pNode);
786}
787#endif
788#endif
789
790#endif
791
792HRESULT STDMETHODCALLTYPE IMFTopologyNode_RemoteGetOutputPrefType_Proxy(
793 IMFTopologyNode* This,
794 DWORD dwOutputIndex,
795 DWORD *pcbData,
796 BYTE **ppbData);
797void __RPC_STUB IMFTopologyNode_RemoteGetOutputPrefType_Stub(
798 IRpcStubBuffer* This,
799 IRpcChannelBuffer* pRpcChannelBuffer,
800 PRPC_MESSAGE pRpcMessage,
801 DWORD* pdwStubPhase);
802HRESULT STDMETHODCALLTYPE IMFTopologyNode_RemoteGetInputPrefType_Proxy(
803 IMFTopologyNode* This,
804 DWORD dwInputIndex,
805 DWORD *pcbData,
806 BYTE **ppbData);
807void __RPC_STUB IMFTopologyNode_RemoteGetInputPrefType_Stub(
808 IRpcStubBuffer* This,
809 IRpcChannelBuffer* pRpcChannelBuffer,
810 PRPC_MESSAGE pRpcMessage,
811 DWORD* pdwStubPhase);
812HRESULT CALLBACK IMFTopologyNode_GetOutputPrefType_Proxy(
813 IMFTopologyNode* This,
814 DWORD dwOutputIndex,
815 IMFMediaType **ppType);
816HRESULT __RPC_STUB IMFTopologyNode_GetOutputPrefType_Stub(
817 IMFTopologyNode* This,
818 DWORD dwOutputIndex,
819 DWORD *pcbData,
820 BYTE **ppbData);
821HRESULT CALLBACK IMFTopologyNode_GetInputPrefType_Proxy(
822 IMFTopologyNode* This,
823 DWORD dwInputIndex,
824 IMFMediaType **ppType);
825HRESULT __RPC_STUB IMFTopologyNode_GetInputPrefType_Stub(
826 IMFTopologyNode* This,
827 DWORD dwInputIndex,
828 DWORD *pcbData,
829 BYTE **ppbData);
830
831#endif /* __IMFTopologyNode_INTERFACE_DEFINED__ */
832
833/*****************************************************************************
834 * IMFTopology interface
835 */
836#ifndef __IMFTopology_INTERFACE_DEFINED__
837#define __IMFTopology_INTERFACE_DEFINED__
838
839DEFINE_GUID(IID_IMFTopology, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x33);
840#if defined(__cplusplus) && !defined(CINTERFACE)
841MIDL_INTERFACE("83cf873a-f6da-4bc8-823f-bacfd55dc433")
842IMFTopology : public IMFAttributes
843{
844 virtual HRESULT STDMETHODCALLTYPE GetTopologyID(
845 TOPOID *pID) = 0;
846
847 virtual HRESULT STDMETHODCALLTYPE AddNode(
848 IMFTopologyNode *pNode) = 0;
849
850 virtual HRESULT STDMETHODCALLTYPE RemoveNode(
851 IMFTopologyNode *pNode) = 0;
852
853 virtual HRESULT STDMETHODCALLTYPE GetNodeCount(
854 WORD *pwNodes) = 0;
855
856 virtual HRESULT STDMETHODCALLTYPE GetNode(
857 WORD wIndex,
858 IMFTopologyNode **ppNode) = 0;
859
860 virtual HRESULT STDMETHODCALLTYPE Clear(
861 ) = 0;
862
863 virtual HRESULT STDMETHODCALLTYPE CloneFrom(
864 IMFTopology *pTopology) = 0;
865
866 virtual HRESULT STDMETHODCALLTYPE GetNodeByID(
867 TOPOID qwTopoNodeID,
868 IMFTopologyNode **ppNode) = 0;
869
870 virtual HRESULT STDMETHODCALLTYPE GetSourceNodeCollection(
871 IMFCollection **ppCollection) = 0;
872
873 virtual HRESULT STDMETHODCALLTYPE GetOutputNodeCollection(
874 IMFCollection **ppCollection) = 0;
875
876};
877#ifdef __CRT_UUID_DECL
878__CRT_UUID_DECL(IMFTopology, 0x83cf873a, 0xf6da, 0x4bc8, 0x82,0x3f, 0xba,0xcf,0xd5,0x5d,0xc4,0x33)
879#endif
880#else
881typedef struct IMFTopologyVtbl {
882 BEGIN_INTERFACE
883
884 /*** IUnknown methods ***/
885 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
886 IMFTopology *This,
887 REFIID riid,
888 void **ppvObject);
889
890 ULONG (STDMETHODCALLTYPE *AddRef)(
891 IMFTopology *This);
892
893 ULONG (STDMETHODCALLTYPE *Release)(
894 IMFTopology *This);
895
896 /*** IMFAttributes methods ***/
897 HRESULT (STDMETHODCALLTYPE *GetItem)(
898 IMFTopology *This,
899 REFGUID guidKey,
900 PROPVARIANT *pValue);
901
902 HRESULT (STDMETHODCALLTYPE *GetItemType)(
903 IMFTopology *This,
904 REFGUID guidKey,
905 MF_ATTRIBUTE_TYPE *pType);
906
907 HRESULT (STDMETHODCALLTYPE *CompareItem)(
908 IMFTopology *This,
909 REFGUID guidKey,
910 REFPROPVARIANT Value,
911 WINBOOL *pbResult);
912
913 HRESULT (STDMETHODCALLTYPE *Compare)(
914 IMFTopology *This,
915 IMFAttributes *pTheirs,
916 MF_ATTRIBUTES_MATCH_TYPE MatchType,
917 WINBOOL *pbResult);
918
919 HRESULT (STDMETHODCALLTYPE *GetUINT32)(
920 IMFTopology *This,
921 REFGUID guidKey,
922 UINT32 *punValue);
923
924 HRESULT (STDMETHODCALLTYPE *GetUINT64)(
925 IMFTopology *This,
926 REFGUID guidKey,
927 UINT64 *punValue);
928
929 HRESULT (STDMETHODCALLTYPE *GetDouble)(
930 IMFTopology *This,
931 REFGUID guidKey,
932 double *pfValue);
933
934 HRESULT (STDMETHODCALLTYPE *GetGUID)(
935 IMFTopology *This,
936 REFGUID guidKey,
937 GUID *pguidValue);
938
939 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
940 IMFTopology *This,
941 REFGUID guidKey,
942 UINT32 *pcchLength);
943
944 HRESULT (STDMETHODCALLTYPE *GetString)(
945 IMFTopology *This,
946 REFGUID guidKey,
947 LPWSTR pwszValue,
948 UINT32 cchBufSize,
949 UINT32 *pcchLength);
950
951 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
952 IMFTopology *This,
953 REFGUID guidKey,
954 LPWSTR *ppwszValue,
955 UINT32 *pcchLength);
956
957 HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
958 IMFTopology *This,
959 REFGUID guidKey,
960 UINT32 *pcbBlobSize);
961
962 HRESULT (STDMETHODCALLTYPE *GetBlob)(
963 IMFTopology *This,
964 REFGUID guidKey,
965 UINT8 *pBuf,
966 UINT32 cbBufSize,
967 UINT32 *pcbBlobSize);
968
969 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
970 IMFTopology *This,
971 REFGUID guidKey,
972 UINT8 **ppBuf,
973 UINT32 *pcbSize);
974
975 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
976 IMFTopology *This,
977 REFGUID guidKey,
978 REFIID riid,
979 LPVOID *ppv);
980
981 HRESULT (STDMETHODCALLTYPE *SetItem)(
982 IMFTopology *This,
983 REFGUID guidKey,
984 REFPROPVARIANT Value);
985
986 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
987 IMFTopology *This,
988 REFGUID guidKey);
989
990 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
991 IMFTopology *This);
992
993 HRESULT (STDMETHODCALLTYPE *SetUINT32)(
994 IMFTopology *This,
995 REFGUID guidKey,
996 UINT32 unValue);
997
998 HRESULT (STDMETHODCALLTYPE *SetUINT64)(
999 IMFTopology *This,
1000 REFGUID guidKey,
1001 UINT64 unValue);
1002
1003 HRESULT (STDMETHODCALLTYPE *SetDouble)(
1004 IMFTopology *This,
1005 REFGUID guidKey,
1006 double fValue);
1007
1008 HRESULT (STDMETHODCALLTYPE *SetGUID)(
1009 IMFTopology *This,
1010 REFGUID guidKey,
1011 REFGUID guidValue);
1012
1013 HRESULT (STDMETHODCALLTYPE *SetString)(
1014 IMFTopology *This,
1015 REFGUID guidKey,
1016 LPCWSTR wszValue);
1017
1018 HRESULT (STDMETHODCALLTYPE *SetBlob)(
1019 IMFTopology *This,
1020 REFGUID guidKey,
1021 const UINT8 *pBuf,
1022 UINT32 cbBufSize);
1023
1024 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
1025 IMFTopology *This,
1026 REFGUID guidKey,
1027 IUnknown *pUnknown);
1028
1029 HRESULT (STDMETHODCALLTYPE *LockStore)(
1030 IMFTopology *This);
1031
1032 HRESULT (STDMETHODCALLTYPE *UnlockStore)(
1033 IMFTopology *This);
1034
1035 HRESULT (STDMETHODCALLTYPE *GetCount)(
1036 IMFTopology *This,
1037 UINT32 *pcItems);
1038
1039 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
1040 IMFTopology *This,
1041 UINT32 unIndex,
1042 GUID *pguidKey,
1043 PROPVARIANT *pValue);
1044
1045 HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
1046 IMFTopology *This,
1047 IMFAttributes *pDest);
1048
1049 /*** IMFTopology methods ***/
1050 HRESULT (STDMETHODCALLTYPE *GetTopologyID)(
1051 IMFTopology *This,
1052 TOPOID *pID);
1053
1054 HRESULT (STDMETHODCALLTYPE *AddNode)(
1055 IMFTopology *This,
1056 IMFTopologyNode *pNode);
1057
1058 HRESULT (STDMETHODCALLTYPE *RemoveNode)(
1059 IMFTopology *This,
1060 IMFTopologyNode *pNode);
1061
1062 HRESULT (STDMETHODCALLTYPE *GetNodeCount)(
1063 IMFTopology *This,
1064 WORD *pwNodes);
1065
1066 HRESULT (STDMETHODCALLTYPE *GetNode)(
1067 IMFTopology *This,
1068 WORD wIndex,
1069 IMFTopologyNode **ppNode);
1070
1071 HRESULT (STDMETHODCALLTYPE *Clear)(
1072 IMFTopology *This);
1073
1074 HRESULT (STDMETHODCALLTYPE *CloneFrom)(
1075 IMFTopology *This,
1076 IMFTopology *pTopology);
1077
1078 HRESULT (STDMETHODCALLTYPE *GetNodeByID)(
1079 IMFTopology *This,
1080 TOPOID qwTopoNodeID,
1081 IMFTopologyNode **ppNode);
1082
1083 HRESULT (STDMETHODCALLTYPE *GetSourceNodeCollection)(
1084 IMFTopology *This,
1085 IMFCollection **ppCollection);
1086
1087 HRESULT (STDMETHODCALLTYPE *GetOutputNodeCollection)(
1088 IMFTopology *This,
1089 IMFCollection **ppCollection);
1090
1091 END_INTERFACE
1092} IMFTopologyVtbl;
1093
1094interface IMFTopology {
1095 CONST_VTBL IMFTopologyVtbl* lpVtbl;
1096};
1097
1098#ifdef COBJMACROS
1099#ifndef WIDL_C_INLINE_WRAPPERS
1100/*** IUnknown methods ***/
1101#define IMFTopology_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1102#define IMFTopology_AddRef(This) (This)->lpVtbl->AddRef(This)
1103#define IMFTopology_Release(This) (This)->lpVtbl->Release(This)
1104/*** IMFAttributes methods ***/
1105#define IMFTopology_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
1106#define IMFTopology_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
1107#define IMFTopology_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
1108#define IMFTopology_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
1109#define IMFTopology_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
1110#define IMFTopology_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
1111#define IMFTopology_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
1112#define IMFTopology_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
1113#define IMFTopology_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
1114#define IMFTopology_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
1115#define IMFTopology_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
1116#define IMFTopology_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
1117#define IMFTopology_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
1118#define IMFTopology_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
1119#define IMFTopology_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
1120#define IMFTopology_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
1121#define IMFTopology_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
1122#define IMFTopology_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
1123#define IMFTopology_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
1124#define IMFTopology_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
1125#define IMFTopology_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
1126#define IMFTopology_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
1127#define IMFTopology_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
1128#define IMFTopology_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
1129#define IMFTopology_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
1130#define IMFTopology_LockStore(This) (This)->lpVtbl->LockStore(This)
1131#define IMFTopology_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
1132#define IMFTopology_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
1133#define IMFTopology_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
1134#define IMFTopology_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
1135/*** IMFTopology methods ***/
1136#define IMFTopology_GetTopologyID(This,pID) (This)->lpVtbl->GetTopologyID(This,pID)
1137#define IMFTopology_AddNode(This,pNode) (This)->lpVtbl->AddNode(This,pNode)
1138#define IMFTopology_RemoveNode(This,pNode) (This)->lpVtbl->RemoveNode(This,pNode)
1139#define IMFTopology_GetNodeCount(This,pwNodes) (This)->lpVtbl->GetNodeCount(This,pwNodes)
1140#define IMFTopology_GetNode(This,wIndex,ppNode) (This)->lpVtbl->GetNode(This,wIndex,ppNode)
1141#define IMFTopology_Clear(This) (This)->lpVtbl->Clear(This)
1142#define IMFTopology_CloneFrom(This,pTopology) (This)->lpVtbl->CloneFrom(This,pTopology)
1143#define IMFTopology_GetNodeByID(This,qwTopoNodeID,ppNode) (This)->lpVtbl->GetNodeByID(This,qwTopoNodeID,ppNode)
1144#define IMFTopology_GetSourceNodeCollection(This,ppCollection) (This)->lpVtbl->GetSourceNodeCollection(This,ppCollection)
1145#define IMFTopology_GetOutputNodeCollection(This,ppCollection) (This)->lpVtbl->GetOutputNodeCollection(This,ppCollection)
1146#else
1147/*** IUnknown methods ***/
1148static FORCEINLINE HRESULT IMFTopology_QueryInterface(IMFTopology* This,REFIID riid,void **ppvObject) {
1149 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1150}
1151static FORCEINLINE ULONG IMFTopology_AddRef(IMFTopology* This) {
1152 return This->lpVtbl->AddRef(This);
1153}
1154static FORCEINLINE ULONG IMFTopology_Release(IMFTopology* This) {
1155 return This->lpVtbl->Release(This);
1156}
1157/*** IMFAttributes methods ***/
1158static FORCEINLINE HRESULT IMFTopology_GetItem(IMFTopology* This,REFGUID guidKey,PROPVARIANT *pValue) {
1159 return This->lpVtbl->GetItem(This,guidKey,pValue);
1160}
1161static FORCEINLINE HRESULT IMFTopology_GetItemType(IMFTopology* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
1162 return This->lpVtbl->GetItemType(This,guidKey,pType);
1163}
1164static FORCEINLINE HRESULT IMFTopology_CompareItem(IMFTopology* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
1165 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
1166}
1167static FORCEINLINE HRESULT IMFTopology_Compare(IMFTopology* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
1168 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
1169}
1170static FORCEINLINE HRESULT IMFTopology_GetUINT32(IMFTopology* This,REFGUID guidKey,UINT32 *punValue) {
1171 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
1172}
1173static FORCEINLINE HRESULT IMFTopology_GetUINT64(IMFTopology* This,REFGUID guidKey,UINT64 *punValue) {
1174 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
1175}
1176static FORCEINLINE HRESULT IMFTopology_GetDouble(IMFTopology* This,REFGUID guidKey,double *pfValue) {
1177 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
1178}
1179static FORCEINLINE HRESULT IMFTopology_GetGUID(IMFTopology* This,REFGUID guidKey,GUID *pguidValue) {
1180 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
1181}
1182static FORCEINLINE HRESULT IMFTopology_GetStringLength(IMFTopology* This,REFGUID guidKey,UINT32 *pcchLength) {
1183 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
1184}
1185static FORCEINLINE HRESULT IMFTopology_GetString(IMFTopology* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
1186 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
1187}
1188static FORCEINLINE HRESULT IMFTopology_GetAllocatedString(IMFTopology* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
1189 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
1190}
1191static FORCEINLINE HRESULT IMFTopology_GetBlobSize(IMFTopology* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
1192 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
1193}
1194static FORCEINLINE HRESULT IMFTopology_GetBlob(IMFTopology* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
1195 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
1196}
1197static FORCEINLINE HRESULT IMFTopology_GetAllocatedBlob(IMFTopology* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
1198 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
1199}
1200static FORCEINLINE HRESULT IMFTopology_GetUnknown(IMFTopology* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
1201 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
1202}
1203static FORCEINLINE HRESULT IMFTopology_SetItem(IMFTopology* This,REFGUID guidKey,REFPROPVARIANT Value) {
1204 return This->lpVtbl->SetItem(This,guidKey,Value);
1205}
1206static FORCEINLINE HRESULT IMFTopology_DeleteItem(IMFTopology* This,REFGUID guidKey) {
1207 return This->lpVtbl->DeleteItem(This,guidKey);
1208}
1209static FORCEINLINE HRESULT IMFTopology_DeleteAllItems(IMFTopology* This) {
1210 return This->lpVtbl->DeleteAllItems(This);
1211}
1212static FORCEINLINE HRESULT IMFTopology_SetUINT32(IMFTopology* This,REFGUID guidKey,UINT32 unValue) {
1213 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
1214}
1215static FORCEINLINE HRESULT IMFTopology_SetUINT64(IMFTopology* This,REFGUID guidKey,UINT64 unValue) {
1216 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
1217}
1218static FORCEINLINE HRESULT IMFTopology_SetDouble(IMFTopology* This,REFGUID guidKey,double fValue) {
1219 return This->lpVtbl->SetDouble(This,guidKey,fValue);
1220}
1221static FORCEINLINE HRESULT IMFTopology_SetGUID(IMFTopology* This,REFGUID guidKey,REFGUID guidValue) {
1222 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
1223}
1224static FORCEINLINE HRESULT IMFTopology_SetString(IMFTopology* This,REFGUID guidKey,LPCWSTR wszValue) {
1225 return This->lpVtbl->SetString(This,guidKey,wszValue);
1226}
1227static FORCEINLINE HRESULT IMFTopology_SetBlob(IMFTopology* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
1228 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
1229}
1230static FORCEINLINE HRESULT IMFTopology_SetUnknown(IMFTopology* This,REFGUID guidKey,IUnknown *pUnknown) {
1231 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
1232}
1233static FORCEINLINE HRESULT IMFTopology_LockStore(IMFTopology* This) {
1234 return This->lpVtbl->LockStore(This);
1235}
1236static FORCEINLINE HRESULT IMFTopology_UnlockStore(IMFTopology* This) {
1237 return This->lpVtbl->UnlockStore(This);
1238}
1239static FORCEINLINE HRESULT IMFTopology_GetCount(IMFTopology* This,UINT32 *pcItems) {
1240 return This->lpVtbl->GetCount(This,pcItems);
1241}
1242static FORCEINLINE HRESULT IMFTopology_GetItemByIndex(IMFTopology* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
1243 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
1244}
1245static FORCEINLINE HRESULT IMFTopology_CopyAllItems(IMFTopology* This,IMFAttributes *pDest) {
1246 return This->lpVtbl->CopyAllItems(This,pDest);
1247}
1248/*** IMFTopology methods ***/
1249static FORCEINLINE HRESULT IMFTopology_GetTopologyID(IMFTopology* This,TOPOID *pID) {
1250 return This->lpVtbl->GetTopologyID(This,pID);
1251}
1252static FORCEINLINE HRESULT IMFTopology_AddNode(IMFTopology* This,IMFTopologyNode *pNode) {
1253 return This->lpVtbl->AddNode(This,pNode);
1254}
1255static FORCEINLINE HRESULT IMFTopology_RemoveNode(IMFTopology* This,IMFTopologyNode *pNode) {
1256 return This->lpVtbl->RemoveNode(This,pNode);
1257}
1258static FORCEINLINE HRESULT IMFTopology_GetNodeCount(IMFTopology* This,WORD *pwNodes) {
1259 return This->lpVtbl->GetNodeCount(This,pwNodes);
1260}
1261static FORCEINLINE HRESULT IMFTopology_GetNode(IMFTopology* This,WORD wIndex,IMFTopologyNode **ppNode) {
1262 return This->lpVtbl->GetNode(This,wIndex,ppNode);
1263}
1264static FORCEINLINE HRESULT IMFTopology_Clear(IMFTopology* This) {
1265 return This->lpVtbl->Clear(This);
1266}
1267static FORCEINLINE HRESULT IMFTopology_CloneFrom(IMFTopology* This,IMFTopology *pTopology) {
1268 return This->lpVtbl->CloneFrom(This,pTopology);
1269}
1270static FORCEINLINE HRESULT IMFTopology_GetNodeByID(IMFTopology* This,TOPOID qwTopoNodeID,IMFTopologyNode **ppNode) {
1271 return This->lpVtbl->GetNodeByID(This,qwTopoNodeID,ppNode);
1272}
1273static FORCEINLINE HRESULT IMFTopology_GetSourceNodeCollection(IMFTopology* This,IMFCollection **ppCollection) {
1274 return This->lpVtbl->GetSourceNodeCollection(This,ppCollection);
1275}
1276static FORCEINLINE HRESULT IMFTopology_GetOutputNodeCollection(IMFTopology* This,IMFCollection **ppCollection) {
1277 return This->lpVtbl->GetOutputNodeCollection(This,ppCollection);
1278}
1279#endif
1280#endif
1281
1282#endif
1283
1284
1285#endif /* __IMFTopology_INTERFACE_DEFINED__ */
1286
1287/*****************************************************************************
1288 * IMFGetService interface
1289 */
1290#ifndef __IMFGetService_INTERFACE_DEFINED__
1291#define __IMFGetService_INTERFACE_DEFINED__
1292
1293DEFINE_GUID(IID_IMFGetService, 0xfa993888, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7);
1294#if defined(__cplusplus) && !defined(CINTERFACE)
1295MIDL_INTERFACE("fa993888-4383-415a-a930-dd472a8cf6f7")
1296IMFGetService : public IUnknown
1297{
1298 virtual HRESULT STDMETHODCALLTYPE GetService(
1299 REFGUID guidService,
1300 REFIID riid,
1301 LPVOID *ppvObject) = 0;
1302
1303};
1304#ifdef __CRT_UUID_DECL
1305__CRT_UUID_DECL(IMFGetService, 0xfa993888, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7)
1306#endif
1307#else
1308typedef struct IMFGetServiceVtbl {
1309 BEGIN_INTERFACE
1310
1311 /*** IUnknown methods ***/
1312 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1313 IMFGetService *This,
1314 REFIID riid,
1315 void **ppvObject);
1316
1317 ULONG (STDMETHODCALLTYPE *AddRef)(
1318 IMFGetService *This);
1319
1320 ULONG (STDMETHODCALLTYPE *Release)(
1321 IMFGetService *This);
1322
1323 /*** IMFGetService methods ***/
1324 HRESULT (STDMETHODCALLTYPE *GetService)(
1325 IMFGetService *This,
1326 REFGUID guidService,
1327 REFIID riid,
1328 LPVOID *ppvObject);
1329
1330 END_INTERFACE
1331} IMFGetServiceVtbl;
1332
1333interface IMFGetService {
1334 CONST_VTBL IMFGetServiceVtbl* lpVtbl;
1335};
1336
1337#ifdef COBJMACROS
1338#ifndef WIDL_C_INLINE_WRAPPERS
1339/*** IUnknown methods ***/
1340#define IMFGetService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1341#define IMFGetService_AddRef(This) (This)->lpVtbl->AddRef(This)
1342#define IMFGetService_Release(This) (This)->lpVtbl->Release(This)
1343/*** IMFGetService methods ***/
1344#define IMFGetService_GetService(This,guidService,riid,ppvObject) (This)->lpVtbl->GetService(This,guidService,riid,ppvObject)
1345#else
1346/*** IUnknown methods ***/
1347static FORCEINLINE HRESULT IMFGetService_QueryInterface(IMFGetService* This,REFIID riid,void **ppvObject) {
1348 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1349}
1350static FORCEINLINE ULONG IMFGetService_AddRef(IMFGetService* This) {
1351 return This->lpVtbl->AddRef(This);
1352}
1353static FORCEINLINE ULONG IMFGetService_Release(IMFGetService* This) {
1354 return This->lpVtbl->Release(This);
1355}
1356/*** IMFGetService methods ***/
1357static FORCEINLINE HRESULT IMFGetService_GetService(IMFGetService* This,REFGUID guidService,REFIID riid,LPVOID *ppvObject) {
1358 return This->lpVtbl->GetService(This,guidService,riid,ppvObject);
1359}
1360#endif
1361#endif
1362
1363#endif
1364
1365
1366#endif /* __IMFGetService_INTERFACE_DEFINED__ */
1367
1368typedef LONGLONG MFTIME;
1369typedef enum _MF_CLOCK_STATE {
1370 MFCLOCK_STATE_INVALID = 0,
1371 MFCLOCK_STATE_RUNNING = 1,
1372 MFCLOCK_STATE_STOPPED = 2,
1373 MFCLOCK_STATE_PAUSED = 3
1374} MF_CLOCK_STATE;
1375typedef enum _MF_CLOCK_STATE MFCLOCK_STATE;
1376typedef struct _MFCLOCK_PROPERTIES {
1377 UINT64 qwCorrelationRate;
1378 GUID guidClockId;
1379 DWORD dwClockFlags;
1380 UINT64 qwClockFrequency;
1381 DWORD dwClockTolerance;
1382 DWORD dwClockJitter;
1383} MFCLOCK_PROPERTIES;
1384/*****************************************************************************
1385 * IMFClock interface
1386 */
1387#ifndef __IMFClock_INTERFACE_DEFINED__
1388#define __IMFClock_INTERFACE_DEFINED__
1389
1390DEFINE_GUID(IID_IMFClock, 0x2eb1e945, 0x18b8, 0x4139, 0x9b,0x1a, 0xd5,0xd5,0x84,0x81,0x85,0x30);
1391#if defined(__cplusplus) && !defined(CINTERFACE)
1392MIDL_INTERFACE("2eb1e945-18b8-4139-9b1a-d5d584818530")
1393IMFClock : public IUnknown
1394{
1395 virtual HRESULT STDMETHODCALLTYPE GetClockCharacteristics(
1396 DWORD *pdwCharacteristics) = 0;
1397
1398 virtual HRESULT STDMETHODCALLTYPE GetCorrelatedTime(
1399 DWORD dwReserved,
1400 LONGLONG *pllClockTime,
1401 MFTIME *phnsSystemTime) = 0;
1402
1403 virtual HRESULT STDMETHODCALLTYPE GetContinuityKey(
1404 DWORD *pdwContinuityKey) = 0;
1405
1406 virtual HRESULT STDMETHODCALLTYPE GetState(
1407 DWORD dwReserved,
1408 MFCLOCK_STATE *peClockState) = 0;
1409
1410 virtual HRESULT STDMETHODCALLTYPE GetProperties(
1411 MFCLOCK_PROPERTIES *pClockProperties) = 0;
1412
1413};
1414#ifdef __CRT_UUID_DECL
1415__CRT_UUID_DECL(IMFClock, 0x2eb1e945, 0x18b8, 0x4139, 0x9b,0x1a, 0xd5,0xd5,0x84,0x81,0x85,0x30)
1416#endif
1417#else
1418typedef struct IMFClockVtbl {
1419 BEGIN_INTERFACE
1420
1421 /*** IUnknown methods ***/
1422 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1423 IMFClock *This,
1424 REFIID riid,
1425 void **ppvObject);
1426
1427 ULONG (STDMETHODCALLTYPE *AddRef)(
1428 IMFClock *This);
1429
1430 ULONG (STDMETHODCALLTYPE *Release)(
1431 IMFClock *This);
1432
1433 /*** IMFClock methods ***/
1434 HRESULT (STDMETHODCALLTYPE *GetClockCharacteristics)(
1435 IMFClock *This,
1436 DWORD *pdwCharacteristics);
1437
1438 HRESULT (STDMETHODCALLTYPE *GetCorrelatedTime)(
1439 IMFClock *This,
1440 DWORD dwReserved,
1441 LONGLONG *pllClockTime,
1442 MFTIME *phnsSystemTime);
1443
1444 HRESULT (STDMETHODCALLTYPE *GetContinuityKey)(
1445 IMFClock *This,
1446 DWORD *pdwContinuityKey);
1447
1448 HRESULT (STDMETHODCALLTYPE *GetState)(
1449 IMFClock *This,
1450 DWORD dwReserved,
1451 MFCLOCK_STATE *peClockState);
1452
1453 HRESULT (STDMETHODCALLTYPE *GetProperties)(
1454 IMFClock *This,
1455 MFCLOCK_PROPERTIES *pClockProperties);
1456
1457 END_INTERFACE
1458} IMFClockVtbl;
1459
1460interface IMFClock {
1461 CONST_VTBL IMFClockVtbl* lpVtbl;
1462};
1463
1464#ifdef COBJMACROS
1465#ifndef WIDL_C_INLINE_WRAPPERS
1466/*** IUnknown methods ***/
1467#define IMFClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1468#define IMFClock_AddRef(This) (This)->lpVtbl->AddRef(This)
1469#define IMFClock_Release(This) (This)->lpVtbl->Release(This)
1470/*** IMFClock methods ***/
1471#define IMFClock_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics)
1472#define IMFClock_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime)
1473#define IMFClock_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey)
1474#define IMFClock_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState)
1475#define IMFClock_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties)
1476#else
1477/*** IUnknown methods ***/
1478static FORCEINLINE HRESULT IMFClock_QueryInterface(IMFClock* This,REFIID riid,void **ppvObject) {
1479 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1480}
1481static FORCEINLINE ULONG IMFClock_AddRef(IMFClock* This) {
1482 return This->lpVtbl->AddRef(This);
1483}
1484static FORCEINLINE ULONG IMFClock_Release(IMFClock* This) {
1485 return This->lpVtbl->Release(This);
1486}
1487/*** IMFClock methods ***/
1488static FORCEINLINE HRESULT IMFClock_GetClockCharacteristics(IMFClock* This,DWORD *pdwCharacteristics) {
1489 return This->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics);
1490}
1491static FORCEINLINE HRESULT IMFClock_GetCorrelatedTime(IMFClock* This,DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) {
1492 return This->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime);
1493}
1494static FORCEINLINE HRESULT IMFClock_GetContinuityKey(IMFClock* This,DWORD *pdwContinuityKey) {
1495 return This->lpVtbl->GetContinuityKey(This,pdwContinuityKey);
1496}
1497static FORCEINLINE HRESULT IMFClock_GetState(IMFClock* This,DWORD dwReserved,MFCLOCK_STATE *peClockState) {
1498 return This->lpVtbl->GetState(This,dwReserved,peClockState);
1499}
1500static FORCEINLINE HRESULT IMFClock_GetProperties(IMFClock* This,MFCLOCK_PROPERTIES *pClockProperties) {
1501 return This->lpVtbl->GetProperties(This,pClockProperties);
1502}
1503#endif
1504#endif
1505
1506#endif
1507
1508
1509#endif /* __IMFClock_INTERFACE_DEFINED__ */
1510
1511#define SHA_HASH_LEN 20
1512#define STR_HASH_LEN (SHA_HASH_LEN*2+3)
1513typedef struct _MFRR_COMPONENT_HASH_INFO {
1514 DWORD ulReason;
1515 WCHAR rgHeaderHash[STR_HASH_LEN];
1516 WCHAR rgPublicKeyHash[STR_HASH_LEN];
1517 WCHAR wszName[MAX_PATH];
1518} MFRR_COMPONENT_HASH_INFO, *PMFRR_COMPONENT_HASH_INFO;
1519EXTERN_GUID(MF_PD_DURATION, 0x6c990d33,0xbb8e,0x477a,0x85,0x98,0xd,0x5d,0x96,0xfc,0xd8,0x8a);
1520typedef enum _MF_CONNECT_METHOD {
1521 MF_CONNECT_DIRECT = 0x0,
1522 MF_CONNECT_ALLOW_CONVERTER = 0x1,
1523 MF_CONNECT_ALLOW_DECODER = 0x3,
1524 MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES = 0x4,
1525 MF_CONNECT_AS_OPTIONAL = 0x10000,
1526 MF_CONNECT_AS_OPTIONAL_BRANCH = 0x20000
1527} MF_CONNECT_METHOD;
1528/*****************************************************************************
1529 * IMFMediaSession interface
1530 */
1531#ifndef __IMFMediaSession_INTERFACE_DEFINED__
1532#define __IMFMediaSession_INTERFACE_DEFINED__
1533
1534DEFINE_GUID(IID_IMFMediaSession, 0x90377834, 0x21d0, 0x4dee, 0x82,0x14, 0xba,0x2e,0x3e,0x6c,0x11,0x27);
1535#if defined(__cplusplus) && !defined(CINTERFACE)
1536MIDL_INTERFACE("90377834-21d0-4dee-8214-ba2e3e6c1127")
1537IMFMediaSession : public IMFMediaEventGenerator
1538{
1539 virtual HRESULT STDMETHODCALLTYPE SetTopology(
1540 DWORD dwSetTopologyFlags,
1541 IMFTopology *pTopology) = 0;
1542
1543 virtual HRESULT STDMETHODCALLTYPE ClearTopologies(
1544 ) = 0;
1545
1546 virtual HRESULT STDMETHODCALLTYPE Start(
1547 const GUID *pguidTimeFormat,
1548 const PROPVARIANT *pvarStartPosition) = 0;
1549
1550 virtual HRESULT STDMETHODCALLTYPE Pause(
1551 ) = 0;
1552
1553 virtual HRESULT STDMETHODCALLTYPE Stop(
1554 ) = 0;
1555
1556 virtual HRESULT STDMETHODCALLTYPE Close(
1557 ) = 0;
1558
1559 virtual HRESULT STDMETHODCALLTYPE Shutdown(
1560 ) = 0;
1561
1562 virtual HRESULT STDMETHODCALLTYPE GetClock(
1563 IMFClock **ppClock) = 0;
1564
1565 virtual HRESULT STDMETHODCALLTYPE GetSessionCapabilities(
1566 DWORD *pdwCaps) = 0;
1567
1568 virtual HRESULT STDMETHODCALLTYPE GetFullTopology(
1569 DWORD dwGetFullTopologyFlags,
1570 TOPOID TopoId,
1571 IMFTopology **ppFullTopology) = 0;
1572
1573};
1574#ifdef __CRT_UUID_DECL
1575__CRT_UUID_DECL(IMFMediaSession, 0x90377834, 0x21d0, 0x4dee, 0x82,0x14, 0xba,0x2e,0x3e,0x6c,0x11,0x27)
1576#endif
1577#else
1578typedef struct IMFMediaSessionVtbl {
1579 BEGIN_INTERFACE
1580
1581 /*** IUnknown methods ***/
1582 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1583 IMFMediaSession *This,
1584 REFIID riid,
1585 void **ppvObject);
1586
1587 ULONG (STDMETHODCALLTYPE *AddRef)(
1588 IMFMediaSession *This);
1589
1590 ULONG (STDMETHODCALLTYPE *Release)(
1591 IMFMediaSession *This);
1592
1593 /*** IMFMediaEventGenerator methods ***/
1594 HRESULT (STDMETHODCALLTYPE *GetEvent)(
1595 IMFMediaSession *This,
1596 DWORD dwFlags,
1597 IMFMediaEvent **ppEvent);
1598
1599 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
1600 IMFMediaSession *This,
1601 IMFAsyncCallback *pCallback,
1602 IUnknown *punkState);
1603
1604 HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
1605 IMFMediaSession *This,
1606 IMFAsyncResult *pResult,
1607 IMFMediaEvent **ppEvent);
1608
1609 HRESULT (STDMETHODCALLTYPE *QueueEvent)(
1610 IMFMediaSession *This,
1611 MediaEventType met,
1612 REFGUID guidExtendedType,
1613 HRESULT hrStatus,
1614 const PROPVARIANT *pvValue);
1615
1616 /*** IMFMediaSession methods ***/
1617 HRESULT (STDMETHODCALLTYPE *SetTopology)(
1618 IMFMediaSession *This,
1619 DWORD dwSetTopologyFlags,
1620 IMFTopology *pTopology);
1621
1622 HRESULT (STDMETHODCALLTYPE *ClearTopologies)(
1623 IMFMediaSession *This);
1624
1625 HRESULT (STDMETHODCALLTYPE *Start)(
1626 IMFMediaSession *This,
1627 const GUID *pguidTimeFormat,
1628 const PROPVARIANT *pvarStartPosition);
1629
1630 HRESULT (STDMETHODCALLTYPE *Pause)(
1631 IMFMediaSession *This);
1632
1633 HRESULT (STDMETHODCALLTYPE *Stop)(
1634 IMFMediaSession *This);
1635
1636 HRESULT (STDMETHODCALLTYPE *Close)(
1637 IMFMediaSession *This);
1638
1639 HRESULT (STDMETHODCALLTYPE *Shutdown)(
1640 IMFMediaSession *This);
1641
1642 HRESULT (STDMETHODCALLTYPE *GetClock)(
1643 IMFMediaSession *This,
1644 IMFClock **ppClock);
1645
1646 HRESULT (STDMETHODCALLTYPE *GetSessionCapabilities)(
1647 IMFMediaSession *This,
1648 DWORD *pdwCaps);
1649
1650 HRESULT (STDMETHODCALLTYPE *GetFullTopology)(
1651 IMFMediaSession *This,
1652 DWORD dwGetFullTopologyFlags,
1653 TOPOID TopoId,
1654 IMFTopology **ppFullTopology);
1655
1656 END_INTERFACE
1657} IMFMediaSessionVtbl;
1658
1659interface IMFMediaSession {
1660 CONST_VTBL IMFMediaSessionVtbl* lpVtbl;
1661};
1662
1663#ifdef COBJMACROS
1664#ifndef WIDL_C_INLINE_WRAPPERS
1665/*** IUnknown methods ***/
1666#define IMFMediaSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1667#define IMFMediaSession_AddRef(This) (This)->lpVtbl->AddRef(This)
1668#define IMFMediaSession_Release(This) (This)->lpVtbl->Release(This)
1669/*** IMFMediaEventGenerator methods ***/
1670#define IMFMediaSession_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
1671#define IMFMediaSession_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
1672#define IMFMediaSession_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
1673#define IMFMediaSession_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
1674/*** IMFMediaSession methods ***/
1675#define IMFMediaSession_SetTopology(This,dwSetTopologyFlags,pTopology) (This)->lpVtbl->SetTopology(This,dwSetTopologyFlags,pTopology)
1676#define IMFMediaSession_ClearTopologies(This) (This)->lpVtbl->ClearTopologies(This)
1677#define IMFMediaSession_Start(This,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pguidTimeFormat,pvarStartPosition)
1678#define IMFMediaSession_Pause(This) (This)->lpVtbl->Pause(This)
1679#define IMFMediaSession_Stop(This) (This)->lpVtbl->Stop(This)
1680#define IMFMediaSession_Close(This) (This)->lpVtbl->Close(This)
1681#define IMFMediaSession_Shutdown(This) (This)->lpVtbl->Shutdown(This)
1682#define IMFMediaSession_GetClock(This,ppClock) (This)->lpVtbl->GetClock(This,ppClock)
1683#define IMFMediaSession_GetSessionCapabilities(This,pdwCaps) (This)->lpVtbl->GetSessionCapabilities(This,pdwCaps)
1684#define IMFMediaSession_GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology) (This)->lpVtbl->GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology)
1685#else
1686/*** IUnknown methods ***/
1687static FORCEINLINE HRESULT IMFMediaSession_QueryInterface(IMFMediaSession* This,REFIID riid,void **ppvObject) {
1688 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1689}
1690static FORCEINLINE ULONG IMFMediaSession_AddRef(IMFMediaSession* This) {
1691 return This->lpVtbl->AddRef(This);
1692}
1693static FORCEINLINE ULONG IMFMediaSession_Release(IMFMediaSession* This) {
1694 return This->lpVtbl->Release(This);
1695}
1696/*** IMFMediaEventGenerator methods ***/
1697static FORCEINLINE HRESULT IMFMediaSession_GetEvent(IMFMediaSession* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
1698 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
1699}
1700static FORCEINLINE HRESULT IMFMediaSession_BeginGetEvent(IMFMediaSession* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
1701 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
1702}
1703static FORCEINLINE HRESULT IMFMediaSession_EndGetEvent(IMFMediaSession* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
1704 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
1705}
1706static FORCEINLINE HRESULT IMFMediaSession_QueueEvent(IMFMediaSession* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
1707 return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue);
1708}
1709/*** IMFMediaSession methods ***/
1710static FORCEINLINE HRESULT IMFMediaSession_SetTopology(IMFMediaSession* This,DWORD dwSetTopologyFlags,IMFTopology *pTopology) {
1711 return This->lpVtbl->SetTopology(This,dwSetTopologyFlags,pTopology);
1712}
1713static FORCEINLINE HRESULT IMFMediaSession_ClearTopologies(IMFMediaSession* This) {
1714 return This->lpVtbl->ClearTopologies(This);
1715}
1716static FORCEINLINE HRESULT IMFMediaSession_Start(IMFMediaSession* This,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) {
1717 return This->lpVtbl->Start(This,pguidTimeFormat,pvarStartPosition);
1718}
1719static FORCEINLINE HRESULT IMFMediaSession_Pause(IMFMediaSession* This) {
1720 return This->lpVtbl->Pause(This);
1721}
1722static FORCEINLINE HRESULT IMFMediaSession_Stop(IMFMediaSession* This) {
1723 return This->lpVtbl->Stop(This);
1724}
1725static FORCEINLINE HRESULT IMFMediaSession_Close(IMFMediaSession* This) {
1726 return This->lpVtbl->Close(This);
1727}
1728static FORCEINLINE HRESULT IMFMediaSession_Shutdown(IMFMediaSession* This) {
1729 return This->lpVtbl->Shutdown(This);
1730}
1731static FORCEINLINE HRESULT IMFMediaSession_GetClock(IMFMediaSession* This,IMFClock **ppClock) {
1732 return This->lpVtbl->GetClock(This,ppClock);
1733}
1734static FORCEINLINE HRESULT IMFMediaSession_GetSessionCapabilities(IMFMediaSession* This,DWORD *pdwCaps) {
1735 return This->lpVtbl->GetSessionCapabilities(This,pdwCaps);
1736}
1737static FORCEINLINE HRESULT IMFMediaSession_GetFullTopology(IMFMediaSession* This,DWORD dwGetFullTopologyFlags,TOPOID TopoId,IMFTopology **ppFullTopology) {
1738 return This->lpVtbl->GetFullTopology(This,dwGetFullTopologyFlags,TopoId,ppFullTopology);
1739}
1740#endif
1741#endif
1742
1743#endif
1744
1745
1746#endif /* __IMFMediaSession_INTERFACE_DEFINED__ */
1747
1748/*****************************************************************************
1749 * IMFMediaTypeHandler interface
1750 */
1751#ifndef __IMFMediaTypeHandler_INTERFACE_DEFINED__
1752#define __IMFMediaTypeHandler_INTERFACE_DEFINED__
1753
1754DEFINE_GUID(IID_IMFMediaTypeHandler, 0xe93dcf6c, 0x4b07, 0x4e1e, 0x81,0x23, 0xaa,0x16,0xed,0x6e,0xad,0xf5);
1755#if defined(__cplusplus) && !defined(CINTERFACE)
1756MIDL_INTERFACE("e93dcf6c-4b07-4e1e-8123-aa16ed6eadf5")
1757IMFMediaTypeHandler : public IUnknown
1758{
1759 virtual HRESULT STDMETHODCALLTYPE IsMediaTypeSupported(
1760 IMFMediaType *pMediaType,
1761 IMFMediaType **ppMediaType) = 0;
1762
1763 virtual HRESULT STDMETHODCALLTYPE GetMediaTypeCount(
1764 DWORD *pdwTypeCount) = 0;
1765
1766 virtual HRESULT STDMETHODCALLTYPE GetMediaTypeByIndex(
1767 DWORD dwIndex,
1768 IMFMediaType **ppType) = 0;
1769
1770 virtual HRESULT STDMETHODCALLTYPE SetCurrentMediaType(
1771 IMFMediaType *pMediaType) = 0;
1772
1773 virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType(
1774 IMFMediaType **ppMediaType) = 0;
1775
1776 virtual HRESULT STDMETHODCALLTYPE GetMajorType(
1777 GUID *pguidMajorType) = 0;
1778
1779};
1780#ifdef __CRT_UUID_DECL
1781__CRT_UUID_DECL(IMFMediaTypeHandler, 0xe93dcf6c, 0x4b07, 0x4e1e, 0x81,0x23, 0xaa,0x16,0xed,0x6e,0xad,0xf5)
1782#endif
1783#else
1784typedef struct IMFMediaTypeHandlerVtbl {
1785 BEGIN_INTERFACE
1786
1787 /*** IUnknown methods ***/
1788 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1789 IMFMediaTypeHandler *This,
1790 REFIID riid,
1791 void **ppvObject);
1792
1793 ULONG (STDMETHODCALLTYPE *AddRef)(
1794 IMFMediaTypeHandler *This);
1795
1796 ULONG (STDMETHODCALLTYPE *Release)(
1797 IMFMediaTypeHandler *This);
1798
1799 /*** IMFMediaTypeHandler methods ***/
1800 HRESULT (STDMETHODCALLTYPE *IsMediaTypeSupported)(
1801 IMFMediaTypeHandler *This,
1802 IMFMediaType *pMediaType,
1803 IMFMediaType **ppMediaType);
1804
1805 HRESULT (STDMETHODCALLTYPE *GetMediaTypeCount)(
1806 IMFMediaTypeHandler *This,
1807 DWORD *pdwTypeCount);
1808
1809 HRESULT (STDMETHODCALLTYPE *GetMediaTypeByIndex)(
1810 IMFMediaTypeHandler *This,
1811 DWORD dwIndex,
1812 IMFMediaType **ppType);
1813
1814 HRESULT (STDMETHODCALLTYPE *SetCurrentMediaType)(
1815 IMFMediaTypeHandler *This,
1816 IMFMediaType *pMediaType);
1817
1818 HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)(
1819 IMFMediaTypeHandler *This,
1820 IMFMediaType **ppMediaType);
1821
1822 HRESULT (STDMETHODCALLTYPE *GetMajorType)(
1823 IMFMediaTypeHandler *This,
1824 GUID *pguidMajorType);
1825
1826 END_INTERFACE
1827} IMFMediaTypeHandlerVtbl;
1828
1829interface IMFMediaTypeHandler {
1830 CONST_VTBL IMFMediaTypeHandlerVtbl* lpVtbl;
1831};
1832
1833#ifdef COBJMACROS
1834#ifndef WIDL_C_INLINE_WRAPPERS
1835/*** IUnknown methods ***/
1836#define IMFMediaTypeHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1837#define IMFMediaTypeHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
1838#define IMFMediaTypeHandler_Release(This) (This)->lpVtbl->Release(This)
1839/*** IMFMediaTypeHandler methods ***/
1840#define IMFMediaTypeHandler_IsMediaTypeSupported(This,pMediaType,ppMediaType) (This)->lpVtbl->IsMediaTypeSupported(This,pMediaType,ppMediaType)
1841#define IMFMediaTypeHandler_GetMediaTypeCount(This,pdwTypeCount) (This)->lpVtbl->GetMediaTypeCount(This,pdwTypeCount)
1842#define IMFMediaTypeHandler_GetMediaTypeByIndex(This,dwIndex,ppType) (This)->lpVtbl->GetMediaTypeByIndex(This,dwIndex,ppType)
1843#define IMFMediaTypeHandler_SetCurrentMediaType(This,pMediaType) (This)->lpVtbl->SetCurrentMediaType(This,pMediaType)
1844#define IMFMediaTypeHandler_GetCurrentMediaType(This,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,ppMediaType)
1845#define IMFMediaTypeHandler_GetMajorType(This,pguidMajorType) (This)->lpVtbl->GetMajorType(This,pguidMajorType)
1846#else
1847/*** IUnknown methods ***/
1848static FORCEINLINE HRESULT IMFMediaTypeHandler_QueryInterface(IMFMediaTypeHandler* This,REFIID riid,void **ppvObject) {
1849 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1850}
1851static FORCEINLINE ULONG IMFMediaTypeHandler_AddRef(IMFMediaTypeHandler* This) {
1852 return This->lpVtbl->AddRef(This);
1853}
1854static FORCEINLINE ULONG IMFMediaTypeHandler_Release(IMFMediaTypeHandler* This) {
1855 return This->lpVtbl->Release(This);
1856}
1857/*** IMFMediaTypeHandler methods ***/
1858static FORCEINLINE HRESULT IMFMediaTypeHandler_IsMediaTypeSupported(IMFMediaTypeHandler* This,IMFMediaType *pMediaType,IMFMediaType **ppMediaType) {
1859 return This->lpVtbl->IsMediaTypeSupported(This,pMediaType,ppMediaType);
1860}
1861static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMediaTypeCount(IMFMediaTypeHandler* This,DWORD *pdwTypeCount) {
1862 return This->lpVtbl->GetMediaTypeCount(This,pdwTypeCount);
1863}
1864static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMediaTypeByIndex(IMFMediaTypeHandler* This,DWORD dwIndex,IMFMediaType **ppType) {
1865 return This->lpVtbl->GetMediaTypeByIndex(This,dwIndex,ppType);
1866}
1867static FORCEINLINE HRESULT IMFMediaTypeHandler_SetCurrentMediaType(IMFMediaTypeHandler* This,IMFMediaType *pMediaType) {
1868 return This->lpVtbl->SetCurrentMediaType(This,pMediaType);
1869}
1870static FORCEINLINE HRESULT IMFMediaTypeHandler_GetCurrentMediaType(IMFMediaTypeHandler* This,IMFMediaType **ppMediaType) {
1871 return This->lpVtbl->GetCurrentMediaType(This,ppMediaType);
1872}
1873static FORCEINLINE HRESULT IMFMediaTypeHandler_GetMajorType(IMFMediaTypeHandler* This,GUID *pguidMajorType) {
1874 return This->lpVtbl->GetMajorType(This,pguidMajorType);
1875}
1876#endif
1877#endif
1878
1879#endif
1880
1881HRESULT STDMETHODCALLTYPE IMFMediaTypeHandler_RemoteGetCurrentMediaType_Proxy(
1882 IMFMediaTypeHandler* This,
1883 BYTE **ppbData,
1884 DWORD *pcbData);
1885void __RPC_STUB IMFMediaTypeHandler_RemoteGetCurrentMediaType_Stub(
1886 IRpcStubBuffer* This,
1887 IRpcChannelBuffer* pRpcChannelBuffer,
1888 PRPC_MESSAGE pRpcMessage,
1889 DWORD* pdwStubPhase);
1890HRESULT CALLBACK IMFMediaTypeHandler_GetCurrentMediaType_Proxy(
1891 IMFMediaTypeHandler* This,
1892 IMFMediaType **ppMediaType);
1893HRESULT __RPC_STUB IMFMediaTypeHandler_GetCurrentMediaType_Stub(
1894 IMFMediaTypeHandler* This,
1895 BYTE **ppbData,
1896 DWORD *pcbData);
1897
1898#endif /* __IMFMediaTypeHandler_INTERFACE_DEFINED__ */
1899
1900/*****************************************************************************
1901 * IMFStreamDescriptor interface
1902 */
1903#ifndef __IMFStreamDescriptor_INTERFACE_DEFINED__
1904#define __IMFStreamDescriptor_INTERFACE_DEFINED__
1905
1906DEFINE_GUID(IID_IMFStreamDescriptor, 0x56c03d9c, 0x9dbb, 0x45f5, 0xab,0x4b, 0xd8,0x0f,0x47,0xc0,0x59,0x38);
1907#if defined(__cplusplus) && !defined(CINTERFACE)
1908MIDL_INTERFACE("56c03d9c-9dbb-45f5-ab4b-d80f47c05938")
1909IMFStreamDescriptor : public IMFAttributes
1910{
1911 virtual HRESULT STDMETHODCALLTYPE GetStreamIdentifier(
1912 DWORD *pdwStreamIdentifier) = 0;
1913
1914 virtual HRESULT STDMETHODCALLTYPE GetMediaTypeHandler(
1915 IMFMediaTypeHandler **ppMediaTypeHandler) = 0;
1916
1917};
1918#ifdef __CRT_UUID_DECL
1919__CRT_UUID_DECL(IMFStreamDescriptor, 0x56c03d9c, 0x9dbb, 0x45f5, 0xab,0x4b, 0xd8,0x0f,0x47,0xc0,0x59,0x38)
1920#endif
1921#else
1922typedef struct IMFStreamDescriptorVtbl {
1923 BEGIN_INTERFACE
1924
1925 /*** IUnknown methods ***/
1926 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1927 IMFStreamDescriptor *This,
1928 REFIID riid,
1929 void **ppvObject);
1930
1931 ULONG (STDMETHODCALLTYPE *AddRef)(
1932 IMFStreamDescriptor *This);
1933
1934 ULONG (STDMETHODCALLTYPE *Release)(
1935 IMFStreamDescriptor *This);
1936
1937 /*** IMFAttributes methods ***/
1938 HRESULT (STDMETHODCALLTYPE *GetItem)(
1939 IMFStreamDescriptor *This,
1940 REFGUID guidKey,
1941 PROPVARIANT *pValue);
1942
1943 HRESULT (STDMETHODCALLTYPE *GetItemType)(
1944 IMFStreamDescriptor *This,
1945 REFGUID guidKey,
1946 MF_ATTRIBUTE_TYPE *pType);
1947
1948 HRESULT (STDMETHODCALLTYPE *CompareItem)(
1949 IMFStreamDescriptor *This,
1950 REFGUID guidKey,
1951 REFPROPVARIANT Value,
1952 WINBOOL *pbResult);
1953
1954 HRESULT (STDMETHODCALLTYPE *Compare)(
1955 IMFStreamDescriptor *This,
1956 IMFAttributes *pTheirs,
1957 MF_ATTRIBUTES_MATCH_TYPE MatchType,
1958 WINBOOL *pbResult);
1959
1960 HRESULT (STDMETHODCALLTYPE *GetUINT32)(
1961 IMFStreamDescriptor *This,
1962 REFGUID guidKey,
1963 UINT32 *punValue);
1964
1965 HRESULT (STDMETHODCALLTYPE *GetUINT64)(
1966 IMFStreamDescriptor *This,
1967 REFGUID guidKey,
1968 UINT64 *punValue);
1969
1970 HRESULT (STDMETHODCALLTYPE *GetDouble)(
1971 IMFStreamDescriptor *This,
1972 REFGUID guidKey,
1973 double *pfValue);
1974
1975 HRESULT (STDMETHODCALLTYPE *GetGUID)(
1976 IMFStreamDescriptor *This,
1977 REFGUID guidKey,
1978 GUID *pguidValue);
1979
1980 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
1981 IMFStreamDescriptor *This,
1982 REFGUID guidKey,
1983 UINT32 *pcchLength);
1984
1985 HRESULT (STDMETHODCALLTYPE *GetString)(
1986 IMFStreamDescriptor *This,
1987 REFGUID guidKey,
1988 LPWSTR pwszValue,
1989 UINT32 cchBufSize,
1990 UINT32 *pcchLength);
1991
1992 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
1993 IMFStreamDescriptor *This,
1994 REFGUID guidKey,
1995 LPWSTR *ppwszValue,
1996 UINT32 *pcchLength);
1997
1998 HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
1999 IMFStreamDescriptor *This,
2000 REFGUID guidKey,
2001 UINT32 *pcbBlobSize);
2002
2003 HRESULT (STDMETHODCALLTYPE *GetBlob)(
2004 IMFStreamDescriptor *This,
2005 REFGUID guidKey,
2006 UINT8 *pBuf,
2007 UINT32 cbBufSize,
2008 UINT32 *pcbBlobSize);
2009
2010 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
2011 IMFStreamDescriptor *This,
2012 REFGUID guidKey,
2013 UINT8 **ppBuf,
2014 UINT32 *pcbSize);
2015
2016 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
2017 IMFStreamDescriptor *This,
2018 REFGUID guidKey,
2019 REFIID riid,
2020 LPVOID *ppv);
2021
2022 HRESULT (STDMETHODCALLTYPE *SetItem)(
2023 IMFStreamDescriptor *This,
2024 REFGUID guidKey,
2025 REFPROPVARIANT Value);
2026
2027 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
2028 IMFStreamDescriptor *This,
2029 REFGUID guidKey);
2030
2031 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
2032 IMFStreamDescriptor *This);
2033
2034 HRESULT (STDMETHODCALLTYPE *SetUINT32)(
2035 IMFStreamDescriptor *This,
2036 REFGUID guidKey,
2037 UINT32 unValue);
2038
2039 HRESULT (STDMETHODCALLTYPE *SetUINT64)(
2040 IMFStreamDescriptor *This,
2041 REFGUID guidKey,
2042 UINT64 unValue);
2043
2044 HRESULT (STDMETHODCALLTYPE *SetDouble)(
2045 IMFStreamDescriptor *This,
2046 REFGUID guidKey,
2047 double fValue);
2048
2049 HRESULT (STDMETHODCALLTYPE *SetGUID)(
2050 IMFStreamDescriptor *This,
2051 REFGUID guidKey,
2052 REFGUID guidValue);
2053
2054 HRESULT (STDMETHODCALLTYPE *SetString)(
2055 IMFStreamDescriptor *This,
2056 REFGUID guidKey,
2057 LPCWSTR wszValue);
2058
2059 HRESULT (STDMETHODCALLTYPE *SetBlob)(
2060 IMFStreamDescriptor *This,
2061 REFGUID guidKey,
2062 const UINT8 *pBuf,
2063 UINT32 cbBufSize);
2064
2065 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
2066 IMFStreamDescriptor *This,
2067 REFGUID guidKey,
2068 IUnknown *pUnknown);
2069
2070 HRESULT (STDMETHODCALLTYPE *LockStore)(
2071 IMFStreamDescriptor *This);
2072
2073 HRESULT (STDMETHODCALLTYPE *UnlockStore)(
2074 IMFStreamDescriptor *This);
2075
2076 HRESULT (STDMETHODCALLTYPE *GetCount)(
2077 IMFStreamDescriptor *This,
2078 UINT32 *pcItems);
2079
2080 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
2081 IMFStreamDescriptor *This,
2082 UINT32 unIndex,
2083 GUID *pguidKey,
2084 PROPVARIANT *pValue);
2085
2086 HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
2087 IMFStreamDescriptor *This,
2088 IMFAttributes *pDest);
2089
2090 /*** IMFStreamDescriptor methods ***/
2091 HRESULT (STDMETHODCALLTYPE *GetStreamIdentifier)(
2092 IMFStreamDescriptor *This,
2093 DWORD *pdwStreamIdentifier);
2094
2095 HRESULT (STDMETHODCALLTYPE *GetMediaTypeHandler)(
2096 IMFStreamDescriptor *This,
2097 IMFMediaTypeHandler **ppMediaTypeHandler);
2098
2099 END_INTERFACE
2100} IMFStreamDescriptorVtbl;
2101
2102interface IMFStreamDescriptor {
2103 CONST_VTBL IMFStreamDescriptorVtbl* lpVtbl;
2104};
2105
2106#ifdef COBJMACROS
2107#ifndef WIDL_C_INLINE_WRAPPERS
2108/*** IUnknown methods ***/
2109#define IMFStreamDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2110#define IMFStreamDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This)
2111#define IMFStreamDescriptor_Release(This) (This)->lpVtbl->Release(This)
2112/*** IMFAttributes methods ***/
2113#define IMFStreamDescriptor_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
2114#define IMFStreamDescriptor_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
2115#define IMFStreamDescriptor_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
2116#define IMFStreamDescriptor_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
2117#define IMFStreamDescriptor_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
2118#define IMFStreamDescriptor_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
2119#define IMFStreamDescriptor_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
2120#define IMFStreamDescriptor_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
2121#define IMFStreamDescriptor_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
2122#define IMFStreamDescriptor_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
2123#define IMFStreamDescriptor_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
2124#define IMFStreamDescriptor_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
2125#define IMFStreamDescriptor_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
2126#define IMFStreamDescriptor_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
2127#define IMFStreamDescriptor_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
2128#define IMFStreamDescriptor_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
2129#define IMFStreamDescriptor_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
2130#define IMFStreamDescriptor_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
2131#define IMFStreamDescriptor_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
2132#define IMFStreamDescriptor_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
2133#define IMFStreamDescriptor_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
2134#define IMFStreamDescriptor_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
2135#define IMFStreamDescriptor_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
2136#define IMFStreamDescriptor_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
2137#define IMFStreamDescriptor_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
2138#define IMFStreamDescriptor_LockStore(This) (This)->lpVtbl->LockStore(This)
2139#define IMFStreamDescriptor_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
2140#define IMFStreamDescriptor_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
2141#define IMFStreamDescriptor_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
2142#define IMFStreamDescriptor_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
2143/*** IMFStreamDescriptor methods ***/
2144#define IMFStreamDescriptor_GetStreamIdentifier(This,pdwStreamIdentifier) (This)->lpVtbl->GetStreamIdentifier(This,pdwStreamIdentifier)
2145#define IMFStreamDescriptor_GetMediaTypeHandler(This,ppMediaTypeHandler) (This)->lpVtbl->GetMediaTypeHandler(This,ppMediaTypeHandler)
2146#else
2147/*** IUnknown methods ***/
2148static FORCEINLINE HRESULT IMFStreamDescriptor_QueryInterface(IMFStreamDescriptor* This,REFIID riid,void **ppvObject) {
2149 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2150}
2151static FORCEINLINE ULONG IMFStreamDescriptor_AddRef(IMFStreamDescriptor* This) {
2152 return This->lpVtbl->AddRef(This);
2153}
2154static FORCEINLINE ULONG IMFStreamDescriptor_Release(IMFStreamDescriptor* This) {
2155 return This->lpVtbl->Release(This);
2156}
2157/*** IMFAttributes methods ***/
2158static FORCEINLINE HRESULT IMFStreamDescriptor_GetItem(IMFStreamDescriptor* This,REFGUID guidKey,PROPVARIANT *pValue) {
2159 return This->lpVtbl->GetItem(This,guidKey,pValue);
2160}
2161static FORCEINLINE HRESULT IMFStreamDescriptor_GetItemType(IMFStreamDescriptor* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
2162 return This->lpVtbl->GetItemType(This,guidKey,pType);
2163}
2164static FORCEINLINE HRESULT IMFStreamDescriptor_CompareItem(IMFStreamDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
2165 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
2166}
2167static FORCEINLINE HRESULT IMFStreamDescriptor_Compare(IMFStreamDescriptor* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
2168 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
2169}
2170static FORCEINLINE HRESULT IMFStreamDescriptor_GetUINT32(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *punValue) {
2171 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
2172}
2173static FORCEINLINE HRESULT IMFStreamDescriptor_GetUINT64(IMFStreamDescriptor* This,REFGUID guidKey,UINT64 *punValue) {
2174 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
2175}
2176static FORCEINLINE HRESULT IMFStreamDescriptor_GetDouble(IMFStreamDescriptor* This,REFGUID guidKey,double *pfValue) {
2177 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
2178}
2179static FORCEINLINE HRESULT IMFStreamDescriptor_GetGUID(IMFStreamDescriptor* This,REFGUID guidKey,GUID *pguidValue) {
2180 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
2181}
2182static FORCEINLINE HRESULT IMFStreamDescriptor_GetStringLength(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *pcchLength) {
2183 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
2184}
2185static FORCEINLINE HRESULT IMFStreamDescriptor_GetString(IMFStreamDescriptor* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
2186 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
2187}
2188static FORCEINLINE HRESULT IMFStreamDescriptor_GetAllocatedString(IMFStreamDescriptor* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
2189 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
2190}
2191static FORCEINLINE HRESULT IMFStreamDescriptor_GetBlobSize(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
2192 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
2193}
2194static FORCEINLINE HRESULT IMFStreamDescriptor_GetBlob(IMFStreamDescriptor* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
2195 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
2196}
2197static FORCEINLINE HRESULT IMFStreamDescriptor_GetAllocatedBlob(IMFStreamDescriptor* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
2198 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
2199}
2200static FORCEINLINE HRESULT IMFStreamDescriptor_GetUnknown(IMFStreamDescriptor* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
2201 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
2202}
2203static FORCEINLINE HRESULT IMFStreamDescriptor_SetItem(IMFStreamDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value) {
2204 return This->lpVtbl->SetItem(This,guidKey,Value);
2205}
2206static FORCEINLINE HRESULT IMFStreamDescriptor_DeleteItem(IMFStreamDescriptor* This,REFGUID guidKey) {
2207 return This->lpVtbl->DeleteItem(This,guidKey);
2208}
2209static FORCEINLINE HRESULT IMFStreamDescriptor_DeleteAllItems(IMFStreamDescriptor* This) {
2210 return This->lpVtbl->DeleteAllItems(This);
2211}
2212static FORCEINLINE HRESULT IMFStreamDescriptor_SetUINT32(IMFStreamDescriptor* This,REFGUID guidKey,UINT32 unValue) {
2213 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
2214}
2215static FORCEINLINE HRESULT IMFStreamDescriptor_SetUINT64(IMFStreamDescriptor* This,REFGUID guidKey,UINT64 unValue) {
2216 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
2217}
2218static FORCEINLINE HRESULT IMFStreamDescriptor_SetDouble(IMFStreamDescriptor* This,REFGUID guidKey,double fValue) {
2219 return This->lpVtbl->SetDouble(This,guidKey,fValue);
2220}
2221static FORCEINLINE HRESULT IMFStreamDescriptor_SetGUID(IMFStreamDescriptor* This,REFGUID guidKey,REFGUID guidValue) {
2222 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
2223}
2224static FORCEINLINE HRESULT IMFStreamDescriptor_SetString(IMFStreamDescriptor* This,REFGUID guidKey,LPCWSTR wszValue) {
2225 return This->lpVtbl->SetString(This,guidKey,wszValue);
2226}
2227static FORCEINLINE HRESULT IMFStreamDescriptor_SetBlob(IMFStreamDescriptor* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
2228 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
2229}
2230static FORCEINLINE HRESULT IMFStreamDescriptor_SetUnknown(IMFStreamDescriptor* This,REFGUID guidKey,IUnknown *pUnknown) {
2231 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
2232}
2233static FORCEINLINE HRESULT IMFStreamDescriptor_LockStore(IMFStreamDescriptor* This) {
2234 return This->lpVtbl->LockStore(This);
2235}
2236static FORCEINLINE HRESULT IMFStreamDescriptor_UnlockStore(IMFStreamDescriptor* This) {
2237 return This->lpVtbl->UnlockStore(This);
2238}
2239static FORCEINLINE HRESULT IMFStreamDescriptor_GetCount(IMFStreamDescriptor* This,UINT32 *pcItems) {
2240 return This->lpVtbl->GetCount(This,pcItems);
2241}
2242static FORCEINLINE HRESULT IMFStreamDescriptor_GetItemByIndex(IMFStreamDescriptor* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
2243 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
2244}
2245static FORCEINLINE HRESULT IMFStreamDescriptor_CopyAllItems(IMFStreamDescriptor* This,IMFAttributes *pDest) {
2246 return This->lpVtbl->CopyAllItems(This,pDest);
2247}
2248/*** IMFStreamDescriptor methods ***/
2249static FORCEINLINE HRESULT IMFStreamDescriptor_GetStreamIdentifier(IMFStreamDescriptor* This,DWORD *pdwStreamIdentifier) {
2250 return This->lpVtbl->GetStreamIdentifier(This,pdwStreamIdentifier);
2251}
2252static FORCEINLINE HRESULT IMFStreamDescriptor_GetMediaTypeHandler(IMFStreamDescriptor* This,IMFMediaTypeHandler **ppMediaTypeHandler) {
2253 return This->lpVtbl->GetMediaTypeHandler(This,ppMediaTypeHandler);
2254}
2255#endif
2256#endif
2257
2258#endif
2259
2260
2261#endif /* __IMFStreamDescriptor_INTERFACE_DEFINED__ */
2262
2263/*****************************************************************************
2264 * IMFPresentationDescriptor interface
2265 */
2266#ifndef __IMFPresentationDescriptor_INTERFACE_DEFINED__
2267#define __IMFPresentationDescriptor_INTERFACE_DEFINED__
2268
2269DEFINE_GUID(IID_IMFPresentationDescriptor, 0x03cb2711, 0x24d7, 0x4db6, 0xa1,0x7f, 0xf3,0xa7,0xa4,0x79,0xa5,0x36);
2270#if defined(__cplusplus) && !defined(CINTERFACE)
2271MIDL_INTERFACE("03cb2711-24d7-4db6-a17f-f3a7a479a536")
2272IMFPresentationDescriptor : public IMFAttributes
2273{
2274 virtual HRESULT STDMETHODCALLTYPE GetStreamDescriptorCount(
2275 DWORD *pdwDescriptorCount) = 0;
2276
2277 virtual HRESULT STDMETHODCALLTYPE GetStreamDescriptorByIndex(
2278 DWORD dwIndex,
2279 WINBOOL *pfSelected,
2280 IMFStreamDescriptor **ppDescriptor) = 0;
2281
2282 virtual HRESULT STDMETHODCALLTYPE SelectStream(
2283 DWORD dwDescriptorIndex) = 0;
2284
2285 virtual HRESULT STDMETHODCALLTYPE DeselectStream(
2286 DWORD dwDescriptorIndex) = 0;
2287
2288 virtual HRESULT STDMETHODCALLTYPE Clone(
2289 IMFPresentationDescriptor **ppPresentationDescriptor) = 0;
2290
2291};
2292#ifdef __CRT_UUID_DECL
2293__CRT_UUID_DECL(IMFPresentationDescriptor, 0x03cb2711, 0x24d7, 0x4db6, 0xa1,0x7f, 0xf3,0xa7,0xa4,0x79,0xa5,0x36)
2294#endif
2295#else
2296typedef struct IMFPresentationDescriptorVtbl {
2297 BEGIN_INTERFACE
2298
2299 /*** IUnknown methods ***/
2300 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2301 IMFPresentationDescriptor *This,
2302 REFIID riid,
2303 void **ppvObject);
2304
2305 ULONG (STDMETHODCALLTYPE *AddRef)(
2306 IMFPresentationDescriptor *This);
2307
2308 ULONG (STDMETHODCALLTYPE *Release)(
2309 IMFPresentationDescriptor *This);
2310
2311 /*** IMFAttributes methods ***/
2312 HRESULT (STDMETHODCALLTYPE *GetItem)(
2313 IMFPresentationDescriptor *This,
2314 REFGUID guidKey,
2315 PROPVARIANT *pValue);
2316
2317 HRESULT (STDMETHODCALLTYPE *GetItemType)(
2318 IMFPresentationDescriptor *This,
2319 REFGUID guidKey,
2320 MF_ATTRIBUTE_TYPE *pType);
2321
2322 HRESULT (STDMETHODCALLTYPE *CompareItem)(
2323 IMFPresentationDescriptor *This,
2324 REFGUID guidKey,
2325 REFPROPVARIANT Value,
2326 WINBOOL *pbResult);
2327
2328 HRESULT (STDMETHODCALLTYPE *Compare)(
2329 IMFPresentationDescriptor *This,
2330 IMFAttributes *pTheirs,
2331 MF_ATTRIBUTES_MATCH_TYPE MatchType,
2332 WINBOOL *pbResult);
2333
2334 HRESULT (STDMETHODCALLTYPE *GetUINT32)(
2335 IMFPresentationDescriptor *This,
2336 REFGUID guidKey,
2337 UINT32 *punValue);
2338
2339 HRESULT (STDMETHODCALLTYPE *GetUINT64)(
2340 IMFPresentationDescriptor *This,
2341 REFGUID guidKey,
2342 UINT64 *punValue);
2343
2344 HRESULT (STDMETHODCALLTYPE *GetDouble)(
2345 IMFPresentationDescriptor *This,
2346 REFGUID guidKey,
2347 double *pfValue);
2348
2349 HRESULT (STDMETHODCALLTYPE *GetGUID)(
2350 IMFPresentationDescriptor *This,
2351 REFGUID guidKey,
2352 GUID *pguidValue);
2353
2354 HRESULT (STDMETHODCALLTYPE *GetStringLength)(
2355 IMFPresentationDescriptor *This,
2356 REFGUID guidKey,
2357 UINT32 *pcchLength);
2358
2359 HRESULT (STDMETHODCALLTYPE *GetString)(
2360 IMFPresentationDescriptor *This,
2361 REFGUID guidKey,
2362 LPWSTR pwszValue,
2363 UINT32 cchBufSize,
2364 UINT32 *pcchLength);
2365
2366 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
2367 IMFPresentationDescriptor *This,
2368 REFGUID guidKey,
2369 LPWSTR *ppwszValue,
2370 UINT32 *pcchLength);
2371
2372 HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
2373 IMFPresentationDescriptor *This,
2374 REFGUID guidKey,
2375 UINT32 *pcbBlobSize);
2376
2377 HRESULT (STDMETHODCALLTYPE *GetBlob)(
2378 IMFPresentationDescriptor *This,
2379 REFGUID guidKey,
2380 UINT8 *pBuf,
2381 UINT32 cbBufSize,
2382 UINT32 *pcbBlobSize);
2383
2384 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
2385 IMFPresentationDescriptor *This,
2386 REFGUID guidKey,
2387 UINT8 **ppBuf,
2388 UINT32 *pcbSize);
2389
2390 HRESULT (STDMETHODCALLTYPE *GetUnknown)(
2391 IMFPresentationDescriptor *This,
2392 REFGUID guidKey,
2393 REFIID riid,
2394 LPVOID *ppv);
2395
2396 HRESULT (STDMETHODCALLTYPE *SetItem)(
2397 IMFPresentationDescriptor *This,
2398 REFGUID guidKey,
2399 REFPROPVARIANT Value);
2400
2401 HRESULT (STDMETHODCALLTYPE *DeleteItem)(
2402 IMFPresentationDescriptor *This,
2403 REFGUID guidKey);
2404
2405 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
2406 IMFPresentationDescriptor *This);
2407
2408 HRESULT (STDMETHODCALLTYPE *SetUINT32)(
2409 IMFPresentationDescriptor *This,
2410 REFGUID guidKey,
2411 UINT32 unValue);
2412
2413 HRESULT (STDMETHODCALLTYPE *SetUINT64)(
2414 IMFPresentationDescriptor *This,
2415 REFGUID guidKey,
2416 UINT64 unValue);
2417
2418 HRESULT (STDMETHODCALLTYPE *SetDouble)(
2419 IMFPresentationDescriptor *This,
2420 REFGUID guidKey,
2421 double fValue);
2422
2423 HRESULT (STDMETHODCALLTYPE *SetGUID)(
2424 IMFPresentationDescriptor *This,
2425 REFGUID guidKey,
2426 REFGUID guidValue);
2427
2428 HRESULT (STDMETHODCALLTYPE *SetString)(
2429 IMFPresentationDescriptor *This,
2430 REFGUID guidKey,
2431 LPCWSTR wszValue);
2432
2433 HRESULT (STDMETHODCALLTYPE *SetBlob)(
2434 IMFPresentationDescriptor *This,
2435 REFGUID guidKey,
2436 const UINT8 *pBuf,
2437 UINT32 cbBufSize);
2438
2439 HRESULT (STDMETHODCALLTYPE *SetUnknown)(
2440 IMFPresentationDescriptor *This,
2441 REFGUID guidKey,
2442 IUnknown *pUnknown);
2443
2444 HRESULT (STDMETHODCALLTYPE *LockStore)(
2445 IMFPresentationDescriptor *This);
2446
2447 HRESULT (STDMETHODCALLTYPE *UnlockStore)(
2448 IMFPresentationDescriptor *This);
2449
2450 HRESULT (STDMETHODCALLTYPE *GetCount)(
2451 IMFPresentationDescriptor *This,
2452 UINT32 *pcItems);
2453
2454 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
2455 IMFPresentationDescriptor *This,
2456 UINT32 unIndex,
2457 GUID *pguidKey,
2458 PROPVARIANT *pValue);
2459
2460 HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
2461 IMFPresentationDescriptor *This,
2462 IMFAttributes *pDest);
2463
2464 /*** IMFPresentationDescriptor methods ***/
2465 HRESULT (STDMETHODCALLTYPE *GetStreamDescriptorCount)(
2466 IMFPresentationDescriptor *This,
2467 DWORD *pdwDescriptorCount);
2468
2469 HRESULT (STDMETHODCALLTYPE *GetStreamDescriptorByIndex)(
2470 IMFPresentationDescriptor *This,
2471 DWORD dwIndex,
2472 WINBOOL *pfSelected,
2473 IMFStreamDescriptor **ppDescriptor);
2474
2475 HRESULT (STDMETHODCALLTYPE *SelectStream)(
2476 IMFPresentationDescriptor *This,
2477 DWORD dwDescriptorIndex);
2478
2479 HRESULT (STDMETHODCALLTYPE *DeselectStream)(
2480 IMFPresentationDescriptor *This,
2481 DWORD dwDescriptorIndex);
2482
2483 HRESULT (STDMETHODCALLTYPE *Clone)(
2484 IMFPresentationDescriptor *This,
2485 IMFPresentationDescriptor **ppPresentationDescriptor);
2486
2487 END_INTERFACE
2488} IMFPresentationDescriptorVtbl;
2489
2490interface IMFPresentationDescriptor {
2491 CONST_VTBL IMFPresentationDescriptorVtbl* lpVtbl;
2492};
2493
2494#ifdef COBJMACROS
2495#ifndef WIDL_C_INLINE_WRAPPERS
2496/*** IUnknown methods ***/
2497#define IMFPresentationDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2498#define IMFPresentationDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This)
2499#define IMFPresentationDescriptor_Release(This) (This)->lpVtbl->Release(This)
2500/*** IMFAttributes methods ***/
2501#define IMFPresentationDescriptor_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
2502#define IMFPresentationDescriptor_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
2503#define IMFPresentationDescriptor_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
2504#define IMFPresentationDescriptor_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
2505#define IMFPresentationDescriptor_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
2506#define IMFPresentationDescriptor_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
2507#define IMFPresentationDescriptor_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
2508#define IMFPresentationDescriptor_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
2509#define IMFPresentationDescriptor_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
2510#define IMFPresentationDescriptor_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
2511#define IMFPresentationDescriptor_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
2512#define IMFPresentationDescriptor_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
2513#define IMFPresentationDescriptor_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
2514#define IMFPresentationDescriptor_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
2515#define IMFPresentationDescriptor_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
2516#define IMFPresentationDescriptor_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
2517#define IMFPresentationDescriptor_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
2518#define IMFPresentationDescriptor_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
2519#define IMFPresentationDescriptor_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
2520#define IMFPresentationDescriptor_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
2521#define IMFPresentationDescriptor_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
2522#define IMFPresentationDescriptor_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
2523#define IMFPresentationDescriptor_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
2524#define IMFPresentationDescriptor_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
2525#define IMFPresentationDescriptor_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
2526#define IMFPresentationDescriptor_LockStore(This) (This)->lpVtbl->LockStore(This)
2527#define IMFPresentationDescriptor_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
2528#define IMFPresentationDescriptor_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
2529#define IMFPresentationDescriptor_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
2530#define IMFPresentationDescriptor_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
2531/*** IMFPresentationDescriptor methods ***/
2532#define IMFPresentationDescriptor_GetStreamDescriptorCount(This,pdwDescriptorCount) (This)->lpVtbl->GetStreamDescriptorCount(This,pdwDescriptorCount)
2533#define IMFPresentationDescriptor_GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor) (This)->lpVtbl->GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor)
2534#define IMFPresentationDescriptor_SelectStream(This,dwDescriptorIndex) (This)->lpVtbl->SelectStream(This,dwDescriptorIndex)
2535#define IMFPresentationDescriptor_DeselectStream(This,dwDescriptorIndex) (This)->lpVtbl->DeselectStream(This,dwDescriptorIndex)
2536#define IMFPresentationDescriptor_Clone(This,ppPresentationDescriptor) (This)->lpVtbl->Clone(This,ppPresentationDescriptor)
2537#else
2538/*** IUnknown methods ***/
2539static FORCEINLINE HRESULT IMFPresentationDescriptor_QueryInterface(IMFPresentationDescriptor* This,REFIID riid,void **ppvObject) {
2540 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2541}
2542static FORCEINLINE ULONG IMFPresentationDescriptor_AddRef(IMFPresentationDescriptor* This) {
2543 return This->lpVtbl->AddRef(This);
2544}
2545static FORCEINLINE ULONG IMFPresentationDescriptor_Release(IMFPresentationDescriptor* This) {
2546 return This->lpVtbl->Release(This);
2547}
2548/*** IMFAttributes methods ***/
2549static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItem(IMFPresentationDescriptor* This,REFGUID guidKey,PROPVARIANT *pValue) {
2550 return This->lpVtbl->GetItem(This,guidKey,pValue);
2551}
2552static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItemType(IMFPresentationDescriptor* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
2553 return This->lpVtbl->GetItemType(This,guidKey,pType);
2554}
2555static FORCEINLINE HRESULT IMFPresentationDescriptor_CompareItem(IMFPresentationDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
2556 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
2557}
2558static FORCEINLINE HRESULT IMFPresentationDescriptor_Compare(IMFPresentationDescriptor* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
2559 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
2560}
2561static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUINT32(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *punValue) {
2562 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
2563}
2564static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUINT64(IMFPresentationDescriptor* This,REFGUID guidKey,UINT64 *punValue) {
2565 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
2566}
2567static FORCEINLINE HRESULT IMFPresentationDescriptor_GetDouble(IMFPresentationDescriptor* This,REFGUID guidKey,double *pfValue) {
2568 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
2569}
2570static FORCEINLINE HRESULT IMFPresentationDescriptor_GetGUID(IMFPresentationDescriptor* This,REFGUID guidKey,GUID *pguidValue) {
2571 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
2572}
2573static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStringLength(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *pcchLength) {
2574 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
2575}
2576static FORCEINLINE HRESULT IMFPresentationDescriptor_GetString(IMFPresentationDescriptor* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
2577 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
2578}
2579static FORCEINLINE HRESULT IMFPresentationDescriptor_GetAllocatedString(IMFPresentationDescriptor* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
2580 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
2581}
2582static FORCEINLINE HRESULT IMFPresentationDescriptor_GetBlobSize(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
2583 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
2584}
2585static FORCEINLINE HRESULT IMFPresentationDescriptor_GetBlob(IMFPresentationDescriptor* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
2586 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
2587}
2588static FORCEINLINE HRESULT IMFPresentationDescriptor_GetAllocatedBlob(IMFPresentationDescriptor* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
2589 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
2590}
2591static FORCEINLINE HRESULT IMFPresentationDescriptor_GetUnknown(IMFPresentationDescriptor* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
2592 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
2593}
2594static FORCEINLINE HRESULT IMFPresentationDescriptor_SetItem(IMFPresentationDescriptor* This,REFGUID guidKey,REFPROPVARIANT Value) {
2595 return This->lpVtbl->SetItem(This,guidKey,Value);
2596}
2597static FORCEINLINE HRESULT IMFPresentationDescriptor_DeleteItem(IMFPresentationDescriptor* This,REFGUID guidKey) {
2598 return This->lpVtbl->DeleteItem(This,guidKey);
2599}
2600static FORCEINLINE HRESULT IMFPresentationDescriptor_DeleteAllItems(IMFPresentationDescriptor* This) {
2601 return This->lpVtbl->DeleteAllItems(This);
2602}
2603static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUINT32(IMFPresentationDescriptor* This,REFGUID guidKey,UINT32 unValue) {
2604 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
2605}
2606static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUINT64(IMFPresentationDescriptor* This,REFGUID guidKey,UINT64 unValue) {
2607 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
2608}
2609static FORCEINLINE HRESULT IMFPresentationDescriptor_SetDouble(IMFPresentationDescriptor* This,REFGUID guidKey,double fValue) {
2610 return This->lpVtbl->SetDouble(This,guidKey,fValue);
2611}
2612static FORCEINLINE HRESULT IMFPresentationDescriptor_SetGUID(IMFPresentationDescriptor* This,REFGUID guidKey,REFGUID guidValue) {
2613 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
2614}
2615static FORCEINLINE HRESULT IMFPresentationDescriptor_SetString(IMFPresentationDescriptor* This,REFGUID guidKey,LPCWSTR wszValue) {
2616 return This->lpVtbl->SetString(This,guidKey,wszValue);
2617}
2618static FORCEINLINE HRESULT IMFPresentationDescriptor_SetBlob(IMFPresentationDescriptor* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
2619 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
2620}
2621static FORCEINLINE HRESULT IMFPresentationDescriptor_SetUnknown(IMFPresentationDescriptor* This,REFGUID guidKey,IUnknown *pUnknown) {
2622 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
2623}
2624static FORCEINLINE HRESULT IMFPresentationDescriptor_LockStore(IMFPresentationDescriptor* This) {
2625 return This->lpVtbl->LockStore(This);
2626}
2627static FORCEINLINE HRESULT IMFPresentationDescriptor_UnlockStore(IMFPresentationDescriptor* This) {
2628 return This->lpVtbl->UnlockStore(This);
2629}
2630static FORCEINLINE HRESULT IMFPresentationDescriptor_GetCount(IMFPresentationDescriptor* This,UINT32 *pcItems) {
2631 return This->lpVtbl->GetCount(This,pcItems);
2632}
2633static FORCEINLINE HRESULT IMFPresentationDescriptor_GetItemByIndex(IMFPresentationDescriptor* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
2634 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
2635}
2636static FORCEINLINE HRESULT IMFPresentationDescriptor_CopyAllItems(IMFPresentationDescriptor* This,IMFAttributes *pDest) {
2637 return This->lpVtbl->CopyAllItems(This,pDest);
2638}
2639/*** IMFPresentationDescriptor methods ***/
2640static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStreamDescriptorCount(IMFPresentationDescriptor* This,DWORD *pdwDescriptorCount) {
2641 return This->lpVtbl->GetStreamDescriptorCount(This,pdwDescriptorCount);
2642}
2643static FORCEINLINE HRESULT IMFPresentationDescriptor_GetStreamDescriptorByIndex(IMFPresentationDescriptor* This,DWORD dwIndex,WINBOOL *pfSelected,IMFStreamDescriptor **ppDescriptor) {
2644 return This->lpVtbl->GetStreamDescriptorByIndex(This,dwIndex,pfSelected,ppDescriptor);
2645}
2646static FORCEINLINE HRESULT IMFPresentationDescriptor_SelectStream(IMFPresentationDescriptor* This,DWORD dwDescriptorIndex) {
2647 return This->lpVtbl->SelectStream(This,dwDescriptorIndex);
2648}
2649static FORCEINLINE HRESULT IMFPresentationDescriptor_DeselectStream(IMFPresentationDescriptor* This,DWORD dwDescriptorIndex) {
2650 return This->lpVtbl->DeselectStream(This,dwDescriptorIndex);
2651}
2652static FORCEINLINE HRESULT IMFPresentationDescriptor_Clone(IMFPresentationDescriptor* This,IMFPresentationDescriptor **ppPresentationDescriptor) {
2653 return This->lpVtbl->Clone(This,ppPresentationDescriptor);
2654}
2655#endif
2656#endif
2657
2658#endif
2659
2660
2661#endif /* __IMFPresentationDescriptor_INTERFACE_DEFINED__ */
2662
2663/*****************************************************************************
2664 * IMFMediaSource interface
2665 */
2666#ifndef __IMFMediaSource_INTERFACE_DEFINED__
2667#define __IMFMediaSource_INTERFACE_DEFINED__
2668
2669DEFINE_GUID(IID_IMFMediaSource, 0x279a808d, 0xaec7, 0x40c8, 0x9c,0x6b, 0xa6,0xb4,0x92,0xc7,0x8a,0x66);
2670#if defined(__cplusplus) && !defined(CINTERFACE)
2671MIDL_INTERFACE("279a808d-aec7-40c8-9c6b-a6b492c78a66")
2672IMFMediaSource : public IMFMediaEventGenerator
2673{
2674 virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
2675 DWORD *pdwCharacteristics) = 0;
2676
2677 virtual HRESULT STDMETHODCALLTYPE CreatePresentationDescriptor(
2678 IMFPresentationDescriptor **ppPresentationDescriptor) = 0;
2679
2680 virtual HRESULT STDMETHODCALLTYPE Start(
2681 IMFPresentationDescriptor *pPresentationDescriptor,
2682 const GUID *pguidTimeFormat,
2683 const PROPVARIANT *pvarStartPosition) = 0;
2684
2685 virtual HRESULT STDMETHODCALLTYPE Stop(
2686 ) = 0;
2687
2688 virtual HRESULT STDMETHODCALLTYPE Pause(
2689 ) = 0;
2690
2691 virtual HRESULT STDMETHODCALLTYPE Shutdown(
2692 ) = 0;
2693
2694};
2695#ifdef __CRT_UUID_DECL
2696__CRT_UUID_DECL(IMFMediaSource, 0x279a808d, 0xaec7, 0x40c8, 0x9c,0x6b, 0xa6,0xb4,0x92,0xc7,0x8a,0x66)
2697#endif
2698#else
2699typedef struct IMFMediaSourceVtbl {
2700 BEGIN_INTERFACE
2701
2702 /*** IUnknown methods ***/
2703 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2704 IMFMediaSource *This,
2705 REFIID riid,
2706 void **ppvObject);
2707
2708 ULONG (STDMETHODCALLTYPE *AddRef)(
2709 IMFMediaSource *This);
2710
2711 ULONG (STDMETHODCALLTYPE *Release)(
2712 IMFMediaSource *This);
2713
2714 /*** IMFMediaEventGenerator methods ***/
2715 HRESULT (STDMETHODCALLTYPE *GetEvent)(
2716 IMFMediaSource *This,
2717 DWORD dwFlags,
2718 IMFMediaEvent **ppEvent);
2719
2720 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
2721 IMFMediaSource *This,
2722 IMFAsyncCallback *pCallback,
2723 IUnknown *punkState);
2724
2725 HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
2726 IMFMediaSource *This,
2727 IMFAsyncResult *pResult,
2728 IMFMediaEvent **ppEvent);
2729
2730 HRESULT (STDMETHODCALLTYPE *QueueEvent)(
2731 IMFMediaSource *This,
2732 MediaEventType met,
2733 REFGUID guidExtendedType,
2734 HRESULT hrStatus,
2735 const PROPVARIANT *pvValue);
2736
2737 /*** IMFMediaSource methods ***/
2738 HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
2739 IMFMediaSource *This,
2740 DWORD *pdwCharacteristics);
2741
2742 HRESULT (STDMETHODCALLTYPE *CreatePresentationDescriptor)(
2743 IMFMediaSource *This,
2744 IMFPresentationDescriptor **ppPresentationDescriptor);
2745
2746 HRESULT (STDMETHODCALLTYPE *Start)(
2747 IMFMediaSource *This,
2748 IMFPresentationDescriptor *pPresentationDescriptor,
2749 const GUID *pguidTimeFormat,
2750 const PROPVARIANT *pvarStartPosition);
2751
2752 HRESULT (STDMETHODCALLTYPE *Stop)(
2753 IMFMediaSource *This);
2754
2755 HRESULT (STDMETHODCALLTYPE *Pause)(
2756 IMFMediaSource *This);
2757
2758 HRESULT (STDMETHODCALLTYPE *Shutdown)(
2759 IMFMediaSource *This);
2760
2761 END_INTERFACE
2762} IMFMediaSourceVtbl;
2763
2764interface IMFMediaSource {
2765 CONST_VTBL IMFMediaSourceVtbl* lpVtbl;
2766};
2767
2768#ifdef COBJMACROS
2769#ifndef WIDL_C_INLINE_WRAPPERS
2770/*** IUnknown methods ***/
2771#define IMFMediaSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2772#define IMFMediaSource_AddRef(This) (This)->lpVtbl->AddRef(This)
2773#define IMFMediaSource_Release(This) (This)->lpVtbl->Release(This)
2774/*** IMFMediaEventGenerator methods ***/
2775#define IMFMediaSource_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
2776#define IMFMediaSource_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
2777#define IMFMediaSource_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
2778#define IMFMediaSource_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
2779/*** IMFMediaSource methods ***/
2780#define IMFMediaSource_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
2781#define IMFMediaSource_CreatePresentationDescriptor(This,ppPresentationDescriptor) (This)->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor)
2782#define IMFMediaSource_Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition)
2783#define IMFMediaSource_Stop(This) (This)->lpVtbl->Stop(This)
2784#define IMFMediaSource_Pause(This) (This)->lpVtbl->Pause(This)
2785#define IMFMediaSource_Shutdown(This) (This)->lpVtbl->Shutdown(This)
2786#else
2787/*** IUnknown methods ***/
2788static FORCEINLINE HRESULT IMFMediaSource_QueryInterface(IMFMediaSource* This,REFIID riid,void **ppvObject) {
2789 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2790}
2791static FORCEINLINE ULONG IMFMediaSource_AddRef(IMFMediaSource* This) {
2792 return This->lpVtbl->AddRef(This);
2793}
2794static FORCEINLINE ULONG IMFMediaSource_Release(IMFMediaSource* This) {
2795 return This->lpVtbl->Release(This);
2796}
2797/*** IMFMediaEventGenerator methods ***/
2798static FORCEINLINE HRESULT IMFMediaSource_GetEvent(IMFMediaSource* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
2799 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
2800}
2801static FORCEINLINE HRESULT IMFMediaSource_BeginGetEvent(IMFMediaSource* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
2802 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
2803}
2804static FORCEINLINE HRESULT IMFMediaSource_EndGetEvent(IMFMediaSource* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
2805 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
2806}
2807static FORCEINLINE HRESULT IMFMediaSource_QueueEvent(IMFMediaSource* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
2808 return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue);
2809}
2810/*** IMFMediaSource methods ***/
2811static FORCEINLINE HRESULT IMFMediaSource_GetCharacteristics(IMFMediaSource* This,DWORD *pdwCharacteristics) {
2812 return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics);
2813}
2814static FORCEINLINE HRESULT IMFMediaSource_CreatePresentationDescriptor(IMFMediaSource* This,IMFPresentationDescriptor **ppPresentationDescriptor) {
2815 return This->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor);
2816}
2817static FORCEINLINE HRESULT IMFMediaSource_Start(IMFMediaSource* This,IMFPresentationDescriptor *pPresentationDescriptor,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) {
2818 return This->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition);
2819}
2820static FORCEINLINE HRESULT IMFMediaSource_Stop(IMFMediaSource* This) {
2821 return This->lpVtbl->Stop(This);
2822}
2823static FORCEINLINE HRESULT IMFMediaSource_Pause(IMFMediaSource* This) {
2824 return This->lpVtbl->Pause(This);
2825}
2826static FORCEINLINE HRESULT IMFMediaSource_Shutdown(IMFMediaSource* This) {
2827 return This->lpVtbl->Shutdown(This);
2828}
2829#endif
2830#endif
2831
2832#endif
2833
2834HRESULT STDMETHODCALLTYPE IMFMediaSource_RemoteCreatePresentationDescriptor_Proxy(
2835 IMFMediaSource* This,
2836 DWORD *pcbPD,
2837 BYTE **pbPD,
2838 IMFPresentationDescriptor **ppRemotePD);
2839void __RPC_STUB IMFMediaSource_RemoteCreatePresentationDescriptor_Stub(
2840 IRpcStubBuffer* This,
2841 IRpcChannelBuffer* pRpcChannelBuffer,
2842 PRPC_MESSAGE pRpcMessage,
2843 DWORD* pdwStubPhase);
2844HRESULT CALLBACK IMFMediaSource_CreatePresentationDescriptor_Proxy(
2845 IMFMediaSource* This,
2846 IMFPresentationDescriptor **ppPresentationDescriptor);
2847HRESULT __RPC_STUB IMFMediaSource_CreatePresentationDescriptor_Stub(
2848 IMFMediaSource* This,
2849 DWORD *pcbPD,
2850 BYTE **pbPD,
2851 IMFPresentationDescriptor **ppRemotePD);
2852
2853#endif /* __IMFMediaSource_INTERFACE_DEFINED__ */
2854
2855typedef struct _MF_LEAKY_BUCKET_PAIR {
2856 DWORD dwBitrate;
2857 DWORD msBufferWindow;
2858} MF_LEAKY_BUCKET_PAIR;
2859typedef struct _MFBYTESTREAM_BUFFERING_PARAMS {
2860 QWORD cbTotalFileSize;
2861 QWORD cbPlayableDataSize;
2862 MF_LEAKY_BUCKET_PAIR *prgBuckets;
2863 DWORD cBuckets;
2864 QWORD qwNetBufferingTime;
2865 QWORD qwExtraBufferingTimeDuringSeek;
2866 QWORD qwPlayDuration;
2867 float dRate;
2868} MFBYTESTREAM_BUFFERING_PARAMS;
2869/*****************************************************************************
2870 * IMFByteStreamBuffering interface
2871 */
2872#ifndef __IMFByteStreamBuffering_INTERFACE_DEFINED__
2873#define __IMFByteStreamBuffering_INTERFACE_DEFINED__
2874
2875DEFINE_GUID(IID_IMFByteStreamBuffering, 0x6d66d782, 0x1d4f, 0x4db7, 0x8c,0x63, 0xcb,0x8c,0x77,0xf1,0xef,0x5e);
2876#if defined(__cplusplus) && !defined(CINTERFACE)
2877MIDL_INTERFACE("6d66d782-1d4f-4db7-8c63-cb8c77f1ef5e")
2878IMFByteStreamBuffering : public IUnknown
2879{
2880 virtual HRESULT STDMETHODCALLTYPE SetBufferingParams(
2881 MFBYTESTREAM_BUFFERING_PARAMS *pParams) = 0;
2882
2883 virtual HRESULT STDMETHODCALLTYPE EnableBuffering(
2884 WINBOOL fEnable) = 0;
2885
2886 virtual HRESULT STDMETHODCALLTYPE StopBuffering(
2887 ) = 0;
2888
2889};
2890#ifdef __CRT_UUID_DECL
2891__CRT_UUID_DECL(IMFByteStreamBuffering, 0x6d66d782, 0x1d4f, 0x4db7, 0x8c,0x63, 0xcb,0x8c,0x77,0xf1,0xef,0x5e)
2892#endif
2893#else
2894typedef struct IMFByteStreamBufferingVtbl {
2895 BEGIN_INTERFACE
2896
2897 /*** IUnknown methods ***/
2898 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2899 IMFByteStreamBuffering *This,
2900 REFIID riid,
2901 void **ppvObject);
2902
2903 ULONG (STDMETHODCALLTYPE *AddRef)(
2904 IMFByteStreamBuffering *This);
2905
2906 ULONG (STDMETHODCALLTYPE *Release)(
2907 IMFByteStreamBuffering *This);
2908
2909 /*** IMFByteStreamBuffering methods ***/
2910 HRESULT (STDMETHODCALLTYPE *SetBufferingParams)(
2911 IMFByteStreamBuffering *This,
2912 MFBYTESTREAM_BUFFERING_PARAMS *pParams);
2913
2914 HRESULT (STDMETHODCALLTYPE *EnableBuffering)(
2915 IMFByteStreamBuffering *This,
2916 WINBOOL fEnable);
2917
2918 HRESULT (STDMETHODCALLTYPE *StopBuffering)(
2919 IMFByteStreamBuffering *This);
2920
2921 END_INTERFACE
2922} IMFByteStreamBufferingVtbl;
2923
2924interface IMFByteStreamBuffering {
2925 CONST_VTBL IMFByteStreamBufferingVtbl* lpVtbl;
2926};
2927
2928#ifdef COBJMACROS
2929#ifndef WIDL_C_INLINE_WRAPPERS
2930/*** IUnknown methods ***/
2931#define IMFByteStreamBuffering_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2932#define IMFByteStreamBuffering_AddRef(This) (This)->lpVtbl->AddRef(This)
2933#define IMFByteStreamBuffering_Release(This) (This)->lpVtbl->Release(This)
2934/*** IMFByteStreamBuffering methods ***/
2935#define IMFByteStreamBuffering_SetBufferingParams(This,pParams) (This)->lpVtbl->SetBufferingParams(This,pParams)
2936#define IMFByteStreamBuffering_EnableBuffering(This,fEnable) (This)->lpVtbl->EnableBuffering(This,fEnable)
2937#define IMFByteStreamBuffering_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
2938#else
2939/*** IUnknown methods ***/
2940static FORCEINLINE HRESULT IMFByteStreamBuffering_QueryInterface(IMFByteStreamBuffering* This,REFIID riid,void **ppvObject) {
2941 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2942}
2943static FORCEINLINE ULONG IMFByteStreamBuffering_AddRef(IMFByteStreamBuffering* This) {
2944 return This->lpVtbl->AddRef(This);
2945}
2946static FORCEINLINE ULONG IMFByteStreamBuffering_Release(IMFByteStreamBuffering* This) {
2947 return This->lpVtbl->Release(This);
2948}
2949/*** IMFByteStreamBuffering methods ***/
2950static FORCEINLINE HRESULT IMFByteStreamBuffering_SetBufferingParams(IMFByteStreamBuffering* This,MFBYTESTREAM_BUFFERING_PARAMS *pParams) {
2951 return This->lpVtbl->SetBufferingParams(This,pParams);
2952}
2953static FORCEINLINE HRESULT IMFByteStreamBuffering_EnableBuffering(IMFByteStreamBuffering* This,WINBOOL fEnable) {
2954 return This->lpVtbl->EnableBuffering(This,fEnable);
2955}
2956static FORCEINLINE HRESULT IMFByteStreamBuffering_StopBuffering(IMFByteStreamBuffering* This) {
2957 return This->lpVtbl->StopBuffering(This);
2958}
2959#endif
2960#endif
2961
2962#endif
2963
2964
2965#endif /* __IMFByteStreamBuffering_INTERFACE_DEFINED__ */
2966
2967/*****************************************************************************
2968 * IMFClockStateSink interface
2969 */
2970#ifndef __IMFClockStateSink_INTERFACE_DEFINED__
2971#define __IMFClockStateSink_INTERFACE_DEFINED__
2972
2973DEFINE_GUID(IID_IMFClockStateSink, 0xf6696e82, 0x74f7, 0x4f3d, 0xa1,0x78, 0x8a,0x5e,0x09,0xc3,0x65,0x9f);
2974#if defined(__cplusplus) && !defined(CINTERFACE)
2975MIDL_INTERFACE("f6696e82-74f7-4f3d-a178-8a5e09c3659f")
2976IMFClockStateSink : public IUnknown
2977{
2978 virtual HRESULT STDMETHODCALLTYPE OnClockStart(
2979 MFTIME hnsSystemTime,
2980 LONGLONG llClockStartOffset) = 0;
2981
2982 virtual HRESULT STDMETHODCALLTYPE OnClockStop(
2983 MFTIME hnsSystemTime) = 0;
2984
2985 virtual HRESULT STDMETHODCALLTYPE OnClockPause(
2986 MFTIME hnsSystemTime) = 0;
2987
2988 virtual HRESULT STDMETHODCALLTYPE OnClockRestart(
2989 MFTIME hnsSystemTime) = 0;
2990
2991 virtual HRESULT STDMETHODCALLTYPE OnClockSetRate(
2992 MFTIME hnsSystemTime,
2993 float flRate) = 0;
2994
2995};
2996#ifdef __CRT_UUID_DECL
2997__CRT_UUID_DECL(IMFClockStateSink, 0xf6696e82, 0x74f7, 0x4f3d, 0xa1,0x78, 0x8a,0x5e,0x09,0xc3,0x65,0x9f)
2998#endif
2999#else
3000typedef struct IMFClockStateSinkVtbl {
3001 BEGIN_INTERFACE
3002
3003 /*** IUnknown methods ***/
3004 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3005 IMFClockStateSink *This,
3006 REFIID riid,
3007 void **ppvObject);
3008
3009 ULONG (STDMETHODCALLTYPE *AddRef)(
3010 IMFClockStateSink *This);
3011
3012 ULONG (STDMETHODCALLTYPE *Release)(
3013 IMFClockStateSink *This);
3014
3015 /*** IMFClockStateSink methods ***/
3016 HRESULT (STDMETHODCALLTYPE *OnClockStart)(
3017 IMFClockStateSink *This,
3018 MFTIME hnsSystemTime,
3019 LONGLONG llClockStartOffset);
3020
3021 HRESULT (STDMETHODCALLTYPE *OnClockStop)(
3022 IMFClockStateSink *This,
3023 MFTIME hnsSystemTime);
3024
3025 HRESULT (STDMETHODCALLTYPE *OnClockPause)(
3026 IMFClockStateSink *This,
3027 MFTIME hnsSystemTime);
3028
3029 HRESULT (STDMETHODCALLTYPE *OnClockRestart)(
3030 IMFClockStateSink *This,
3031 MFTIME hnsSystemTime);
3032
3033 HRESULT (STDMETHODCALLTYPE *OnClockSetRate)(
3034 IMFClockStateSink *This,
3035 MFTIME hnsSystemTime,
3036 float flRate);
3037
3038 END_INTERFACE
3039} IMFClockStateSinkVtbl;
3040
3041interface IMFClockStateSink {
3042 CONST_VTBL IMFClockStateSinkVtbl* lpVtbl;
3043};
3044
3045#ifdef COBJMACROS
3046#ifndef WIDL_C_INLINE_WRAPPERS
3047/*** IUnknown methods ***/
3048#define IMFClockStateSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3049#define IMFClockStateSink_AddRef(This) (This)->lpVtbl->AddRef(This)
3050#define IMFClockStateSink_Release(This) (This)->lpVtbl->Release(This)
3051/*** IMFClockStateSink methods ***/
3052#define IMFClockStateSink_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset)
3053#define IMFClockStateSink_OnClockStop(This,hnsSystemTime) (This)->lpVtbl->OnClockStop(This,hnsSystemTime)
3054#define IMFClockStateSink_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime)
3055#define IMFClockStateSink_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime)
3056#define IMFClockStateSink_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate)
3057#else
3058/*** IUnknown methods ***/
3059static FORCEINLINE HRESULT IMFClockStateSink_QueryInterface(IMFClockStateSink* This,REFIID riid,void **ppvObject) {
3060 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3061}
3062static FORCEINLINE ULONG IMFClockStateSink_AddRef(IMFClockStateSink* This) {
3063 return This->lpVtbl->AddRef(This);
3064}
3065static FORCEINLINE ULONG IMFClockStateSink_Release(IMFClockStateSink* This) {
3066 return This->lpVtbl->Release(This);
3067}
3068/*** IMFClockStateSink methods ***/
3069static FORCEINLINE HRESULT IMFClockStateSink_OnClockStart(IMFClockStateSink* This,MFTIME hnsSystemTime,LONGLONG llClockStartOffset) {
3070 return This->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset);
3071}
3072static FORCEINLINE HRESULT IMFClockStateSink_OnClockStop(IMFClockStateSink* This,MFTIME hnsSystemTime) {
3073 return This->lpVtbl->OnClockStop(This,hnsSystemTime);
3074}
3075static FORCEINLINE HRESULT IMFClockStateSink_OnClockPause(IMFClockStateSink* This,MFTIME hnsSystemTime) {
3076 return This->lpVtbl->OnClockPause(This,hnsSystemTime);
3077}
3078static FORCEINLINE HRESULT IMFClockStateSink_OnClockRestart(IMFClockStateSink* This,MFTIME hnsSystemTime) {
3079 return This->lpVtbl->OnClockRestart(This,hnsSystemTime);
3080}
3081static FORCEINLINE HRESULT IMFClockStateSink_OnClockSetRate(IMFClockStateSink* This,MFTIME hnsSystemTime,float flRate) {
3082 return This->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate);
3083}
3084#endif
3085#endif
3086
3087#endif
3088
3089
3090#endif /* __IMFClockStateSink_INTERFACE_DEFINED__ */
3091
3092HRESULT WINAPI MFRequireProtectedEnvironment(IMFPresentationDescriptor *pPresentationDescriptor);
3093HRESULT WINAPI MFSerializePresentationDescriptor(IMFPresentationDescriptor *pPD,DWORD *pcbData,BYTE **ppbData);
3094typedef DWORD MFSequencerElementId;
3095typedef enum _MFCLOCK_CHARACTERISTICS_FLAGS {
3096 MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ = 0x2,
3097 MFCLOCK_CHARACTERISTICS_FLAG_ALWAYS_RUNNING = 0x4,
3098 MFCLOCK_CHARACTERISTICS_FLAG_IS_SYSTEM_CLOCK = 0x8
3099} MFCLOCK_CHARACTERISTICS_FLAGS;
3100#if (WINVER >= 0x0601)
3101typedef enum _MF_QUALITY_ADVISE_FLAGS {
3102 MF_QUALITY_CANNOT_KEEP_UP = 0x1
3103} MF_QUALITY_ADVISE_FLAGS;
3104#endif /*(WINVER >= 0x0601)*/
3105typedef enum _MF_QUALITY_DROP_MODE {
3106 MF_DROP_MODE_NONE = 0x0,
3107 MF_DROP_MODE_1 = 0x1,
3108 MF_DROP_MODE_2 = 0x2,
3109 MF_DROP_MODE_3 = 0x3,
3110 MF_DROP_MODE_4 = 0x4,
3111 MF_DROP_MODE_5 = 0x5,
3112 MF_NUM_DROP_MODES = 0x6
3113} MF_QUALITY_DROP_MODE;
3114typedef enum _MF_QUALITY_LEVEL {
3115 MF_QUALITY_NORMAL = 0x0,
3116 MF_QUALITY_NORMAL_MINUS_1 = 0x1,
3117 MF_QUALITY_NORMAL_MINUS_2 = 0x2,
3118 MF_QUALITY_NORMAL_MINUS_3 = 0x3,
3119 MF_QUALITY_NORMAL_MINUS_4 = 0x4,
3120 MF_QUALITY_NORMAL_MINUS_5 = 0x5,
3121 MF_NUM_QUALITY_LEVELS = 0x6
3122} MF_QUALITY_LEVEL;
3123typedef enum _MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS {
3124 MF_TOPOLOGY_RESOLUTION_SUCCEEDED = 0x0,
3125 MF_OPTIONAL_NODE_REJECTED_MEDIA_TYPE = 0x1,
3126 MF_OPTIONAL_NODE_REJECTED_PROTECTED_PROCESS = 0x2
3127} MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS;
3128typedef enum _MF_TOPONODE_DRAIN_MODE {
3129 MF_TOPONODE_DRAIN_DEFAULT = 0,
3130 MF_TOPONODE_DRAIN_ALWAYS = 1,
3131 MF_TOPONODE_DRAIN_NEVER = 2
3132} MF_TOPONODE_DRAIN_MODE;
3133typedef enum _MF_TOPONODE_FLUSH_MODE {
3134 MF_TOPONODE_FLUSH_ALWAYS = 0,
3135 MF_TOPONODE_FLUSH_SEEK = 1,
3136 MF_TOPONODE_FLUSH_NEVER = 2
3137} MF_TOPONODE_FLUSH_MODE;
3138#if (WINVER >= 0x0601)
3139typedef enum _MF_TRANSCODE_TOPOLOGY_MODE_FLAGS {
3140 MF_TRANSCODE_TOPOLOGYMODE_SOFTWARE_ONLY = 0,
3141 MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = 1
3142} MF_TRANSCODE_TOPOLOGYMODE_FLAGS;
3143#endif
3144EXTERN_GUID(MF_TRANSCODE_CONTAINERTYPE, 0x150ff23f, 0x4abc, 0x478b, 0xac, 0x4f, 0xe1, 0x91, 0x6f, 0xba, 0x1c, 0xca);
3145EXTERN_GUID(MFTranscodeContainerType_ASF, 0x430f6f6e, 0xb6bf, 0x4fc1, 0xa0, 0xbd, 0x9e, 0xe4, 0x6e, 0xee, 0x2a, 0xfb);
3146EXTERN_GUID(MFTranscodeContainerType_MPEG4, 0xdc6cd05d, 0xb9d0, 0x40ef, 0xbd, 0x35, 0xfa, 0x62, 0x2c, 0x1a, 0xb2, 0x8a);
3147EXTERN_GUID(MFTranscodeContainerType_MP3, 0xe438b912, 0x83f1, 0x4de6, 0x9e, 0x3a, 0x9f, 0xfb, 0xc6, 0xdd, 0x24, 0xd1);
3148EXTERN_GUID(MFTranscodeContainerType_FLAC, 0x31344aa3, 0x05a9, 0x42b5, 0x90, 0x1b, 0x8e, 0x9d, 0x42, 0x57, 0xf7, 0x5e);
3149EXTERN_GUID(MFTranscodeContainerType_3GP, 0x34c50167, 0x4472, 0x4f34, 0x9e, 0xa0, 0xc4, 0x9f, 0xba, 0xcf, 0x03, 0x7d);
3150EXTERN_GUID(MFTranscodeContainerType_AC3, 0x6d8d91c3, 0x8c91, 0x4ed1, 0x87, 0x42, 0x8c, 0x34, 0x7d, 0x5b, 0x44, 0xd0);
3151EXTERN_GUID(MFTranscodeContainerType_ADTS, 0x132fd27d, 0x0f02, 0x43de, 0xa3, 0x01, 0x38, 0xfb, 0xbb, 0xb3, 0x83, 0x4e);
3152EXTERN_GUID(MFTranscodeContainerType_MPEG2, 0xbfc2dbf9, 0x7bb4, 0x4f8f, 0xaf, 0xde, 0xe1, 0x12, 0xc4, 0x4b, 0xa8, 0x82);
3153EXTERN_GUID(MFTranscodeContainerType_WAVE, 0x64c3453c, 0x0f26, 0x4741, 0xbe, 0x63, 0x87, 0xbd, 0xf8, 0xbb, 0x93, 0x5b);
3154EXTERN_GUID(MFTranscodeContainerType_AVI, 0x7edfe8af, 0x402f, 0x4d76, 0xa3, 0x3c, 0x61, 0x9f, 0xd1, 0x57, 0xd0, 0xf1);
3155#if (WINVER >= _WIN32_WINNT_WIN8)
3156EXTERN_GUID(MFTranscodeContainerType_FMPEG4, 0x9ba876f1, 0x419f, 0x4b77, 0xa1, 0xe0, 0x35, 0x95, 0x9d, 0x9d, 0x40, 0x4);
3157#endif // (WINVER >= _WIN32_WINNT_WIN8)
3158EXTERN_GUID(MFTranscodeContainerType_AMR, 0x25d5ad3, 0x621a, 0x475b, 0x96, 0x4d, 0x66, 0xb1, 0xc8, 0x24, 0xf0, 0x79);
3159typedef enum __WIDL_mfidl_generated_name_0000002E {
3160 MF_LICENSE_URL_UNTRUSTED = 0,
3161 MF_LICENSE_URL_TRUSTED = 1,
3162 MF_LICENSE_URL_TAMPERED = 2
3163} MF_URL_TRUST_STATUS;
3164typedef enum _MFCLOCK_RELATIONAL_FLAGS {
3165 MFCLOCK_RELATIONAL_FLAG_JITTER_NEVER_AHEAD = 0x1
3166} MFCLOCK_RELATIONAL_FLAGS;
3167typedef enum _MFMEDIASOURCE_CHARACTERISTICS {
3168 MFMEDIASOURCE_IS_LIVE = 0x1,
3169 MFMEDIASOURCE_CAN_SEEK = 0x2,
3170 MFMEDIASOURCE_CAN_PAUSE = 0x4,
3171 MFMEDIASOURCE_HAS_SLOW_SEEK = 0x8,
3172 MFMEDIASOURCE_HAS_MULTIPLE_PRESENTATIONS = 0x10,
3173 MFMEDIASOURCE_CAN_SKIPFORWARD = 0x20,
3174 MFMEDIASOURCE_CAN_SKIPBACKWARD = 0x40
3175} MFMEDIASOURCE_CHARACTERISTICS;
3176typedef enum _MFNET_PROXYSETTINGS {
3177 MFNET_PROXYSETTING_NONE = 0,
3178 MFNET_PROXYSETTING_MANUAL = 1,
3179 MFNET_PROXYSETTING_AUTO = 2,
3180 MFNET_PROXYSETTING_BROWSER = 3
3181} MFNET_PROXYSETTINGS;
3182typedef enum _MFNetAuthenticationFlags {
3183 MFNET_AUTHENTICATION_PROXY = 0x1,
3184 MFNET_AUTHENTICATION_CLEAR_TEXT = 0x2,
3185 MFNET_AUTHENTICATION_LOGGED_ON_USER = 0x4
3186} MFNetAuthenticationFlags;
3187typedef enum _MFNetCredentialOptions {
3188 MFNET_CREDENTIAL_SAVE = 0x1,
3189 MFNET_CREDENTIAL_DONT_CACHE = 0x2,
3190 MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT = 0x4
3191} MFNetCredentialOptions;
3192typedef enum _MFNetCredentialRequirements {
3193 REQUIRE_PROMPT = 0x1,
3194 REQUIRE_SAVE_SELECTED = 0x2
3195} MFNetCredentialRequirements;
3196typedef enum _MFNETSOURCE_CACHE_STATE {
3197 MFNETSOURCE_CACHE_UNAVAILABLE = 0,
3198 MFNETSOURCE_CACHE_ACTIVE_WRITING = 1,
3199 MFNETSOURCE_CACHE_ACTIVE_COMPLETE = 2
3200} MFNETSOURCE_CACHE_STATE;
3201typedef enum _MFNETSOURCE_PROTOCOL_TYPE {
3202 MFNETSOURCE_UNDEFINED = 0x0,
3203 MFNETSOURCE_HTTP = 0x1,
3204 MFNETSOURCE_RTSP = 0x2,
3205 MFNETSOURCE_FILE = 0x3,
3206 MFNETSOURCE_MULTICAST = 0x4
3207} MFNETSOURCE_PROTOCOL_TYPE;
3208typedef enum _MFNETSOURCE_STATISTICS_IDS {
3209 MFNETSOURCE_RECVPACKETS_ID = 0,
3210 MFNETSOURCE_LOSTPACKETS_ID = 1,
3211 MFNETSOURCE_RESENDSREQUESTED_ID = 2,
3212 MFNETSOURCE_RESENDSRECEIVED_ID = 3,
3213 MFNETSOURCE_RECOVEREDBYECCPACKETS_ID = 4,
3214 MFNETSOURCE_RECOVEREDBYRTXPACKETS_ID = 5,
3215 MFNETSOURCE_OUTPACKETS_ID = 6,
3216 MFNETSOURCE_RECVRATE_ID = 7,
3217 MFNETSOURCE_AVGBANDWIDTHBPS_ID = 8,
3218 MFNETSOURCE_BYTESRECEIVED_ID = 9,
3219 MFNETSOURCE_PROTOCOL_ID = 10,
3220 MFNETSOURCE_TRANSPORT_ID = 11,
3221 MFNETSOURCE_CACHE_STATE_ID = 12,
3222 MFNETSOURCE_LINKBANDWIDTH_ID = 13,
3223 MFNETSOURCE_CONTENTBITRATE_ID = 14,
3224 MFNETSOURCE_SPEEDFACTOR_ID = 15,
3225 MFNETSOURCE_BUFFERSIZE_ID = 16,
3226 MFNETSOURCE_BUFFERPROGRESS_ID = 17,
3227 MFNETSOURCE_LASTBWSWITCHTS_ID = 18,
3228 MFNETSOURCE_SEEKRANGESTART_ID = 19,
3229 MFNETSOURCE_SEEKRANGEEND_ID = 20,
3230 MFNETSOURCE_BUFFERINGCOUNT_ID = 21,
3231 MFNETSOURCE_INCORRECTLYSIGNEDPACKETS_ID = 22,
3232 MFNETSOURCE_SIGNEDSESSION_ID = 23,
3233 MFNETSOURCE_MAXBITRATE_ID = 24,
3234 MFNETSOURCE_RECEPTION_QUALITY_ID = 25,
3235 MFNETSOURCE_RECOVEREDPACKETS_ID = 26,
3236 MFNETSOURCE_VBR_ID = 27,
3237 MFNETSOURCE_DOWNLOADPROGRESS_ID = 28
3238} MFNETSOURCE_STATISTICS_IDS;
3239typedef enum _MFNETSOURCE_TRANSPORT_TYPE {
3240 MFNETSOURCE_UDP = 0,
3241 MFNETSOURCE_TCP = 1
3242} MFNETSOURCE_TRANSPORT_TYPE;
3243typedef enum MF_OBJECT_TYPE {
3244 MF_OBJECT_MEDIASOURCE = 0,
3245 MF_OBJECT_BYTESTREAM = 1,
3246 MF_OBJECT_INVALID = 2
3247} MF_OBJECT_TYPE;
3248typedef enum _MFPOLICYMANAGER_ACTION {
3249 PEACTION_NO = 0,
3250 PEACTION_PLAY = 1,
3251 PEACTION_COPY = 2,
3252 PEACTION_EXPORT = 3,
3253 PEACTION_EXTRACT = 4,
3254 PEACTION_RESERVED1 = 5,
3255 PEACTION_RESERVED2 = 6,
3256 PEACTION_RESERVED3 = 7,
3257 PEACTION_LAST = 7
3258} MFPOLICYMANAGER_ACTION;
3259typedef enum _MFRATE_DIRECTION {
3260 MFRATE_FORWARD = 0,
3261 MFRATE_REVERSE = 1
3262} MFRATE_DIRECTION;
3263typedef enum _MFSequencerTopologyFlags {
3264 SequencerTopologyFlags_Last = 0x1
3265} MFSequencerTopologyFlags;
3266typedef enum _MFSHUTDOWN_STATUS {
3267 MFSHUTDOWN_INITIATED = 0,
3268 MFSHUTDOWN_COMPLETED = 1
3269} MFSHUTDOWN_STATUS;
3270typedef enum MFSTREAMSINK_MARKER_TYPE {
3271 MFSTREAMSINK_MARKER_DEFAULT = 0,
3272 MFSTREAMSINK_MARKER_ENDOFSEGMENT = 1,
3273 MFSTREAMSINK_MARKER_TICK = 2,
3274 MFSTREAMSINK_MARKER_EVENT = 3
3275} MFSTREAMSINK_MARKER_TYPE;
3276typedef enum MFTIMER_FLAGS {
3277 MFTIMER_RELATIVE = 0x1
3278} MFTIMER_FLAGS;
3279#if (WINVER >= 0x0601)
3280typedef enum MFTOPOLOGY_DXVA_MODE {
3281 MFTOPOLOGY_DXVA_DEFAULT = 0,
3282 MFTOPOLOGY_DXVA_NONE = 1,
3283 MFTOPOLOGY_DXVA_FULL = 2
3284} MFTOPOLOGY_DXVA_MODE;
3285typedef enum MFTOPOLOGY_HARDWARE_MODE {
3286 MFTOPOLOGY_HWMODE_SOFTWARE_ONLY = 0,
3287 MFTOPOLOGY_HWMODE_USE_HARDWARE = 1
3288} MFTOPOLOGY_HARDWARE_MODE;
3289typedef struct _MFT_REGISTRATION_INFO {
3290 CLSID clsid;
3291 GUID guidCategory;
3292 UINT32 uiFlags;
3293 LPCWSTR pszName;
3294 DWORD cInTypes;
3295 MFT_REGISTER_TYPE_INFO *pInTypes;
3296 DWORD cOutTypes;
3297 MFT_REGISTER_TYPE_INFO *pOutTypes;
3298} MFT_REGISTRATION_INFO;
3299#endif /*(WINVER >= 0x0601)*/
3300typedef struct _ASFFlatPicture {
3301 BYTE bPictureType;
3302 DWORD dwDataLen;
3303} ASF_FLAT_PICTURE;
3304
3305typedef struct _ASFFlatSynchronisedLyrics {
3306 BYTE bTimeStampFormat;
3307 BYTE bContentType;
3308 DWORD dwLyricsLen;
3309} ASF_FLAT_SYNCHRONISED_LYRICS;
3310typedef enum SAMPLE_PROTECTION_VERSION {
3311 SAMPLE_PROTECTION_VERSION_NO = 0,
3312 SAMPLE_PROTECTION_VERSION_BASIC_LOKI = 1,
3313 SAMPLE_PROTECTION_VERSION_SCATTER = 2,
3314 SAMPLE_PROTECTION_VERSION_RC4 = 3
3315} SAMPLE_PROTECTION_VERSION;
3316typedef struct _MFINPUTTRUSTAUTHORITY_ACTION {
3317 MFPOLICYMANAGER_ACTION Action;
3318 BYTE *pbTicket;
3319 DWORD cbTicket;
3320} MFINPUTTRUSTAUTHORITY_ACCESS_ACTION;
3321typedef struct _MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS {
3322 DWORD dwSize;
3323 DWORD dwVer;
3324 DWORD cbSignatureOffset;
3325 DWORD cbSignatureSize;
3326 DWORD cbExtensionOffset;
3327 DWORD cbExtensionSize;
3328 DWORD cActions;
3329 MFINPUTTRUSTAUTHORITY_ACCESS_ACTION rgOutputActions[1];
3330} MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS;
3331typedef struct _MFNetCredentialManagerGetParam {
3332 HRESULT hrOp;
3333 WINBOOL fAllowLoggedOnUser;
3334 WINBOOL fClearTextPackage;
3335 LPCWSTR pszUrl;
3336 LPCWSTR pszSite;
3337 LPCWSTR pszRealm;
3338 LPCWSTR pszPackage;
3339 LONG nRetries;
3340} MFNetCredentialManagerGetParam;
3341#define MEDIASINK_FIXED_STREAMS 0x00000001
3342#define MEDIASINK_CANNOT_MATCH_CLOCK 0x00000002
3343#define MEDIASINK_RATELESS 0x00000004
3344#define MEDIASINK_CLOCK_REQUIRED 0x00000008
3345#define MEDIASINK_CAN_PREROLL 0x00000010
3346#define MEDIASINK_REQUIRE_REFERENCE_MEDIATYPE 0x00000020
3347enum {
3348 MF_RESOLUTION_MEDIASOURCE = 0x1,
3349 MF_RESOLUTION_BYTESTREAM = 0x2,
3350 MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE = 0x10,
3351 MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL = 0x20,
3352 MF_RESOLUTION_READ = 0x10000,
3353 MF_RESOLUTION_WRITE = 0x20000
3354};
3355#ifndef __IMFASFContentInfo_FWD_DEFINED__
3356#define __IMFASFContentInfo_FWD_DEFINED__
3357typedef interface IMFASFContentInfo IMFASFContentInfo;
3358#ifdef __cplusplus
3359interface IMFASFContentInfo;
3360#endif /* __cplusplus */
3361#endif
3362
3363#ifndef __IMFASFIndexer_FWD_DEFINED__
3364#define __IMFASFIndexer_FWD_DEFINED__
3365typedef interface IMFASFIndexer IMFASFIndexer;
3366#ifdef __cplusplus
3367interface IMFASFIndexer;
3368#endif /* __cplusplus */
3369#endif
3370
3371#ifndef __IMFASFMultiplexer_FWD_DEFINED__
3372#define __IMFASFMultiplexer_FWD_DEFINED__
3373typedef interface IMFASFMultiplexer IMFASFMultiplexer;
3374#ifdef __cplusplus
3375interface IMFASFMultiplexer;
3376#endif /* __cplusplus */
3377#endif
3378
3379#ifndef __IMFASFProfile_FWD_DEFINED__
3380#define __IMFASFProfile_FWD_DEFINED__
3381typedef interface IMFASFProfile IMFASFProfile;
3382#ifdef __cplusplus
3383interface IMFASFProfile;
3384#endif /* __cplusplus */
3385#endif
3386
3387#ifndef __IMFASFSplitter_FWD_DEFINED__
3388#define __IMFASFSplitter_FWD_DEFINED__
3389typedef interface IMFASFSplitter IMFASFSplitter;
3390#ifdef __cplusplus
3391interface IMFASFSplitter;
3392#endif /* __cplusplus */
3393#endif
3394
3395#ifndef __IMFPMPServer_FWD_DEFINED__
3396#define __IMFPMPServer_FWD_DEFINED__
3397typedef interface IMFPMPServer IMFPMPServer;
3398#ifdef __cplusplus
3399interface IMFPMPServer;
3400#endif /* __cplusplus */
3401#endif
3402
3403#ifndef __IMFPresentationClock_FWD_DEFINED__
3404#define __IMFPresentationClock_FWD_DEFINED__
3405typedef interface IMFPresentationClock IMFPresentationClock;
3406#ifdef __cplusplus
3407interface IMFPresentationClock;
3408#endif /* __cplusplus */
3409#endif
3410
3411#ifndef __IMFNetProxyLocator_FWD_DEFINED__
3412#define __IMFNetProxyLocator_FWD_DEFINED__
3413typedef interface IMFNetProxyLocator IMFNetProxyLocator;
3414#ifdef __cplusplus
3415interface IMFNetProxyLocator;
3416#endif /* __cplusplus */
3417#endif
3418
3419#ifndef __IMFRemoteDesktopPlugin_FWD_DEFINED__
3420#define __IMFRemoteDesktopPlugin_FWD_DEFINED__
3421typedef interface IMFRemoteDesktopPlugin IMFRemoteDesktopPlugin;
3422#ifdef __cplusplus
3423interface IMFRemoteDesktopPlugin;
3424#endif /* __cplusplus */
3425#endif
3426
3427#ifndef __IMFTransform_FWD_DEFINED__
3428#define __IMFTransform_FWD_DEFINED__
3429typedef interface IMFTransform IMFTransform;
3430#ifdef __cplusplus
3431interface IMFTransform;
3432#endif /* __cplusplus */
3433#endif
3434
3435#ifndef __IMFSequencerSource_FWD_DEFINED__
3436#define __IMFSequencerSource_FWD_DEFINED__
3437typedef interface IMFSequencerSource IMFSequencerSource;
3438#ifdef __cplusplus
3439interface IMFSequencerSource;
3440#endif /* __cplusplus */
3441#endif
3442
3443#ifndef __IMFStreamSink_FWD_DEFINED__
3444#define __IMFStreamSink_FWD_DEFINED__
3445typedef interface IMFStreamSink IMFStreamSink;
3446#ifdef __cplusplus
3447interface IMFStreamSink;
3448#endif /* __cplusplus */
3449#endif
3450
3451#ifndef __IMFQualityManager_FWD_DEFINED__
3452#define __IMFQualityManager_FWD_DEFINED__
3453typedef interface IMFQualityManager IMFQualityManager;
3454#ifdef __cplusplus
3455interface IMFQualityManager;
3456#endif /* __cplusplus */
3457#endif
3458
3459#ifndef __IMFTranscodeProfile_FWD_DEFINED__
3460#define __IMFTranscodeProfile_FWD_DEFINED__
3461typedef interface IMFTranscodeProfile IMFTranscodeProfile;
3462#ifdef __cplusplus
3463interface IMFTranscodeProfile;
3464#endif /* __cplusplus */
3465#endif
3466
3467/*****************************************************************************
3468 * IMFAudioStreamVolume interface
3469 */
3470#ifndef __IMFAudioStreamVolume_INTERFACE_DEFINED__
3471#define __IMFAudioStreamVolume_INTERFACE_DEFINED__
3472
3473DEFINE_GUID(IID_IMFAudioStreamVolume, 0x76b1bbdb, 0x4ec8, 0x4f36, 0xb1,0x06, 0x70,0xa9,0x31,0x6d,0xf5,0x93);
3474#if defined(__cplusplus) && !defined(CINTERFACE)
3475MIDL_INTERFACE("76b1bbdb-4ec8-4f36-b106-70a9316df593")
3476IMFAudioStreamVolume : public IUnknown
3477{
3478 virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
3479 UINT32 *pdwCount) = 0;
3480
3481 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
3482 UINT32 dwIndex,
3483 const float fLevel) = 0;
3484
3485 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
3486 UINT32 dwIndex,
3487 float *pfLevel) = 0;
3488
3489 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
3490 UINT32 dwCount,
3491 const float *pfVolumes) = 0;
3492
3493 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
3494 UINT32 dwCount,
3495 float *pfVolumes) = 0;
3496
3497};
3498#ifdef __CRT_UUID_DECL
3499__CRT_UUID_DECL(IMFAudioStreamVolume, 0x76b1bbdb, 0x4ec8, 0x4f36, 0xb1,0x06, 0x70,0xa9,0x31,0x6d,0xf5,0x93)
3500#endif
3501#else
3502typedef struct IMFAudioStreamVolumeVtbl {
3503 BEGIN_INTERFACE
3504
3505 /*** IUnknown methods ***/
3506 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3507 IMFAudioStreamVolume *This,
3508 REFIID riid,
3509 void **ppvObject);
3510
3511 ULONG (STDMETHODCALLTYPE *AddRef)(
3512 IMFAudioStreamVolume *This);
3513
3514 ULONG (STDMETHODCALLTYPE *Release)(
3515 IMFAudioStreamVolume *This);
3516
3517 /*** IMFAudioStreamVolume methods ***/
3518 HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
3519 IMFAudioStreamVolume *This,
3520 UINT32 *pdwCount);
3521
3522 HRESULT (STDMETHODCALLTYPE *SetChannelVolume)(
3523 IMFAudioStreamVolume *This,
3524 UINT32 dwIndex,
3525 const float fLevel);
3526
3527 HRESULT (STDMETHODCALLTYPE *GetChannelVolume)(
3528 IMFAudioStreamVolume *This,
3529 UINT32 dwIndex,
3530 float *pfLevel);
3531
3532 HRESULT (STDMETHODCALLTYPE *SetAllVolumes)(
3533 IMFAudioStreamVolume *This,
3534 UINT32 dwCount,
3535 const float *pfVolumes);
3536
3537 HRESULT (STDMETHODCALLTYPE *GetAllVolumes)(
3538 IMFAudioStreamVolume *This,
3539 UINT32 dwCount,
3540 float *pfVolumes);
3541
3542 END_INTERFACE
3543} IMFAudioStreamVolumeVtbl;
3544
3545interface IMFAudioStreamVolume {
3546 CONST_VTBL IMFAudioStreamVolumeVtbl* lpVtbl;
3547};
3548
3549#ifdef COBJMACROS
3550#ifndef WIDL_C_INLINE_WRAPPERS
3551/*** IUnknown methods ***/
3552#define IMFAudioStreamVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3553#define IMFAudioStreamVolume_AddRef(This) (This)->lpVtbl->AddRef(This)
3554#define IMFAudioStreamVolume_Release(This) (This)->lpVtbl->Release(This)
3555/*** IMFAudioStreamVolume methods ***/
3556#define IMFAudioStreamVolume_GetChannelCount(This,pdwCount) (This)->lpVtbl->GetChannelCount(This,pdwCount)
3557#define IMFAudioStreamVolume_SetChannelVolume(This,dwIndex,fLevel) (This)->lpVtbl->SetChannelVolume(This,dwIndex,fLevel)
3558#define IMFAudioStreamVolume_GetChannelVolume(This,dwIndex,pfLevel) (This)->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel)
3559#define IMFAudioStreamVolume_SetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes)
3560#define IMFAudioStreamVolume_GetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes)
3561#else
3562/*** IUnknown methods ***/
3563static FORCEINLINE HRESULT IMFAudioStreamVolume_QueryInterface(IMFAudioStreamVolume* This,REFIID riid,void **ppvObject) {
3564 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3565}
3566static FORCEINLINE ULONG IMFAudioStreamVolume_AddRef(IMFAudioStreamVolume* This) {
3567 return This->lpVtbl->AddRef(This);
3568}
3569static FORCEINLINE ULONG IMFAudioStreamVolume_Release(IMFAudioStreamVolume* This) {
3570 return This->lpVtbl->Release(This);
3571}
3572/*** IMFAudioStreamVolume methods ***/
3573static FORCEINLINE HRESULT IMFAudioStreamVolume_GetChannelCount(IMFAudioStreamVolume* This,UINT32 *pdwCount) {
3574 return This->lpVtbl->GetChannelCount(This,pdwCount);
3575}
3576static FORCEINLINE HRESULT IMFAudioStreamVolume_SetChannelVolume(IMFAudioStreamVolume* This,UINT32 dwIndex,const float fLevel) {
3577 return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel);
3578}
3579static FORCEINLINE HRESULT IMFAudioStreamVolume_GetChannelVolume(IMFAudioStreamVolume* This,UINT32 dwIndex,float *pfLevel) {
3580 return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel);
3581}
3582static FORCEINLINE HRESULT IMFAudioStreamVolume_SetAllVolumes(IMFAudioStreamVolume* This,UINT32 dwCount,const float *pfVolumes) {
3583 return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes);
3584}
3585static FORCEINLINE HRESULT IMFAudioStreamVolume_GetAllVolumes(IMFAudioStreamVolume* This,UINT32 dwCount,float *pfVolumes) {
3586 return This->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes);
3587}
3588#endif
3589#endif
3590
3591#endif
3592
3593
3594#endif /* __IMFAudioStreamVolume_INTERFACE_DEFINED__ */
3595
3596/*****************************************************************************
3597 * IMFMediaSink interface
3598 */
3599#ifndef __IMFMediaSink_INTERFACE_DEFINED__
3600#define __IMFMediaSink_INTERFACE_DEFINED__
3601
3602DEFINE_GUID(IID_IMFMediaSink, 0x6ef2a660, 0x47c0, 0x4666, 0xb1,0x3d, 0xcb,0xb7,0x17,0xf2,0xfa,0x2c);
3603#if defined(__cplusplus) && !defined(CINTERFACE)
3604MIDL_INTERFACE("6ef2a660-47c0-4666-b13d-cbb717f2fa2c")
3605IMFMediaSink : public IUnknown
3606{
3607 virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
3608 DWORD *pdwCharacteristics) = 0;
3609
3610 virtual HRESULT STDMETHODCALLTYPE AddStreamSink(
3611 DWORD dwStreamSinkIdentifier,
3612 IMFMediaType *pMediaType,
3613 IMFStreamSink **ppStreamSink) = 0;
3614
3615 virtual HRESULT STDMETHODCALLTYPE RemoveStreamSink(
3616 DWORD dwStreamSinkIdentifier) = 0;
3617
3618 virtual HRESULT STDMETHODCALLTYPE GetStreamSinkCount(
3619 DWORD *pcStreamSinkCount) = 0;
3620
3621 virtual HRESULT STDMETHODCALLTYPE GetStreamSinkByIndex(
3622 DWORD dwIndex,
3623 IMFStreamSink **ppStreamSink) = 0;
3624
3625 virtual HRESULT STDMETHODCALLTYPE GetStreamSinkById(
3626 DWORD dwStreamSinkIdentifier,
3627 IMFStreamSink **ppStreamSink) = 0;
3628
3629 virtual HRESULT STDMETHODCALLTYPE SetPresentationClock(
3630 IMFPresentationClock *pPresentationClock) = 0;
3631
3632 virtual HRESULT STDMETHODCALLTYPE GetPresentationClock(
3633 IMFPresentationClock **ppPresentationClock) = 0;
3634
3635 virtual HRESULT STDMETHODCALLTYPE Shutdown(
3636 ) = 0;
3637
3638};
3639#ifdef __CRT_UUID_DECL
3640__CRT_UUID_DECL(IMFMediaSink, 0x6ef2a660, 0x47c0, 0x4666, 0xb1,0x3d, 0xcb,0xb7,0x17,0xf2,0xfa,0x2c)
3641#endif
3642#else
3643typedef struct IMFMediaSinkVtbl {
3644 BEGIN_INTERFACE
3645
3646 /*** IUnknown methods ***/
3647 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3648 IMFMediaSink *This,
3649 REFIID riid,
3650 void **ppvObject);
3651
3652 ULONG (STDMETHODCALLTYPE *AddRef)(
3653 IMFMediaSink *This);
3654
3655 ULONG (STDMETHODCALLTYPE *Release)(
3656 IMFMediaSink *This);
3657
3658 /*** IMFMediaSink methods ***/
3659 HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
3660 IMFMediaSink *This,
3661 DWORD *pdwCharacteristics);
3662
3663 HRESULT (STDMETHODCALLTYPE *AddStreamSink)(
3664 IMFMediaSink *This,
3665 DWORD dwStreamSinkIdentifier,
3666 IMFMediaType *pMediaType,
3667 IMFStreamSink **ppStreamSink);
3668
3669 HRESULT (STDMETHODCALLTYPE *RemoveStreamSink)(
3670 IMFMediaSink *This,
3671 DWORD dwStreamSinkIdentifier);
3672
3673 HRESULT (STDMETHODCALLTYPE *GetStreamSinkCount)(
3674 IMFMediaSink *This,
3675 DWORD *pcStreamSinkCount);
3676
3677 HRESULT (STDMETHODCALLTYPE *GetStreamSinkByIndex)(
3678 IMFMediaSink *This,
3679 DWORD dwIndex,
3680 IMFStreamSink **ppStreamSink);
3681
3682 HRESULT (STDMETHODCALLTYPE *GetStreamSinkById)(
3683 IMFMediaSink *This,
3684 DWORD dwStreamSinkIdentifier,
3685 IMFStreamSink **ppStreamSink);
3686
3687 HRESULT (STDMETHODCALLTYPE *SetPresentationClock)(
3688 IMFMediaSink *This,
3689 IMFPresentationClock *pPresentationClock);
3690
3691 HRESULT (STDMETHODCALLTYPE *GetPresentationClock)(
3692 IMFMediaSink *This,
3693 IMFPresentationClock **ppPresentationClock);
3694
3695 HRESULT (STDMETHODCALLTYPE *Shutdown)(
3696 IMFMediaSink *This);
3697
3698 END_INTERFACE
3699} IMFMediaSinkVtbl;
3700
3701interface IMFMediaSink {
3702 CONST_VTBL IMFMediaSinkVtbl* lpVtbl;
3703};
3704
3705#ifdef COBJMACROS
3706#ifndef WIDL_C_INLINE_WRAPPERS
3707/*** IUnknown methods ***/
3708#define IMFMediaSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3709#define IMFMediaSink_AddRef(This) (This)->lpVtbl->AddRef(This)
3710#define IMFMediaSink_Release(This) (This)->lpVtbl->Release(This)
3711/*** IMFMediaSink methods ***/
3712#define IMFMediaSink_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
3713#define IMFMediaSink_AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink) (This)->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink)
3714#define IMFMediaSink_RemoveStreamSink(This,dwStreamSinkIdentifier) (This)->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier)
3715#define IMFMediaSink_GetStreamSinkCount(This,pcStreamSinkCount) (This)->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount)
3716#define IMFMediaSink_GetStreamSinkByIndex(This,dwIndex,ppStreamSink) (This)->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink)
3717#define IMFMediaSink_GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink) (This)->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink)
3718#define IMFMediaSink_SetPresentationClock(This,pPresentationClock) (This)->lpVtbl->SetPresentationClock(This,pPresentationClock)
3719#define IMFMediaSink_GetPresentationClock(This,ppPresentationClock) (This)->lpVtbl->GetPresentationClock(This,ppPresentationClock)
3720#define IMFMediaSink_Shutdown(This) (This)->lpVtbl->Shutdown(This)
3721#else
3722/*** IUnknown methods ***/
3723static FORCEINLINE HRESULT IMFMediaSink_QueryInterface(IMFMediaSink* This,REFIID riid,void **ppvObject) {
3724 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3725}
3726static FORCEINLINE ULONG IMFMediaSink_AddRef(IMFMediaSink* This) {
3727 return This->lpVtbl->AddRef(This);
3728}
3729static FORCEINLINE ULONG IMFMediaSink_Release(IMFMediaSink* This) {
3730 return This->lpVtbl->Release(This);
3731}
3732/*** IMFMediaSink methods ***/
3733static FORCEINLINE HRESULT IMFMediaSink_GetCharacteristics(IMFMediaSink* This,DWORD *pdwCharacteristics) {
3734 return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics);
3735}
3736static FORCEINLINE HRESULT IMFMediaSink_AddStreamSink(IMFMediaSink* This,DWORD dwStreamSinkIdentifier,IMFMediaType *pMediaType,IMFStreamSink **ppStreamSink) {
3737 return This->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink);
3738}
3739static FORCEINLINE HRESULT IMFMediaSink_RemoveStreamSink(IMFMediaSink* This,DWORD dwStreamSinkIdentifier) {
3740 return This->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier);
3741}
3742static FORCEINLINE HRESULT IMFMediaSink_GetStreamSinkCount(IMFMediaSink* This,DWORD *pcStreamSinkCount) {
3743 return This->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount);
3744}
3745static FORCEINLINE HRESULT IMFMediaSink_GetStreamSinkByIndex(IMFMediaSink* This,DWORD dwIndex,IMFStreamSink **ppStreamSink) {
3746 return This->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink);
3747}
3748static FORCEINLINE HRESULT IMFMediaSink_GetStreamSinkById(IMFMediaSink* This,DWORD dwStreamSinkIdentifier,IMFStreamSink **ppStreamSink) {
3749 return This->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink);
3750}
3751static FORCEINLINE HRESULT IMFMediaSink_SetPresentationClock(IMFMediaSink* This,IMFPresentationClock *pPresentationClock) {
3752 return This->lpVtbl->SetPresentationClock(This,pPresentationClock);
3753}
3754static FORCEINLINE HRESULT IMFMediaSink_GetPresentationClock(IMFMediaSink* This,IMFPresentationClock **ppPresentationClock) {
3755 return This->lpVtbl->GetPresentationClock(This,ppPresentationClock);
3756}
3757static FORCEINLINE HRESULT IMFMediaSink_Shutdown(IMFMediaSink* This) {
3758 return This->lpVtbl->Shutdown(This);
3759}
3760#endif
3761#endif
3762
3763#endif
3764
3765
3766#endif /* __IMFMediaSink_INTERFACE_DEFINED__ */
3767
3768/*****************************************************************************
3769 * IMFFinalizableMediaSink interface
3770 */
3771#ifndef __IMFFinalizableMediaSink_INTERFACE_DEFINED__
3772#define __IMFFinalizableMediaSink_INTERFACE_DEFINED__
3773
3774DEFINE_GUID(IID_IMFFinalizableMediaSink, 0xeaecb74a, 0x9a50, 0x42ce, 0x95,0x41, 0x6a,0x7f,0x57,0xaa,0x4a,0xd7);
3775#if defined(__cplusplus) && !defined(CINTERFACE)
3776MIDL_INTERFACE("eaecb74a-9a50-42ce-9541-6a7f57aa4ad7")
3777IMFFinalizableMediaSink : public IMFMediaSink
3778{
3779 virtual HRESULT STDMETHODCALLTYPE BeginFinalize(
3780 IMFAsyncCallback *pCallback,
3781 IUnknown *punkState) = 0;
3782
3783 virtual HRESULT STDMETHODCALLTYPE EndFinalize(
3784 IMFAsyncResult *pResult) = 0;
3785
3786};
3787#ifdef __CRT_UUID_DECL
3788__CRT_UUID_DECL(IMFFinalizableMediaSink, 0xeaecb74a, 0x9a50, 0x42ce, 0x95,0x41, 0x6a,0x7f,0x57,0xaa,0x4a,0xd7)
3789#endif
3790#else
3791typedef struct IMFFinalizableMediaSinkVtbl {
3792 BEGIN_INTERFACE
3793
3794 /*** IUnknown methods ***/
3795 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3796 IMFFinalizableMediaSink *This,
3797 REFIID riid,
3798 void **ppvObject);
3799
3800 ULONG (STDMETHODCALLTYPE *AddRef)(
3801 IMFFinalizableMediaSink *This);
3802
3803 ULONG (STDMETHODCALLTYPE *Release)(
3804 IMFFinalizableMediaSink *This);
3805
3806 /*** IMFMediaSink methods ***/
3807 HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
3808 IMFFinalizableMediaSink *This,
3809 DWORD *pdwCharacteristics);
3810
3811 HRESULT (STDMETHODCALLTYPE *AddStreamSink)(
3812 IMFFinalizableMediaSink *This,
3813 DWORD dwStreamSinkIdentifier,
3814 IMFMediaType *pMediaType,
3815 IMFStreamSink **ppStreamSink);
3816
3817 HRESULT (STDMETHODCALLTYPE *RemoveStreamSink)(
3818 IMFFinalizableMediaSink *This,
3819 DWORD dwStreamSinkIdentifier);
3820
3821 HRESULT (STDMETHODCALLTYPE *GetStreamSinkCount)(
3822 IMFFinalizableMediaSink *This,
3823 DWORD *pcStreamSinkCount);
3824
3825 HRESULT (STDMETHODCALLTYPE *GetStreamSinkByIndex)(
3826 IMFFinalizableMediaSink *This,
3827 DWORD dwIndex,
3828 IMFStreamSink **ppStreamSink);
3829
3830 HRESULT (STDMETHODCALLTYPE *GetStreamSinkById)(
3831 IMFFinalizableMediaSink *This,
3832 DWORD dwStreamSinkIdentifier,
3833 IMFStreamSink **ppStreamSink);
3834
3835 HRESULT (STDMETHODCALLTYPE *SetPresentationClock)(
3836 IMFFinalizableMediaSink *This,
3837 IMFPresentationClock *pPresentationClock);
3838
3839 HRESULT (STDMETHODCALLTYPE *GetPresentationClock)(
3840 IMFFinalizableMediaSink *This,
3841 IMFPresentationClock **ppPresentationClock);
3842
3843 HRESULT (STDMETHODCALLTYPE *Shutdown)(
3844 IMFFinalizableMediaSink *This);
3845
3846 /*** IMFFinalizableMediaSink methods ***/
3847 HRESULT (STDMETHODCALLTYPE *BeginFinalize)(
3848 IMFFinalizableMediaSink *This,
3849 IMFAsyncCallback *pCallback,
3850 IUnknown *punkState);
3851
3852 HRESULT (STDMETHODCALLTYPE *EndFinalize)(
3853 IMFFinalizableMediaSink *This,
3854 IMFAsyncResult *pResult);
3855
3856 END_INTERFACE
3857} IMFFinalizableMediaSinkVtbl;
3858
3859interface IMFFinalizableMediaSink {
3860 CONST_VTBL IMFFinalizableMediaSinkVtbl* lpVtbl;
3861};
3862
3863#ifdef COBJMACROS
3864#ifndef WIDL_C_INLINE_WRAPPERS
3865/*** IUnknown methods ***/
3866#define IMFFinalizableMediaSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3867#define IMFFinalizableMediaSink_AddRef(This) (This)->lpVtbl->AddRef(This)
3868#define IMFFinalizableMediaSink_Release(This) (This)->lpVtbl->Release(This)
3869/*** IMFMediaSink methods ***/
3870#define IMFFinalizableMediaSink_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
3871#define IMFFinalizableMediaSink_AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink) (This)->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink)
3872#define IMFFinalizableMediaSink_RemoveStreamSink(This,dwStreamSinkIdentifier) (This)->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier)
3873#define IMFFinalizableMediaSink_GetStreamSinkCount(This,pcStreamSinkCount) (This)->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount)
3874#define IMFFinalizableMediaSink_GetStreamSinkByIndex(This,dwIndex,ppStreamSink) (This)->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink)
3875#define IMFFinalizableMediaSink_GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink) (This)->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink)
3876#define IMFFinalizableMediaSink_SetPresentationClock(This,pPresentationClock) (This)->lpVtbl->SetPresentationClock(This,pPresentationClock)
3877#define IMFFinalizableMediaSink_GetPresentationClock(This,ppPresentationClock) (This)->lpVtbl->GetPresentationClock(This,ppPresentationClock)
3878#define IMFFinalizableMediaSink_Shutdown(This) (This)->lpVtbl->Shutdown(This)
3879/*** IMFFinalizableMediaSink methods ***/
3880#define IMFFinalizableMediaSink_BeginFinalize(This,pCallback,punkState) (This)->lpVtbl->BeginFinalize(This,pCallback,punkState)
3881#define IMFFinalizableMediaSink_EndFinalize(This,pResult) (This)->lpVtbl->EndFinalize(This,pResult)
3882#else
3883/*** IUnknown methods ***/
3884static FORCEINLINE HRESULT IMFFinalizableMediaSink_QueryInterface(IMFFinalizableMediaSink* This,REFIID riid,void **ppvObject) {
3885 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3886}
3887static FORCEINLINE ULONG IMFFinalizableMediaSink_AddRef(IMFFinalizableMediaSink* This) {
3888 return This->lpVtbl->AddRef(This);
3889}
3890static FORCEINLINE ULONG IMFFinalizableMediaSink_Release(IMFFinalizableMediaSink* This) {
3891 return This->lpVtbl->Release(This);
3892}
3893/*** IMFMediaSink methods ***/
3894static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetCharacteristics(IMFFinalizableMediaSink* This,DWORD *pdwCharacteristics) {
3895 return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics);
3896}
3897static FORCEINLINE HRESULT IMFFinalizableMediaSink_AddStreamSink(IMFFinalizableMediaSink* This,DWORD dwStreamSinkIdentifier,IMFMediaType *pMediaType,IMFStreamSink **ppStreamSink) {
3898 return This->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink);
3899}
3900static FORCEINLINE HRESULT IMFFinalizableMediaSink_RemoveStreamSink(IMFFinalizableMediaSink* This,DWORD dwStreamSinkIdentifier) {
3901 return This->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier);
3902}
3903static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetStreamSinkCount(IMFFinalizableMediaSink* This,DWORD *pcStreamSinkCount) {
3904 return This->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount);
3905}
3906static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetStreamSinkByIndex(IMFFinalizableMediaSink* This,DWORD dwIndex,IMFStreamSink **ppStreamSink) {
3907 return This->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink);
3908}
3909static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetStreamSinkById(IMFFinalizableMediaSink* This,DWORD dwStreamSinkIdentifier,IMFStreamSink **ppStreamSink) {
3910 return This->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink);
3911}
3912static FORCEINLINE HRESULT IMFFinalizableMediaSink_SetPresentationClock(IMFFinalizableMediaSink* This,IMFPresentationClock *pPresentationClock) {
3913 return This->lpVtbl->SetPresentationClock(This,pPresentationClock);
3914}
3915static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetPresentationClock(IMFFinalizableMediaSink* This,IMFPresentationClock **ppPresentationClock) {
3916 return This->lpVtbl->GetPresentationClock(This,ppPresentationClock);
3917}
3918static FORCEINLINE HRESULT IMFFinalizableMediaSink_Shutdown(IMFFinalizableMediaSink* This) {
3919 return This->lpVtbl->Shutdown(This);
3920}
3921/*** IMFFinalizableMediaSink methods ***/
3922static FORCEINLINE HRESULT IMFFinalizableMediaSink_BeginFinalize(IMFFinalizableMediaSink* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
3923 return This->lpVtbl->BeginFinalize(This,pCallback,punkState);
3924}
3925static FORCEINLINE HRESULT IMFFinalizableMediaSink_EndFinalize(IMFFinalizableMediaSink* This,IMFAsyncResult *pResult) {
3926 return This->lpVtbl->EndFinalize(This,pResult);
3927}
3928#endif
3929#endif
3930
3931#endif
3932
3933
3934#endif /* __IMFFinalizableMediaSink_INTERFACE_DEFINED__ */
3935
3936/*****************************************************************************
3937 * IMFMediaSinkPreroll interface
3938 */
3939#ifndef __IMFMediaSinkPreroll_INTERFACE_DEFINED__
3940#define __IMFMediaSinkPreroll_INTERFACE_DEFINED__
3941
3942DEFINE_GUID(IID_IMFMediaSinkPreroll, 0x5dfd4b2a, 0x7674, 0x4110, 0xa4,0xe6, 0x8a,0x68,0xfd,0x5f,0x36,0x88);
3943#if defined(__cplusplus) && !defined(CINTERFACE)
3944MIDL_INTERFACE("5dfd4b2a-7674-4110-a4e6-8a68fd5f3688")
3945IMFMediaSinkPreroll : public IUnknown
3946{
3947 virtual HRESULT STDMETHODCALLTYPE NotifyPreroll(
3948 MFTIME hnsUpcomingStartTime) = 0;
3949
3950};
3951#ifdef __CRT_UUID_DECL
3952__CRT_UUID_DECL(IMFMediaSinkPreroll, 0x5dfd4b2a, 0x7674, 0x4110, 0xa4,0xe6, 0x8a,0x68,0xfd,0x5f,0x36,0x88)
3953#endif
3954#else
3955typedef struct IMFMediaSinkPrerollVtbl {
3956 BEGIN_INTERFACE
3957
3958 /*** IUnknown methods ***/
3959 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3960 IMFMediaSinkPreroll *This,
3961 REFIID riid,
3962 void **ppvObject);
3963
3964 ULONG (STDMETHODCALLTYPE *AddRef)(
3965 IMFMediaSinkPreroll *This);
3966
3967 ULONG (STDMETHODCALLTYPE *Release)(
3968 IMFMediaSinkPreroll *This);
3969
3970 /*** IMFMediaSinkPreroll methods ***/
3971 HRESULT (STDMETHODCALLTYPE *NotifyPreroll)(
3972 IMFMediaSinkPreroll *This,
3973 MFTIME hnsUpcomingStartTime);
3974
3975 END_INTERFACE
3976} IMFMediaSinkPrerollVtbl;
3977
3978interface IMFMediaSinkPreroll {
3979 CONST_VTBL IMFMediaSinkPrerollVtbl* lpVtbl;
3980};
3981
3982#ifdef COBJMACROS
3983#ifndef WIDL_C_INLINE_WRAPPERS
3984/*** IUnknown methods ***/
3985#define IMFMediaSinkPreroll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3986#define IMFMediaSinkPreroll_AddRef(This) (This)->lpVtbl->AddRef(This)
3987#define IMFMediaSinkPreroll_Release(This) (This)->lpVtbl->Release(This)
3988/*** IMFMediaSinkPreroll methods ***/
3989#define IMFMediaSinkPreroll_NotifyPreroll(This,hnsUpcomingStartTime) (This)->lpVtbl->NotifyPreroll(This,hnsUpcomingStartTime)
3990#else
3991/*** IUnknown methods ***/
3992static FORCEINLINE HRESULT IMFMediaSinkPreroll_QueryInterface(IMFMediaSinkPreroll* This,REFIID riid,void **ppvObject) {
3993 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3994}
3995static FORCEINLINE ULONG IMFMediaSinkPreroll_AddRef(IMFMediaSinkPreroll* This) {
3996 return This->lpVtbl->AddRef(This);
3997}
3998static FORCEINLINE ULONG IMFMediaSinkPreroll_Release(IMFMediaSinkPreroll* This) {
3999 return This->lpVtbl->Release(This);
4000}
4001/*** IMFMediaSinkPreroll methods ***/
4002static FORCEINLINE HRESULT IMFMediaSinkPreroll_NotifyPreroll(IMFMediaSinkPreroll* This,MFTIME hnsUpcomingStartTime) {
4003 return This->lpVtbl->NotifyPreroll(This,hnsUpcomingStartTime);
4004}
4005#endif
4006#endif
4007
4008#endif
4009
4010
4011#endif /* __IMFMediaSinkPreroll_INTERFACE_DEFINED__ */
4012
4013/*****************************************************************************
4014 * IMFMediaStream interface
4015 */
4016#ifndef __IMFMediaStream_INTERFACE_DEFINED__
4017#define __IMFMediaStream_INTERFACE_DEFINED__
4018
4019DEFINE_GUID(IID_IMFMediaStream, 0xd182108f, 0x4ec6, 0x443f, 0xaa,0x42, 0xa7,0x11,0x06,0xec,0x82,0x5f);
4020#if defined(__cplusplus) && !defined(CINTERFACE)
4021MIDL_INTERFACE("d182108f-4ec6-443f-aa42-a71106ec825f")
4022IMFMediaStream : public IMFMediaEventGenerator
4023{
4024 virtual HRESULT STDMETHODCALLTYPE GetMediaSource(
4025 IMFMediaSource **ppMediaSource) = 0;
4026
4027 virtual HRESULT STDMETHODCALLTYPE GetStreamDescriptor(
4028 IMFStreamDescriptor **ppStreamDescriptor) = 0;
4029
4030 virtual HRESULT STDMETHODCALLTYPE RequestSample(
4031 IUnknown *pToken) = 0;
4032
4033};
4034#ifdef __CRT_UUID_DECL
4035__CRT_UUID_DECL(IMFMediaStream, 0xd182108f, 0x4ec6, 0x443f, 0xaa,0x42, 0xa7,0x11,0x06,0xec,0x82,0x5f)
4036#endif
4037#else
4038typedef struct IMFMediaStreamVtbl {
4039 BEGIN_INTERFACE
4040
4041 /*** IUnknown methods ***/
4042 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4043 IMFMediaStream *This,
4044 REFIID riid,
4045 void **ppvObject);
4046
4047 ULONG (STDMETHODCALLTYPE *AddRef)(
4048 IMFMediaStream *This);
4049
4050 ULONG (STDMETHODCALLTYPE *Release)(
4051 IMFMediaStream *This);
4052
4053 /*** IMFMediaEventGenerator methods ***/
4054 HRESULT (STDMETHODCALLTYPE *GetEvent)(
4055 IMFMediaStream *This,
4056 DWORD dwFlags,
4057 IMFMediaEvent **ppEvent);
4058
4059 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
4060 IMFMediaStream *This,
4061 IMFAsyncCallback *pCallback,
4062 IUnknown *punkState);
4063
4064 HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
4065 IMFMediaStream *This,
4066 IMFAsyncResult *pResult,
4067 IMFMediaEvent **ppEvent);
4068
4069 HRESULT (STDMETHODCALLTYPE *QueueEvent)(
4070 IMFMediaStream *This,
4071 MediaEventType met,
4072 REFGUID guidExtendedType,
4073 HRESULT hrStatus,
4074 const PROPVARIANT *pvValue);
4075
4076 /*** IMFMediaStream methods ***/
4077 HRESULT (STDMETHODCALLTYPE *GetMediaSource)(
4078 IMFMediaStream *This,
4079 IMFMediaSource **ppMediaSource);
4080
4081 HRESULT (STDMETHODCALLTYPE *GetStreamDescriptor)(
4082 IMFMediaStream *This,
4083 IMFStreamDescriptor **ppStreamDescriptor);
4084
4085 HRESULT (STDMETHODCALLTYPE *RequestSample)(
4086 IMFMediaStream *This,
4087 IUnknown *pToken);
4088
4089 END_INTERFACE
4090} IMFMediaStreamVtbl;
4091
4092interface IMFMediaStream {
4093 CONST_VTBL IMFMediaStreamVtbl* lpVtbl;
4094};
4095
4096#ifdef COBJMACROS
4097#ifndef WIDL_C_INLINE_WRAPPERS
4098/*** IUnknown methods ***/
4099#define IMFMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4100#define IMFMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
4101#define IMFMediaStream_Release(This) (This)->lpVtbl->Release(This)
4102/*** IMFMediaEventGenerator methods ***/
4103#define IMFMediaStream_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
4104#define IMFMediaStream_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
4105#define IMFMediaStream_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
4106#define IMFMediaStream_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
4107/*** IMFMediaStream methods ***/
4108#define IMFMediaStream_GetMediaSource(This,ppMediaSource) (This)->lpVtbl->GetMediaSource(This,ppMediaSource)
4109#define IMFMediaStream_GetStreamDescriptor(This,ppStreamDescriptor) (This)->lpVtbl->GetStreamDescriptor(This,ppStreamDescriptor)
4110#define IMFMediaStream_RequestSample(This,pToken) (This)->lpVtbl->RequestSample(This,pToken)
4111#else
4112/*** IUnknown methods ***/
4113static FORCEINLINE HRESULT IMFMediaStream_QueryInterface(IMFMediaStream* This,REFIID riid,void **ppvObject) {
4114 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4115}
4116static FORCEINLINE ULONG IMFMediaStream_AddRef(IMFMediaStream* This) {
4117 return This->lpVtbl->AddRef(This);
4118}
4119static FORCEINLINE ULONG IMFMediaStream_Release(IMFMediaStream* This) {
4120 return This->lpVtbl->Release(This);
4121}
4122/*** IMFMediaEventGenerator methods ***/
4123static FORCEINLINE HRESULT IMFMediaStream_GetEvent(IMFMediaStream* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
4124 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
4125}
4126static FORCEINLINE HRESULT IMFMediaStream_BeginGetEvent(IMFMediaStream* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
4127 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
4128}
4129static FORCEINLINE HRESULT IMFMediaStream_EndGetEvent(IMFMediaStream* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
4130 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
4131}
4132static FORCEINLINE HRESULT IMFMediaStream_QueueEvent(IMFMediaStream* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
4133 return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue);
4134}
4135/*** IMFMediaStream methods ***/
4136static FORCEINLINE HRESULT IMFMediaStream_GetMediaSource(IMFMediaStream* This,IMFMediaSource **ppMediaSource) {
4137 return This->lpVtbl->GetMediaSource(This,ppMediaSource);
4138}
4139static FORCEINLINE HRESULT IMFMediaStream_GetStreamDescriptor(IMFMediaStream* This,IMFStreamDescriptor **ppStreamDescriptor) {
4140 return This->lpVtbl->GetStreamDescriptor(This,ppStreamDescriptor);
4141}
4142static FORCEINLINE HRESULT IMFMediaStream_RequestSample(IMFMediaStream* This,IUnknown *pToken) {
4143 return This->lpVtbl->RequestSample(This,pToken);
4144}
4145#endif
4146#endif
4147
4148#endif
4149
4150HRESULT STDMETHODCALLTYPE IMFMediaStream_RemoteRequestSample_Proxy(
4151 IMFMediaStream* This);
4152void __RPC_STUB IMFMediaStream_RemoteRequestSample_Stub(
4153 IRpcStubBuffer* This,
4154 IRpcChannelBuffer* pRpcChannelBuffer,
4155 PRPC_MESSAGE pRpcMessage,
4156 DWORD* pdwStubPhase);
4157HRESULT CALLBACK IMFMediaStream_RequestSample_Proxy(
4158 IMFMediaStream* This,
4159 IUnknown *pToken);
4160HRESULT __RPC_STUB IMFMediaStream_RequestSample_Stub(
4161 IMFMediaStream* This);
4162
4163#endif /* __IMFMediaStream_INTERFACE_DEFINED__ */
4164
4165/*****************************************************************************
4166 * IMFMetadata interface
4167 */
4168#ifndef __IMFMetadata_INTERFACE_DEFINED__
4169#define __IMFMetadata_INTERFACE_DEFINED__
4170
4171DEFINE_GUID(IID_IMFMetadata, 0xf88cfb8c, 0xef16, 0x4991, 0xb4,0x50, 0xcb,0x8c,0x69,0xe5,0x17,0x04);
4172#if defined(__cplusplus) && !defined(CINTERFACE)
4173MIDL_INTERFACE("f88cfb8c-ef16-4991-b450-cb8c69e51704")
4174IMFMetadata : public IUnknown
4175{
4176 virtual HRESULT STDMETHODCALLTYPE SetLanguage(
4177 LPCWSTR pwszRFC1766) = 0;
4178
4179 virtual HRESULT STDMETHODCALLTYPE GetLanguage(
4180 LPWSTR *ppwszRFC1766) = 0;
4181
4182 virtual HRESULT STDMETHODCALLTYPE GetAllLanguages(
4183 PROPVARIANT *ppvLanguages) = 0;
4184
4185 virtual HRESULT STDMETHODCALLTYPE SetProperty(
4186 LPCWSTR pwszName,
4187 const PROPVARIANT *ppvValue) = 0;
4188
4189 virtual HRESULT STDMETHODCALLTYPE GetProperty(
4190 LPCWSTR pwszName,
4191 PROPVARIANT *ppvValue) = 0;
4192
4193 virtual HRESULT STDMETHODCALLTYPE DeleteProperty(
4194 LPCWSTR pwszName) = 0;
4195
4196 virtual HRESULT STDMETHODCALLTYPE GetAllPropertyNames(
4197 PROPVARIANT *ppvNames) = 0;
4198
4199};
4200#ifdef __CRT_UUID_DECL
4201__CRT_UUID_DECL(IMFMetadata, 0xf88cfb8c, 0xef16, 0x4991, 0xb4,0x50, 0xcb,0x8c,0x69,0xe5,0x17,0x04)
4202#endif
4203#else
4204typedef struct IMFMetadataVtbl {
4205 BEGIN_INTERFACE
4206
4207 /*** IUnknown methods ***/
4208 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4209 IMFMetadata *This,
4210 REFIID riid,
4211 void **ppvObject);
4212
4213 ULONG (STDMETHODCALLTYPE *AddRef)(
4214 IMFMetadata *This);
4215
4216 ULONG (STDMETHODCALLTYPE *Release)(
4217 IMFMetadata *This);
4218
4219 /*** IMFMetadata methods ***/
4220 HRESULT (STDMETHODCALLTYPE *SetLanguage)(
4221 IMFMetadata *This,
4222 LPCWSTR pwszRFC1766);
4223
4224 HRESULT (STDMETHODCALLTYPE *GetLanguage)(
4225 IMFMetadata *This,
4226 LPWSTR *ppwszRFC1766);
4227
4228 HRESULT (STDMETHODCALLTYPE *GetAllLanguages)(
4229 IMFMetadata *This,
4230 PROPVARIANT *ppvLanguages);
4231
4232 HRESULT (STDMETHODCALLTYPE *SetProperty)(
4233 IMFMetadata *This,
4234 LPCWSTR pwszName,
4235 const PROPVARIANT *ppvValue);
4236
4237 HRESULT (STDMETHODCALLTYPE *GetProperty)(
4238 IMFMetadata *This,
4239 LPCWSTR pwszName,
4240 PROPVARIANT *ppvValue);
4241
4242 HRESULT (STDMETHODCALLTYPE *DeleteProperty)(
4243 IMFMetadata *This,
4244 LPCWSTR pwszName);
4245
4246 HRESULT (STDMETHODCALLTYPE *GetAllPropertyNames)(
4247 IMFMetadata *This,
4248 PROPVARIANT *ppvNames);
4249
4250 END_INTERFACE
4251} IMFMetadataVtbl;
4252
4253interface IMFMetadata {
4254 CONST_VTBL IMFMetadataVtbl* lpVtbl;
4255};
4256
4257#ifdef COBJMACROS
4258#ifndef WIDL_C_INLINE_WRAPPERS
4259/*** IUnknown methods ***/
4260#define IMFMetadata_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4261#define IMFMetadata_AddRef(This) (This)->lpVtbl->AddRef(This)
4262#define IMFMetadata_Release(This) (This)->lpVtbl->Release(This)
4263/*** IMFMetadata methods ***/
4264#define IMFMetadata_SetLanguage(This,pwszRFC1766) (This)->lpVtbl->SetLanguage(This,pwszRFC1766)
4265#define IMFMetadata_GetLanguage(This,ppwszRFC1766) (This)->lpVtbl->GetLanguage(This,ppwszRFC1766)
4266#define IMFMetadata_GetAllLanguages(This,ppvLanguages) (This)->lpVtbl->GetAllLanguages(This,ppvLanguages)
4267#define IMFMetadata_SetProperty(This,pwszName,ppvValue) (This)->lpVtbl->SetProperty(This,pwszName,ppvValue)
4268#define IMFMetadata_GetProperty(This,pwszName,ppvValue) (This)->lpVtbl->GetProperty(This,pwszName,ppvValue)
4269#define IMFMetadata_DeleteProperty(This,pwszName) (This)->lpVtbl->DeleteProperty(This,pwszName)
4270#define IMFMetadata_GetAllPropertyNames(This,ppvNames) (This)->lpVtbl->GetAllPropertyNames(This,ppvNames)
4271#else
4272/*** IUnknown methods ***/
4273static FORCEINLINE HRESULT IMFMetadata_QueryInterface(IMFMetadata* This,REFIID riid,void **ppvObject) {
4274 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4275}
4276static FORCEINLINE ULONG IMFMetadata_AddRef(IMFMetadata* This) {
4277 return This->lpVtbl->AddRef(This);
4278}
4279static FORCEINLINE ULONG IMFMetadata_Release(IMFMetadata* This) {
4280 return This->lpVtbl->Release(This);
4281}
4282/*** IMFMetadata methods ***/
4283static FORCEINLINE HRESULT IMFMetadata_SetLanguage(IMFMetadata* This,LPCWSTR pwszRFC1766) {
4284 return This->lpVtbl->SetLanguage(This,pwszRFC1766);
4285}
4286static FORCEINLINE HRESULT IMFMetadata_GetLanguage(IMFMetadata* This,LPWSTR *ppwszRFC1766) {
4287 return This->lpVtbl->GetLanguage(This,ppwszRFC1766);
4288}
4289static FORCEINLINE HRESULT IMFMetadata_GetAllLanguages(IMFMetadata* This,PROPVARIANT *ppvLanguages) {
4290 return This->lpVtbl->GetAllLanguages(This,ppvLanguages);
4291}
4292static FORCEINLINE HRESULT IMFMetadata_SetProperty(IMFMetadata* This,LPCWSTR pwszName,const PROPVARIANT *ppvValue) {
4293 return This->lpVtbl->SetProperty(This,pwszName,ppvValue);
4294}
4295static FORCEINLINE HRESULT IMFMetadata_GetProperty(IMFMetadata* This,LPCWSTR pwszName,PROPVARIANT *ppvValue) {
4296 return This->lpVtbl->GetProperty(This,pwszName,ppvValue);
4297}
4298static FORCEINLINE HRESULT IMFMetadata_DeleteProperty(IMFMetadata* This,LPCWSTR pwszName) {
4299 return This->lpVtbl->DeleteProperty(This,pwszName);
4300}
4301static FORCEINLINE HRESULT IMFMetadata_GetAllPropertyNames(IMFMetadata* This,PROPVARIANT *ppvNames) {
4302 return This->lpVtbl->GetAllPropertyNames(This,ppvNames);
4303}
4304#endif
4305#endif
4306
4307#endif
4308
4309
4310#endif /* __IMFMetadata_INTERFACE_DEFINED__ */
4311
4312/*****************************************************************************
4313 * IMFMetadataProvider interface
4314 */
4315#ifndef __IMFMetadataProvider_INTERFACE_DEFINED__
4316#define __IMFMetadataProvider_INTERFACE_DEFINED__
4317
4318DEFINE_GUID(IID_IMFMetadataProvider, 0x56181d2d, 0xe221, 0x4adb, 0xb1,0xc8, 0x3c,0xee,0x6a,0x53,0xf7,0x6f);
4319#if defined(__cplusplus) && !defined(CINTERFACE)
4320MIDL_INTERFACE("56181d2d-e221-4adb-b1c8-3cee6a53f76f")
4321IMFMetadataProvider : public IUnknown
4322{
4323 virtual HRESULT STDMETHODCALLTYPE GetMFMetadata(
4324 IMFPresentationDescriptor *pPresentationDescriptor,
4325 DWORD dwStreamIdentifier,
4326 DWORD dwFlags,
4327 IMFMetadata **ppMFMetadata) = 0;
4328
4329};
4330#ifdef __CRT_UUID_DECL
4331__CRT_UUID_DECL(IMFMetadataProvider, 0x56181d2d, 0xe221, 0x4adb, 0xb1,0xc8, 0x3c,0xee,0x6a,0x53,0xf7,0x6f)
4332#endif
4333#else
4334typedef struct IMFMetadataProviderVtbl {
4335 BEGIN_INTERFACE
4336
4337 /*** IUnknown methods ***/
4338 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4339 IMFMetadataProvider *This,
4340 REFIID riid,
4341 void **ppvObject);
4342
4343 ULONG (STDMETHODCALLTYPE *AddRef)(
4344 IMFMetadataProvider *This);
4345
4346 ULONG (STDMETHODCALLTYPE *Release)(
4347 IMFMetadataProvider *This);
4348
4349 /*** IMFMetadataProvider methods ***/
4350 HRESULT (STDMETHODCALLTYPE *GetMFMetadata)(
4351 IMFMetadataProvider *This,
4352 IMFPresentationDescriptor *pPresentationDescriptor,
4353 DWORD dwStreamIdentifier,
4354 DWORD dwFlags,
4355 IMFMetadata **ppMFMetadata);
4356
4357 END_INTERFACE
4358} IMFMetadataProviderVtbl;
4359
4360interface IMFMetadataProvider {
4361 CONST_VTBL IMFMetadataProviderVtbl* lpVtbl;
4362};
4363
4364#ifdef COBJMACROS
4365#ifndef WIDL_C_INLINE_WRAPPERS
4366/*** IUnknown methods ***/
4367#define IMFMetadataProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4368#define IMFMetadataProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
4369#define IMFMetadataProvider_Release(This) (This)->lpVtbl->Release(This)
4370/*** IMFMetadataProvider methods ***/
4371#define IMFMetadataProvider_GetMFMetadata(This,pPresentationDescriptor,dwStreamIdentifier,dwFlags,ppMFMetadata) (This)->lpVtbl->GetMFMetadata(This,pPresentationDescriptor,dwStreamIdentifier,dwFlags,ppMFMetadata)
4372#else
4373/*** IUnknown methods ***/
4374static FORCEINLINE HRESULT IMFMetadataProvider_QueryInterface(IMFMetadataProvider* This,REFIID riid,void **ppvObject) {
4375 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4376}
4377static FORCEINLINE ULONG IMFMetadataProvider_AddRef(IMFMetadataProvider* This) {
4378 return This->lpVtbl->AddRef(This);
4379}
4380static FORCEINLINE ULONG IMFMetadataProvider_Release(IMFMetadataProvider* This) {
4381 return This->lpVtbl->Release(This);
4382}
4383/*** IMFMetadataProvider methods ***/
4384static FORCEINLINE HRESULT IMFMetadataProvider_GetMFMetadata(IMFMetadataProvider* This,IMFPresentationDescriptor *pPresentationDescriptor,DWORD dwStreamIdentifier,DWORD dwFlags,IMFMetadata **ppMFMetadata) {
4385 return This->lpVtbl->GetMFMetadata(This,pPresentationDescriptor,dwStreamIdentifier,dwFlags,ppMFMetadata);
4386}
4387#endif
4388#endif
4389
4390#endif
4391
4392
4393#endif /* __IMFMetadataProvider_INTERFACE_DEFINED__ */
4394
4395/*****************************************************************************
4396 * IMFPresentationTimeSource interface
4397 */
4398#ifndef __IMFPresentationTimeSource_INTERFACE_DEFINED__
4399#define __IMFPresentationTimeSource_INTERFACE_DEFINED__
4400
4401DEFINE_GUID(IID_IMFPresentationTimeSource, 0x7ff12cce, 0xf76f, 0x41c2, 0x86,0x3b, 0x16,0x66,0xc8,0xe5,0xe1,0x39);
4402#if defined(__cplusplus) && !defined(CINTERFACE)
4403MIDL_INTERFACE("7ff12cce-f76f-41c2-863b-1666c8e5e139")
4404IMFPresentationTimeSource : public IMFClock
4405{
4406 virtual HRESULT STDMETHODCALLTYPE GetUnderlyingClock(
4407 IMFClock **ppClock) = 0;
4408
4409};
4410#ifdef __CRT_UUID_DECL
4411__CRT_UUID_DECL(IMFPresentationTimeSource, 0x7ff12cce, 0xf76f, 0x41c2, 0x86,0x3b, 0x16,0x66,0xc8,0xe5,0xe1,0x39)
4412#endif
4413#else
4414typedef struct IMFPresentationTimeSourceVtbl {
4415 BEGIN_INTERFACE
4416
4417 /*** IUnknown methods ***/
4418 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4419 IMFPresentationTimeSource *This,
4420 REFIID riid,
4421 void **ppvObject);
4422
4423 ULONG (STDMETHODCALLTYPE *AddRef)(
4424 IMFPresentationTimeSource *This);
4425
4426 ULONG (STDMETHODCALLTYPE *Release)(
4427 IMFPresentationTimeSource *This);
4428
4429 /*** IMFClock methods ***/
4430 HRESULT (STDMETHODCALLTYPE *GetClockCharacteristics)(
4431 IMFPresentationTimeSource *This,
4432 DWORD *pdwCharacteristics);
4433
4434 HRESULT (STDMETHODCALLTYPE *GetCorrelatedTime)(
4435 IMFPresentationTimeSource *This,
4436 DWORD dwReserved,
4437 LONGLONG *pllClockTime,
4438 MFTIME *phnsSystemTime);
4439
4440 HRESULT (STDMETHODCALLTYPE *GetContinuityKey)(
4441 IMFPresentationTimeSource *This,
4442 DWORD *pdwContinuityKey);
4443
4444 HRESULT (STDMETHODCALLTYPE *GetState)(
4445 IMFPresentationTimeSource *This,
4446 DWORD dwReserved,
4447 MFCLOCK_STATE *peClockState);
4448
4449 HRESULT (STDMETHODCALLTYPE *GetProperties)(
4450 IMFPresentationTimeSource *This,
4451 MFCLOCK_PROPERTIES *pClockProperties);
4452
4453 /*** IMFPresentationTimeSource methods ***/
4454 HRESULT (STDMETHODCALLTYPE *GetUnderlyingClock)(
4455 IMFPresentationTimeSource *This,
4456 IMFClock **ppClock);
4457
4458 END_INTERFACE
4459} IMFPresentationTimeSourceVtbl;
4460
4461interface IMFPresentationTimeSource {
4462 CONST_VTBL IMFPresentationTimeSourceVtbl* lpVtbl;
4463};
4464
4465#ifdef COBJMACROS
4466#ifndef WIDL_C_INLINE_WRAPPERS
4467/*** IUnknown methods ***/
4468#define IMFPresentationTimeSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4469#define IMFPresentationTimeSource_AddRef(This) (This)->lpVtbl->AddRef(This)
4470#define IMFPresentationTimeSource_Release(This) (This)->lpVtbl->Release(This)
4471/*** IMFClock methods ***/
4472#define IMFPresentationTimeSource_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics)
4473#define IMFPresentationTimeSource_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime)
4474#define IMFPresentationTimeSource_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey)
4475#define IMFPresentationTimeSource_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState)
4476#define IMFPresentationTimeSource_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties)
4477/*** IMFPresentationTimeSource methods ***/
4478#define IMFPresentationTimeSource_GetUnderlyingClock(This,ppClock) (This)->lpVtbl->GetUnderlyingClock(This,ppClock)
4479#else
4480/*** IUnknown methods ***/
4481static FORCEINLINE HRESULT IMFPresentationTimeSource_QueryInterface(IMFPresentationTimeSource* This,REFIID riid,void **ppvObject) {
4482 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4483}
4484static FORCEINLINE ULONG IMFPresentationTimeSource_AddRef(IMFPresentationTimeSource* This) {
4485 return This->lpVtbl->AddRef(This);
4486}
4487static FORCEINLINE ULONG IMFPresentationTimeSource_Release(IMFPresentationTimeSource* This) {
4488 return This->lpVtbl->Release(This);
4489}
4490/*** IMFClock methods ***/
4491static FORCEINLINE HRESULT IMFPresentationTimeSource_GetClockCharacteristics(IMFPresentationTimeSource* This,DWORD *pdwCharacteristics) {
4492 return This->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics);
4493}
4494static FORCEINLINE HRESULT IMFPresentationTimeSource_GetCorrelatedTime(IMFPresentationTimeSource* This,DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) {
4495 return This->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime);
4496}
4497static FORCEINLINE HRESULT IMFPresentationTimeSource_GetContinuityKey(IMFPresentationTimeSource* This,DWORD *pdwContinuityKey) {
4498 return This->lpVtbl->GetContinuityKey(This,pdwContinuityKey);
4499}
4500static FORCEINLINE HRESULT IMFPresentationTimeSource_GetState(IMFPresentationTimeSource* This,DWORD dwReserved,MFCLOCK_STATE *peClockState) {
4501 return This->lpVtbl->GetState(This,dwReserved,peClockState);
4502}
4503static FORCEINLINE HRESULT IMFPresentationTimeSource_GetProperties(IMFPresentationTimeSource* This,MFCLOCK_PROPERTIES *pClockProperties) {
4504 return This->lpVtbl->GetProperties(This,pClockProperties);
4505}
4506/*** IMFPresentationTimeSource methods ***/
4507static FORCEINLINE HRESULT IMFPresentationTimeSource_GetUnderlyingClock(IMFPresentationTimeSource* This,IMFClock **ppClock) {
4508 return This->lpVtbl->GetUnderlyingClock(This,ppClock);
4509}
4510#endif
4511#endif
4512
4513#endif
4514
4515
4516#endif /* __IMFPresentationTimeSource_INTERFACE_DEFINED__ */
4517
4518/*****************************************************************************
4519 * IMFPresentationClock interface
4520 */
4521#ifndef __IMFPresentationClock_INTERFACE_DEFINED__
4522#define __IMFPresentationClock_INTERFACE_DEFINED__
4523
4524DEFINE_GUID(IID_IMFPresentationClock, 0x868ce85c, 0x8ea9, 0x4f55, 0xab,0x82, 0xb0,0x09,0xa9,0x10,0xa8,0x05);
4525#if defined(__cplusplus) && !defined(CINTERFACE)
4526MIDL_INTERFACE("868ce85c-8ea9-4f55-ab82-b009a910a805")
4527IMFPresentationClock : public IMFClock
4528{
4529 virtual HRESULT STDMETHODCALLTYPE SetTimeSource(
4530 IMFPresentationTimeSource *pTimeSource) = 0;
4531
4532 virtual HRESULT STDMETHODCALLTYPE GetTimeSource(
4533 IMFPresentationTimeSource **ppTimeSource) = 0;
4534
4535 virtual HRESULT STDMETHODCALLTYPE GetTime(
4536 MFTIME *phnsClockTime) = 0;
4537
4538 virtual HRESULT STDMETHODCALLTYPE AddClockStateSink(
4539 IMFClockStateSink *pStateSink) = 0;
4540
4541 virtual HRESULT STDMETHODCALLTYPE RemoveClockStateSink(
4542 IMFClockStateSink *pStateSink) = 0;
4543
4544 virtual HRESULT STDMETHODCALLTYPE Start(
4545 LONGLONG llClockStartOffset) = 0;
4546
4547 virtual HRESULT STDMETHODCALLTYPE Stop(
4548 ) = 0;
4549
4550 virtual HRESULT STDMETHODCALLTYPE Pause(
4551 ) = 0;
4552
4553};
4554#ifdef __CRT_UUID_DECL
4555__CRT_UUID_DECL(IMFPresentationClock, 0x868ce85c, 0x8ea9, 0x4f55, 0xab,0x82, 0xb0,0x09,0xa9,0x10,0xa8,0x05)
4556#endif
4557#else
4558typedef struct IMFPresentationClockVtbl {
4559 BEGIN_INTERFACE
4560
4561 /*** IUnknown methods ***/
4562 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4563 IMFPresentationClock *This,
4564 REFIID riid,
4565 void **ppvObject);
4566
4567 ULONG (STDMETHODCALLTYPE *AddRef)(
4568 IMFPresentationClock *This);
4569
4570 ULONG (STDMETHODCALLTYPE *Release)(
4571 IMFPresentationClock *This);
4572
4573 /*** IMFClock methods ***/
4574 HRESULT (STDMETHODCALLTYPE *GetClockCharacteristics)(
4575 IMFPresentationClock *This,
4576 DWORD *pdwCharacteristics);
4577
4578 HRESULT (STDMETHODCALLTYPE *GetCorrelatedTime)(
4579 IMFPresentationClock *This,
4580 DWORD dwReserved,
4581 LONGLONG *pllClockTime,
4582 MFTIME *phnsSystemTime);
4583
4584 HRESULT (STDMETHODCALLTYPE *GetContinuityKey)(
4585 IMFPresentationClock *This,
4586 DWORD *pdwContinuityKey);
4587
4588 HRESULT (STDMETHODCALLTYPE *GetState)(
4589 IMFPresentationClock *This,
4590 DWORD dwReserved,
4591 MFCLOCK_STATE *peClockState);
4592
4593 HRESULT (STDMETHODCALLTYPE *GetProperties)(
4594 IMFPresentationClock *This,
4595 MFCLOCK_PROPERTIES *pClockProperties);
4596
4597 /*** IMFPresentationClock methods ***/
4598 HRESULT (STDMETHODCALLTYPE *SetTimeSource)(
4599 IMFPresentationClock *This,
4600 IMFPresentationTimeSource *pTimeSource);
4601
4602 HRESULT (STDMETHODCALLTYPE *GetTimeSource)(
4603 IMFPresentationClock *This,
4604 IMFPresentationTimeSource **ppTimeSource);
4605
4606 HRESULT (STDMETHODCALLTYPE *GetTime)(
4607 IMFPresentationClock *This,
4608 MFTIME *phnsClockTime);
4609
4610 HRESULT (STDMETHODCALLTYPE *AddClockStateSink)(
4611 IMFPresentationClock *This,
4612 IMFClockStateSink *pStateSink);
4613
4614 HRESULT (STDMETHODCALLTYPE *RemoveClockStateSink)(
4615 IMFPresentationClock *This,
4616 IMFClockStateSink *pStateSink);
4617
4618 HRESULT (STDMETHODCALLTYPE *Start)(
4619 IMFPresentationClock *This,
4620 LONGLONG llClockStartOffset);
4621
4622 HRESULT (STDMETHODCALLTYPE *Stop)(
4623 IMFPresentationClock *This);
4624
4625 HRESULT (STDMETHODCALLTYPE *Pause)(
4626 IMFPresentationClock *This);
4627
4628 END_INTERFACE
4629} IMFPresentationClockVtbl;
4630
4631interface IMFPresentationClock {
4632 CONST_VTBL IMFPresentationClockVtbl* lpVtbl;
4633};
4634
4635#ifdef COBJMACROS
4636#ifndef WIDL_C_INLINE_WRAPPERS
4637/*** IUnknown methods ***/
4638#define IMFPresentationClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4639#define IMFPresentationClock_AddRef(This) (This)->lpVtbl->AddRef(This)
4640#define IMFPresentationClock_Release(This) (This)->lpVtbl->Release(This)
4641/*** IMFClock methods ***/
4642#define IMFPresentationClock_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics)
4643#define IMFPresentationClock_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime)
4644#define IMFPresentationClock_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey)
4645#define IMFPresentationClock_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState)
4646#define IMFPresentationClock_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties)
4647/*** IMFPresentationClock methods ***/
4648#define IMFPresentationClock_SetTimeSource(This,pTimeSource) (This)->lpVtbl->SetTimeSource(This,pTimeSource)
4649#define IMFPresentationClock_GetTimeSource(This,ppTimeSource) (This)->lpVtbl->GetTimeSource(This,ppTimeSource)
4650#define IMFPresentationClock_GetTime(This,phnsClockTime) (This)->lpVtbl->GetTime(This,phnsClockTime)
4651#define IMFPresentationClock_AddClockStateSink(This,pStateSink) (This)->lpVtbl->AddClockStateSink(This,pStateSink)
4652#define IMFPresentationClock_RemoveClockStateSink(This,pStateSink) (This)->lpVtbl->RemoveClockStateSink(This,pStateSink)
4653#define IMFPresentationClock_Start(This,llClockStartOffset) (This)->lpVtbl->Start(This,llClockStartOffset)
4654#define IMFPresentationClock_Stop(This) (This)->lpVtbl->Stop(This)
4655#define IMFPresentationClock_Pause(This) (This)->lpVtbl->Pause(This)
4656#else
4657/*** IUnknown methods ***/
4658static FORCEINLINE HRESULT IMFPresentationClock_QueryInterface(IMFPresentationClock* This,REFIID riid,void **ppvObject) {
4659 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4660}
4661static FORCEINLINE ULONG IMFPresentationClock_AddRef(IMFPresentationClock* This) {
4662 return This->lpVtbl->AddRef(This);
4663}
4664static FORCEINLINE ULONG IMFPresentationClock_Release(IMFPresentationClock* This) {
4665 return This->lpVtbl->Release(This);
4666}
4667/*** IMFClock methods ***/
4668static FORCEINLINE HRESULT IMFPresentationClock_GetClockCharacteristics(IMFPresentationClock* This,DWORD *pdwCharacteristics) {
4669 return This->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics);
4670}
4671static FORCEINLINE HRESULT IMFPresentationClock_GetCorrelatedTime(IMFPresentationClock* This,DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) {
4672 return This->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime);
4673}
4674static FORCEINLINE HRESULT IMFPresentationClock_GetContinuityKey(IMFPresentationClock* This,DWORD *pdwContinuityKey) {
4675 return This->lpVtbl->GetContinuityKey(This,pdwContinuityKey);
4676}
4677static FORCEINLINE HRESULT IMFPresentationClock_GetState(IMFPresentationClock* This,DWORD dwReserved,MFCLOCK_STATE *peClockState) {
4678 return This->lpVtbl->GetState(This,dwReserved,peClockState);
4679}
4680static FORCEINLINE HRESULT IMFPresentationClock_GetProperties(IMFPresentationClock* This,MFCLOCK_PROPERTIES *pClockProperties) {
4681 return This->lpVtbl->GetProperties(This,pClockProperties);
4682}
4683/*** IMFPresentationClock methods ***/
4684static FORCEINLINE HRESULT IMFPresentationClock_SetTimeSource(IMFPresentationClock* This,IMFPresentationTimeSource *pTimeSource) {
4685 return This->lpVtbl->SetTimeSource(This,pTimeSource);
4686}
4687static FORCEINLINE HRESULT IMFPresentationClock_GetTimeSource(IMFPresentationClock* This,IMFPresentationTimeSource **ppTimeSource) {
4688 return This->lpVtbl->GetTimeSource(This,ppTimeSource);
4689}
4690static FORCEINLINE HRESULT IMFPresentationClock_GetTime(IMFPresentationClock* This,MFTIME *phnsClockTime) {
4691 return This->lpVtbl->GetTime(This,phnsClockTime);
4692}
4693static FORCEINLINE HRESULT IMFPresentationClock_AddClockStateSink(IMFPresentationClock* This,IMFClockStateSink *pStateSink) {
4694 return This->lpVtbl->AddClockStateSink(This,pStateSink);
4695}
4696static FORCEINLINE HRESULT IMFPresentationClock_RemoveClockStateSink(IMFPresentationClock* This,IMFClockStateSink *pStateSink) {
4697 return This->lpVtbl->RemoveClockStateSink(This,pStateSink);
4698}
4699static FORCEINLINE HRESULT IMFPresentationClock_Start(IMFPresentationClock* This,LONGLONG llClockStartOffset) {
4700 return This->lpVtbl->Start(This,llClockStartOffset);
4701}
4702static FORCEINLINE HRESULT IMFPresentationClock_Stop(IMFPresentationClock* This) {
4703 return This->lpVtbl->Stop(This);
4704}
4705static FORCEINLINE HRESULT IMFPresentationClock_Pause(IMFPresentationClock* This) {
4706 return This->lpVtbl->Pause(This);
4707}
4708#endif
4709#endif
4710
4711#endif
4712
4713
4714#endif /* __IMFPresentationClock_INTERFACE_DEFINED__ */
4715
4716/*****************************************************************************
4717 * IMFRateControl interface
4718 */
4719#ifndef __IMFRateControl_INTERFACE_DEFINED__
4720#define __IMFRateControl_INTERFACE_DEFINED__
4721
4722DEFINE_GUID(IID_IMFRateControl, 0x88ddcd21, 0x03c3, 0x4275, 0x91,0xed, 0x55,0xee,0x39,0x29,0x32,0x8f);
4723#if defined(__cplusplus) && !defined(CINTERFACE)
4724MIDL_INTERFACE("88ddcd21-03c3-4275-91ed-55ee3929328f")
4725IMFRateControl : public IUnknown
4726{
4727 virtual HRESULT STDMETHODCALLTYPE SetRate(
4728 WINBOOL fThin,
4729 float flRate) = 0;
4730
4731 virtual HRESULT STDMETHODCALLTYPE GetRate(
4732 WINBOOL *pfThin,
4733 float *pflRate) = 0;
4734
4735};
4736#ifdef __CRT_UUID_DECL
4737__CRT_UUID_DECL(IMFRateControl, 0x88ddcd21, 0x03c3, 0x4275, 0x91,0xed, 0x55,0xee,0x39,0x29,0x32,0x8f)
4738#endif
4739#else
4740typedef struct IMFRateControlVtbl {
4741 BEGIN_INTERFACE
4742
4743 /*** IUnknown methods ***/
4744 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4745 IMFRateControl *This,
4746 REFIID riid,
4747 void **ppvObject);
4748
4749 ULONG (STDMETHODCALLTYPE *AddRef)(
4750 IMFRateControl *This);
4751
4752 ULONG (STDMETHODCALLTYPE *Release)(
4753 IMFRateControl *This);
4754
4755 /*** IMFRateControl methods ***/
4756 HRESULT (STDMETHODCALLTYPE *SetRate)(
4757 IMFRateControl *This,
4758 WINBOOL fThin,
4759 float flRate);
4760
4761 HRESULT (STDMETHODCALLTYPE *GetRate)(
4762 IMFRateControl *This,
4763 WINBOOL *pfThin,
4764 float *pflRate);
4765
4766 END_INTERFACE
4767} IMFRateControlVtbl;
4768
4769interface IMFRateControl {
4770 CONST_VTBL IMFRateControlVtbl* lpVtbl;
4771};
4772
4773#ifdef COBJMACROS
4774#ifndef WIDL_C_INLINE_WRAPPERS
4775/*** IUnknown methods ***/
4776#define IMFRateControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4777#define IMFRateControl_AddRef(This) (This)->lpVtbl->AddRef(This)
4778#define IMFRateControl_Release(This) (This)->lpVtbl->Release(This)
4779/*** IMFRateControl methods ***/
4780#define IMFRateControl_SetRate(This,fThin,flRate) (This)->lpVtbl->SetRate(This,fThin,flRate)
4781#define IMFRateControl_GetRate(This,pfThin,pflRate) (This)->lpVtbl->GetRate(This,pfThin,pflRate)
4782#else
4783/*** IUnknown methods ***/
4784static FORCEINLINE HRESULT IMFRateControl_QueryInterface(IMFRateControl* This,REFIID riid,void **ppvObject) {
4785 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4786}
4787static FORCEINLINE ULONG IMFRateControl_AddRef(IMFRateControl* This) {
4788 return This->lpVtbl->AddRef(This);
4789}
4790static FORCEINLINE ULONG IMFRateControl_Release(IMFRateControl* This) {
4791 return This->lpVtbl->Release(This);
4792}
4793/*** IMFRateControl methods ***/
4794static FORCEINLINE HRESULT IMFRateControl_SetRate(IMFRateControl* This,WINBOOL fThin,float flRate) {
4795 return This->lpVtbl->SetRate(This,fThin,flRate);
4796}
4797static FORCEINLINE HRESULT IMFRateControl_GetRate(IMFRateControl* This,WINBOOL *pfThin,float *pflRate) {
4798 return This->lpVtbl->GetRate(This,pfThin,pflRate);
4799}
4800#endif
4801#endif
4802
4803#endif
4804
4805
4806#endif /* __IMFRateControl_INTERFACE_DEFINED__ */
4807
4808/*****************************************************************************
4809 * IMFRateSupport interface
4810 */
4811#ifndef __IMFRateSupport_INTERFACE_DEFINED__
4812#define __IMFRateSupport_INTERFACE_DEFINED__
4813
4814DEFINE_GUID(IID_IMFRateSupport, 0x0a9ccdbc, 0xd797, 0x4563, 0x96,0x67, 0x94,0xec,0x5d,0x79,0x29,0x2d);
4815#if defined(__cplusplus) && !defined(CINTERFACE)
4816MIDL_INTERFACE("0a9ccdbc-d797-4563-9667-94ec5d79292d")
4817IMFRateSupport : public IUnknown
4818{
4819 virtual HRESULT STDMETHODCALLTYPE GetSlowestRate(
4820 MFRATE_DIRECTION eDirection,
4821 WINBOOL fThin,
4822 float *pflRate) = 0;
4823
4824 virtual HRESULT STDMETHODCALLTYPE GetFastestRate(
4825 MFRATE_DIRECTION eDirection,
4826 WINBOOL fThin,
4827 float *pflRate) = 0;
4828
4829 virtual HRESULT STDMETHODCALLTYPE IsRateSupported(
4830 WINBOOL fThin,
4831 float flRate,
4832 float *pflNearestSupportedRate) = 0;
4833
4834};
4835#ifdef __CRT_UUID_DECL
4836__CRT_UUID_DECL(IMFRateSupport, 0x0a9ccdbc, 0xd797, 0x4563, 0x96,0x67, 0x94,0xec,0x5d,0x79,0x29,0x2d)
4837#endif
4838#else
4839typedef struct IMFRateSupportVtbl {
4840 BEGIN_INTERFACE
4841
4842 /*** IUnknown methods ***/
4843 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4844 IMFRateSupport *This,
4845 REFIID riid,
4846 void **ppvObject);
4847
4848 ULONG (STDMETHODCALLTYPE *AddRef)(
4849 IMFRateSupport *This);
4850
4851 ULONG (STDMETHODCALLTYPE *Release)(
4852 IMFRateSupport *This);
4853
4854 /*** IMFRateSupport methods ***/
4855 HRESULT (STDMETHODCALLTYPE *GetSlowestRate)(
4856 IMFRateSupport *This,
4857 MFRATE_DIRECTION eDirection,
4858 WINBOOL fThin,
4859 float *pflRate);
4860
4861 HRESULT (STDMETHODCALLTYPE *GetFastestRate)(
4862 IMFRateSupport *This,
4863 MFRATE_DIRECTION eDirection,
4864 WINBOOL fThin,
4865 float *pflRate);
4866
4867 HRESULT (STDMETHODCALLTYPE *IsRateSupported)(
4868 IMFRateSupport *This,
4869 WINBOOL fThin,
4870 float flRate,
4871 float *pflNearestSupportedRate);
4872
4873 END_INTERFACE
4874} IMFRateSupportVtbl;
4875
4876interface IMFRateSupport {
4877 CONST_VTBL IMFRateSupportVtbl* lpVtbl;
4878};
4879
4880#ifdef COBJMACROS
4881#ifndef WIDL_C_INLINE_WRAPPERS
4882/*** IUnknown methods ***/
4883#define IMFRateSupport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4884#define IMFRateSupport_AddRef(This) (This)->lpVtbl->AddRef(This)
4885#define IMFRateSupport_Release(This) (This)->lpVtbl->Release(This)
4886/*** IMFRateSupport methods ***/
4887#define IMFRateSupport_GetSlowestRate(This,eDirection,fThin,pflRate) (This)->lpVtbl->GetSlowestRate(This,eDirection,fThin,pflRate)
4888#define IMFRateSupport_GetFastestRate(This,eDirection,fThin,pflRate) (This)->lpVtbl->GetFastestRate(This,eDirection,fThin,pflRate)
4889#define IMFRateSupport_IsRateSupported(This,fThin,flRate,pflNearestSupportedRate) (This)->lpVtbl->IsRateSupported(This,fThin,flRate,pflNearestSupportedRate)
4890#else
4891/*** IUnknown methods ***/
4892static FORCEINLINE HRESULT IMFRateSupport_QueryInterface(IMFRateSupport* This,REFIID riid,void **ppvObject) {
4893 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4894}
4895static FORCEINLINE ULONG IMFRateSupport_AddRef(IMFRateSupport* This) {
4896 return This->lpVtbl->AddRef(This);
4897}
4898static FORCEINLINE ULONG IMFRateSupport_Release(IMFRateSupport* This) {
4899 return This->lpVtbl->Release(This);
4900}
4901/*** IMFRateSupport methods ***/
4902static FORCEINLINE HRESULT IMFRateSupport_GetSlowestRate(IMFRateSupport* This,MFRATE_DIRECTION eDirection,WINBOOL fThin,float *pflRate) {
4903 return This->lpVtbl->GetSlowestRate(This,eDirection,fThin,pflRate);
4904}
4905static FORCEINLINE HRESULT IMFRateSupport_GetFastestRate(IMFRateSupport* This,MFRATE_DIRECTION eDirection,WINBOOL fThin,float *pflRate) {
4906 return This->lpVtbl->GetFastestRate(This,eDirection,fThin,pflRate);
4907}
4908static FORCEINLINE HRESULT IMFRateSupport_IsRateSupported(IMFRateSupport* This,WINBOOL fThin,float flRate,float *pflNearestSupportedRate) {
4909 return This->lpVtbl->IsRateSupported(This,fThin,flRate,pflNearestSupportedRate);
4910}
4911#endif
4912#endif
4913
4914#endif
4915
4916
4917#endif /* __IMFRateSupport_INTERFACE_DEFINED__ */
4918
4919/*****************************************************************************
4920 * IMFSampleGrabberSinkCallback interface
4921 */
4922#ifndef __IMFSampleGrabberSinkCallback_INTERFACE_DEFINED__
4923#define __IMFSampleGrabberSinkCallback_INTERFACE_DEFINED__
4924
4925DEFINE_GUID(IID_IMFSampleGrabberSinkCallback, 0x8c7b80bf, 0xee42, 0x4b59, 0xb1,0xdf, 0x55,0x66,0x8e,0x1b,0xdc,0xa8);
4926#if defined(__cplusplus) && !defined(CINTERFACE)
4927MIDL_INTERFACE("8c7b80bf-ee42-4b59-b1df-55668e1bdca8")
4928IMFSampleGrabberSinkCallback : public IMFClockStateSink
4929{
4930 virtual HRESULT STDMETHODCALLTYPE OnSetPresentationClock(
4931 IMFPresentationClock *pPresentationClock) = 0;
4932
4933 virtual HRESULT STDMETHODCALLTYPE OnProcessSample(
4934 REFGUID guidMajorMediaType,
4935 DWORD dwSampleFlags,
4936 LONGLONG llSampleTime,
4937 LONGLONG llSampleDuration,
4938 const BYTE *pSampleBuffer,
4939 DWORD dwSampleSize) = 0;
4940
4941 virtual HRESULT STDMETHODCALLTYPE OnShutdown(
4942 ) = 0;
4943
4944};
4945#ifdef __CRT_UUID_DECL
4946__CRT_UUID_DECL(IMFSampleGrabberSinkCallback, 0x8c7b80bf, 0xee42, 0x4b59, 0xb1,0xdf, 0x55,0x66,0x8e,0x1b,0xdc,0xa8)
4947#endif
4948#else
4949typedef struct IMFSampleGrabberSinkCallbackVtbl {
4950 BEGIN_INTERFACE
4951
4952 /*** IUnknown methods ***/
4953 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4954 IMFSampleGrabberSinkCallback *This,
4955 REFIID riid,
4956 void **ppvObject);
4957
4958 ULONG (STDMETHODCALLTYPE *AddRef)(
4959 IMFSampleGrabberSinkCallback *This);
4960
4961 ULONG (STDMETHODCALLTYPE *Release)(
4962 IMFSampleGrabberSinkCallback *This);
4963
4964 /*** IMFClockStateSink methods ***/
4965 HRESULT (STDMETHODCALLTYPE *OnClockStart)(
4966 IMFSampleGrabberSinkCallback *This,
4967 MFTIME hnsSystemTime,
4968 LONGLONG llClockStartOffset);
4969
4970 HRESULT (STDMETHODCALLTYPE *OnClockStop)(
4971 IMFSampleGrabberSinkCallback *This,
4972 MFTIME hnsSystemTime);
4973
4974 HRESULT (STDMETHODCALLTYPE *OnClockPause)(
4975 IMFSampleGrabberSinkCallback *This,
4976 MFTIME hnsSystemTime);
4977
4978 HRESULT (STDMETHODCALLTYPE *OnClockRestart)(
4979 IMFSampleGrabberSinkCallback *This,
4980 MFTIME hnsSystemTime);
4981
4982 HRESULT (STDMETHODCALLTYPE *OnClockSetRate)(
4983 IMFSampleGrabberSinkCallback *This,
4984 MFTIME hnsSystemTime,
4985 float flRate);
4986
4987 /*** IMFSampleGrabberSinkCallback methods ***/
4988 HRESULT (STDMETHODCALLTYPE *OnSetPresentationClock)(
4989 IMFSampleGrabberSinkCallback *This,
4990 IMFPresentationClock *pPresentationClock);
4991
4992 HRESULT (STDMETHODCALLTYPE *OnProcessSample)(
4993 IMFSampleGrabberSinkCallback *This,
4994 REFGUID guidMajorMediaType,
4995 DWORD dwSampleFlags,
4996 LONGLONG llSampleTime,
4997 LONGLONG llSampleDuration,
4998 const BYTE *pSampleBuffer,
4999 DWORD dwSampleSize);
5000
5001 HRESULT (STDMETHODCALLTYPE *OnShutdown)(
5002 IMFSampleGrabberSinkCallback *This);
5003
5004 END_INTERFACE
5005} IMFSampleGrabberSinkCallbackVtbl;
5006
5007interface IMFSampleGrabberSinkCallback {
5008 CONST_VTBL IMFSampleGrabberSinkCallbackVtbl* lpVtbl;
5009};
5010
5011#ifdef COBJMACROS
5012#ifndef WIDL_C_INLINE_WRAPPERS
5013/*** IUnknown methods ***/
5014#define IMFSampleGrabberSinkCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5015#define IMFSampleGrabberSinkCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
5016#define IMFSampleGrabberSinkCallback_Release(This) (This)->lpVtbl->Release(This)
5017/*** IMFClockStateSink methods ***/
5018#define IMFSampleGrabberSinkCallback_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset)
5019#define IMFSampleGrabberSinkCallback_OnClockStop(This,hnsSystemTime) (This)->lpVtbl->OnClockStop(This,hnsSystemTime)
5020#define IMFSampleGrabberSinkCallback_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime)
5021#define IMFSampleGrabberSinkCallback_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime)
5022#define IMFSampleGrabberSinkCallback_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate)
5023/*** IMFSampleGrabberSinkCallback methods ***/
5024#define IMFSampleGrabberSinkCallback_OnSetPresentationClock(This,pPresentationClock) (This)->lpVtbl->OnSetPresentationClock(This,pPresentationClock)
5025#define IMFSampleGrabberSinkCallback_OnProcessSample(This,guidMajorMediaType,dwSampleFlags,llSampleTime,llSampleDuration,pSampleBuffer,dwSampleSize) (This)->lpVtbl->OnProcessSample(This,guidMajorMediaType,dwSampleFlags,llSampleTime,llSampleDuration,pSampleBuffer,dwSampleSize)
5026#define IMFSampleGrabberSinkCallback_OnShutdown(This) (This)->lpVtbl->OnShutdown(This)
5027#else
5028/*** IUnknown methods ***/
5029static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_QueryInterface(IMFSampleGrabberSinkCallback* This,REFIID riid,void **ppvObject) {
5030 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5031}
5032static FORCEINLINE ULONG IMFSampleGrabberSinkCallback_AddRef(IMFSampleGrabberSinkCallback* This) {
5033 return This->lpVtbl->AddRef(This);
5034}
5035static FORCEINLINE ULONG IMFSampleGrabberSinkCallback_Release(IMFSampleGrabberSinkCallback* This) {
5036 return This->lpVtbl->Release(This);
5037}
5038/*** IMFClockStateSink methods ***/
5039static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockStart(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime,LONGLONG llClockStartOffset) {
5040 return This->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset);
5041}
5042static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockStop(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime) {
5043 return This->lpVtbl->OnClockStop(This,hnsSystemTime);
5044}
5045static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockPause(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime) {
5046 return This->lpVtbl->OnClockPause(This,hnsSystemTime);
5047}
5048static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockRestart(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime) {
5049 return This->lpVtbl->OnClockRestart(This,hnsSystemTime);
5050}
5051static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockSetRate(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime,float flRate) {
5052 return This->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate);
5053}
5054/*** IMFSampleGrabberSinkCallback methods ***/
5055static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnSetPresentationClock(IMFSampleGrabberSinkCallback* This,IMFPresentationClock *pPresentationClock) {
5056 return This->lpVtbl->OnSetPresentationClock(This,pPresentationClock);
5057}
5058static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnProcessSample(IMFSampleGrabberSinkCallback* This,REFGUID guidMajorMediaType,DWORD dwSampleFlags,LONGLONG llSampleTime,LONGLONG llSampleDuration,const BYTE *pSampleBuffer,DWORD dwSampleSize) {
5059 return This->lpVtbl->OnProcessSample(This,guidMajorMediaType,dwSampleFlags,llSampleTime,llSampleDuration,pSampleBuffer,dwSampleSize);
5060}
5061static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnShutdown(IMFSampleGrabberSinkCallback* This) {
5062 return This->lpVtbl->OnShutdown(This);
5063}
5064#endif
5065#endif
5066
5067#endif
5068
5069
5070#endif /* __IMFSampleGrabberSinkCallback_INTERFACE_DEFINED__ */
5071
5072/*****************************************************************************
5073 * IMFSourceResolver interface
5074 */
5075#ifndef __IMFSourceResolver_INTERFACE_DEFINED__
5076#define __IMFSourceResolver_INTERFACE_DEFINED__
5077
5078DEFINE_GUID(IID_IMFSourceResolver, 0xfbe5a32d, 0xa497, 0x4b61, 0xbb,0x85, 0x97,0xb1,0xa8,0x48,0xa6,0xe3);
5079#if defined(__cplusplus) && !defined(CINTERFACE)
5080MIDL_INTERFACE("fbe5a32d-a497-4b61-bb85-97b1a848a6e3")
5081IMFSourceResolver : public IUnknown
5082{
5083 virtual HRESULT STDMETHODCALLTYPE CreateObjectFromURL(
5084 LPCWSTR pwszURL,
5085 DWORD dwFlags,
5086 IPropertyStore *pProps,
5087 MF_OBJECT_TYPE *pObjectType,
5088 IUnknown **ppObject) = 0;
5089
5090 virtual HRESULT STDMETHODCALLTYPE CreateObjectFromByteStream(
5091 IMFByteStream *pByteStream,
5092 LPCWSTR pwszURL,
5093 DWORD dwFlags,
5094 IPropertyStore *pProps,
5095 MF_OBJECT_TYPE *pObjectType,
5096 IUnknown **ppObject) = 0;
5097
5098 virtual HRESULT STDMETHODCALLTYPE BeginCreateObjectFromURL(
5099 LPCWSTR pwszURL,
5100 DWORD dwFlags,
5101 IPropertyStore *pProps,
5102 IUnknown **ppIUnknownCancelCookie,
5103 IMFAsyncCallback *pCallback,
5104 IUnknown *punkState) = 0;
5105
5106 virtual HRESULT STDMETHODCALLTYPE EndCreateObjectFromURL(
5107 IMFAsyncResult *pResult,
5108 MF_OBJECT_TYPE *pObjectType,
5109 IUnknown **ppObject) = 0;
5110
5111 virtual HRESULT STDMETHODCALLTYPE BeginCreateObjectFromByteStream(
5112 IMFByteStream *pByteStream,
5113 LPCWSTR pwszURL,
5114 DWORD dwFlags,
5115 IPropertyStore *pProps,
5116 IUnknown **ppIUnknownCancelCookie,
5117 IMFAsyncCallback *pCallback,
5118 IUnknown *punkState) = 0;
5119
5120 virtual HRESULT STDMETHODCALLTYPE EndCreateObjectFromByteStream(
5121 IMFAsyncResult *pResult,
5122 MF_OBJECT_TYPE *pObjectType,
5123 IUnknown **ppObject) = 0;
5124
5125 virtual HRESULT STDMETHODCALLTYPE CancelObjectCreation(
5126 IUnknown *pIUnknownCancelCookie) = 0;
5127
5128};
5129#ifdef __CRT_UUID_DECL
5130__CRT_UUID_DECL(IMFSourceResolver, 0xfbe5a32d, 0xa497, 0x4b61, 0xbb,0x85, 0x97,0xb1,0xa8,0x48,0xa6,0xe3)
5131#endif
5132#else
5133typedef struct IMFSourceResolverVtbl {
5134 BEGIN_INTERFACE
5135
5136 /*** IUnknown methods ***/
5137 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5138 IMFSourceResolver *This,
5139 REFIID riid,
5140 void **ppvObject);
5141
5142 ULONG (STDMETHODCALLTYPE *AddRef)(
5143 IMFSourceResolver *This);
5144
5145 ULONG (STDMETHODCALLTYPE *Release)(
5146 IMFSourceResolver *This);
5147
5148 /*** IMFSourceResolver methods ***/
5149 HRESULT (STDMETHODCALLTYPE *CreateObjectFromURL)(
5150 IMFSourceResolver *This,
5151 LPCWSTR pwszURL,
5152 DWORD dwFlags,
5153 IPropertyStore *pProps,
5154 MF_OBJECT_TYPE *pObjectType,
5155 IUnknown **ppObject);
5156
5157 HRESULT (STDMETHODCALLTYPE *CreateObjectFromByteStream)(
5158 IMFSourceResolver *This,
5159 IMFByteStream *pByteStream,
5160 LPCWSTR pwszURL,
5161 DWORD dwFlags,
5162 IPropertyStore *pProps,
5163 MF_OBJECT_TYPE *pObjectType,
5164 IUnknown **ppObject);
5165
5166 HRESULT (STDMETHODCALLTYPE *BeginCreateObjectFromURL)(
5167 IMFSourceResolver *This,
5168 LPCWSTR pwszURL,
5169 DWORD dwFlags,
5170 IPropertyStore *pProps,
5171 IUnknown **ppIUnknownCancelCookie,
5172 IMFAsyncCallback *pCallback,
5173 IUnknown *punkState);
5174
5175 HRESULT (STDMETHODCALLTYPE *EndCreateObjectFromURL)(
5176 IMFSourceResolver *This,
5177 IMFAsyncResult *pResult,
5178 MF_OBJECT_TYPE *pObjectType,
5179 IUnknown **ppObject);
5180
5181 HRESULT (STDMETHODCALLTYPE *BeginCreateObjectFromByteStream)(
5182 IMFSourceResolver *This,
5183 IMFByteStream *pByteStream,
5184 LPCWSTR pwszURL,
5185 DWORD dwFlags,
5186 IPropertyStore *pProps,
5187 IUnknown **ppIUnknownCancelCookie,
5188 IMFAsyncCallback *pCallback,
5189 IUnknown *punkState);
5190
5191 HRESULT (STDMETHODCALLTYPE *EndCreateObjectFromByteStream)(
5192 IMFSourceResolver *This,
5193 IMFAsyncResult *pResult,
5194 MF_OBJECT_TYPE *pObjectType,
5195 IUnknown **ppObject);
5196
5197 HRESULT (STDMETHODCALLTYPE *CancelObjectCreation)(
5198 IMFSourceResolver *This,
5199 IUnknown *pIUnknownCancelCookie);
5200
5201 END_INTERFACE
5202} IMFSourceResolverVtbl;
5203
5204interface IMFSourceResolver {
5205 CONST_VTBL IMFSourceResolverVtbl* lpVtbl;
5206};
5207
5208#ifdef COBJMACROS
5209#ifndef WIDL_C_INLINE_WRAPPERS
5210/*** IUnknown methods ***/
5211#define IMFSourceResolver_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5212#define IMFSourceResolver_AddRef(This) (This)->lpVtbl->AddRef(This)
5213#define IMFSourceResolver_Release(This) (This)->lpVtbl->Release(This)
5214/*** IMFSourceResolver methods ***/
5215#define IMFSourceResolver_CreateObjectFromURL(This,pwszURL,dwFlags,pProps,pObjectType,ppObject) (This)->lpVtbl->CreateObjectFromURL(This,pwszURL,dwFlags,pProps,pObjectType,ppObject)
5216#define IMFSourceResolver_CreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,pObjectType,ppObject) (This)->lpVtbl->CreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,pObjectType,ppObject)
5217#define IMFSourceResolver_BeginCreateObjectFromURL(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState) (This)->lpVtbl->BeginCreateObjectFromURL(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState)
5218#define IMFSourceResolver_EndCreateObjectFromURL(This,pResult,pObjectType,ppObject) (This)->lpVtbl->EndCreateObjectFromURL(This,pResult,pObjectType,ppObject)
5219#define IMFSourceResolver_BeginCreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState) (This)->lpVtbl->BeginCreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState)
5220#define IMFSourceResolver_EndCreateObjectFromByteStream(This,pResult,pObjectType,ppObject) (This)->lpVtbl->EndCreateObjectFromByteStream(This,pResult,pObjectType,ppObject)
5221#define IMFSourceResolver_CancelObjectCreation(This,pIUnknownCancelCookie) (This)->lpVtbl->CancelObjectCreation(This,pIUnknownCancelCookie)
5222#else
5223/*** IUnknown methods ***/
5224static FORCEINLINE HRESULT IMFSourceResolver_QueryInterface(IMFSourceResolver* This,REFIID riid,void **ppvObject) {
5225 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5226}
5227static FORCEINLINE ULONG IMFSourceResolver_AddRef(IMFSourceResolver* This) {
5228 return This->lpVtbl->AddRef(This);
5229}
5230static FORCEINLINE ULONG IMFSourceResolver_Release(IMFSourceResolver* This) {
5231 return This->lpVtbl->Release(This);
5232}
5233/*** IMFSourceResolver methods ***/
5234static FORCEINLINE HRESULT IMFSourceResolver_CreateObjectFromURL(IMFSourceResolver* This,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) {
5235 return This->lpVtbl->CreateObjectFromURL(This,pwszURL,dwFlags,pProps,pObjectType,ppObject);
5236}
5237static FORCEINLINE HRESULT IMFSourceResolver_CreateObjectFromByteStream(IMFSourceResolver* This,IMFByteStream *pByteStream,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) {
5238 return This->lpVtbl->CreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,pObjectType,ppObject);
5239}
5240static FORCEINLINE HRESULT IMFSourceResolver_BeginCreateObjectFromURL(IMFSourceResolver* This,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,IUnknown **ppIUnknownCancelCookie,IMFAsyncCallback *pCallback,IUnknown *punkState) {
5241 return This->lpVtbl->BeginCreateObjectFromURL(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState);
5242}
5243static FORCEINLINE HRESULT IMFSourceResolver_EndCreateObjectFromURL(IMFSourceResolver* This,IMFAsyncResult *pResult,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) {
5244 return This->lpVtbl->EndCreateObjectFromURL(This,pResult,pObjectType,ppObject);
5245}
5246static FORCEINLINE HRESULT IMFSourceResolver_BeginCreateObjectFromByteStream(IMFSourceResolver* This,IMFByteStream *pByteStream,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,IUnknown **ppIUnknownCancelCookie,IMFAsyncCallback *pCallback,IUnknown *punkState) {
5247 return This->lpVtbl->BeginCreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState);
5248}
5249static FORCEINLINE HRESULT IMFSourceResolver_EndCreateObjectFromByteStream(IMFSourceResolver* This,IMFAsyncResult *pResult,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) {
5250 return This->lpVtbl->EndCreateObjectFromByteStream(This,pResult,pObjectType,ppObject);
5251}
5252static FORCEINLINE HRESULT IMFSourceResolver_CancelObjectCreation(IMFSourceResolver* This,IUnknown *pIUnknownCancelCookie) {
5253 return This->lpVtbl->CancelObjectCreation(This,pIUnknownCancelCookie);
5254}
5255#endif
5256#endif
5257
5258#endif
5259
5260HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteBeginCreateObjectFromURL_Proxy(
5261 IMFSourceResolver* This,
5262 LPCWSTR pwszURL,
5263 DWORD dwFlags,
5264 IPropertyStore *pProps,
5265 IMFRemoteAsyncCallback *pCallback);
5266void __RPC_STUB IMFSourceResolver_RemoteBeginCreateObjectFromURL_Stub(
5267 IRpcStubBuffer* This,
5268 IRpcChannelBuffer* pRpcChannelBuffer,
5269 PRPC_MESSAGE pRpcMessage,
5270 DWORD* pdwStubPhase);
5271HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteEndCreateObjectFromURL_Proxy(
5272 IMFSourceResolver* This,
5273 IUnknown *pResult,
5274 MF_OBJECT_TYPE *pObjectType,
5275 IUnknown **ppObject);
5276void __RPC_STUB IMFSourceResolver_RemoteEndCreateObjectFromURL_Stub(
5277 IRpcStubBuffer* This,
5278 IRpcChannelBuffer* pRpcChannelBuffer,
5279 PRPC_MESSAGE pRpcMessage,
5280 DWORD* pdwStubPhase);
5281HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteBeginCreateObjectFromByteStream_Proxy(
5282 IMFSourceResolver* This,
5283 IMFByteStream *pByteStream,
5284 LPCWSTR pwszURL,
5285 DWORD dwFlags,
5286 IPropertyStore *pProps,
5287 IMFRemoteAsyncCallback *pCallback);
5288void __RPC_STUB IMFSourceResolver_RemoteBeginCreateObjectFromByteStream_Stub(
5289 IRpcStubBuffer* This,
5290 IRpcChannelBuffer* pRpcChannelBuffer,
5291 PRPC_MESSAGE pRpcMessage,
5292 DWORD* pdwStubPhase);
5293HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteEndCreateObjectFromByteStream_Proxy(
5294 IMFSourceResolver* This,
5295 IUnknown *pResult,
5296 MF_OBJECT_TYPE *pObjectType,
5297 IUnknown **ppObject);
5298void __RPC_STUB IMFSourceResolver_RemoteEndCreateObjectFromByteStream_Stub(
5299 IRpcStubBuffer* This,
5300 IRpcChannelBuffer* pRpcChannelBuffer,
5301 PRPC_MESSAGE pRpcMessage,
5302 DWORD* pdwStubPhase);
5303HRESULT CALLBACK IMFSourceResolver_BeginCreateObjectFromURL_Proxy(
5304 IMFSourceResolver* This,
5305 LPCWSTR pwszURL,
5306 DWORD dwFlags,
5307 IPropertyStore *pProps,
5308 IUnknown **ppIUnknownCancelCookie,
5309 IMFAsyncCallback *pCallback,
5310 IUnknown *punkState);
5311HRESULT __RPC_STUB IMFSourceResolver_BeginCreateObjectFromURL_Stub(
5312 IMFSourceResolver* This,
5313 LPCWSTR pwszURL,
5314 DWORD dwFlags,
5315 IPropertyStore *pProps,
5316 IMFRemoteAsyncCallback *pCallback);
5317HRESULT CALLBACK IMFSourceResolver_EndCreateObjectFromURL_Proxy(
5318 IMFSourceResolver* This,
5319 IMFAsyncResult *pResult,
5320 MF_OBJECT_TYPE *pObjectType,
5321 IUnknown **ppObject);
5322HRESULT __RPC_STUB IMFSourceResolver_EndCreateObjectFromURL_Stub(
5323 IMFSourceResolver* This,
5324 IUnknown *pResult,
5325 MF_OBJECT_TYPE *pObjectType,
5326 IUnknown **ppObject);
5327HRESULT CALLBACK IMFSourceResolver_BeginCreateObjectFromByteStream_Proxy(
5328 IMFSourceResolver* This,
5329 IMFByteStream *pByteStream,
5330 LPCWSTR pwszURL,
5331 DWORD dwFlags,
5332 IPropertyStore *pProps,
5333 IUnknown **ppIUnknownCancelCookie,
5334 IMFAsyncCallback *pCallback,
5335 IUnknown *punkState);
5336HRESULT __RPC_STUB IMFSourceResolver_BeginCreateObjectFromByteStream_Stub(
5337 IMFSourceResolver* This,
5338 IMFByteStream *pByteStream,
5339 LPCWSTR pwszURL,
5340 DWORD dwFlags,
5341 IPropertyStore *pProps,
5342 IMFRemoteAsyncCallback *pCallback);
5343HRESULT CALLBACK IMFSourceResolver_EndCreateObjectFromByteStream_Proxy(
5344 IMFSourceResolver* This,
5345 IMFAsyncResult *pResult,
5346 MF_OBJECT_TYPE *pObjectType,
5347 IUnknown **ppObject);
5348HRESULT __RPC_STUB IMFSourceResolver_EndCreateObjectFromByteStream_Stub(
5349 IMFSourceResolver* This,
5350 IUnknown *pResult,
5351 MF_OBJECT_TYPE *pObjectType,
5352 IUnknown **ppObject);
5353
5354#endif /* __IMFSourceResolver_INTERFACE_DEFINED__ */
5355
5356/*****************************************************************************
5357 * IMFStreamSink interface
5358 */
5359#ifndef __IMFStreamSink_INTERFACE_DEFINED__
5360#define __IMFStreamSink_INTERFACE_DEFINED__
5361
5362DEFINE_GUID(IID_IMFStreamSink, 0x0a97b3cf, 0x8e7c, 0x4a3d, 0x8f,0x8c, 0x0c,0x84,0x3d,0xc2,0x47,0xfb);
5363#if defined(__cplusplus) && !defined(CINTERFACE)
5364MIDL_INTERFACE("0a97b3cf-8e7c-4a3d-8f8c-0c843dc247fb")
5365IMFStreamSink : public IMFMediaEventGenerator
5366{
5367 virtual HRESULT STDMETHODCALLTYPE GetMediaSink(
5368 IMFMediaSink **ppMediaSink) = 0;
5369
5370 virtual HRESULT STDMETHODCALLTYPE GetIdentifier(
5371 DWORD *pdwIdentifier) = 0;
5372
5373 virtual HRESULT STDMETHODCALLTYPE GetMediaTypeHandler(
5374 IMFMediaTypeHandler **ppHandler) = 0;
5375
5376 virtual HRESULT STDMETHODCALLTYPE ProcessSample(
5377 IMFSample *pSample) = 0;
5378
5379 virtual HRESULT STDMETHODCALLTYPE PlaceMarker(
5380 MFSTREAMSINK_MARKER_TYPE eMarkerType,
5381 const PROPVARIANT *pvarMarkerValue,
5382 const PROPVARIANT *pvarContextValue) = 0;
5383
5384 virtual HRESULT STDMETHODCALLTYPE Flush(
5385 ) = 0;
5386
5387};
5388#ifdef __CRT_UUID_DECL
5389__CRT_UUID_DECL(IMFStreamSink, 0x0a97b3cf, 0x8e7c, 0x4a3d, 0x8f,0x8c, 0x0c,0x84,0x3d,0xc2,0x47,0xfb)
5390#endif
5391#else
5392typedef struct IMFStreamSinkVtbl {
5393 BEGIN_INTERFACE
5394
5395 /*** IUnknown methods ***/
5396 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5397 IMFStreamSink *This,
5398 REFIID riid,
5399 void **ppvObject);
5400
5401 ULONG (STDMETHODCALLTYPE *AddRef)(
5402 IMFStreamSink *This);
5403
5404 ULONG (STDMETHODCALLTYPE *Release)(
5405 IMFStreamSink *This);
5406
5407 /*** IMFMediaEventGenerator methods ***/
5408 HRESULT (STDMETHODCALLTYPE *GetEvent)(
5409 IMFStreamSink *This,
5410 DWORD dwFlags,
5411 IMFMediaEvent **ppEvent);
5412
5413 HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
5414 IMFStreamSink *This,
5415 IMFAsyncCallback *pCallback,
5416 IUnknown *punkState);
5417
5418 HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
5419 IMFStreamSink *This,
5420 IMFAsyncResult *pResult,
5421 IMFMediaEvent **ppEvent);
5422
5423 HRESULT (STDMETHODCALLTYPE *QueueEvent)(
5424 IMFStreamSink *This,
5425 MediaEventType met,
5426 REFGUID guidExtendedType,
5427 HRESULT hrStatus,
5428 const PROPVARIANT *pvValue);
5429
5430 /*** IMFStreamSink methods ***/
5431 HRESULT (STDMETHODCALLTYPE *GetMediaSink)(
5432 IMFStreamSink *This,
5433 IMFMediaSink **ppMediaSink);
5434
5435 HRESULT (STDMETHODCALLTYPE *GetIdentifier)(
5436 IMFStreamSink *This,
5437 DWORD *pdwIdentifier);
5438
5439 HRESULT (STDMETHODCALLTYPE *GetMediaTypeHandler)(
5440 IMFStreamSink *This,
5441 IMFMediaTypeHandler **ppHandler);
5442
5443 HRESULT (STDMETHODCALLTYPE *ProcessSample)(
5444 IMFStreamSink *This,
5445 IMFSample *pSample);
5446
5447 HRESULT (STDMETHODCALLTYPE *PlaceMarker)(
5448 IMFStreamSink *This,
5449 MFSTREAMSINK_MARKER_TYPE eMarkerType,
5450 const PROPVARIANT *pvarMarkerValue,
5451 const PROPVARIANT *pvarContextValue);
5452
5453 HRESULT (STDMETHODCALLTYPE *Flush)(
5454 IMFStreamSink *This);
5455
5456 END_INTERFACE
5457} IMFStreamSinkVtbl;
5458
5459interface IMFStreamSink {
5460 CONST_VTBL IMFStreamSinkVtbl* lpVtbl;
5461};
5462
5463#ifdef COBJMACROS
5464#ifndef WIDL_C_INLINE_WRAPPERS
5465/*** IUnknown methods ***/
5466#define IMFStreamSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5467#define IMFStreamSink_AddRef(This) (This)->lpVtbl->AddRef(This)
5468#define IMFStreamSink_Release(This) (This)->lpVtbl->Release(This)
5469/*** IMFMediaEventGenerator methods ***/
5470#define IMFStreamSink_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
5471#define IMFStreamSink_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
5472#define IMFStreamSink_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
5473#define IMFStreamSink_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
5474/*** IMFStreamSink methods ***/
5475#define IMFStreamSink_GetMediaSink(This,ppMediaSink) (This)->lpVtbl->GetMediaSink(This,ppMediaSink)
5476#define IMFStreamSink_GetIdentifier(This,pdwIdentifier) (This)->lpVtbl->GetIdentifier(This,pdwIdentifier)
5477#define IMFStreamSink_GetMediaTypeHandler(This,ppHandler) (This)->lpVtbl->GetMediaTypeHandler(This,ppHandler)
5478#define IMFStreamSink_ProcessSample(This,pSample) (This)->lpVtbl->ProcessSample(This,pSample)
5479#define IMFStreamSink_PlaceMarker(This,eMarkerType,pvarMarkerValue,pvarContextValue) (This)->lpVtbl->PlaceMarker(This,eMarkerType,pvarMarkerValue,pvarContextValue)
5480#define IMFStreamSink_Flush(This) (This)->lpVtbl->Flush(This)
5481#else
5482/*** IUnknown methods ***/
5483static FORCEINLINE HRESULT IMFStreamSink_QueryInterface(IMFStreamSink* This,REFIID riid,void **ppvObject) {
5484 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5485}
5486static FORCEINLINE ULONG IMFStreamSink_AddRef(IMFStreamSink* This) {
5487 return This->lpVtbl->AddRef(This);
5488}
5489static FORCEINLINE ULONG IMFStreamSink_Release(IMFStreamSink* This) {
5490 return This->lpVtbl->Release(This);
5491}
5492/*** IMFMediaEventGenerator methods ***/
5493static FORCEINLINE HRESULT IMFStreamSink_GetEvent(IMFStreamSink* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
5494 return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
5495}
5496static FORCEINLINE HRESULT IMFStreamSink_BeginGetEvent(IMFStreamSink* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
5497 return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
5498}
5499static FORCEINLINE HRESULT IMFStreamSink_EndGetEvent(IMFStreamSink* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
5500 return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
5501}
5502static FORCEINLINE HRESULT IMFStreamSink_QueueEvent(IMFStreamSink* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
5503 return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue);
5504}
5505/*** IMFStreamSink methods ***/
5506static FORCEINLINE HRESULT IMFStreamSink_GetMediaSink(IMFStreamSink* This,IMFMediaSink **ppMediaSink) {
5507 return This->lpVtbl->GetMediaSink(This,ppMediaSink);
5508}
5509static FORCEINLINE HRESULT IMFStreamSink_GetIdentifier(IMFStreamSink* This,DWORD *pdwIdentifier) {
5510 return This->lpVtbl->GetIdentifier(This,pdwIdentifier);
5511}
5512static FORCEINLINE HRESULT IMFStreamSink_GetMediaTypeHandler(IMFStreamSink* This,IMFMediaTypeHandler **ppHandler) {
5513 return This->lpVtbl->GetMediaTypeHandler(This,ppHandler);
5514}
5515static FORCEINLINE HRESULT IMFStreamSink_ProcessSample(IMFStreamSink* This,IMFSample *pSample) {
5516 return This->lpVtbl->ProcessSample(This,pSample);
5517}
5518static FORCEINLINE HRESULT IMFStreamSink_PlaceMarker(IMFStreamSink* This,MFSTREAMSINK_MARKER_TYPE eMarkerType,const PROPVARIANT *pvarMarkerValue,const PROPVARIANT *pvarContextValue) {
5519 return This->lpVtbl->PlaceMarker(This,eMarkerType,pvarMarkerValue,pvarContextValue);
5520}
5521static FORCEINLINE HRESULT IMFStreamSink_Flush(IMFStreamSink* This) {
5522 return This->lpVtbl->Flush(This);
5523}
5524#endif
5525#endif
5526
5527#endif
5528
5529
5530#endif /* __IMFStreamSink_INTERFACE_DEFINED__ */
5531
5532/*****************************************************************************
5533 * IMFTopoLoader interface
5534 */
5535#ifndef __IMFTopoLoader_INTERFACE_DEFINED__
5536#define __IMFTopoLoader_INTERFACE_DEFINED__
5537
5538DEFINE_GUID(IID_IMFTopoLoader, 0xde9a6157, 0xf660, 0x4643, 0xb5,0x6a, 0xdf,0x9f,0x79,0x98,0xc7,0xcd);
5539#if defined(__cplusplus) && !defined(CINTERFACE)
5540MIDL_INTERFACE("de9a6157-f660-4643-b56a-df9f7998c7cd")
5541IMFTopoLoader : public IUnknown
5542{
5543 virtual HRESULT STDMETHODCALLTYPE Load(
5544 IMFTopology *pInputTopo,
5545 IMFTopology **ppOutputTopo,
5546 IMFTopology *pCurrentTopo) = 0;
5547
5548};
5549#ifdef __CRT_UUID_DECL
5550__CRT_UUID_DECL(IMFTopoLoader, 0xde9a6157, 0xf660, 0x4643, 0xb5,0x6a, 0xdf,0x9f,0x79,0x98,0xc7,0xcd)
5551#endif
5552#else
5553typedef struct IMFTopoLoaderVtbl {
5554 BEGIN_INTERFACE
5555
5556 /*** IUnknown methods ***/
5557 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5558 IMFTopoLoader *This,
5559 REFIID riid,
5560 void **ppvObject);
5561
5562 ULONG (STDMETHODCALLTYPE *AddRef)(
5563 IMFTopoLoader *This);
5564
5565 ULONG (STDMETHODCALLTYPE *Release)(
5566 IMFTopoLoader *This);
5567
5568 /*** IMFTopoLoader methods ***/
5569 HRESULT (STDMETHODCALLTYPE *Load)(
5570 IMFTopoLoader *This,
5571 IMFTopology *pInputTopo,
5572 IMFTopology **ppOutputTopo,
5573 IMFTopology *pCurrentTopo);
5574
5575 END_INTERFACE
5576} IMFTopoLoaderVtbl;
5577
5578interface IMFTopoLoader {
5579 CONST_VTBL IMFTopoLoaderVtbl* lpVtbl;
5580};
5581
5582#ifdef COBJMACROS
5583#ifndef WIDL_C_INLINE_WRAPPERS
5584/*** IUnknown methods ***/
5585#define IMFTopoLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5586#define IMFTopoLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
5587#define IMFTopoLoader_Release(This) (This)->lpVtbl->Release(This)
5588/*** IMFTopoLoader methods ***/
5589#define IMFTopoLoader_Load(This,pInputTopo,ppOutputTopo,pCurrentTopo) (This)->lpVtbl->Load(This,pInputTopo,ppOutputTopo,pCurrentTopo)
5590#else
5591/*** IUnknown methods ***/
5592static FORCEINLINE HRESULT IMFTopoLoader_QueryInterface(IMFTopoLoader* This,REFIID riid,void **ppvObject) {
5593 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5594}
5595static FORCEINLINE ULONG IMFTopoLoader_AddRef(IMFTopoLoader* This) {
5596 return This->lpVtbl->AddRef(This);
5597}
5598static FORCEINLINE ULONG IMFTopoLoader_Release(IMFTopoLoader* This) {
5599 return This->lpVtbl->Release(This);
5600}
5601/*** IMFTopoLoader methods ***/
5602static FORCEINLINE HRESULT IMFTopoLoader_Load(IMFTopoLoader* This,IMFTopology *pInputTopo,IMFTopology **ppOutputTopo,IMFTopology *pCurrentTopo) {
5603 return This->lpVtbl->Load(This,pInputTopo,ppOutputTopo,pCurrentTopo);
5604}
5605#endif
5606#endif
5607
5608#endif
5609
5610
5611#endif /* __IMFTopoLoader_INTERFACE_DEFINED__ */
5612
5613HRESULT WINAPI MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);
5614HRESULT WINAPI MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource);
5615
5616HRESULT WINAPI MFCreateAlignedMemoryBuffer(DWORD cbMaxLength,DWORD fAlignmentFlags,IMFMediaBuffer **ppBuffer);
5617HRESULT WINAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo);
5618HRESULT WINAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer);
5619HRESULT WINAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream,QWORD cbIndexStartOffset,IMFByteStream **pIIndexByteStream);
5620HRESULT WINAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream,IMFMediaSink **ppIMediaSink);
5621HRESULT WINAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName,IMFASFContentInfo *pContentInfo,IMFActivate **ppIActivate);
5622HRESULT WINAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer);
5623HRESULT WINAPI MFCreateASFProfile(IMFASFProfile **ppIProfile);
5624HRESULT WINAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD,IMFASFProfile **ppIProfile);
5625HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);
5626HRESULT WINAPI MFCreateAudioRenderer(IMFAttributes *pAudioAttributes, IMFMediaSink **ppSink);
5627HRESULT WINAPI MFCreateAudioRendererActivate(IMFActivate **ppActivate);
5628HRESULT WINAPI MFCreateMediaSession(IMFAttributes *pConfiguration,IMFMediaSession **ppMS);
5629HRESULT WINAPI MFCreateMP3MediaSink(IMFByteStream *pTargetByteStream,IMFMediaSink **ppMediaSink);
5630HRESULT WINAPI MFCreateMPEG4MediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);
5631HRESULT WINAPI MFCreateNetSchemePlugin(REFIID riid,LPVOID *ppvHandler);
5632HRESULT WINAPI MFCreatePMPServer(DWORD dwCreationFlags,IMFPMPServer **ppPMPServer);
5633HRESULT WINAPI MFCreatePMPMediaSession(DWORD dwCreationFlags,IMFAttributes *pConfiguration,IMFMediaSession **ppMediaSession,IMFActivate **ppEnablerActivate);
5634HRESULT WINAPI MFCreatePathFromURL(LPCWSTR pwszFileURL,LPWSTR *ppwszFilePath);
5635HRESULT WINAPI MFCreatePresentationClock(IMFPresentationClock **ppPresentationClock);
5636HRESULT WINAPI MFCreatePresentationDescriptor(DWORD cStreamDescriptors,IMFStreamDescriptor **apStreamDescriptors,IMFPresentationDescriptor **ppPresentationDescriptor);
5637HRESULT WINAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile,IMFPresentationDescriptor **ppIPD);
5638HRESULT WINAPI MFCreateProxyLocator(LPCWSTR pszProtocol,IPropertyStore *pProxyConfig,IMFNetProxyLocator **ppProxyLocator);
5639HRESULT WINAPI MFCreateRemoteDesktopPlugin(IMFRemoteDesktopPlugin **ppPlugin);
5640HRESULT WINAPI MFCreateSample(IMFSample **ppIMFSample);
5641HRESULT WINAPI MFCreateSampleCopierMFT(IMFTransform **ppCopierMFT);
5642HRESULT WINAPI MFCreateSampleGrabberSinkActivate(IMFMediaType *pIMFMediaType,IMFSampleGrabberSinkCallback *pIMFSampleGrabberSinkCallback,IMFActivate **ppIActivate);
5643HRESULT WINAPI MFCreateSequencerSource(IUnknown *pReserved,IMFSequencerSource **ppSequencerSource);
5644HRESULT WINAPI MFCreateSimpleTypeHandler(IMFMediaTypeHandler **ppHandler);
5645HRESULT WINAPI MFCreateStandardQualityManager(IMFQualityManager **ppQualityManager);
5646HRESULT WINAPI MFCreateStreamDescriptor(DWORD dwStreamIdentifier,DWORD cMediaTypes,IMFMediaType **apMediaTypes,IMFStreamDescriptor **ppDescriptor);
5647HRESULT WINAPI MFCreateSourceResolver(IMFSourceResolver **ppISourceResolver);
5648HRESULT WINAPI MFCreateSystemTimeSource(IMFPresentationTimeSource **ppSystemTimeSource);
5649HRESULT WINAPI MFCreateTopoLoader(IMFTopoLoader **ppObj);
5650HRESULT WINAPI MFCreateTopology(IMFTopology **ppTopo);
5651HRESULT WINAPI MFCreateTopologyNode(MF_TOPOLOGY_TYPE NodeType,IMFTopologyNode **ppNode);
5652HRESULT WINAPI MFCreateVideoRenderer(REFIID riidRenderer,void **ppVideoRenderer);
5653HRESULT WINAPI MFCreateVideoRendererActivate(HWND hwndVideo,IMFActivate **ppActivate);
5654HRESULT WINAPI MFGetService(IUnknown *punkObject,REFGUID guidService,REFIID riid,LPVOID *ppvObject);
5655HRESULT WINAPI MFGetSupportedMimeTypes(PROPVARIANT *pPropVarMimeTypeArray);
5656HRESULT WINAPI MFGetSupportedSchemes(PROPVARIANT *pPropVarSchemeArray);
5657MFTIME WINAPI MFGetSystemTime(void);
5658HRESULT WINAPI MFShutdownObject(IUnknown *pUnk);
5659HRESULT WINAPI CreateNamedPropertyStore(INamedPropertyStore **ppStore);
5660HRESULT WINAPI CreatePropertyStore(IPropertyStore **ppStore);
5661#if (WINVER >= 0x0601)
5662
5663HRESULT WINAPI MFCreateTranscodeProfile(IMFTranscodeProfile **ppTranscodeProfile);
5664HRESULT WINAPI MFCreateTranscodeSinkActivate(IMFActivate **ppActivate);
5665HRESULT WINAPI MFCreateTranscodeTopology(IMFMediaSource *pSrc,LPCWSTR pwszOutputFilePath,IMFTranscodeProfile *pProfile,IMFTopology **ppTranscodeTopo);
5666HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *pAttributes,IMFActivate ***pppSourceActivate,UINT32 *pcSourceActivate);
5667HRESULT WINAPI MFGetTopoNodeCurrentType(IMFTopologyNode *pNode,DWORD dwStreamIndex,WINBOOL fOutput,IMFMediaType **ppType);
5668HRESULT WINAPI MFTranscodeGetAudioOutputAvailableTypes(REFGUID guidSubType,DWORD dwMFTFlags,IMFAttributes *pCodecConfig,IMFCollection **ppAvailableTypes);
5669#endif
5670EXTERN_GUID(MFNETSOURCE_STATISTICS, 0x3cb1f274, 0x0505, 0x4c5d, 0xae, 0x71, 0x0a, 0x55, 0x63, 0x44, 0xef, 0xa1);
5671EXTERN_GUID(MFNETSOURCE_STATISTICS_SERVICE, 0x3cb1f275, 0x0505, 0x4c5d, 0xae, 0x71, 0x0a, 0x55, 0x63, 0x44, 0xef, 0xa1);
5672EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_CLSID, 0xba491360, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
5673EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_ACTIVATE, 0xba491361, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
5674EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_FLAGS, 0xba491362, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
5675EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_CLSID, 0xba491364, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
5676EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_ACTIVATE, 0xba491365, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
5677EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_FLAGS, 0xba491366, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
5678EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_SESSION_ID, 0xede4b5e3, 0xf805, 0x4d6c, 0x99, 0xb3, 0xdb, 0x01, 0xbf, 0x95, 0xdf, 0xab);
5679EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ID, 0xb10aaec3, 0xef71, 0x4cc3, 0xb8, 0x73, 0x5, 0xa9, 0xa0, 0x8b, 0x9f, 0x8e);
5680EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ROLE, 0x6ba644ff, 0x27c5, 0x4d02, 0x98, 0x87, 0xc2, 0x86, 0x19, 0xfd, 0xb9, 0x1b);
5681EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_STREAM_CATEGORY, 0xa9770471, 0x92ec, 0x4df4, 0x94, 0xfe, 0x81, 0xc3, 0x6f, 0xc, 0x3a, 0x7a);
5682EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME, 0x60d0e559,0x52f8,0x4fa2,0xbb,0xce,0xac,0xdb,0x34,0xa8,0xec,0x1);
5683EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE, 0x56a819ca,0xc78,0x4de4,0xa0,0xa7,0x3d,0xda,0xba,0xf,0x24,0xd4);
5684EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID, 0x30da9258,0xfeb9,0x47a7,0xa4,0x53,0x76,0x3a,0x7a,0x8e,0x1c,0x5f);
5685EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ROLE, 0xbc9d118e,0x8c67,0x4a18,0x85,0xd4,0x12,0xd3,0x0,0x40,0x5,0x52);
5686EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY, 0x77f0ae69,0xc3bd,0x4509,0x94,0x1d,0x46,0x7e,0x4d,0x24,0x89,0x9e);
5687EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE, 0xde7046ba,0x54d6,0x4487,0xa2,0xa4,0xec,0x7c,0xd,0x1b,0xd1,0x63);
5688EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS, 0x7dd9b730,0x4f2d,0x41d5,0x8f,0x95,0xc,0xc9,0xa9,0x12,0xba,0x26);
5689EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, 0x58f0aad8,0x22bf,0x4f8a,0xbb,0x3d,0xd2,0xc4,0x97,0x8c,0x6e,0x2f);
5690EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe,0x252a,0x478f,0xa0,0xef,0xbc,0x8f,0xa5,0xf7,0xca,0xd3);
5691EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a,0x4ae7,0x42d8,0x99,0xe0,0x0a,0x60,0x13,0xee,0xf9,0x0f);
5692EXTERN_GUID(MF_METADATA_PROVIDER_SERVICE, 0xdb214084, 0x58a4, 0x4d2e, 0xb8, 0x4f, 0x6f, 0x75, 0x5b, 0x2f, 0x7a, 0xd);
5693EXTERN_GUID(MF_PROPERTY_HANDLER_SERVICE, 0xa3face02, 0x32b8, 0x41dd, 0x90, 0xe7, 0x5f, 0xef, 0x7c, 0x89, 0x91, 0xb5);
5694EXTERN_GUID(MF_RATE_CONTROL_SERVICE, 0x866fa297, 0xb802, 0x4bf8, 0x9d, 0xc9, 0x5e, 0x3b, 0x6a, 0x9f, 0x53, 0xc9);
5695EXTERN_GUID(MF_SAMPLEGRABBERSINK_IGNORE_CLOCK, 0x0efda2c0, 0x2b69, 0x4e2e, 0xab, 0x8d, 0x46, 0xdc, 0xbf, 0xf7, 0xd2, 0x5d);
5696EXTERN_GUID(MF_TOPONODE_DRAIN, 0x494bbce9, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5697EXTERN_GUID(MF_TOPONODE_D3DAWARE, 0x494bbced, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5698EXTERN_GUID(MF_TOPOLOGY_RESOLUTION_STATUS, 0x494bbcde, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5699EXTERN_GUID(MF_TOPONODE_ERRORCODE, 0x494bbcee, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5700EXTERN_GUID(MF_TOPONODE_CONNECT_METHOD, 0x494bbcf1, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5701EXTERN_GUID(MF_TOPONODE_LOCKED, 0x494bbcf7, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5702EXTERN_GUID(MF_TOPONODE_WORKQUEUE_ID, 0x494bbcf8, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5703EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_CLASS, 0x494bbcf9, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5704EXTERN_GUID(MF_TOPONODE_DECRYPTOR, 0x494bbcfa, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5705EXTERN_GUID(MF_TOPONODE_DISCARDABLE, 0x494bbcfb, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5706EXTERN_GUID(MF_TOPONODE_ERROR_MAJORTYPE, 0x494bbcfd, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5707EXTERN_GUID(MF_TOPONODE_ERROR_SUBTYPE, 0x494bbcfe, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5708EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_TASKID, 0x494bbcff, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5709EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_PRIORITY, 0x5001f840, 0x2816, 0x48f4, 0x93, 0x64, 0xad, 0x1e, 0xf6, 0x61, 0xa1, 0x23);
5710EXTERN_GUID(MF_TOPONODE_WORKQUEUE_ITEM_PRIORITY, 0xa1ff99be, 0x5e97, 0x4a53, 0xb4, 0x94, 0x56, 0x8c, 0x64, 0x2c, 0x0f, 0xf3);
5711EXTERN_GUID(MF_TOPONODE_MARKIN_HERE, 0x494bbd00, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5712EXTERN_GUID(MF_TOPONODE_MARKOUT_HERE, 0x494bbd01, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5713EXTERN_GUID(MF_TOPONODE_DECODER, 0x494bbd02, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
5714EXTERN_GUID(MF_TOPONODE_MEDIASTART, 0x835c58ea, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
5715EXTERN_GUID(MF_TOPONODE_MEDIASTOP, 0x835c58eb, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
5716EXTERN_GUID(MF_TOPONODE_SOURCE, 0x835c58ec, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
5717EXTERN_GUID(MF_TOPONODE_PRESENTATION_DESCRIPTOR, 0x835c58ed, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
5718EXTERN_GUID(MF_TOPONODE_STREAM_DESCRIPTOR, 0x835c58ee, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
5719EXTERN_GUID(MF_TOPONODE_SEQUENCE_ELEMENTID, 0x835c58ef, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
5720EXTERN_GUID(MF_TOPONODE_TRANSFORM_OBJECTID, 0x88dcc0c9, 0x293e, 0x4e8b, 0x9a, 0xeb, 0xa, 0xd6, 0x4c, 0xc0, 0x16, 0xb0);
5721EXTERN_GUID(MF_TOPONODE_STREAMID, 0x14932f9b, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);
5722EXTERN_GUID(MF_TOPONODE_NOSHUTDOWN_ON_REMOVE, 0x14932f9c, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);
5723EXTERN_GUID(MF_TOPONODE_RATELESS, 0x14932f9d, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);
5724EXTERN_GUID(MF_TOPONODE_DISABLE_PREROLL, 0x14932f9e, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);
5725EXTERN_GUID(MF_TOPONODE_PRIMARYOUTPUT, 0x6304ef99, 0x16b2, 0x4ebe, 0x9d, 0x67, 0xe4, 0xc5, 0x39, 0xb3, 0xa2, 0x59);
5726EXTERN_GUID(MR_STREAM_VOLUME_SERVICE, 0xf8b5fa2f, 0x32ef, 0x46f5, 0xb1, 0x72, 0x13, 0x21, 0x21, 0x2f, 0xb2, 0xc4);
5727/* Begin additional prototypes for all interfaces */
5728
5729ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
5730unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
5731unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
5732void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
5733ULONG __RPC_USER LPSAFEARRAY_UserSize (ULONG *, ULONG, LPSAFEARRAY *);
5734unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (ULONG *, unsigned char *, LPSAFEARRAY *);
5735unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
5736void __RPC_USER LPSAFEARRAY_UserFree (ULONG *, LPSAFEARRAY *);
5737
5738/* End additional prototypes */
5739
5740#ifdef __cplusplus
5741}
5742#endif
5743
5744#endif /* __mfidl_h__ */
Note: See TracBrowser for help on using the repository browser.