master
1/*** Autogenerated by WIDL 10.4 from include/wmsdkidl.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 __wmsdkidl_h__
17#define __wmsdkidl_h__
18
19/* Forward declarations */
20
21#ifndef __IWMStatusCallback_FWD_DEFINED__
22#define __IWMStatusCallback_FWD_DEFINED__
23typedef interface IWMStatusCallback IWMStatusCallback;
24#ifdef __cplusplus
25interface IWMStatusCallback;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IWMReaderCallback_FWD_DEFINED__
30#define __IWMReaderCallback_FWD_DEFINED__
31typedef interface IWMReaderCallback IWMReaderCallback;
32#ifdef __cplusplus
33interface IWMReaderCallback;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IWMReaderCallbackAdvanced_FWD_DEFINED__
38#define __IWMReaderCallbackAdvanced_FWD_DEFINED__
39typedef interface IWMReaderCallbackAdvanced IWMReaderCallbackAdvanced;
40#ifdef __cplusplus
41interface IWMReaderCallbackAdvanced;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IWMStreamList_FWD_DEFINED__
46#define __IWMStreamList_FWD_DEFINED__
47typedef interface IWMStreamList IWMStreamList;
48#ifdef __cplusplus
49interface IWMStreamList;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IWMMutualExclusion_FWD_DEFINED__
54#define __IWMMutualExclusion_FWD_DEFINED__
55typedef interface IWMMutualExclusion IWMMutualExclusion;
56#ifdef __cplusplus
57interface IWMMutualExclusion;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IWMBandwidthSharing_FWD_DEFINED__
62#define __IWMBandwidthSharing_FWD_DEFINED__
63typedef interface IWMBandwidthSharing IWMBandwidthSharing;
64#ifdef __cplusplus
65interface IWMBandwidthSharing;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IWMStreamPrioritization_FWD_DEFINED__
70#define __IWMStreamPrioritization_FWD_DEFINED__
71typedef interface IWMStreamPrioritization IWMStreamPrioritization;
72#ifdef __cplusplus
73interface IWMStreamPrioritization;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IWMStreamConfig_FWD_DEFINED__
78#define __IWMStreamConfig_FWD_DEFINED__
79typedef interface IWMStreamConfig IWMStreamConfig;
80#ifdef __cplusplus
81interface IWMStreamConfig;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __IWMProfile_FWD_DEFINED__
86#define __IWMProfile_FWD_DEFINED__
87typedef interface IWMProfile IWMProfile;
88#ifdef __cplusplus
89interface IWMProfile;
90#endif /* __cplusplus */
91#endif
92
93#ifndef __IWMProfile2_FWD_DEFINED__
94#define __IWMProfile2_FWD_DEFINED__
95typedef interface IWMProfile2 IWMProfile2;
96#ifdef __cplusplus
97interface IWMProfile2;
98#endif /* __cplusplus */
99#endif
100
101#ifndef __IWMProfile3_FWD_DEFINED__
102#define __IWMProfile3_FWD_DEFINED__
103typedef interface IWMProfile3 IWMProfile3;
104#ifdef __cplusplus
105interface IWMProfile3;
106#endif /* __cplusplus */
107#endif
108
109#ifndef __IWMProfileManager_FWD_DEFINED__
110#define __IWMProfileManager_FWD_DEFINED__
111typedef interface IWMProfileManager IWMProfileManager;
112#ifdef __cplusplus
113interface IWMProfileManager;
114#endif /* __cplusplus */
115#endif
116
117#ifndef __IWMProfileManager2_FWD_DEFINED__
118#define __IWMProfileManager2_FWD_DEFINED__
119typedef interface IWMProfileManager2 IWMProfileManager2;
120#ifdef __cplusplus
121interface IWMProfileManager2;
122#endif /* __cplusplus */
123#endif
124
125#ifndef __IWMCodecInfo_FWD_DEFINED__
126#define __IWMCodecInfo_FWD_DEFINED__
127typedef interface IWMCodecInfo IWMCodecInfo;
128#ifdef __cplusplus
129interface IWMCodecInfo;
130#endif /* __cplusplus */
131#endif
132
133#ifndef __IWMCodecInfo2_FWD_DEFINED__
134#define __IWMCodecInfo2_FWD_DEFINED__
135typedef interface IWMCodecInfo2 IWMCodecInfo2;
136#ifdef __cplusplus
137interface IWMCodecInfo2;
138#endif /* __cplusplus */
139#endif
140
141#ifndef __IWMCodecInfo3_FWD_DEFINED__
142#define __IWMCodecInfo3_FWD_DEFINED__
143typedef interface IWMCodecInfo3 IWMCodecInfo3;
144#ifdef __cplusplus
145interface IWMCodecInfo3;
146#endif /* __cplusplus */
147#endif
148
149#ifndef __IWMMediaProps_FWD_DEFINED__
150#define __IWMMediaProps_FWD_DEFINED__
151typedef interface IWMMediaProps IWMMediaProps;
152#ifdef __cplusplus
153interface IWMMediaProps;
154#endif /* __cplusplus */
155#endif
156
157#ifndef __IWMOutputMediaProps_FWD_DEFINED__
158#define __IWMOutputMediaProps_FWD_DEFINED__
159typedef interface IWMOutputMediaProps IWMOutputMediaProps;
160#ifdef __cplusplus
161interface IWMOutputMediaProps;
162#endif /* __cplusplus */
163#endif
164
165#ifndef __IWMMetadataEditor_FWD_DEFINED__
166#define __IWMMetadataEditor_FWD_DEFINED__
167typedef interface IWMMetadataEditor IWMMetadataEditor;
168#ifdef __cplusplus
169interface IWMMetadataEditor;
170#endif /* __cplusplus */
171#endif
172
173#ifndef __IWMReader_FWD_DEFINED__
174#define __IWMReader_FWD_DEFINED__
175typedef interface IWMReader IWMReader;
176#ifdef __cplusplus
177interface IWMReader;
178#endif /* __cplusplus */
179#endif
180
181#ifndef __IWMPlayerHook_FWD_DEFINED__
182#define __IWMPlayerHook_FWD_DEFINED__
183typedef interface IWMPlayerHook IWMPlayerHook;
184#ifdef __cplusplus
185interface IWMPlayerHook;
186#endif /* __cplusplus */
187#endif
188
189#ifndef __IWMReaderAdvanced_FWD_DEFINED__
190#define __IWMReaderAdvanced_FWD_DEFINED__
191typedef interface IWMReaderAdvanced IWMReaderAdvanced;
192#ifdef __cplusplus
193interface IWMReaderAdvanced;
194#endif /* __cplusplus */
195#endif
196
197#ifndef __IWMReaderAdvanced2_FWD_DEFINED__
198#define __IWMReaderAdvanced2_FWD_DEFINED__
199typedef interface IWMReaderAdvanced2 IWMReaderAdvanced2;
200#ifdef __cplusplus
201interface IWMReaderAdvanced2;
202#endif /* __cplusplus */
203#endif
204
205#ifndef __IWMReaderAdvanced3_FWD_DEFINED__
206#define __IWMReaderAdvanced3_FWD_DEFINED__
207typedef interface IWMReaderAdvanced3 IWMReaderAdvanced3;
208#ifdef __cplusplus
209interface IWMReaderAdvanced3;
210#endif /* __cplusplus */
211#endif
212
213#ifndef __IWMReaderAdvanced4_FWD_DEFINED__
214#define __IWMReaderAdvanced4_FWD_DEFINED__
215typedef interface IWMReaderAdvanced4 IWMReaderAdvanced4;
216#ifdef __cplusplus
217interface IWMReaderAdvanced4;
218#endif /* __cplusplus */
219#endif
220
221#ifndef __IWMReaderAdvanced5_FWD_DEFINED__
222#define __IWMReaderAdvanced5_FWD_DEFINED__
223typedef interface IWMReaderAdvanced5 IWMReaderAdvanced5;
224#ifdef __cplusplus
225interface IWMReaderAdvanced5;
226#endif /* __cplusplus */
227#endif
228
229#ifndef __IWMReaderAdvanced6_FWD_DEFINED__
230#define __IWMReaderAdvanced6_FWD_DEFINED__
231typedef interface IWMReaderAdvanced6 IWMReaderAdvanced6;
232#ifdef __cplusplus
233interface IWMReaderAdvanced6;
234#endif /* __cplusplus */
235#endif
236
237#ifndef __IWMSyncReader_FWD_DEFINED__
238#define __IWMSyncReader_FWD_DEFINED__
239typedef interface IWMSyncReader IWMSyncReader;
240#ifdef __cplusplus
241interface IWMSyncReader;
242#endif /* __cplusplus */
243#endif
244
245#ifndef __IWMReaderAllocatorEx_FWD_DEFINED__
246#define __IWMReaderAllocatorEx_FWD_DEFINED__
247typedef interface IWMReaderAllocatorEx IWMReaderAllocatorEx;
248#ifdef __cplusplus
249interface IWMReaderAllocatorEx;
250#endif /* __cplusplus */
251#endif
252
253#ifndef __IWMSyncReader2_FWD_DEFINED__
254#define __IWMSyncReader2_FWD_DEFINED__
255typedef interface IWMSyncReader2 IWMSyncReader2;
256#ifdef __cplusplus
257interface IWMSyncReader2;
258#endif /* __cplusplus */
259#endif
260
261#ifndef __IWMInputMediaProps_FWD_DEFINED__
262#define __IWMInputMediaProps_FWD_DEFINED__
263typedef interface IWMInputMediaProps IWMInputMediaProps;
264#ifdef __cplusplus
265interface IWMInputMediaProps;
266#endif /* __cplusplus */
267#endif
268
269#ifndef __IWMWriterSink_FWD_DEFINED__
270#define __IWMWriterSink_FWD_DEFINED__
271typedef interface IWMWriterSink IWMWriterSink;
272#ifdef __cplusplus
273interface IWMWriterSink;
274#endif /* __cplusplus */
275#endif
276
277#ifndef __IWMWriter_FWD_DEFINED__
278#define __IWMWriter_FWD_DEFINED__
279typedef interface IWMWriter IWMWriter;
280#ifdef __cplusplus
281interface IWMWriter;
282#endif /* __cplusplus */
283#endif
284
285#ifndef __IWMWriterAdvanced_FWD_DEFINED__
286#define __IWMWriterAdvanced_FWD_DEFINED__
287typedef interface IWMWriterAdvanced IWMWriterAdvanced;
288#ifdef __cplusplus
289interface IWMWriterAdvanced;
290#endif /* __cplusplus */
291#endif
292
293#ifndef __IWMWriterAdvanced2_FWD_DEFINED__
294#define __IWMWriterAdvanced2_FWD_DEFINED__
295typedef interface IWMWriterAdvanced2 IWMWriterAdvanced2;
296#ifdef __cplusplus
297interface IWMWriterAdvanced2;
298#endif /* __cplusplus */
299#endif
300
301#ifndef __IWMWriterAdvanced3_FWD_DEFINED__
302#define __IWMWriterAdvanced3_FWD_DEFINED__
303typedef interface IWMWriterAdvanced3 IWMWriterAdvanced3;
304#ifdef __cplusplus
305interface IWMWriterAdvanced3;
306#endif /* __cplusplus */
307#endif
308
309#ifndef __IWMHeaderInfo_FWD_DEFINED__
310#define __IWMHeaderInfo_FWD_DEFINED__
311typedef interface IWMHeaderInfo IWMHeaderInfo;
312#ifdef __cplusplus
313interface IWMHeaderInfo;
314#endif /* __cplusplus */
315#endif
316
317#ifndef __IWMHeaderInfo2_FWD_DEFINED__
318#define __IWMHeaderInfo2_FWD_DEFINED__
319typedef interface IWMHeaderInfo2 IWMHeaderInfo2;
320#ifdef __cplusplus
321interface IWMHeaderInfo2;
322#endif /* __cplusplus */
323#endif
324
325#ifndef __IWMHeaderInfo3_FWD_DEFINED__
326#define __IWMHeaderInfo3_FWD_DEFINED__
327typedef interface IWMHeaderInfo3 IWMHeaderInfo3;
328#ifdef __cplusplus
329interface IWMHeaderInfo3;
330#endif /* __cplusplus */
331#endif
332
333#ifndef __IWMReaderNetworkConfig_FWD_DEFINED__
334#define __IWMReaderNetworkConfig_FWD_DEFINED__
335typedef interface IWMReaderNetworkConfig IWMReaderNetworkConfig;
336#ifdef __cplusplus
337interface IWMReaderNetworkConfig;
338#endif /* __cplusplus */
339#endif
340
341#ifndef __IWMReaderNetworkConfig2_FWD_DEFINED__
342#define __IWMReaderNetworkConfig2_FWD_DEFINED__
343typedef interface IWMReaderNetworkConfig2 IWMReaderNetworkConfig2;
344#ifdef __cplusplus
345interface IWMReaderNetworkConfig2;
346#endif /* __cplusplus */
347#endif
348
349#ifndef __IWMReaderStreamClock_FWD_DEFINED__
350#define __IWMReaderStreamClock_FWD_DEFINED__
351typedef interface IWMReaderStreamClock IWMReaderStreamClock;
352#ifdef __cplusplus
353interface IWMReaderStreamClock;
354#endif /* __cplusplus */
355#endif
356
357#ifndef __IWMPacketSize_FWD_DEFINED__
358#define __IWMPacketSize_FWD_DEFINED__
359typedef interface IWMPacketSize IWMPacketSize;
360#ifdef __cplusplus
361interface IWMPacketSize;
362#endif /* __cplusplus */
363#endif
364
365#ifndef __IWMPacketSize2_FWD_DEFINED__
366#define __IWMPacketSize2_FWD_DEFINED__
367typedef interface IWMPacketSize2 IWMPacketSize2;
368#ifdef __cplusplus
369interface IWMPacketSize2;
370#endif /* __cplusplus */
371#endif
372
373#ifndef __IWMDRMReader_FWD_DEFINED__
374#define __IWMDRMReader_FWD_DEFINED__
375typedef interface IWMDRMReader IWMDRMReader;
376#ifdef __cplusplus
377interface IWMDRMReader;
378#endif /* __cplusplus */
379#endif
380
381#ifndef __IWMDRMReader2_FWD_DEFINED__
382#define __IWMDRMReader2_FWD_DEFINED__
383typedef interface IWMDRMReader2 IWMDRMReader2;
384#ifdef __cplusplus
385interface IWMDRMReader2;
386#endif /* __cplusplus */
387#endif
388
389#ifndef __IWMDRMReader3_FWD_DEFINED__
390#define __IWMDRMReader3_FWD_DEFINED__
391typedef interface IWMDRMReader3 IWMDRMReader3;
392#ifdef __cplusplus
393interface IWMDRMReader3;
394#endif /* __cplusplus */
395#endif
396
397#ifndef __IWMReaderAccelerator_FWD_DEFINED__
398#define __IWMReaderAccelerator_FWD_DEFINED__
399typedef interface IWMReaderAccelerator IWMReaderAccelerator;
400#ifdef __cplusplus
401interface IWMReaderAccelerator;
402#endif /* __cplusplus */
403#endif
404
405#ifndef __IWMReaderTimecode_FWD_DEFINED__
406#define __IWMReaderTimecode_FWD_DEFINED__
407typedef interface IWMReaderTimecode IWMReaderTimecode;
408#ifdef __cplusplus
409interface IWMReaderTimecode;
410#endif /* __cplusplus */
411#endif
412
413#ifndef __IWMReaderTypeNegotiation_FWD_DEFINED__
414#define __IWMReaderTypeNegotiation_FWD_DEFINED__
415typedef interface IWMReaderTypeNegotiation IWMReaderTypeNegotiation;
416#ifdef __cplusplus
417interface IWMReaderTypeNegotiation;
418#endif /* __cplusplus */
419#endif
420
421#ifndef __IWMLanguageList_FWD_DEFINED__
422#define __IWMLanguageList_FWD_DEFINED__
423typedef interface IWMLanguageList IWMLanguageList;
424#ifdef __cplusplus
425interface IWMLanguageList;
426#endif /* __cplusplus */
427#endif
428
429#ifndef __IWMReaderPlaylistBurn_FWD_DEFINED__
430#define __IWMReaderPlaylistBurn_FWD_DEFINED__
431typedef interface IWMReaderPlaylistBurn IWMReaderPlaylistBurn;
432#ifdef __cplusplus
433interface IWMReaderPlaylistBurn;
434#endif /* __cplusplus */
435#endif
436
437#ifndef __IWMPropertyVault_FWD_DEFINED__
438#define __IWMPropertyVault_FWD_DEFINED__
439typedef interface IWMPropertyVault IWMPropertyVault;
440#ifdef __cplusplus
441interface IWMPropertyVault;
442#endif /* __cplusplus */
443#endif
444
445#ifndef __IWMWriterPreprocess_FWD_DEFINED__
446#define __IWMWriterPreprocess_FWD_DEFINED__
447typedef interface IWMWriterPreprocess IWMWriterPreprocess;
448#ifdef __cplusplus
449interface IWMWriterPreprocess;
450#endif /* __cplusplus */
451#endif
452
453#ifndef __IWMLicenseBackup_FWD_DEFINED__
454#define __IWMLicenseBackup_FWD_DEFINED__
455typedef interface IWMLicenseBackup IWMLicenseBackup;
456#ifdef __cplusplus
457interface IWMLicenseBackup;
458#endif /* __cplusplus */
459#endif
460
461#ifndef __IWMLicenseRestore_FWD_DEFINED__
462#define __IWMLicenseRestore_FWD_DEFINED__
463typedef interface IWMLicenseRestore IWMLicenseRestore;
464#ifdef __cplusplus
465interface IWMLicenseRestore;
466#endif /* __cplusplus */
467#endif
468
469#ifndef __IWMIStreamProps_FWD_DEFINED__
470#define __IWMIStreamProps_FWD_DEFINED__
471typedef interface IWMIStreamProps IWMIStreamProps;
472#ifdef __cplusplus
473interface IWMIStreamProps;
474#endif /* __cplusplus */
475#endif
476
477#ifndef __IWMCredentialCallback_FWD_DEFINED__
478#define __IWMCredentialCallback_FWD_DEFINED__
479typedef interface IWMCredentialCallback IWMCredentialCallback;
480#ifdef __cplusplus
481interface IWMCredentialCallback;
482#endif /* __cplusplus */
483#endif
484
485/* Headers for imported files */
486
487#include <oaidl.h>
488#include <wmsbuffer.h>
489#include <drmexternals.h>
490
491#ifdef __cplusplus
492extern "C" {
493#endif
494
495typedef struct _WMMediaType {
496 GUID majortype;
497 GUID subtype;
498 WINBOOL bFixedSizeSamples;
499 WINBOOL bTemporalCompression;
500 ULONG lSampleSize;
501 GUID formattype;
502 IUnknown *pUnk;
503 ULONG cbFormat;
504 BYTE *pbFormat;
505} WM_MEDIA_TYPE;
506typedef struct _WMWriterStatistics {
507 QWORD qwSampleCount;
508 QWORD qwByteCount;
509 QWORD qwDroppedSampleCount;
510 QWORD qwDroppedByteCount;
511 DWORD dwCurrentBitrate;
512 DWORD dwAverageBitrate;
513 DWORD dwExpectedBitrate;
514 DWORD dwCurrentSampleRate;
515 DWORD dwAverageSampleRate;
516 DWORD dwExpectedSampleRate;
517} WM_WRITER_STATISTICS;
518typedef struct _WMWriterStatisticsEx {
519 DWORD dwBitratePlusOverhead;
520 DWORD dwCurrentSampleDropRateInQueue;
521 DWORD dwCurrentSampleDropRateInCodec;
522 DWORD dwCurrentSampleDropRateInMultiplexer;
523 DWORD dwTotalSampleDropsInQueue;
524 DWORD dwTotalSampleDropsInCodec;
525 DWORD dwTotalSampleDropsInMultiplexer;
526} WM_WRITER_STATISTICS_EX;
527typedef struct _WMReaderStatistics {
528 DWORD cbSize;
529 DWORD dwBandwidth;
530 DWORD cPacketsReceived;
531 DWORD cPacketsRecovered;
532 DWORD cPacketsLost;
533 WORD wQuality;
534} WM_READER_STATISTICS;
535typedef struct _WMReaderClientInfo {
536 DWORD cbSize;
537 WCHAR *wszLang;
538 WCHAR *wszBrowserUserAgent;
539 WCHAR *wszBrowserWebPage;
540 QWORD qwReserved;
541 LPARAM *pReserved;
542 WCHAR *wszHostExe;
543 QWORD qwHostVersion;
544 WCHAR *wszPlayerUserAgent;
545} WM_READER_CLIENTINFO;
546enum {
547 WM_SF_CLEANPOINT = 0x1,
548 WM_SF_DISCONTINUITY = 0x2,
549 WM_SF_DATALOSS = 0x4
550};
551typedef enum WMT_ATTR_DATATYPE {
552 WMT_TYPE_DWORD = 0,
553 WMT_TYPE_STRING = 1,
554 WMT_TYPE_BINARY = 2,
555 WMT_TYPE_BOOL = 3,
556 WMT_TYPE_QWORD = 4,
557 WMT_TYPE_WORD = 5,
558 WMT_TYPE_GUID = 6
559} WMT_ATTR_DATATYPE;
560typedef enum WMT_STATUS {
561 WMT_ERROR = 0,
562 WMT_OPENED = 1,
563 WMT_BUFFERING_START = 2,
564 WMT_BUFFERING_STOP = 3,
565 WMT_EOF = 4,
566 WMT_END_OF_FILE = 4,
567 WMT_END_OF_SEGMENT = 5,
568 WMT_END_OF_STREAMING = 6,
569 WMT_LOCATING = 7,
570 WMT_CONNECTING = 8,
571 WMT_NO_RIGHTS = 9,
572 WMT_MISSING_CODEC = 10,
573 WMT_STARTED = 11,
574 WMT_STOPPED = 12,
575 WMT_CLOSED = 13,
576 WMT_STRIDING = 14,
577 WMT_TIMER = 15,
578 WMT_INDEX_PROGRESS = 16,
579 WMT_SAVEAS_START = 17,
580 WMT_SAVEAS_STOP = 18,
581 WMT_NEW_SOURCEFLAGS = 19,
582 WMT_NEW_METADATA = 20,
583 WMT_BACKUPRESTORE_BEGIN = 21,
584 WMT_SOURCE_SWITCH = 22,
585 WMT_ACQUIRE_LICENSE = 23,
586 WMT_INDIVIDUALIZE = 24,
587 WMT_NEEDS_INDIVIDUALIZATION = 25,
588 WMT_NO_RIGHTS_EX = 26,
589 WMT_BACKUPRESTORE_END = 27,
590 WMT_BACKUPRESTORE_CONNECTING = 28,
591 WMT_BACKUPRESTORE_DISCONNECTING = 29,
592 WMT_ERROR_WITHURL = 30,
593 WMT_RESTRICTED_LICENSE = 31,
594 WMT_CLIENT_CONNECT = 32,
595 WMT_CLIENT_DISCONNECT = 33,
596 WMT_NATIVE_OUTPUT_PROPS_CHANGED = 34,
597 WMT_RECONNECT_START = 35,
598 WMT_RECONNECT_END = 36,
599 WMT_CLIENT_CONNECT_EX = 37,
600 WMT_CLIENT_DISCONNECT_EX = 38,
601 WMT_SET_FEC_SPAN = 39,
602 WMT_PREROLL_READY = 40,
603 WMT_PREROLL_COMPLETE = 41,
604 WMT_CLIENT_PROPERTIES = 42,
605 WMT_LICENSEURL_SIGNATURE_STATE = 43,
606 WMT_INIT_PLAYLIST_BURN = 44,
607 WMT_TRANSCRYPTOR_INIT = 45,
608 WMT_TRANSCRYPTOR_SEEKED = 46,
609 WMT_TRANSCRYPTOR_READ = 47,
610 WMT_TRANSCRYPTOR_CLOSED = 48,
611 WMT_PROXIMITY_RESULT = 49,
612 WMT_PROXIMITY_COMPLETED = 50,
613 WMT_CONTENT_ENABLER = 51
614} WMT_STATUS;
615typedef enum WMT_STREAM_SELECTION {
616 WMT_OFF = 0,
617 WMT_CLEANPOINT_ONLY = 1,
618 WMT_ON = 2
619} WMT_STREAM_SELECTION;
620typedef enum WMT_VERSION {
621 WMT_VER_4_0 = 0x40000,
622 WMT_VER_7_0 = 0x70000,
623 WMT_VER_8_0 = 0x80000,
624 WMT_VER_9_0 = 0x90000
625} WMT_VERSION;
626typedef enum WMT_PLAY_MODE {
627 WMT_PLAY_MODE_AUTOSELECT = 0,
628 WMT_PLAY_MODE_LOCAL = 1,
629 WMT_PLAY_MODE_DOWNLOAD = 2,
630 WMT_PLAY_MODE_STREAMING = 3
631} WMT_PLAY_MODE;
632typedef enum tagWMT_OFFSET_FORMAT {
633 WMT_OFFSET_FORMAT_100NS = 0,
634 WMT_OFFSET_FORMAT_FRAME_NUMBERS = 1,
635 WMT_OFFSET_FORMAT_PLAYLIST_OFFSET = 2,
636 WMT_OFFSET_FORMAT_TIMECODE = 3,
637 WMT_OFFSET_FORMAT_100NS_APPROXIMATE = 4
638} WMT_OFFSET_FORMAT;
639typedef enum WMT_CODEC_INFO_TYPE {
640 WMT_CODECINFO_AUDIO = 0,
641 WMT_CODECINFO_VIDEO = 1,
642 WMT_CODECINFO_UNKNOWN = 0xffffffff
643} WMT_CODEC_INFO_TYPE;
644typedef enum WMT_PROXY_SETTINGS {
645 WMT_PROXY_SETTING_NONE = 0,
646 WMT_PROXY_SETTING_MANUAL = 1,
647 WMT_PROXY_SETTING_AUTO = 2,
648 WMT_PROXY_SETTING_BROWSER = 3,
649 WMT_PROXY_SETTING_MAX = 4
650} WMT_PROXY_SETTINGS;
651typedef enum tagWMT_STORAGE_FORMAT {
652 WMT_Storage_Format_MP3 = 0,
653 WMT_Storage_Format_V1 = 1
654} WMT_STORAGE_FORMAT;
655#pragma pack(push,2)
656typedef struct _WMStreamPrioritizationRecord {
657 WORD wStreamNumber;
658 WINBOOL fMandatory;
659} WM_STREAM_PRIORITY_RECORD;
660typedef struct _WMT_TIMECODE_EXTENSION_DATA {
661 WORD wRange;
662 DWORD dwTimecode;
663 DWORD dwUserbits;
664 DWORD dwAmFlags;
665} WMT_TIMECODE_EXTENSION_DATA;
666#pragma pack(pop)
667typedef struct _WM_PORT_NUMBER_RANGE {
668 WORD wPortBegin;
669 WORD wPortEnd;
670} WM_PORT_NUMBER_RANGE;
671typedef LPCWSTR LPCWSTR_WMSDK_TYPE_SAFE;
672/*****************************************************************************
673 * IWMStatusCallback interface
674 */
675#ifndef __IWMStatusCallback_INTERFACE_DEFINED__
676#define __IWMStatusCallback_INTERFACE_DEFINED__
677
678DEFINE_GUID(IID_IWMStatusCallback, 0x6d7cdc70, 0x9888, 0x11d3, 0x8e,0xdc, 0x00,0xc0,0x4f,0x61,0x09,0xcf);
679#if defined(__cplusplus) && !defined(CINTERFACE)
680MIDL_INTERFACE("6d7cdc70-9888-11d3-8edc-00c04f6109cf")
681IWMStatusCallback : public IUnknown
682{
683 virtual HRESULT STDMETHODCALLTYPE OnStatus(
684 WMT_STATUS Status,
685 HRESULT hr,
686 WMT_ATTR_DATATYPE dwType,
687 BYTE *pValue,
688 void *pvContext) = 0;
689
690};
691#ifdef __CRT_UUID_DECL
692__CRT_UUID_DECL(IWMStatusCallback, 0x6d7cdc70, 0x9888, 0x11d3, 0x8e,0xdc, 0x00,0xc0,0x4f,0x61,0x09,0xcf)
693#endif
694#else
695typedef struct IWMStatusCallbackVtbl {
696 BEGIN_INTERFACE
697
698 /*** IUnknown methods ***/
699 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
700 IWMStatusCallback *This,
701 REFIID riid,
702 void **ppvObject);
703
704 ULONG (STDMETHODCALLTYPE *AddRef)(
705 IWMStatusCallback *This);
706
707 ULONG (STDMETHODCALLTYPE *Release)(
708 IWMStatusCallback *This);
709
710 /*** IWMStatusCallback methods ***/
711 HRESULT (STDMETHODCALLTYPE *OnStatus)(
712 IWMStatusCallback *This,
713 WMT_STATUS Status,
714 HRESULT hr,
715 WMT_ATTR_DATATYPE dwType,
716 BYTE *pValue,
717 void *pvContext);
718
719 END_INTERFACE
720} IWMStatusCallbackVtbl;
721
722interface IWMStatusCallback {
723 CONST_VTBL IWMStatusCallbackVtbl* lpVtbl;
724};
725
726#ifdef COBJMACROS
727#ifndef WIDL_C_INLINE_WRAPPERS
728/*** IUnknown methods ***/
729#define IWMStatusCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
730#define IWMStatusCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
731#define IWMStatusCallback_Release(This) (This)->lpVtbl->Release(This)
732/*** IWMStatusCallback methods ***/
733#define IWMStatusCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext) (This)->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext)
734#else
735/*** IUnknown methods ***/
736static inline HRESULT IWMStatusCallback_QueryInterface(IWMStatusCallback* This,REFIID riid,void **ppvObject) {
737 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
738}
739static inline ULONG IWMStatusCallback_AddRef(IWMStatusCallback* This) {
740 return This->lpVtbl->AddRef(This);
741}
742static inline ULONG IWMStatusCallback_Release(IWMStatusCallback* This) {
743 return This->lpVtbl->Release(This);
744}
745/*** IWMStatusCallback methods ***/
746static inline HRESULT IWMStatusCallback_OnStatus(IWMStatusCallback* This,WMT_STATUS Status,HRESULT hr,WMT_ATTR_DATATYPE dwType,BYTE *pValue,void *pvContext) {
747 return This->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext);
748}
749#endif
750#endif
751
752#endif
753
754
755#endif /* __IWMStatusCallback_INTERFACE_DEFINED__ */
756
757/*****************************************************************************
758 * IWMReaderCallback interface
759 */
760#ifndef __IWMReaderCallback_INTERFACE_DEFINED__
761#define __IWMReaderCallback_INTERFACE_DEFINED__
762
763DEFINE_GUID(IID_IWMReaderCallback, 0x96406bd8, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
764#if defined(__cplusplus) && !defined(CINTERFACE)
765MIDL_INTERFACE("96406bd8-2b2b-11d3-b36b-00c04f6108ff")
766IWMReaderCallback : public IWMStatusCallback
767{
768 virtual HRESULT STDMETHODCALLTYPE OnSample(
769 DWORD dwOutputNum,
770 QWORD cnsSampleTime,
771 QWORD cnsSampleDuration,
772 DWORD dwFlags,
773 INSSBuffer *pSample,
774 void *pvContext) = 0;
775
776};
777#ifdef __CRT_UUID_DECL
778__CRT_UUID_DECL(IWMReaderCallback, 0x96406bd8, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
779#endif
780#else
781typedef struct IWMReaderCallbackVtbl {
782 BEGIN_INTERFACE
783
784 /*** IUnknown methods ***/
785 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
786 IWMReaderCallback *This,
787 REFIID riid,
788 void **ppvObject);
789
790 ULONG (STDMETHODCALLTYPE *AddRef)(
791 IWMReaderCallback *This);
792
793 ULONG (STDMETHODCALLTYPE *Release)(
794 IWMReaderCallback *This);
795
796 /*** IWMStatusCallback methods ***/
797 HRESULT (STDMETHODCALLTYPE *OnStatus)(
798 IWMReaderCallback *This,
799 WMT_STATUS Status,
800 HRESULT hr,
801 WMT_ATTR_DATATYPE dwType,
802 BYTE *pValue,
803 void *pvContext);
804
805 /*** IWMReaderCallback methods ***/
806 HRESULT (STDMETHODCALLTYPE *OnSample)(
807 IWMReaderCallback *This,
808 DWORD dwOutputNum,
809 QWORD cnsSampleTime,
810 QWORD cnsSampleDuration,
811 DWORD dwFlags,
812 INSSBuffer *pSample,
813 void *pvContext);
814
815 END_INTERFACE
816} IWMReaderCallbackVtbl;
817
818interface IWMReaderCallback {
819 CONST_VTBL IWMReaderCallbackVtbl* lpVtbl;
820};
821
822#ifdef COBJMACROS
823#ifndef WIDL_C_INLINE_WRAPPERS
824/*** IUnknown methods ***/
825#define IWMReaderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
826#define IWMReaderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
827#define IWMReaderCallback_Release(This) (This)->lpVtbl->Release(This)
828/*** IWMStatusCallback methods ***/
829#define IWMReaderCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext) (This)->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext)
830/*** IWMReaderCallback methods ***/
831#define IWMReaderCallback_OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext) (This)->lpVtbl->OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)
832#else
833/*** IUnknown methods ***/
834static inline HRESULT IWMReaderCallback_QueryInterface(IWMReaderCallback* This,REFIID riid,void **ppvObject) {
835 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
836}
837static inline ULONG IWMReaderCallback_AddRef(IWMReaderCallback* This) {
838 return This->lpVtbl->AddRef(This);
839}
840static inline ULONG IWMReaderCallback_Release(IWMReaderCallback* This) {
841 return This->lpVtbl->Release(This);
842}
843/*** IWMStatusCallback methods ***/
844static inline HRESULT IWMReaderCallback_OnStatus(IWMReaderCallback* This,WMT_STATUS Status,HRESULT hr,WMT_ATTR_DATATYPE dwType,BYTE *pValue,void *pvContext) {
845 return This->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext);
846}
847/*** IWMReaderCallback methods ***/
848static inline HRESULT IWMReaderCallback_OnSample(IWMReaderCallback* This,DWORD dwOutputNum,QWORD cnsSampleTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample,void *pvContext) {
849 return This->lpVtbl->OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext);
850}
851#endif
852#endif
853
854#endif
855
856
857#endif /* __IWMReaderCallback_INTERFACE_DEFINED__ */
858
859/*****************************************************************************
860 * IWMReaderCallbackAdvanced interface
861 */
862#ifndef __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__
863#define __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__
864
865DEFINE_GUID(IID_IWMReaderCallbackAdvanced, 0x96406beb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
866#if defined(__cplusplus) && !defined(CINTERFACE)
867MIDL_INTERFACE("96406beb-2b2b-11d3-b36b-00c04f6108ff")
868IWMReaderCallbackAdvanced : public IUnknown
869{
870 virtual HRESULT STDMETHODCALLTYPE OnStreamSample(
871 WORD stream_number,
872 QWORD pts,
873 QWORD duration,
874 DWORD flags,
875 INSSBuffer *sample,
876 void *context) = 0;
877
878 virtual HRESULT STDMETHODCALLTYPE OnTime(
879 QWORD time,
880 void *context) = 0;
881
882 virtual HRESULT STDMETHODCALLTYPE OnStreamSelection(
883 WORD count,
884 WORD *stream_numbers,
885 WMT_STREAM_SELECTION *selections,
886 void *context) = 0;
887
888 virtual HRESULT STDMETHODCALLTYPE OnOutputPropsChanged(
889 DWORD output_number,
890 WM_MEDIA_TYPE *mt,
891 void *context) = 0;
892
893 virtual HRESULT STDMETHODCALLTYPE AllocateForStream(
894 WORD stream_number,
895 DWORD size,
896 INSSBuffer **sample,
897 void *context) = 0;
898
899 virtual HRESULT STDMETHODCALLTYPE AllocateForOutput(
900 DWORD output_number,
901 DWORD size,
902 INSSBuffer **sample,
903 void *context) = 0;
904
905};
906#ifdef __CRT_UUID_DECL
907__CRT_UUID_DECL(IWMReaderCallbackAdvanced, 0x96406beb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
908#endif
909#else
910typedef struct IWMReaderCallbackAdvancedVtbl {
911 BEGIN_INTERFACE
912
913 /*** IUnknown methods ***/
914 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
915 IWMReaderCallbackAdvanced *This,
916 REFIID riid,
917 void **ppvObject);
918
919 ULONG (STDMETHODCALLTYPE *AddRef)(
920 IWMReaderCallbackAdvanced *This);
921
922 ULONG (STDMETHODCALLTYPE *Release)(
923 IWMReaderCallbackAdvanced *This);
924
925 /*** IWMReaderCallbackAdvanced methods ***/
926 HRESULT (STDMETHODCALLTYPE *OnStreamSample)(
927 IWMReaderCallbackAdvanced *This,
928 WORD stream_number,
929 QWORD pts,
930 QWORD duration,
931 DWORD flags,
932 INSSBuffer *sample,
933 void *context);
934
935 HRESULT (STDMETHODCALLTYPE *OnTime)(
936 IWMReaderCallbackAdvanced *This,
937 QWORD time,
938 void *context);
939
940 HRESULT (STDMETHODCALLTYPE *OnStreamSelection)(
941 IWMReaderCallbackAdvanced *This,
942 WORD count,
943 WORD *stream_numbers,
944 WMT_STREAM_SELECTION *selections,
945 void *context);
946
947 HRESULT (STDMETHODCALLTYPE *OnOutputPropsChanged)(
948 IWMReaderCallbackAdvanced *This,
949 DWORD output_number,
950 WM_MEDIA_TYPE *mt,
951 void *context);
952
953 HRESULT (STDMETHODCALLTYPE *AllocateForStream)(
954 IWMReaderCallbackAdvanced *This,
955 WORD stream_number,
956 DWORD size,
957 INSSBuffer **sample,
958 void *context);
959
960 HRESULT (STDMETHODCALLTYPE *AllocateForOutput)(
961 IWMReaderCallbackAdvanced *This,
962 DWORD output_number,
963 DWORD size,
964 INSSBuffer **sample,
965 void *context);
966
967 END_INTERFACE
968} IWMReaderCallbackAdvancedVtbl;
969
970interface IWMReaderCallbackAdvanced {
971 CONST_VTBL IWMReaderCallbackAdvancedVtbl* lpVtbl;
972};
973
974#ifdef COBJMACROS
975#ifndef WIDL_C_INLINE_WRAPPERS
976/*** IUnknown methods ***/
977#define IWMReaderCallbackAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
978#define IWMReaderCallbackAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This)
979#define IWMReaderCallbackAdvanced_Release(This) (This)->lpVtbl->Release(This)
980/*** IWMReaderCallbackAdvanced methods ***/
981#define IWMReaderCallbackAdvanced_OnStreamSample(This,stream_number,pts,duration,flags,sample,context) (This)->lpVtbl->OnStreamSample(This,stream_number,pts,duration,flags,sample,context)
982#define IWMReaderCallbackAdvanced_OnTime(This,time,context) (This)->lpVtbl->OnTime(This,time,context)
983#define IWMReaderCallbackAdvanced_OnStreamSelection(This,count,stream_numbers,selections,context) (This)->lpVtbl->OnStreamSelection(This,count,stream_numbers,selections,context)
984#define IWMReaderCallbackAdvanced_OnOutputPropsChanged(This,output_number,mt,context) (This)->lpVtbl->OnOutputPropsChanged(This,output_number,mt,context)
985#define IWMReaderCallbackAdvanced_AllocateForStream(This,stream_number,size,sample,context) (This)->lpVtbl->AllocateForStream(This,stream_number,size,sample,context)
986#define IWMReaderCallbackAdvanced_AllocateForOutput(This,output_number,size,sample,context) (This)->lpVtbl->AllocateForOutput(This,output_number,size,sample,context)
987#else
988/*** IUnknown methods ***/
989static inline HRESULT IWMReaderCallbackAdvanced_QueryInterface(IWMReaderCallbackAdvanced* This,REFIID riid,void **ppvObject) {
990 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
991}
992static inline ULONG IWMReaderCallbackAdvanced_AddRef(IWMReaderCallbackAdvanced* This) {
993 return This->lpVtbl->AddRef(This);
994}
995static inline ULONG IWMReaderCallbackAdvanced_Release(IWMReaderCallbackAdvanced* This) {
996 return This->lpVtbl->Release(This);
997}
998/*** IWMReaderCallbackAdvanced methods ***/
999static inline HRESULT IWMReaderCallbackAdvanced_OnStreamSample(IWMReaderCallbackAdvanced* This,WORD stream_number,QWORD pts,QWORD duration,DWORD flags,INSSBuffer *sample,void *context) {
1000 return This->lpVtbl->OnStreamSample(This,stream_number,pts,duration,flags,sample,context);
1001}
1002static inline HRESULT IWMReaderCallbackAdvanced_OnTime(IWMReaderCallbackAdvanced* This,QWORD time,void *context) {
1003 return This->lpVtbl->OnTime(This,time,context);
1004}
1005static inline HRESULT IWMReaderCallbackAdvanced_OnStreamSelection(IWMReaderCallbackAdvanced* This,WORD count,WORD *stream_numbers,WMT_STREAM_SELECTION *selections,void *context) {
1006 return This->lpVtbl->OnStreamSelection(This,count,stream_numbers,selections,context);
1007}
1008static inline HRESULT IWMReaderCallbackAdvanced_OnOutputPropsChanged(IWMReaderCallbackAdvanced* This,DWORD output_number,WM_MEDIA_TYPE *mt,void *context) {
1009 return This->lpVtbl->OnOutputPropsChanged(This,output_number,mt,context);
1010}
1011static inline HRESULT IWMReaderCallbackAdvanced_AllocateForStream(IWMReaderCallbackAdvanced* This,WORD stream_number,DWORD size,INSSBuffer **sample,void *context) {
1012 return This->lpVtbl->AllocateForStream(This,stream_number,size,sample,context);
1013}
1014static inline HRESULT IWMReaderCallbackAdvanced_AllocateForOutput(IWMReaderCallbackAdvanced* This,DWORD output_number,DWORD size,INSSBuffer **sample,void *context) {
1015 return This->lpVtbl->AllocateForOutput(This,output_number,size,sample,context);
1016}
1017#endif
1018#endif
1019
1020#endif
1021
1022
1023#endif /* __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__ */
1024
1025/*****************************************************************************
1026 * IWMStreamList interface
1027 */
1028#ifndef __IWMStreamList_INTERFACE_DEFINED__
1029#define __IWMStreamList_INTERFACE_DEFINED__
1030
1031DEFINE_GUID(IID_IWMStreamList, 0x96406bdd, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
1032#if defined(__cplusplus) && !defined(CINTERFACE)
1033MIDL_INTERFACE("96406bdd-2b2b-11d3-b36b-00c04f6108ff")
1034IWMStreamList : public IUnknown
1035{
1036 virtual HRESULT STDMETHODCALLTYPE GetStreams(
1037 WORD *pwStreamNumArray,
1038 WORD *pcStreams) = 0;
1039
1040 virtual HRESULT STDMETHODCALLTYPE AddStream(
1041 WORD wStreamNum) = 0;
1042
1043 virtual HRESULT STDMETHODCALLTYPE RemoveStream(
1044 WORD wStreamNum) = 0;
1045
1046};
1047#ifdef __CRT_UUID_DECL
1048__CRT_UUID_DECL(IWMStreamList, 0x96406bdd, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
1049#endif
1050#else
1051typedef struct IWMStreamListVtbl {
1052 BEGIN_INTERFACE
1053
1054 /*** IUnknown methods ***/
1055 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1056 IWMStreamList *This,
1057 REFIID riid,
1058 void **ppvObject);
1059
1060 ULONG (STDMETHODCALLTYPE *AddRef)(
1061 IWMStreamList *This);
1062
1063 ULONG (STDMETHODCALLTYPE *Release)(
1064 IWMStreamList *This);
1065
1066 /*** IWMStreamList methods ***/
1067 HRESULT (STDMETHODCALLTYPE *GetStreams)(
1068 IWMStreamList *This,
1069 WORD *pwStreamNumArray,
1070 WORD *pcStreams);
1071
1072 HRESULT (STDMETHODCALLTYPE *AddStream)(
1073 IWMStreamList *This,
1074 WORD wStreamNum);
1075
1076 HRESULT (STDMETHODCALLTYPE *RemoveStream)(
1077 IWMStreamList *This,
1078 WORD wStreamNum);
1079
1080 END_INTERFACE
1081} IWMStreamListVtbl;
1082
1083interface IWMStreamList {
1084 CONST_VTBL IWMStreamListVtbl* lpVtbl;
1085};
1086
1087#ifdef COBJMACROS
1088#ifndef WIDL_C_INLINE_WRAPPERS
1089/*** IUnknown methods ***/
1090#define IWMStreamList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1091#define IWMStreamList_AddRef(This) (This)->lpVtbl->AddRef(This)
1092#define IWMStreamList_Release(This) (This)->lpVtbl->Release(This)
1093/*** IWMStreamList methods ***/
1094#define IWMStreamList_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams)
1095#define IWMStreamList_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum)
1096#define IWMStreamList_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum)
1097#else
1098/*** IUnknown methods ***/
1099static inline HRESULT IWMStreamList_QueryInterface(IWMStreamList* This,REFIID riid,void **ppvObject) {
1100 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1101}
1102static inline ULONG IWMStreamList_AddRef(IWMStreamList* This) {
1103 return This->lpVtbl->AddRef(This);
1104}
1105static inline ULONG IWMStreamList_Release(IWMStreamList* This) {
1106 return This->lpVtbl->Release(This);
1107}
1108/*** IWMStreamList methods ***/
1109static inline HRESULT IWMStreamList_GetStreams(IWMStreamList* This,WORD *pwStreamNumArray,WORD *pcStreams) {
1110 return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams);
1111}
1112static inline HRESULT IWMStreamList_AddStream(IWMStreamList* This,WORD wStreamNum) {
1113 return This->lpVtbl->AddStream(This,wStreamNum);
1114}
1115static inline HRESULT IWMStreamList_RemoveStream(IWMStreamList* This,WORD wStreamNum) {
1116 return This->lpVtbl->RemoveStream(This,wStreamNum);
1117}
1118#endif
1119#endif
1120
1121#endif
1122
1123
1124#endif /* __IWMStreamList_INTERFACE_DEFINED__ */
1125
1126/*****************************************************************************
1127 * IWMMutualExclusion interface
1128 */
1129#ifndef __IWMMutualExclusion_INTERFACE_DEFINED__
1130#define __IWMMutualExclusion_INTERFACE_DEFINED__
1131
1132DEFINE_GUID(IID_IWMMutualExclusion, 0x96406bde, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
1133#if defined(__cplusplus) && !defined(CINTERFACE)
1134MIDL_INTERFACE("96406bde-2b2b-11d3-b36b-00c04f6108ff")
1135IWMMutualExclusion : public IWMStreamList
1136{
1137 virtual HRESULT STDMETHODCALLTYPE GetType(
1138 GUID *pguidType) = 0;
1139
1140 virtual HRESULT STDMETHODCALLTYPE SetType(
1141 REFGUID guidType) = 0;
1142
1143};
1144#ifdef __CRT_UUID_DECL
1145__CRT_UUID_DECL(IWMMutualExclusion, 0x96406bde, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
1146#endif
1147#else
1148typedef struct IWMMutualExclusionVtbl {
1149 BEGIN_INTERFACE
1150
1151 /*** IUnknown methods ***/
1152 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1153 IWMMutualExclusion *This,
1154 REFIID riid,
1155 void **ppvObject);
1156
1157 ULONG (STDMETHODCALLTYPE *AddRef)(
1158 IWMMutualExclusion *This);
1159
1160 ULONG (STDMETHODCALLTYPE *Release)(
1161 IWMMutualExclusion *This);
1162
1163 /*** IWMStreamList methods ***/
1164 HRESULT (STDMETHODCALLTYPE *GetStreams)(
1165 IWMMutualExclusion *This,
1166 WORD *pwStreamNumArray,
1167 WORD *pcStreams);
1168
1169 HRESULT (STDMETHODCALLTYPE *AddStream)(
1170 IWMMutualExclusion *This,
1171 WORD wStreamNum);
1172
1173 HRESULT (STDMETHODCALLTYPE *RemoveStream)(
1174 IWMMutualExclusion *This,
1175 WORD wStreamNum);
1176
1177 /*** IWMMutualExclusion methods ***/
1178 HRESULT (STDMETHODCALLTYPE *GetType)(
1179 IWMMutualExclusion *This,
1180 GUID *pguidType);
1181
1182 HRESULT (STDMETHODCALLTYPE *SetType)(
1183 IWMMutualExclusion *This,
1184 REFGUID guidType);
1185
1186 END_INTERFACE
1187} IWMMutualExclusionVtbl;
1188
1189interface IWMMutualExclusion {
1190 CONST_VTBL IWMMutualExclusionVtbl* lpVtbl;
1191};
1192
1193#ifdef COBJMACROS
1194#ifndef WIDL_C_INLINE_WRAPPERS
1195/*** IUnknown methods ***/
1196#define IWMMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1197#define IWMMutualExclusion_AddRef(This) (This)->lpVtbl->AddRef(This)
1198#define IWMMutualExclusion_Release(This) (This)->lpVtbl->Release(This)
1199/*** IWMStreamList methods ***/
1200#define IWMMutualExclusion_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams)
1201#define IWMMutualExclusion_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum)
1202#define IWMMutualExclusion_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum)
1203/*** IWMMutualExclusion methods ***/
1204#define IWMMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
1205#define IWMMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType)
1206#else
1207/*** IUnknown methods ***/
1208static inline HRESULT IWMMutualExclusion_QueryInterface(IWMMutualExclusion* This,REFIID riid,void **ppvObject) {
1209 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1210}
1211static inline ULONG IWMMutualExclusion_AddRef(IWMMutualExclusion* This) {
1212 return This->lpVtbl->AddRef(This);
1213}
1214static inline ULONG IWMMutualExclusion_Release(IWMMutualExclusion* This) {
1215 return This->lpVtbl->Release(This);
1216}
1217/*** IWMStreamList methods ***/
1218static inline HRESULT IWMMutualExclusion_GetStreams(IWMMutualExclusion* This,WORD *pwStreamNumArray,WORD *pcStreams) {
1219 return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams);
1220}
1221static inline HRESULT IWMMutualExclusion_AddStream(IWMMutualExclusion* This,WORD wStreamNum) {
1222 return This->lpVtbl->AddStream(This,wStreamNum);
1223}
1224static inline HRESULT IWMMutualExclusion_RemoveStream(IWMMutualExclusion* This,WORD wStreamNum) {
1225 return This->lpVtbl->RemoveStream(This,wStreamNum);
1226}
1227/*** IWMMutualExclusion methods ***/
1228static inline HRESULT IWMMutualExclusion_GetType(IWMMutualExclusion* This,GUID *pguidType) {
1229 return This->lpVtbl->GetType(This,pguidType);
1230}
1231static inline HRESULT IWMMutualExclusion_SetType(IWMMutualExclusion* This,REFGUID guidType) {
1232 return This->lpVtbl->SetType(This,guidType);
1233}
1234#endif
1235#endif
1236
1237#endif
1238
1239
1240#endif /* __IWMMutualExclusion_INTERFACE_DEFINED__ */
1241
1242/*****************************************************************************
1243 * IWMBandwidthSharing interface
1244 */
1245#ifndef __IWMBandwidthSharing_INTERFACE_DEFINED__
1246#define __IWMBandwidthSharing_INTERFACE_DEFINED__
1247
1248DEFINE_GUID(IID_IWMBandwidthSharing, 0xad694af1, 0xf8d9, 0x42f8, 0xbc,0x47, 0x70,0x31,0x1b,0x0c,0x4f,0x9e);
1249#if defined(__cplusplus) && !defined(CINTERFACE)
1250MIDL_INTERFACE("ad694af1-f8d9-42f8-bc47-70311b0c4f9e")
1251IWMBandwidthSharing : public IWMStreamList
1252{
1253 virtual HRESULT STDMETHODCALLTYPE GetType(
1254 GUID *guid) = 0;
1255
1256 virtual HRESULT STDMETHODCALLTYPE SetType(
1257 REFGUID guid) = 0;
1258
1259 virtual HRESULT STDMETHODCALLTYPE GetBandwidth(
1260 DWORD *bitrate,
1261 DWORD *buffer) = 0;
1262
1263 virtual HRESULT STDMETHODCALLTYPE SetBandwidth(
1264 DWORD bitrate,
1265 DWORD buffer) = 0;
1266
1267};
1268#ifdef __CRT_UUID_DECL
1269__CRT_UUID_DECL(IWMBandwidthSharing, 0xad694af1, 0xf8d9, 0x42f8, 0xbc,0x47, 0x70,0x31,0x1b,0x0c,0x4f,0x9e)
1270#endif
1271#else
1272typedef struct IWMBandwidthSharingVtbl {
1273 BEGIN_INTERFACE
1274
1275 /*** IUnknown methods ***/
1276 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1277 IWMBandwidthSharing *This,
1278 REFIID riid,
1279 void **ppvObject);
1280
1281 ULONG (STDMETHODCALLTYPE *AddRef)(
1282 IWMBandwidthSharing *This);
1283
1284 ULONG (STDMETHODCALLTYPE *Release)(
1285 IWMBandwidthSharing *This);
1286
1287 /*** IWMStreamList methods ***/
1288 HRESULT (STDMETHODCALLTYPE *GetStreams)(
1289 IWMBandwidthSharing *This,
1290 WORD *pwStreamNumArray,
1291 WORD *pcStreams);
1292
1293 HRESULT (STDMETHODCALLTYPE *AddStream)(
1294 IWMBandwidthSharing *This,
1295 WORD wStreamNum);
1296
1297 HRESULT (STDMETHODCALLTYPE *RemoveStream)(
1298 IWMBandwidthSharing *This,
1299 WORD wStreamNum);
1300
1301 /*** IWMBandwidthSharing methods ***/
1302 HRESULT (STDMETHODCALLTYPE *GetType)(
1303 IWMBandwidthSharing *This,
1304 GUID *guid);
1305
1306 HRESULT (STDMETHODCALLTYPE *SetType)(
1307 IWMBandwidthSharing *This,
1308 REFGUID guid);
1309
1310 HRESULT (STDMETHODCALLTYPE *GetBandwidth)(
1311 IWMBandwidthSharing *This,
1312 DWORD *bitrate,
1313 DWORD *buffer);
1314
1315 HRESULT (STDMETHODCALLTYPE *SetBandwidth)(
1316 IWMBandwidthSharing *This,
1317 DWORD bitrate,
1318 DWORD buffer);
1319
1320 END_INTERFACE
1321} IWMBandwidthSharingVtbl;
1322
1323interface IWMBandwidthSharing {
1324 CONST_VTBL IWMBandwidthSharingVtbl* lpVtbl;
1325};
1326
1327#ifdef COBJMACROS
1328#ifndef WIDL_C_INLINE_WRAPPERS
1329/*** IUnknown methods ***/
1330#define IWMBandwidthSharing_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1331#define IWMBandwidthSharing_AddRef(This) (This)->lpVtbl->AddRef(This)
1332#define IWMBandwidthSharing_Release(This) (This)->lpVtbl->Release(This)
1333/*** IWMStreamList methods ***/
1334#define IWMBandwidthSharing_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams)
1335#define IWMBandwidthSharing_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum)
1336#define IWMBandwidthSharing_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum)
1337/*** IWMBandwidthSharing methods ***/
1338#define IWMBandwidthSharing_GetType(This,guid) (This)->lpVtbl->GetType(This,guid)
1339#define IWMBandwidthSharing_SetType(This,guid) (This)->lpVtbl->SetType(This,guid)
1340#define IWMBandwidthSharing_GetBandwidth(This,bitrate,buffer) (This)->lpVtbl->GetBandwidth(This,bitrate,buffer)
1341#define IWMBandwidthSharing_SetBandwidth(This,bitrate,buffer) (This)->lpVtbl->SetBandwidth(This,bitrate,buffer)
1342#else
1343/*** IUnknown methods ***/
1344static inline HRESULT IWMBandwidthSharing_QueryInterface(IWMBandwidthSharing* This,REFIID riid,void **ppvObject) {
1345 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1346}
1347static inline ULONG IWMBandwidthSharing_AddRef(IWMBandwidthSharing* This) {
1348 return This->lpVtbl->AddRef(This);
1349}
1350static inline ULONG IWMBandwidthSharing_Release(IWMBandwidthSharing* This) {
1351 return This->lpVtbl->Release(This);
1352}
1353/*** IWMStreamList methods ***/
1354static inline HRESULT IWMBandwidthSharing_GetStreams(IWMBandwidthSharing* This,WORD *pwStreamNumArray,WORD *pcStreams) {
1355 return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams);
1356}
1357static inline HRESULT IWMBandwidthSharing_AddStream(IWMBandwidthSharing* This,WORD wStreamNum) {
1358 return This->lpVtbl->AddStream(This,wStreamNum);
1359}
1360static inline HRESULT IWMBandwidthSharing_RemoveStream(IWMBandwidthSharing* This,WORD wStreamNum) {
1361 return This->lpVtbl->RemoveStream(This,wStreamNum);
1362}
1363/*** IWMBandwidthSharing methods ***/
1364static inline HRESULT IWMBandwidthSharing_GetType(IWMBandwidthSharing* This,GUID *guid) {
1365 return This->lpVtbl->GetType(This,guid);
1366}
1367static inline HRESULT IWMBandwidthSharing_SetType(IWMBandwidthSharing* This,REFGUID guid) {
1368 return This->lpVtbl->SetType(This,guid);
1369}
1370static inline HRESULT IWMBandwidthSharing_GetBandwidth(IWMBandwidthSharing* This,DWORD *bitrate,DWORD *buffer) {
1371 return This->lpVtbl->GetBandwidth(This,bitrate,buffer);
1372}
1373static inline HRESULT IWMBandwidthSharing_SetBandwidth(IWMBandwidthSharing* This,DWORD bitrate,DWORD buffer) {
1374 return This->lpVtbl->SetBandwidth(This,bitrate,buffer);
1375}
1376#endif
1377#endif
1378
1379#endif
1380
1381
1382#endif /* __IWMBandwidthSharing_INTERFACE_DEFINED__ */
1383
1384/*****************************************************************************
1385 * IWMStreamPrioritization interface
1386 */
1387#ifndef __IWMStreamPrioritization_INTERFACE_DEFINED__
1388#define __IWMStreamPrioritization_INTERFACE_DEFINED__
1389
1390DEFINE_GUID(IID_IWMStreamPrioritization, 0x8c1c6090, 0xf9a8, 0x4748, 0x8e,0xc3, 0xdd,0x11,0x08,0xba,0x1e,0x77);
1391#if defined(__cplusplus) && !defined(CINTERFACE)
1392MIDL_INTERFACE("8c1c6090-f9a8-4748-8ec3-dd1108ba1e77")
1393IWMStreamPrioritization : public IUnknown
1394{
1395 virtual HRESULT STDMETHODCALLTYPE GetPriorityRecords(
1396 WM_STREAM_PRIORITY_RECORD *array,
1397 WORD *records) = 0;
1398
1399 virtual HRESULT STDMETHODCALLTYPE SetPriorityRecords(
1400 WM_STREAM_PRIORITY_RECORD *array,
1401 WORD records) = 0;
1402
1403};
1404#ifdef __CRT_UUID_DECL
1405__CRT_UUID_DECL(IWMStreamPrioritization, 0x8c1c6090, 0xf9a8, 0x4748, 0x8e,0xc3, 0xdd,0x11,0x08,0xba,0x1e,0x77)
1406#endif
1407#else
1408typedef struct IWMStreamPrioritizationVtbl {
1409 BEGIN_INTERFACE
1410
1411 /*** IUnknown methods ***/
1412 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1413 IWMStreamPrioritization *This,
1414 REFIID riid,
1415 void **ppvObject);
1416
1417 ULONG (STDMETHODCALLTYPE *AddRef)(
1418 IWMStreamPrioritization *This);
1419
1420 ULONG (STDMETHODCALLTYPE *Release)(
1421 IWMStreamPrioritization *This);
1422
1423 /*** IWMStreamPrioritization methods ***/
1424 HRESULT (STDMETHODCALLTYPE *GetPriorityRecords)(
1425 IWMStreamPrioritization *This,
1426 WM_STREAM_PRIORITY_RECORD *array,
1427 WORD *records);
1428
1429 HRESULT (STDMETHODCALLTYPE *SetPriorityRecords)(
1430 IWMStreamPrioritization *This,
1431 WM_STREAM_PRIORITY_RECORD *array,
1432 WORD records);
1433
1434 END_INTERFACE
1435} IWMStreamPrioritizationVtbl;
1436
1437interface IWMStreamPrioritization {
1438 CONST_VTBL IWMStreamPrioritizationVtbl* lpVtbl;
1439};
1440
1441#ifdef COBJMACROS
1442#ifndef WIDL_C_INLINE_WRAPPERS
1443/*** IUnknown methods ***/
1444#define IWMStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1445#define IWMStreamPrioritization_AddRef(This) (This)->lpVtbl->AddRef(This)
1446#define IWMStreamPrioritization_Release(This) (This)->lpVtbl->Release(This)
1447/*** IWMStreamPrioritization methods ***/
1448#define IWMStreamPrioritization_GetPriorityRecords(This,array,records) (This)->lpVtbl->GetPriorityRecords(This,array,records)
1449#define IWMStreamPrioritization_SetPriorityRecords(This,array,records) (This)->lpVtbl->SetPriorityRecords(This,array,records)
1450#else
1451/*** IUnknown methods ***/
1452static inline HRESULT IWMStreamPrioritization_QueryInterface(IWMStreamPrioritization* This,REFIID riid,void **ppvObject) {
1453 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1454}
1455static inline ULONG IWMStreamPrioritization_AddRef(IWMStreamPrioritization* This) {
1456 return This->lpVtbl->AddRef(This);
1457}
1458static inline ULONG IWMStreamPrioritization_Release(IWMStreamPrioritization* This) {
1459 return This->lpVtbl->Release(This);
1460}
1461/*** IWMStreamPrioritization methods ***/
1462static inline HRESULT IWMStreamPrioritization_GetPriorityRecords(IWMStreamPrioritization* This,WM_STREAM_PRIORITY_RECORD *array,WORD *records) {
1463 return This->lpVtbl->GetPriorityRecords(This,array,records);
1464}
1465static inline HRESULT IWMStreamPrioritization_SetPriorityRecords(IWMStreamPrioritization* This,WM_STREAM_PRIORITY_RECORD *array,WORD records) {
1466 return This->lpVtbl->SetPriorityRecords(This,array,records);
1467}
1468#endif
1469#endif
1470
1471#endif
1472
1473
1474#endif /* __IWMStreamPrioritization_INTERFACE_DEFINED__ */
1475
1476/*****************************************************************************
1477 * IWMStreamConfig interface
1478 */
1479#ifndef __IWMStreamConfig_INTERFACE_DEFINED__
1480#define __IWMStreamConfig_INTERFACE_DEFINED__
1481
1482DEFINE_GUID(IID_IWMStreamConfig, 0x96406bdc, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
1483#if defined(__cplusplus) && !defined(CINTERFACE)
1484MIDL_INTERFACE("96406bdc-2b2b-11d3-b36b-00c04f6108ff")
1485IWMStreamConfig : public IUnknown
1486{
1487 virtual HRESULT STDMETHODCALLTYPE GetStreamType(
1488 GUID *pguidStreamType) = 0;
1489
1490 virtual HRESULT STDMETHODCALLTYPE GetStreamNumber(
1491 WORD *pwStreamNum) = 0;
1492
1493 virtual HRESULT STDMETHODCALLTYPE SetStreamNumber(
1494 WORD wStreamNum) = 0;
1495
1496 virtual HRESULT STDMETHODCALLTYPE GetStreamName(
1497 WCHAR *pwszStreamName,
1498 WORD *pcchStreamName) = 0;
1499
1500 virtual HRESULT STDMETHODCALLTYPE SetStreamName(
1501 LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName) = 0;
1502
1503 virtual HRESULT STDMETHODCALLTYPE GetConnectionName(
1504 WCHAR *pwszInputName,
1505 WORD *pcchInputName) = 0;
1506
1507 virtual HRESULT STDMETHODCALLTYPE SetConnectionName(
1508 LPCWSTR_WMSDK_TYPE_SAFE pwszInputName) = 0;
1509
1510 virtual HRESULT STDMETHODCALLTYPE GetBitrate(
1511 DWORD *pdwBitrate) = 0;
1512
1513 virtual HRESULT STDMETHODCALLTYPE SetBitrate(
1514 DWORD pdwBitrate) = 0;
1515
1516 virtual HRESULT STDMETHODCALLTYPE GetBufferWindow(
1517 DWORD *pmsBufferWindow) = 0;
1518
1519 virtual HRESULT STDMETHODCALLTYPE SetBufferWindow(
1520 DWORD msBufferWindow) = 0;
1521
1522};
1523#ifdef __CRT_UUID_DECL
1524__CRT_UUID_DECL(IWMStreamConfig, 0x96406bdc, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
1525#endif
1526#else
1527typedef struct IWMStreamConfigVtbl {
1528 BEGIN_INTERFACE
1529
1530 /*** IUnknown methods ***/
1531 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1532 IWMStreamConfig *This,
1533 REFIID riid,
1534 void **ppvObject);
1535
1536 ULONG (STDMETHODCALLTYPE *AddRef)(
1537 IWMStreamConfig *This);
1538
1539 ULONG (STDMETHODCALLTYPE *Release)(
1540 IWMStreamConfig *This);
1541
1542 /*** IWMStreamConfig methods ***/
1543 HRESULT (STDMETHODCALLTYPE *GetStreamType)(
1544 IWMStreamConfig *This,
1545 GUID *pguidStreamType);
1546
1547 HRESULT (STDMETHODCALLTYPE *GetStreamNumber)(
1548 IWMStreamConfig *This,
1549 WORD *pwStreamNum);
1550
1551 HRESULT (STDMETHODCALLTYPE *SetStreamNumber)(
1552 IWMStreamConfig *This,
1553 WORD wStreamNum);
1554
1555 HRESULT (STDMETHODCALLTYPE *GetStreamName)(
1556 IWMStreamConfig *This,
1557 WCHAR *pwszStreamName,
1558 WORD *pcchStreamName);
1559
1560 HRESULT (STDMETHODCALLTYPE *SetStreamName)(
1561 IWMStreamConfig *This,
1562 LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName);
1563
1564 HRESULT (STDMETHODCALLTYPE *GetConnectionName)(
1565 IWMStreamConfig *This,
1566 WCHAR *pwszInputName,
1567 WORD *pcchInputName);
1568
1569 HRESULT (STDMETHODCALLTYPE *SetConnectionName)(
1570 IWMStreamConfig *This,
1571 LPCWSTR_WMSDK_TYPE_SAFE pwszInputName);
1572
1573 HRESULT (STDMETHODCALLTYPE *GetBitrate)(
1574 IWMStreamConfig *This,
1575 DWORD *pdwBitrate);
1576
1577 HRESULT (STDMETHODCALLTYPE *SetBitrate)(
1578 IWMStreamConfig *This,
1579 DWORD pdwBitrate);
1580
1581 HRESULT (STDMETHODCALLTYPE *GetBufferWindow)(
1582 IWMStreamConfig *This,
1583 DWORD *pmsBufferWindow);
1584
1585 HRESULT (STDMETHODCALLTYPE *SetBufferWindow)(
1586 IWMStreamConfig *This,
1587 DWORD msBufferWindow);
1588
1589 END_INTERFACE
1590} IWMStreamConfigVtbl;
1591
1592interface IWMStreamConfig {
1593 CONST_VTBL IWMStreamConfigVtbl* lpVtbl;
1594};
1595
1596#ifdef COBJMACROS
1597#ifndef WIDL_C_INLINE_WRAPPERS
1598/*** IUnknown methods ***/
1599#define IWMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1600#define IWMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
1601#define IWMStreamConfig_Release(This) (This)->lpVtbl->Release(This)
1602/*** IWMStreamConfig methods ***/
1603#define IWMStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType)
1604#define IWMStreamConfig_GetStreamNumber(This,pwStreamNum) (This)->lpVtbl->GetStreamNumber(This,pwStreamNum)
1605#define IWMStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum)
1606#define IWMStreamConfig_GetStreamName(This,pwszStreamName,pcchStreamName) (This)->lpVtbl->GetStreamName(This,pwszStreamName,pcchStreamName)
1607#define IWMStreamConfig_SetStreamName(This,pwszStreamName) (This)->lpVtbl->SetStreamName(This,pwszStreamName)
1608#define IWMStreamConfig_GetConnectionName(This,pwszInputName,pcchInputName) (This)->lpVtbl->GetConnectionName(This,pwszInputName,pcchInputName)
1609#define IWMStreamConfig_SetConnectionName(This,pwszInputName) (This)->lpVtbl->SetConnectionName(This,pwszInputName)
1610#define IWMStreamConfig_GetBitrate(This,pdwBitrate) (This)->lpVtbl->GetBitrate(This,pdwBitrate)
1611#define IWMStreamConfig_SetBitrate(This,pdwBitrate) (This)->lpVtbl->SetBitrate(This,pdwBitrate)
1612#define IWMStreamConfig_GetBufferWindow(This,pmsBufferWindow) (This)->lpVtbl->GetBufferWindow(This,pmsBufferWindow)
1613#define IWMStreamConfig_SetBufferWindow(This,msBufferWindow) (This)->lpVtbl->SetBufferWindow(This,msBufferWindow)
1614#else
1615/*** IUnknown methods ***/
1616static inline HRESULT IWMStreamConfig_QueryInterface(IWMStreamConfig* This,REFIID riid,void **ppvObject) {
1617 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1618}
1619static inline ULONG IWMStreamConfig_AddRef(IWMStreamConfig* This) {
1620 return This->lpVtbl->AddRef(This);
1621}
1622static inline ULONG IWMStreamConfig_Release(IWMStreamConfig* This) {
1623 return This->lpVtbl->Release(This);
1624}
1625/*** IWMStreamConfig methods ***/
1626static inline HRESULT IWMStreamConfig_GetStreamType(IWMStreamConfig* This,GUID *pguidStreamType) {
1627 return This->lpVtbl->GetStreamType(This,pguidStreamType);
1628}
1629static inline HRESULT IWMStreamConfig_GetStreamNumber(IWMStreamConfig* This,WORD *pwStreamNum) {
1630 return This->lpVtbl->GetStreamNumber(This,pwStreamNum);
1631}
1632static inline HRESULT IWMStreamConfig_SetStreamNumber(IWMStreamConfig* This,WORD wStreamNum) {
1633 return This->lpVtbl->SetStreamNumber(This,wStreamNum);
1634}
1635static inline HRESULT IWMStreamConfig_GetStreamName(IWMStreamConfig* This,WCHAR *pwszStreamName,WORD *pcchStreamName) {
1636 return This->lpVtbl->GetStreamName(This,pwszStreamName,pcchStreamName);
1637}
1638static inline HRESULT IWMStreamConfig_SetStreamName(IWMStreamConfig* This,LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName) {
1639 return This->lpVtbl->SetStreamName(This,pwszStreamName);
1640}
1641static inline HRESULT IWMStreamConfig_GetConnectionName(IWMStreamConfig* This,WCHAR *pwszInputName,WORD *pcchInputName) {
1642 return This->lpVtbl->GetConnectionName(This,pwszInputName,pcchInputName);
1643}
1644static inline HRESULT IWMStreamConfig_SetConnectionName(IWMStreamConfig* This,LPCWSTR_WMSDK_TYPE_SAFE pwszInputName) {
1645 return This->lpVtbl->SetConnectionName(This,pwszInputName);
1646}
1647static inline HRESULT IWMStreamConfig_GetBitrate(IWMStreamConfig* This,DWORD *pdwBitrate) {
1648 return This->lpVtbl->GetBitrate(This,pdwBitrate);
1649}
1650static inline HRESULT IWMStreamConfig_SetBitrate(IWMStreamConfig* This,DWORD pdwBitrate) {
1651 return This->lpVtbl->SetBitrate(This,pdwBitrate);
1652}
1653static inline HRESULT IWMStreamConfig_GetBufferWindow(IWMStreamConfig* This,DWORD *pmsBufferWindow) {
1654 return This->lpVtbl->GetBufferWindow(This,pmsBufferWindow);
1655}
1656static inline HRESULT IWMStreamConfig_SetBufferWindow(IWMStreamConfig* This,DWORD msBufferWindow) {
1657 return This->lpVtbl->SetBufferWindow(This,msBufferWindow);
1658}
1659#endif
1660#endif
1661
1662#endif
1663
1664
1665#endif /* __IWMStreamConfig_INTERFACE_DEFINED__ */
1666
1667/*****************************************************************************
1668 * IWMProfile interface
1669 */
1670#ifndef __IWMProfile_INTERFACE_DEFINED__
1671#define __IWMProfile_INTERFACE_DEFINED__
1672
1673DEFINE_GUID(IID_IWMProfile, 0x96406bdb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
1674#if defined(__cplusplus) && !defined(CINTERFACE)
1675MIDL_INTERFACE("96406bdb-2b2b-11d3-b36b-00c04f6108ff")
1676IWMProfile : public IUnknown
1677{
1678 virtual HRESULT STDMETHODCALLTYPE GetVersion(
1679 WMT_VERSION *pdwVersion) = 0;
1680
1681 virtual HRESULT STDMETHODCALLTYPE GetName(
1682 WCHAR *pwszName,
1683 DWORD *pcchName) = 0;
1684
1685 virtual HRESULT STDMETHODCALLTYPE SetName(
1686 const WCHAR *pwszName) = 0;
1687
1688 virtual HRESULT STDMETHODCALLTYPE GetDescription(
1689 WCHAR *pwszDescription,
1690 DWORD *pcchDescription) = 0;
1691
1692 virtual HRESULT STDMETHODCALLTYPE SetDescription(
1693 const WCHAR *pwszDescription) = 0;
1694
1695 virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
1696 DWORD *pcStreams) = 0;
1697
1698 virtual HRESULT STDMETHODCALLTYPE GetStream(
1699 DWORD dwStreamIndex,
1700 IWMStreamConfig **ppConfig) = 0;
1701
1702 virtual HRESULT STDMETHODCALLTYPE GetStreamByNumber(
1703 WORD wStreamNum,
1704 IWMStreamConfig **ppConfig) = 0;
1705
1706 virtual HRESULT STDMETHODCALLTYPE RemoveStream(
1707 IWMStreamConfig *pConfig) = 0;
1708
1709 virtual HRESULT STDMETHODCALLTYPE RemoveStreamByNumber(
1710 WORD wStreamNum) = 0;
1711
1712 virtual HRESULT STDMETHODCALLTYPE AddStream(
1713 IWMStreamConfig *pConfig) = 0;
1714
1715 virtual HRESULT STDMETHODCALLTYPE ReconfigStream(
1716 IWMStreamConfig *pConfig) = 0;
1717
1718 virtual HRESULT STDMETHODCALLTYPE CreateNewStream(
1719 REFGUID guidStreamType,
1720 IWMStreamConfig **ppConfig) = 0;
1721
1722 virtual HRESULT STDMETHODCALLTYPE GetMutualExclusionCount(
1723 DWORD *pcME) = 0;
1724
1725 virtual HRESULT STDMETHODCALLTYPE GetMutualExclusion(
1726 DWORD dwMEIndex,
1727 IWMMutualExclusion **ppME) = 0;
1728
1729 virtual HRESULT STDMETHODCALLTYPE RemoveMutualExclusion(
1730 IWMMutualExclusion *pME) = 0;
1731
1732 virtual HRESULT STDMETHODCALLTYPE AddMutualExclusion(
1733 IWMMutualExclusion *pME) = 0;
1734
1735 virtual HRESULT STDMETHODCALLTYPE CreateNewMutualExclusion(
1736 IWMMutualExclusion **ppME) = 0;
1737
1738};
1739#ifdef __CRT_UUID_DECL
1740__CRT_UUID_DECL(IWMProfile, 0x96406bdb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
1741#endif
1742#else
1743typedef struct IWMProfileVtbl {
1744 BEGIN_INTERFACE
1745
1746 /*** IUnknown methods ***/
1747 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1748 IWMProfile *This,
1749 REFIID riid,
1750 void **ppvObject);
1751
1752 ULONG (STDMETHODCALLTYPE *AddRef)(
1753 IWMProfile *This);
1754
1755 ULONG (STDMETHODCALLTYPE *Release)(
1756 IWMProfile *This);
1757
1758 /*** IWMProfile methods ***/
1759 HRESULT (STDMETHODCALLTYPE *GetVersion)(
1760 IWMProfile *This,
1761 WMT_VERSION *pdwVersion);
1762
1763 HRESULT (STDMETHODCALLTYPE *GetName)(
1764 IWMProfile *This,
1765 WCHAR *pwszName,
1766 DWORD *pcchName);
1767
1768 HRESULT (STDMETHODCALLTYPE *SetName)(
1769 IWMProfile *This,
1770 const WCHAR *pwszName);
1771
1772 HRESULT (STDMETHODCALLTYPE *GetDescription)(
1773 IWMProfile *This,
1774 WCHAR *pwszDescription,
1775 DWORD *pcchDescription);
1776
1777 HRESULT (STDMETHODCALLTYPE *SetDescription)(
1778 IWMProfile *This,
1779 const WCHAR *pwszDescription);
1780
1781 HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
1782 IWMProfile *This,
1783 DWORD *pcStreams);
1784
1785 HRESULT (STDMETHODCALLTYPE *GetStream)(
1786 IWMProfile *This,
1787 DWORD dwStreamIndex,
1788 IWMStreamConfig **ppConfig);
1789
1790 HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)(
1791 IWMProfile *This,
1792 WORD wStreamNum,
1793 IWMStreamConfig **ppConfig);
1794
1795 HRESULT (STDMETHODCALLTYPE *RemoveStream)(
1796 IWMProfile *This,
1797 IWMStreamConfig *pConfig);
1798
1799 HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)(
1800 IWMProfile *This,
1801 WORD wStreamNum);
1802
1803 HRESULT (STDMETHODCALLTYPE *AddStream)(
1804 IWMProfile *This,
1805 IWMStreamConfig *pConfig);
1806
1807 HRESULT (STDMETHODCALLTYPE *ReconfigStream)(
1808 IWMProfile *This,
1809 IWMStreamConfig *pConfig);
1810
1811 HRESULT (STDMETHODCALLTYPE *CreateNewStream)(
1812 IWMProfile *This,
1813 REFGUID guidStreamType,
1814 IWMStreamConfig **ppConfig);
1815
1816 HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)(
1817 IWMProfile *This,
1818 DWORD *pcME);
1819
1820 HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)(
1821 IWMProfile *This,
1822 DWORD dwMEIndex,
1823 IWMMutualExclusion **ppME);
1824
1825 HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)(
1826 IWMProfile *This,
1827 IWMMutualExclusion *pME);
1828
1829 HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)(
1830 IWMProfile *This,
1831 IWMMutualExclusion *pME);
1832
1833 HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)(
1834 IWMProfile *This,
1835 IWMMutualExclusion **ppME);
1836
1837 END_INTERFACE
1838} IWMProfileVtbl;
1839
1840interface IWMProfile {
1841 CONST_VTBL IWMProfileVtbl* lpVtbl;
1842};
1843
1844#ifdef COBJMACROS
1845#ifndef WIDL_C_INLINE_WRAPPERS
1846/*** IUnknown methods ***/
1847#define IWMProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1848#define IWMProfile_AddRef(This) (This)->lpVtbl->AddRef(This)
1849#define IWMProfile_Release(This) (This)->lpVtbl->Release(This)
1850/*** IWMProfile methods ***/
1851#define IWMProfile_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion)
1852#define IWMProfile_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName)
1853#define IWMProfile_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName)
1854#define IWMProfile_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription)
1855#define IWMProfile_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription)
1856#define IWMProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams)
1857#define IWMProfile_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig)
1858#define IWMProfile_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig)
1859#define IWMProfile_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig)
1860#define IWMProfile_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum)
1861#define IWMProfile_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig)
1862#define IWMProfile_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig)
1863#define IWMProfile_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig)
1864#define IWMProfile_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME)
1865#define IWMProfile_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME)
1866#define IWMProfile_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME)
1867#define IWMProfile_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME)
1868#define IWMProfile_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME)
1869#else
1870/*** IUnknown methods ***/
1871static inline HRESULT IWMProfile_QueryInterface(IWMProfile* This,REFIID riid,void **ppvObject) {
1872 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1873}
1874static inline ULONG IWMProfile_AddRef(IWMProfile* This) {
1875 return This->lpVtbl->AddRef(This);
1876}
1877static inline ULONG IWMProfile_Release(IWMProfile* This) {
1878 return This->lpVtbl->Release(This);
1879}
1880/*** IWMProfile methods ***/
1881static inline HRESULT IWMProfile_GetVersion(IWMProfile* This,WMT_VERSION *pdwVersion) {
1882 return This->lpVtbl->GetVersion(This,pdwVersion);
1883}
1884static inline HRESULT IWMProfile_GetName(IWMProfile* This,WCHAR *pwszName,DWORD *pcchName) {
1885 return This->lpVtbl->GetName(This,pwszName,pcchName);
1886}
1887static inline HRESULT IWMProfile_SetName(IWMProfile* This,const WCHAR *pwszName) {
1888 return This->lpVtbl->SetName(This,pwszName);
1889}
1890static inline HRESULT IWMProfile_GetDescription(IWMProfile* This,WCHAR *pwszDescription,DWORD *pcchDescription) {
1891 return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription);
1892}
1893static inline HRESULT IWMProfile_SetDescription(IWMProfile* This,const WCHAR *pwszDescription) {
1894 return This->lpVtbl->SetDescription(This,pwszDescription);
1895}
1896static inline HRESULT IWMProfile_GetStreamCount(IWMProfile* This,DWORD *pcStreams) {
1897 return This->lpVtbl->GetStreamCount(This,pcStreams);
1898}
1899static inline HRESULT IWMProfile_GetStream(IWMProfile* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) {
1900 return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig);
1901}
1902static inline HRESULT IWMProfile_GetStreamByNumber(IWMProfile* This,WORD wStreamNum,IWMStreamConfig **ppConfig) {
1903 return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig);
1904}
1905static inline HRESULT IWMProfile_RemoveStream(IWMProfile* This,IWMStreamConfig *pConfig) {
1906 return This->lpVtbl->RemoveStream(This,pConfig);
1907}
1908static inline HRESULT IWMProfile_RemoveStreamByNumber(IWMProfile* This,WORD wStreamNum) {
1909 return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum);
1910}
1911static inline HRESULT IWMProfile_AddStream(IWMProfile* This,IWMStreamConfig *pConfig) {
1912 return This->lpVtbl->AddStream(This,pConfig);
1913}
1914static inline HRESULT IWMProfile_ReconfigStream(IWMProfile* This,IWMStreamConfig *pConfig) {
1915 return This->lpVtbl->ReconfigStream(This,pConfig);
1916}
1917static inline HRESULT IWMProfile_CreateNewStream(IWMProfile* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) {
1918 return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig);
1919}
1920static inline HRESULT IWMProfile_GetMutualExclusionCount(IWMProfile* This,DWORD *pcME) {
1921 return This->lpVtbl->GetMutualExclusionCount(This,pcME);
1922}
1923static inline HRESULT IWMProfile_GetMutualExclusion(IWMProfile* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) {
1924 return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME);
1925}
1926static inline HRESULT IWMProfile_RemoveMutualExclusion(IWMProfile* This,IWMMutualExclusion *pME) {
1927 return This->lpVtbl->RemoveMutualExclusion(This,pME);
1928}
1929static inline HRESULT IWMProfile_AddMutualExclusion(IWMProfile* This,IWMMutualExclusion *pME) {
1930 return This->lpVtbl->AddMutualExclusion(This,pME);
1931}
1932static inline HRESULT IWMProfile_CreateNewMutualExclusion(IWMProfile* This,IWMMutualExclusion **ppME) {
1933 return This->lpVtbl->CreateNewMutualExclusion(This,ppME);
1934}
1935#endif
1936#endif
1937
1938#endif
1939
1940
1941#endif /* __IWMProfile_INTERFACE_DEFINED__ */
1942
1943/*****************************************************************************
1944 * IWMProfile2 interface
1945 */
1946#ifndef __IWMProfile2_INTERFACE_DEFINED__
1947#define __IWMProfile2_INTERFACE_DEFINED__
1948
1949DEFINE_GUID(IID_IWMProfile2, 0x07e72d33, 0xd94e, 0x4be7, 0x88,0x43, 0x60,0xae,0x5f,0xf7,0xe5,0xf5);
1950#if defined(__cplusplus) && !defined(CINTERFACE)
1951MIDL_INTERFACE("07e72d33-d94e-4be7-8843-60ae5ff7e5f5")
1952IWMProfile2 : public IWMProfile
1953{
1954 virtual HRESULT STDMETHODCALLTYPE GetProfileID(
1955 GUID *guid) = 0;
1956
1957};
1958#ifdef __CRT_UUID_DECL
1959__CRT_UUID_DECL(IWMProfile2, 0x07e72d33, 0xd94e, 0x4be7, 0x88,0x43, 0x60,0xae,0x5f,0xf7,0xe5,0xf5)
1960#endif
1961#else
1962typedef struct IWMProfile2Vtbl {
1963 BEGIN_INTERFACE
1964
1965 /*** IUnknown methods ***/
1966 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1967 IWMProfile2 *This,
1968 REFIID riid,
1969 void **ppvObject);
1970
1971 ULONG (STDMETHODCALLTYPE *AddRef)(
1972 IWMProfile2 *This);
1973
1974 ULONG (STDMETHODCALLTYPE *Release)(
1975 IWMProfile2 *This);
1976
1977 /*** IWMProfile methods ***/
1978 HRESULT (STDMETHODCALLTYPE *GetVersion)(
1979 IWMProfile2 *This,
1980 WMT_VERSION *pdwVersion);
1981
1982 HRESULT (STDMETHODCALLTYPE *GetName)(
1983 IWMProfile2 *This,
1984 WCHAR *pwszName,
1985 DWORD *pcchName);
1986
1987 HRESULT (STDMETHODCALLTYPE *SetName)(
1988 IWMProfile2 *This,
1989 const WCHAR *pwszName);
1990
1991 HRESULT (STDMETHODCALLTYPE *GetDescription)(
1992 IWMProfile2 *This,
1993 WCHAR *pwszDescription,
1994 DWORD *pcchDescription);
1995
1996 HRESULT (STDMETHODCALLTYPE *SetDescription)(
1997 IWMProfile2 *This,
1998 const WCHAR *pwszDescription);
1999
2000 HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
2001 IWMProfile2 *This,
2002 DWORD *pcStreams);
2003
2004 HRESULT (STDMETHODCALLTYPE *GetStream)(
2005 IWMProfile2 *This,
2006 DWORD dwStreamIndex,
2007 IWMStreamConfig **ppConfig);
2008
2009 HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)(
2010 IWMProfile2 *This,
2011 WORD wStreamNum,
2012 IWMStreamConfig **ppConfig);
2013
2014 HRESULT (STDMETHODCALLTYPE *RemoveStream)(
2015 IWMProfile2 *This,
2016 IWMStreamConfig *pConfig);
2017
2018 HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)(
2019 IWMProfile2 *This,
2020 WORD wStreamNum);
2021
2022 HRESULT (STDMETHODCALLTYPE *AddStream)(
2023 IWMProfile2 *This,
2024 IWMStreamConfig *pConfig);
2025
2026 HRESULT (STDMETHODCALLTYPE *ReconfigStream)(
2027 IWMProfile2 *This,
2028 IWMStreamConfig *pConfig);
2029
2030 HRESULT (STDMETHODCALLTYPE *CreateNewStream)(
2031 IWMProfile2 *This,
2032 REFGUID guidStreamType,
2033 IWMStreamConfig **ppConfig);
2034
2035 HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)(
2036 IWMProfile2 *This,
2037 DWORD *pcME);
2038
2039 HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)(
2040 IWMProfile2 *This,
2041 DWORD dwMEIndex,
2042 IWMMutualExclusion **ppME);
2043
2044 HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)(
2045 IWMProfile2 *This,
2046 IWMMutualExclusion *pME);
2047
2048 HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)(
2049 IWMProfile2 *This,
2050 IWMMutualExclusion *pME);
2051
2052 HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)(
2053 IWMProfile2 *This,
2054 IWMMutualExclusion **ppME);
2055
2056 /*** IWMProfile2 methods ***/
2057 HRESULT (STDMETHODCALLTYPE *GetProfileID)(
2058 IWMProfile2 *This,
2059 GUID *guid);
2060
2061 END_INTERFACE
2062} IWMProfile2Vtbl;
2063
2064interface IWMProfile2 {
2065 CONST_VTBL IWMProfile2Vtbl* lpVtbl;
2066};
2067
2068#ifdef COBJMACROS
2069#ifndef WIDL_C_INLINE_WRAPPERS
2070/*** IUnknown methods ***/
2071#define IWMProfile2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2072#define IWMProfile2_AddRef(This) (This)->lpVtbl->AddRef(This)
2073#define IWMProfile2_Release(This) (This)->lpVtbl->Release(This)
2074/*** IWMProfile methods ***/
2075#define IWMProfile2_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion)
2076#define IWMProfile2_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName)
2077#define IWMProfile2_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName)
2078#define IWMProfile2_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription)
2079#define IWMProfile2_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription)
2080#define IWMProfile2_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams)
2081#define IWMProfile2_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig)
2082#define IWMProfile2_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig)
2083#define IWMProfile2_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig)
2084#define IWMProfile2_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum)
2085#define IWMProfile2_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig)
2086#define IWMProfile2_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig)
2087#define IWMProfile2_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig)
2088#define IWMProfile2_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME)
2089#define IWMProfile2_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME)
2090#define IWMProfile2_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME)
2091#define IWMProfile2_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME)
2092#define IWMProfile2_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME)
2093/*** IWMProfile2 methods ***/
2094#define IWMProfile2_GetProfileID(This,guid) (This)->lpVtbl->GetProfileID(This,guid)
2095#else
2096/*** IUnknown methods ***/
2097static inline HRESULT IWMProfile2_QueryInterface(IWMProfile2* This,REFIID riid,void **ppvObject) {
2098 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2099}
2100static inline ULONG IWMProfile2_AddRef(IWMProfile2* This) {
2101 return This->lpVtbl->AddRef(This);
2102}
2103static inline ULONG IWMProfile2_Release(IWMProfile2* This) {
2104 return This->lpVtbl->Release(This);
2105}
2106/*** IWMProfile methods ***/
2107static inline HRESULT IWMProfile2_GetVersion(IWMProfile2* This,WMT_VERSION *pdwVersion) {
2108 return This->lpVtbl->GetVersion(This,pdwVersion);
2109}
2110static inline HRESULT IWMProfile2_GetName(IWMProfile2* This,WCHAR *pwszName,DWORD *pcchName) {
2111 return This->lpVtbl->GetName(This,pwszName,pcchName);
2112}
2113static inline HRESULT IWMProfile2_SetName(IWMProfile2* This,const WCHAR *pwszName) {
2114 return This->lpVtbl->SetName(This,pwszName);
2115}
2116static inline HRESULT IWMProfile2_GetDescription(IWMProfile2* This,WCHAR *pwszDescription,DWORD *pcchDescription) {
2117 return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription);
2118}
2119static inline HRESULT IWMProfile2_SetDescription(IWMProfile2* This,const WCHAR *pwszDescription) {
2120 return This->lpVtbl->SetDescription(This,pwszDescription);
2121}
2122static inline HRESULT IWMProfile2_GetStreamCount(IWMProfile2* This,DWORD *pcStreams) {
2123 return This->lpVtbl->GetStreamCount(This,pcStreams);
2124}
2125static inline HRESULT IWMProfile2_GetStream(IWMProfile2* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) {
2126 return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig);
2127}
2128static inline HRESULT IWMProfile2_GetStreamByNumber(IWMProfile2* This,WORD wStreamNum,IWMStreamConfig **ppConfig) {
2129 return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig);
2130}
2131static inline HRESULT IWMProfile2_RemoveStream(IWMProfile2* This,IWMStreamConfig *pConfig) {
2132 return This->lpVtbl->RemoveStream(This,pConfig);
2133}
2134static inline HRESULT IWMProfile2_RemoveStreamByNumber(IWMProfile2* This,WORD wStreamNum) {
2135 return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum);
2136}
2137static inline HRESULT IWMProfile2_AddStream(IWMProfile2* This,IWMStreamConfig *pConfig) {
2138 return This->lpVtbl->AddStream(This,pConfig);
2139}
2140static inline HRESULT IWMProfile2_ReconfigStream(IWMProfile2* This,IWMStreamConfig *pConfig) {
2141 return This->lpVtbl->ReconfigStream(This,pConfig);
2142}
2143static inline HRESULT IWMProfile2_CreateNewStream(IWMProfile2* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) {
2144 return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig);
2145}
2146static inline HRESULT IWMProfile2_GetMutualExclusionCount(IWMProfile2* This,DWORD *pcME) {
2147 return This->lpVtbl->GetMutualExclusionCount(This,pcME);
2148}
2149static inline HRESULT IWMProfile2_GetMutualExclusion(IWMProfile2* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) {
2150 return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME);
2151}
2152static inline HRESULT IWMProfile2_RemoveMutualExclusion(IWMProfile2* This,IWMMutualExclusion *pME) {
2153 return This->lpVtbl->RemoveMutualExclusion(This,pME);
2154}
2155static inline HRESULT IWMProfile2_AddMutualExclusion(IWMProfile2* This,IWMMutualExclusion *pME) {
2156 return This->lpVtbl->AddMutualExclusion(This,pME);
2157}
2158static inline HRESULT IWMProfile2_CreateNewMutualExclusion(IWMProfile2* This,IWMMutualExclusion **ppME) {
2159 return This->lpVtbl->CreateNewMutualExclusion(This,ppME);
2160}
2161/*** IWMProfile2 methods ***/
2162static inline HRESULT IWMProfile2_GetProfileID(IWMProfile2* This,GUID *guid) {
2163 return This->lpVtbl->GetProfileID(This,guid);
2164}
2165#endif
2166#endif
2167
2168#endif
2169
2170
2171#endif /* __IWMProfile2_INTERFACE_DEFINED__ */
2172
2173/*****************************************************************************
2174 * IWMProfile3 interface
2175 */
2176#ifndef __IWMProfile3_INTERFACE_DEFINED__
2177#define __IWMProfile3_INTERFACE_DEFINED__
2178
2179DEFINE_GUID(IID_IWMProfile3, 0x00ef96cc, 0xa461, 0x4546, 0x8b,0xcd, 0xc9,0xa2,0x8f,0x0e,0x06,0xf5);
2180#if defined(__cplusplus) && !defined(CINTERFACE)
2181MIDL_INTERFACE("00ef96cc-a461-4546-8bcd-c9a28f0e06f5")
2182IWMProfile3 : public IWMProfile2
2183{
2184 virtual HRESULT STDMETHODCALLTYPE GetStorageFormat(
2185 WMT_STORAGE_FORMAT *storage) = 0;
2186
2187 virtual HRESULT STDMETHODCALLTYPE SetStorageFormat(
2188 WMT_STORAGE_FORMAT storage) = 0;
2189
2190 virtual HRESULT STDMETHODCALLTYPE GetBandwidthSharingCount(
2191 DWORD *count) = 0;
2192
2193 virtual HRESULT STDMETHODCALLTYPE GetBandwidthSharing(
2194 DWORD index,
2195 IWMBandwidthSharing **bandwidth) = 0;
2196
2197 virtual HRESULT STDMETHODCALLTYPE RemoveBandwidthSharing(
2198 IWMBandwidthSharing *bandwidth) = 0;
2199
2200 virtual HRESULT STDMETHODCALLTYPE AddBandwidthSharing(
2201 IWMBandwidthSharing *bandwidth) = 0;
2202
2203 virtual HRESULT STDMETHODCALLTYPE CreateNewBandwidthSharing(
2204 IWMBandwidthSharing **bandwidth) = 0;
2205
2206 virtual HRESULT STDMETHODCALLTYPE GetStreamPrioritization(
2207 IWMStreamPrioritization **stream) = 0;
2208
2209 virtual HRESULT STDMETHODCALLTYPE SetStreamPrioritization(
2210 IWMStreamPrioritization *stream) = 0;
2211
2212 virtual HRESULT STDMETHODCALLTYPE RemoveStreamPrioritization(
2213 ) = 0;
2214
2215 virtual HRESULT STDMETHODCALLTYPE CreateNewStreamPrioritization(
2216 IWMStreamPrioritization **stream) = 0;
2217
2218 virtual HRESULT STDMETHODCALLTYPE GetExpectedPacketCount(
2219 QWORD duration,
2220 QWORD *packets) = 0;
2221
2222};
2223#ifdef __CRT_UUID_DECL
2224__CRT_UUID_DECL(IWMProfile3, 0x00ef96cc, 0xa461, 0x4546, 0x8b,0xcd, 0xc9,0xa2,0x8f,0x0e,0x06,0xf5)
2225#endif
2226#else
2227typedef struct IWMProfile3Vtbl {
2228 BEGIN_INTERFACE
2229
2230 /*** IUnknown methods ***/
2231 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2232 IWMProfile3 *This,
2233 REFIID riid,
2234 void **ppvObject);
2235
2236 ULONG (STDMETHODCALLTYPE *AddRef)(
2237 IWMProfile3 *This);
2238
2239 ULONG (STDMETHODCALLTYPE *Release)(
2240 IWMProfile3 *This);
2241
2242 /*** IWMProfile methods ***/
2243 HRESULT (STDMETHODCALLTYPE *GetVersion)(
2244 IWMProfile3 *This,
2245 WMT_VERSION *pdwVersion);
2246
2247 HRESULT (STDMETHODCALLTYPE *GetName)(
2248 IWMProfile3 *This,
2249 WCHAR *pwszName,
2250 DWORD *pcchName);
2251
2252 HRESULT (STDMETHODCALLTYPE *SetName)(
2253 IWMProfile3 *This,
2254 const WCHAR *pwszName);
2255
2256 HRESULT (STDMETHODCALLTYPE *GetDescription)(
2257 IWMProfile3 *This,
2258 WCHAR *pwszDescription,
2259 DWORD *pcchDescription);
2260
2261 HRESULT (STDMETHODCALLTYPE *SetDescription)(
2262 IWMProfile3 *This,
2263 const WCHAR *pwszDescription);
2264
2265 HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
2266 IWMProfile3 *This,
2267 DWORD *pcStreams);
2268
2269 HRESULT (STDMETHODCALLTYPE *GetStream)(
2270 IWMProfile3 *This,
2271 DWORD dwStreamIndex,
2272 IWMStreamConfig **ppConfig);
2273
2274 HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)(
2275 IWMProfile3 *This,
2276 WORD wStreamNum,
2277 IWMStreamConfig **ppConfig);
2278
2279 HRESULT (STDMETHODCALLTYPE *RemoveStream)(
2280 IWMProfile3 *This,
2281 IWMStreamConfig *pConfig);
2282
2283 HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)(
2284 IWMProfile3 *This,
2285 WORD wStreamNum);
2286
2287 HRESULT (STDMETHODCALLTYPE *AddStream)(
2288 IWMProfile3 *This,
2289 IWMStreamConfig *pConfig);
2290
2291 HRESULT (STDMETHODCALLTYPE *ReconfigStream)(
2292 IWMProfile3 *This,
2293 IWMStreamConfig *pConfig);
2294
2295 HRESULT (STDMETHODCALLTYPE *CreateNewStream)(
2296 IWMProfile3 *This,
2297 REFGUID guidStreamType,
2298 IWMStreamConfig **ppConfig);
2299
2300 HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)(
2301 IWMProfile3 *This,
2302 DWORD *pcME);
2303
2304 HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)(
2305 IWMProfile3 *This,
2306 DWORD dwMEIndex,
2307 IWMMutualExclusion **ppME);
2308
2309 HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)(
2310 IWMProfile3 *This,
2311 IWMMutualExclusion *pME);
2312
2313 HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)(
2314 IWMProfile3 *This,
2315 IWMMutualExclusion *pME);
2316
2317 HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)(
2318 IWMProfile3 *This,
2319 IWMMutualExclusion **ppME);
2320
2321 /*** IWMProfile2 methods ***/
2322 HRESULT (STDMETHODCALLTYPE *GetProfileID)(
2323 IWMProfile3 *This,
2324 GUID *guid);
2325
2326 /*** IWMProfile3 methods ***/
2327 HRESULT (STDMETHODCALLTYPE *GetStorageFormat)(
2328 IWMProfile3 *This,
2329 WMT_STORAGE_FORMAT *storage);
2330
2331 HRESULT (STDMETHODCALLTYPE *SetStorageFormat)(
2332 IWMProfile3 *This,
2333 WMT_STORAGE_FORMAT storage);
2334
2335 HRESULT (STDMETHODCALLTYPE *GetBandwidthSharingCount)(
2336 IWMProfile3 *This,
2337 DWORD *count);
2338
2339 HRESULT (STDMETHODCALLTYPE *GetBandwidthSharing)(
2340 IWMProfile3 *This,
2341 DWORD index,
2342 IWMBandwidthSharing **bandwidth);
2343
2344 HRESULT (STDMETHODCALLTYPE *RemoveBandwidthSharing)(
2345 IWMProfile3 *This,
2346 IWMBandwidthSharing *bandwidth);
2347
2348 HRESULT (STDMETHODCALLTYPE *AddBandwidthSharing)(
2349 IWMProfile3 *This,
2350 IWMBandwidthSharing *bandwidth);
2351
2352 HRESULT (STDMETHODCALLTYPE *CreateNewBandwidthSharing)(
2353 IWMProfile3 *This,
2354 IWMBandwidthSharing **bandwidth);
2355
2356 HRESULT (STDMETHODCALLTYPE *GetStreamPrioritization)(
2357 IWMProfile3 *This,
2358 IWMStreamPrioritization **stream);
2359
2360 HRESULT (STDMETHODCALLTYPE *SetStreamPrioritization)(
2361 IWMProfile3 *This,
2362 IWMStreamPrioritization *stream);
2363
2364 HRESULT (STDMETHODCALLTYPE *RemoveStreamPrioritization)(
2365 IWMProfile3 *This);
2366
2367 HRESULT (STDMETHODCALLTYPE *CreateNewStreamPrioritization)(
2368 IWMProfile3 *This,
2369 IWMStreamPrioritization **stream);
2370
2371 HRESULT (STDMETHODCALLTYPE *GetExpectedPacketCount)(
2372 IWMProfile3 *This,
2373 QWORD duration,
2374 QWORD *packets);
2375
2376 END_INTERFACE
2377} IWMProfile3Vtbl;
2378
2379interface IWMProfile3 {
2380 CONST_VTBL IWMProfile3Vtbl* lpVtbl;
2381};
2382
2383#ifdef COBJMACROS
2384#ifndef WIDL_C_INLINE_WRAPPERS
2385/*** IUnknown methods ***/
2386#define IWMProfile3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2387#define IWMProfile3_AddRef(This) (This)->lpVtbl->AddRef(This)
2388#define IWMProfile3_Release(This) (This)->lpVtbl->Release(This)
2389/*** IWMProfile methods ***/
2390#define IWMProfile3_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion)
2391#define IWMProfile3_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName)
2392#define IWMProfile3_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName)
2393#define IWMProfile3_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription)
2394#define IWMProfile3_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription)
2395#define IWMProfile3_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams)
2396#define IWMProfile3_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig)
2397#define IWMProfile3_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig)
2398#define IWMProfile3_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig)
2399#define IWMProfile3_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum)
2400#define IWMProfile3_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig)
2401#define IWMProfile3_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig)
2402#define IWMProfile3_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig)
2403#define IWMProfile3_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME)
2404#define IWMProfile3_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME)
2405#define IWMProfile3_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME)
2406#define IWMProfile3_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME)
2407#define IWMProfile3_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME)
2408/*** IWMProfile2 methods ***/
2409#define IWMProfile3_GetProfileID(This,guid) (This)->lpVtbl->GetProfileID(This,guid)
2410/*** IWMProfile3 methods ***/
2411#define IWMProfile3_GetStorageFormat(This,storage) (This)->lpVtbl->GetStorageFormat(This,storage)
2412#define IWMProfile3_SetStorageFormat(This,storage) (This)->lpVtbl->SetStorageFormat(This,storage)
2413#define IWMProfile3_GetBandwidthSharingCount(This,count) (This)->lpVtbl->GetBandwidthSharingCount(This,count)
2414#define IWMProfile3_GetBandwidthSharing(This,index,bandwidth) (This)->lpVtbl->GetBandwidthSharing(This,index,bandwidth)
2415#define IWMProfile3_RemoveBandwidthSharing(This,bandwidth) (This)->lpVtbl->RemoveBandwidthSharing(This,bandwidth)
2416#define IWMProfile3_AddBandwidthSharing(This,bandwidth) (This)->lpVtbl->AddBandwidthSharing(This,bandwidth)
2417#define IWMProfile3_CreateNewBandwidthSharing(This,bandwidth) (This)->lpVtbl->CreateNewBandwidthSharing(This,bandwidth)
2418#define IWMProfile3_GetStreamPrioritization(This,stream) (This)->lpVtbl->GetStreamPrioritization(This,stream)
2419#define IWMProfile3_SetStreamPrioritization(This,stream) (This)->lpVtbl->SetStreamPrioritization(This,stream)
2420#define IWMProfile3_RemoveStreamPrioritization(This) (This)->lpVtbl->RemoveStreamPrioritization(This)
2421#define IWMProfile3_CreateNewStreamPrioritization(This,stream) (This)->lpVtbl->CreateNewStreamPrioritization(This,stream)
2422#define IWMProfile3_GetExpectedPacketCount(This,duration,packets) (This)->lpVtbl->GetExpectedPacketCount(This,duration,packets)
2423#else
2424/*** IUnknown methods ***/
2425static inline HRESULT IWMProfile3_QueryInterface(IWMProfile3* This,REFIID riid,void **ppvObject) {
2426 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2427}
2428static inline ULONG IWMProfile3_AddRef(IWMProfile3* This) {
2429 return This->lpVtbl->AddRef(This);
2430}
2431static inline ULONG IWMProfile3_Release(IWMProfile3* This) {
2432 return This->lpVtbl->Release(This);
2433}
2434/*** IWMProfile methods ***/
2435static inline HRESULT IWMProfile3_GetVersion(IWMProfile3* This,WMT_VERSION *pdwVersion) {
2436 return This->lpVtbl->GetVersion(This,pdwVersion);
2437}
2438static inline HRESULT IWMProfile3_GetName(IWMProfile3* This,WCHAR *pwszName,DWORD *pcchName) {
2439 return This->lpVtbl->GetName(This,pwszName,pcchName);
2440}
2441static inline HRESULT IWMProfile3_SetName(IWMProfile3* This,const WCHAR *pwszName) {
2442 return This->lpVtbl->SetName(This,pwszName);
2443}
2444static inline HRESULT IWMProfile3_GetDescription(IWMProfile3* This,WCHAR *pwszDescription,DWORD *pcchDescription) {
2445 return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription);
2446}
2447static inline HRESULT IWMProfile3_SetDescription(IWMProfile3* This,const WCHAR *pwszDescription) {
2448 return This->lpVtbl->SetDescription(This,pwszDescription);
2449}
2450static inline HRESULT IWMProfile3_GetStreamCount(IWMProfile3* This,DWORD *pcStreams) {
2451 return This->lpVtbl->GetStreamCount(This,pcStreams);
2452}
2453static inline HRESULT IWMProfile3_GetStream(IWMProfile3* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) {
2454 return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig);
2455}
2456static inline HRESULT IWMProfile3_GetStreamByNumber(IWMProfile3* This,WORD wStreamNum,IWMStreamConfig **ppConfig) {
2457 return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig);
2458}
2459static inline HRESULT IWMProfile3_RemoveStream(IWMProfile3* This,IWMStreamConfig *pConfig) {
2460 return This->lpVtbl->RemoveStream(This,pConfig);
2461}
2462static inline HRESULT IWMProfile3_RemoveStreamByNumber(IWMProfile3* This,WORD wStreamNum) {
2463 return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum);
2464}
2465static inline HRESULT IWMProfile3_AddStream(IWMProfile3* This,IWMStreamConfig *pConfig) {
2466 return This->lpVtbl->AddStream(This,pConfig);
2467}
2468static inline HRESULT IWMProfile3_ReconfigStream(IWMProfile3* This,IWMStreamConfig *pConfig) {
2469 return This->lpVtbl->ReconfigStream(This,pConfig);
2470}
2471static inline HRESULT IWMProfile3_CreateNewStream(IWMProfile3* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) {
2472 return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig);
2473}
2474static inline HRESULT IWMProfile3_GetMutualExclusionCount(IWMProfile3* This,DWORD *pcME) {
2475 return This->lpVtbl->GetMutualExclusionCount(This,pcME);
2476}
2477static inline HRESULT IWMProfile3_GetMutualExclusion(IWMProfile3* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) {
2478 return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME);
2479}
2480static inline HRESULT IWMProfile3_RemoveMutualExclusion(IWMProfile3* This,IWMMutualExclusion *pME) {
2481 return This->lpVtbl->RemoveMutualExclusion(This,pME);
2482}
2483static inline HRESULT IWMProfile3_AddMutualExclusion(IWMProfile3* This,IWMMutualExclusion *pME) {
2484 return This->lpVtbl->AddMutualExclusion(This,pME);
2485}
2486static inline HRESULT IWMProfile3_CreateNewMutualExclusion(IWMProfile3* This,IWMMutualExclusion **ppME) {
2487 return This->lpVtbl->CreateNewMutualExclusion(This,ppME);
2488}
2489/*** IWMProfile2 methods ***/
2490static inline HRESULT IWMProfile3_GetProfileID(IWMProfile3* This,GUID *guid) {
2491 return This->lpVtbl->GetProfileID(This,guid);
2492}
2493/*** IWMProfile3 methods ***/
2494static inline HRESULT IWMProfile3_GetStorageFormat(IWMProfile3* This,WMT_STORAGE_FORMAT *storage) {
2495 return This->lpVtbl->GetStorageFormat(This,storage);
2496}
2497static inline HRESULT IWMProfile3_SetStorageFormat(IWMProfile3* This,WMT_STORAGE_FORMAT storage) {
2498 return This->lpVtbl->SetStorageFormat(This,storage);
2499}
2500static inline HRESULT IWMProfile3_GetBandwidthSharingCount(IWMProfile3* This,DWORD *count) {
2501 return This->lpVtbl->GetBandwidthSharingCount(This,count);
2502}
2503static inline HRESULT IWMProfile3_GetBandwidthSharing(IWMProfile3* This,DWORD index,IWMBandwidthSharing **bandwidth) {
2504 return This->lpVtbl->GetBandwidthSharing(This,index,bandwidth);
2505}
2506static inline HRESULT IWMProfile3_RemoveBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing *bandwidth) {
2507 return This->lpVtbl->RemoveBandwidthSharing(This,bandwidth);
2508}
2509static inline HRESULT IWMProfile3_AddBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing *bandwidth) {
2510 return This->lpVtbl->AddBandwidthSharing(This,bandwidth);
2511}
2512static inline HRESULT IWMProfile3_CreateNewBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing **bandwidth) {
2513 return This->lpVtbl->CreateNewBandwidthSharing(This,bandwidth);
2514}
2515static inline HRESULT IWMProfile3_GetStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization **stream) {
2516 return This->lpVtbl->GetStreamPrioritization(This,stream);
2517}
2518static inline HRESULT IWMProfile3_SetStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization *stream) {
2519 return This->lpVtbl->SetStreamPrioritization(This,stream);
2520}
2521static inline HRESULT IWMProfile3_RemoveStreamPrioritization(IWMProfile3* This) {
2522 return This->lpVtbl->RemoveStreamPrioritization(This);
2523}
2524static inline HRESULT IWMProfile3_CreateNewStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization **stream) {
2525 return This->lpVtbl->CreateNewStreamPrioritization(This,stream);
2526}
2527static inline HRESULT IWMProfile3_GetExpectedPacketCount(IWMProfile3* This,QWORD duration,QWORD *packets) {
2528 return This->lpVtbl->GetExpectedPacketCount(This,duration,packets);
2529}
2530#endif
2531#endif
2532
2533#endif
2534
2535
2536#endif /* __IWMProfile3_INTERFACE_DEFINED__ */
2537
2538/*****************************************************************************
2539 * IWMProfileManager interface
2540 */
2541#ifndef __IWMProfileManager_INTERFACE_DEFINED__
2542#define __IWMProfileManager_INTERFACE_DEFINED__
2543
2544DEFINE_GUID(IID_IWMProfileManager, 0xd16679f2, 0x6ca0, 0x472d, 0x8d,0x31, 0x2f,0x5d,0x55,0xae,0xe1,0x55);
2545#if defined(__cplusplus) && !defined(CINTERFACE)
2546MIDL_INTERFACE("d16679f2-6ca0-472d-8d31-2f5d55aee155")
2547IWMProfileManager : public IUnknown
2548{
2549 virtual HRESULT STDMETHODCALLTYPE CreateEmptyProfile(
2550 WMT_VERSION dwVersion,
2551 IWMProfile **ppProfile) = 0;
2552
2553 virtual HRESULT STDMETHODCALLTYPE LoadProfileByID(
2554 REFGUID guidProfile,
2555 IWMProfile **ppProfile) = 0;
2556
2557 virtual HRESULT STDMETHODCALLTYPE LoadProfileByData(
2558 const WCHAR *pwszProfile,
2559 IWMProfile **ppProfile) = 0;
2560
2561 virtual HRESULT STDMETHODCALLTYPE SaveProfile(
2562 IWMProfile *pIWMProfile,
2563 WCHAR *pwszProfile,
2564 DWORD *pdwLength) = 0;
2565
2566 virtual HRESULT STDMETHODCALLTYPE GetSystemProfileCount(
2567 DWORD *pcProfiles) = 0;
2568
2569 virtual HRESULT STDMETHODCALLTYPE LoadSystemProfile(
2570 DWORD dwProfileIndex,
2571 IWMProfile **ppProfile) = 0;
2572
2573};
2574#ifdef __CRT_UUID_DECL
2575__CRT_UUID_DECL(IWMProfileManager, 0xd16679f2, 0x6ca0, 0x472d, 0x8d,0x31, 0x2f,0x5d,0x55,0xae,0xe1,0x55)
2576#endif
2577#else
2578typedef struct IWMProfileManagerVtbl {
2579 BEGIN_INTERFACE
2580
2581 /*** IUnknown methods ***/
2582 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2583 IWMProfileManager *This,
2584 REFIID riid,
2585 void **ppvObject);
2586
2587 ULONG (STDMETHODCALLTYPE *AddRef)(
2588 IWMProfileManager *This);
2589
2590 ULONG (STDMETHODCALLTYPE *Release)(
2591 IWMProfileManager *This);
2592
2593 /*** IWMProfileManager methods ***/
2594 HRESULT (STDMETHODCALLTYPE *CreateEmptyProfile)(
2595 IWMProfileManager *This,
2596 WMT_VERSION dwVersion,
2597 IWMProfile **ppProfile);
2598
2599 HRESULT (STDMETHODCALLTYPE *LoadProfileByID)(
2600 IWMProfileManager *This,
2601 REFGUID guidProfile,
2602 IWMProfile **ppProfile);
2603
2604 HRESULT (STDMETHODCALLTYPE *LoadProfileByData)(
2605 IWMProfileManager *This,
2606 const WCHAR *pwszProfile,
2607 IWMProfile **ppProfile);
2608
2609 HRESULT (STDMETHODCALLTYPE *SaveProfile)(
2610 IWMProfileManager *This,
2611 IWMProfile *pIWMProfile,
2612 WCHAR *pwszProfile,
2613 DWORD *pdwLength);
2614
2615 HRESULT (STDMETHODCALLTYPE *GetSystemProfileCount)(
2616 IWMProfileManager *This,
2617 DWORD *pcProfiles);
2618
2619 HRESULT (STDMETHODCALLTYPE *LoadSystemProfile)(
2620 IWMProfileManager *This,
2621 DWORD dwProfileIndex,
2622 IWMProfile **ppProfile);
2623
2624 END_INTERFACE
2625} IWMProfileManagerVtbl;
2626
2627interface IWMProfileManager {
2628 CONST_VTBL IWMProfileManagerVtbl* lpVtbl;
2629};
2630
2631#ifdef COBJMACROS
2632#ifndef WIDL_C_INLINE_WRAPPERS
2633/*** IUnknown methods ***/
2634#define IWMProfileManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2635#define IWMProfileManager_AddRef(This) (This)->lpVtbl->AddRef(This)
2636#define IWMProfileManager_Release(This) (This)->lpVtbl->Release(This)
2637/*** IWMProfileManager methods ***/
2638#define IWMProfileManager_CreateEmptyProfile(This,dwVersion,ppProfile) (This)->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile)
2639#define IWMProfileManager_LoadProfileByID(This,guidProfile,ppProfile) (This)->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile)
2640#define IWMProfileManager_LoadProfileByData(This,pwszProfile,ppProfile) (This)->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile)
2641#define IWMProfileManager_SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) (This)->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength)
2642#define IWMProfileManager_GetSystemProfileCount(This,pcProfiles) (This)->lpVtbl->GetSystemProfileCount(This,pcProfiles)
2643#define IWMProfileManager_LoadSystemProfile(This,dwProfileIndex,ppProfile) (This)->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile)
2644#else
2645/*** IUnknown methods ***/
2646static inline HRESULT IWMProfileManager_QueryInterface(IWMProfileManager* This,REFIID riid,void **ppvObject) {
2647 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2648}
2649static inline ULONG IWMProfileManager_AddRef(IWMProfileManager* This) {
2650 return This->lpVtbl->AddRef(This);
2651}
2652static inline ULONG IWMProfileManager_Release(IWMProfileManager* This) {
2653 return This->lpVtbl->Release(This);
2654}
2655/*** IWMProfileManager methods ***/
2656static inline HRESULT IWMProfileManager_CreateEmptyProfile(IWMProfileManager* This,WMT_VERSION dwVersion,IWMProfile **ppProfile) {
2657 return This->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile);
2658}
2659static inline HRESULT IWMProfileManager_LoadProfileByID(IWMProfileManager* This,REFGUID guidProfile,IWMProfile **ppProfile) {
2660 return This->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile);
2661}
2662static inline HRESULT IWMProfileManager_LoadProfileByData(IWMProfileManager* This,const WCHAR *pwszProfile,IWMProfile **ppProfile) {
2663 return This->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile);
2664}
2665static inline HRESULT IWMProfileManager_SaveProfile(IWMProfileManager* This,IWMProfile *pIWMProfile,WCHAR *pwszProfile,DWORD *pdwLength) {
2666 return This->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength);
2667}
2668static inline HRESULT IWMProfileManager_GetSystemProfileCount(IWMProfileManager* This,DWORD *pcProfiles) {
2669 return This->lpVtbl->GetSystemProfileCount(This,pcProfiles);
2670}
2671static inline HRESULT IWMProfileManager_LoadSystemProfile(IWMProfileManager* This,DWORD dwProfileIndex,IWMProfile **ppProfile) {
2672 return This->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile);
2673}
2674#endif
2675#endif
2676
2677#endif
2678
2679
2680#endif /* __IWMProfileManager_INTERFACE_DEFINED__ */
2681
2682/*****************************************************************************
2683 * IWMProfileManager2 interface
2684 */
2685#ifndef __IWMProfileManager2_INTERFACE_DEFINED__
2686#define __IWMProfileManager2_INTERFACE_DEFINED__
2687
2688DEFINE_GUID(IID_IWMProfileManager2, 0x7a924e51, 0x73c1, 0x494d, 0x80,0x19, 0x23,0xd3,0x7e,0xd9,0xb8,0x9a);
2689#if defined(__cplusplus) && !defined(CINTERFACE)
2690MIDL_INTERFACE("7a924e51-73c1-494d-8019-23d37ed9b89a")
2691IWMProfileManager2 : public IWMProfileManager
2692{
2693 virtual HRESULT STDMETHODCALLTYPE GetSystemProfileVersion(
2694 WMT_VERSION *version) = 0;
2695
2696 virtual HRESULT STDMETHODCALLTYPE SetSystemProfileVersion(
2697 WMT_VERSION version) = 0;
2698
2699};
2700#ifdef __CRT_UUID_DECL
2701__CRT_UUID_DECL(IWMProfileManager2, 0x7a924e51, 0x73c1, 0x494d, 0x80,0x19, 0x23,0xd3,0x7e,0xd9,0xb8,0x9a)
2702#endif
2703#else
2704typedef struct IWMProfileManager2Vtbl {
2705 BEGIN_INTERFACE
2706
2707 /*** IUnknown methods ***/
2708 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2709 IWMProfileManager2 *This,
2710 REFIID riid,
2711 void **ppvObject);
2712
2713 ULONG (STDMETHODCALLTYPE *AddRef)(
2714 IWMProfileManager2 *This);
2715
2716 ULONG (STDMETHODCALLTYPE *Release)(
2717 IWMProfileManager2 *This);
2718
2719 /*** IWMProfileManager methods ***/
2720 HRESULT (STDMETHODCALLTYPE *CreateEmptyProfile)(
2721 IWMProfileManager2 *This,
2722 WMT_VERSION dwVersion,
2723 IWMProfile **ppProfile);
2724
2725 HRESULT (STDMETHODCALLTYPE *LoadProfileByID)(
2726 IWMProfileManager2 *This,
2727 REFGUID guidProfile,
2728 IWMProfile **ppProfile);
2729
2730 HRESULT (STDMETHODCALLTYPE *LoadProfileByData)(
2731 IWMProfileManager2 *This,
2732 const WCHAR *pwszProfile,
2733 IWMProfile **ppProfile);
2734
2735 HRESULT (STDMETHODCALLTYPE *SaveProfile)(
2736 IWMProfileManager2 *This,
2737 IWMProfile *pIWMProfile,
2738 WCHAR *pwszProfile,
2739 DWORD *pdwLength);
2740
2741 HRESULT (STDMETHODCALLTYPE *GetSystemProfileCount)(
2742 IWMProfileManager2 *This,
2743 DWORD *pcProfiles);
2744
2745 HRESULT (STDMETHODCALLTYPE *LoadSystemProfile)(
2746 IWMProfileManager2 *This,
2747 DWORD dwProfileIndex,
2748 IWMProfile **ppProfile);
2749
2750 /*** IWMProfileManager2 methods ***/
2751 HRESULT (STDMETHODCALLTYPE *GetSystemProfileVersion)(
2752 IWMProfileManager2 *This,
2753 WMT_VERSION *version);
2754
2755 HRESULT (STDMETHODCALLTYPE *SetSystemProfileVersion)(
2756 IWMProfileManager2 *This,
2757 WMT_VERSION version);
2758
2759 END_INTERFACE
2760} IWMProfileManager2Vtbl;
2761
2762interface IWMProfileManager2 {
2763 CONST_VTBL IWMProfileManager2Vtbl* lpVtbl;
2764};
2765
2766#ifdef COBJMACROS
2767#ifndef WIDL_C_INLINE_WRAPPERS
2768/*** IUnknown methods ***/
2769#define IWMProfileManager2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2770#define IWMProfileManager2_AddRef(This) (This)->lpVtbl->AddRef(This)
2771#define IWMProfileManager2_Release(This) (This)->lpVtbl->Release(This)
2772/*** IWMProfileManager methods ***/
2773#define IWMProfileManager2_CreateEmptyProfile(This,dwVersion,ppProfile) (This)->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile)
2774#define IWMProfileManager2_LoadProfileByID(This,guidProfile,ppProfile) (This)->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile)
2775#define IWMProfileManager2_LoadProfileByData(This,pwszProfile,ppProfile) (This)->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile)
2776#define IWMProfileManager2_SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) (This)->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength)
2777#define IWMProfileManager2_GetSystemProfileCount(This,pcProfiles) (This)->lpVtbl->GetSystemProfileCount(This,pcProfiles)
2778#define IWMProfileManager2_LoadSystemProfile(This,dwProfileIndex,ppProfile) (This)->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile)
2779/*** IWMProfileManager2 methods ***/
2780#define IWMProfileManager2_GetSystemProfileVersion(This,version) (This)->lpVtbl->GetSystemProfileVersion(This,version)
2781#define IWMProfileManager2_SetSystemProfileVersion(This,version) (This)->lpVtbl->SetSystemProfileVersion(This,version)
2782#else
2783/*** IUnknown methods ***/
2784static inline HRESULT IWMProfileManager2_QueryInterface(IWMProfileManager2* This,REFIID riid,void **ppvObject) {
2785 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2786}
2787static inline ULONG IWMProfileManager2_AddRef(IWMProfileManager2* This) {
2788 return This->lpVtbl->AddRef(This);
2789}
2790static inline ULONG IWMProfileManager2_Release(IWMProfileManager2* This) {
2791 return This->lpVtbl->Release(This);
2792}
2793/*** IWMProfileManager methods ***/
2794static inline HRESULT IWMProfileManager2_CreateEmptyProfile(IWMProfileManager2* This,WMT_VERSION dwVersion,IWMProfile **ppProfile) {
2795 return This->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile);
2796}
2797static inline HRESULT IWMProfileManager2_LoadProfileByID(IWMProfileManager2* This,REFGUID guidProfile,IWMProfile **ppProfile) {
2798 return This->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile);
2799}
2800static inline HRESULT IWMProfileManager2_LoadProfileByData(IWMProfileManager2* This,const WCHAR *pwszProfile,IWMProfile **ppProfile) {
2801 return This->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile);
2802}
2803static inline HRESULT IWMProfileManager2_SaveProfile(IWMProfileManager2* This,IWMProfile *pIWMProfile,WCHAR *pwszProfile,DWORD *pdwLength) {
2804 return This->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength);
2805}
2806static inline HRESULT IWMProfileManager2_GetSystemProfileCount(IWMProfileManager2* This,DWORD *pcProfiles) {
2807 return This->lpVtbl->GetSystemProfileCount(This,pcProfiles);
2808}
2809static inline HRESULT IWMProfileManager2_LoadSystemProfile(IWMProfileManager2* This,DWORD dwProfileIndex,IWMProfile **ppProfile) {
2810 return This->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile);
2811}
2812/*** IWMProfileManager2 methods ***/
2813static inline HRESULT IWMProfileManager2_GetSystemProfileVersion(IWMProfileManager2* This,WMT_VERSION *version) {
2814 return This->lpVtbl->GetSystemProfileVersion(This,version);
2815}
2816static inline HRESULT IWMProfileManager2_SetSystemProfileVersion(IWMProfileManager2* This,WMT_VERSION version) {
2817 return This->lpVtbl->SetSystemProfileVersion(This,version);
2818}
2819#endif
2820#endif
2821
2822#endif
2823
2824
2825#endif /* __IWMProfileManager2_INTERFACE_DEFINED__ */
2826
2827HRESULT WINAPI WMCreateProfileManager(IWMProfileManager**);
2828/*****************************************************************************
2829 * IWMCodecInfo interface
2830 */
2831#ifndef __IWMCodecInfo_INTERFACE_DEFINED__
2832#define __IWMCodecInfo_INTERFACE_DEFINED__
2833
2834DEFINE_GUID(IID_IWMCodecInfo, 0xa970f41e, 0x34de, 0x4a98, 0xb3,0xba, 0xe4,0xb3,0xca,0x75,0x28,0xf0);
2835#if defined(__cplusplus) && !defined(CINTERFACE)
2836MIDL_INTERFACE("a970f41e-34de-4a98-b3ba-e4b3ca7528f0")
2837IWMCodecInfo : public IUnknown
2838{
2839 virtual HRESULT STDMETHODCALLTYPE GetCodecInfoCount(
2840 REFGUID guid,
2841 DWORD *count) = 0;
2842
2843 virtual HRESULT STDMETHODCALLTYPE GetCodecFormatCount(
2844 REFGUID guid,
2845 DWORD codecindex,
2846 DWORD *formatcount) = 0;
2847
2848 virtual HRESULT STDMETHODCALLTYPE GetCodecFormat(
2849 REFGUID guid,
2850 DWORD codecindex,
2851 DWORD formatindex,
2852 IWMStreamConfig **streamconfig) = 0;
2853
2854};
2855#ifdef __CRT_UUID_DECL
2856__CRT_UUID_DECL(IWMCodecInfo, 0xa970f41e, 0x34de, 0x4a98, 0xb3,0xba, 0xe4,0xb3,0xca,0x75,0x28,0xf0)
2857#endif
2858#else
2859typedef struct IWMCodecInfoVtbl {
2860 BEGIN_INTERFACE
2861
2862 /*** IUnknown methods ***/
2863 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2864 IWMCodecInfo *This,
2865 REFIID riid,
2866 void **ppvObject);
2867
2868 ULONG (STDMETHODCALLTYPE *AddRef)(
2869 IWMCodecInfo *This);
2870
2871 ULONG (STDMETHODCALLTYPE *Release)(
2872 IWMCodecInfo *This);
2873
2874 /*** IWMCodecInfo methods ***/
2875 HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)(
2876 IWMCodecInfo *This,
2877 REFGUID guid,
2878 DWORD *count);
2879
2880 HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)(
2881 IWMCodecInfo *This,
2882 REFGUID guid,
2883 DWORD codecindex,
2884 DWORD *formatcount);
2885
2886 HRESULT (STDMETHODCALLTYPE *GetCodecFormat)(
2887 IWMCodecInfo *This,
2888 REFGUID guid,
2889 DWORD codecindex,
2890 DWORD formatindex,
2891 IWMStreamConfig **streamconfig);
2892
2893 END_INTERFACE
2894} IWMCodecInfoVtbl;
2895
2896interface IWMCodecInfo {
2897 CONST_VTBL IWMCodecInfoVtbl* lpVtbl;
2898};
2899
2900#ifdef COBJMACROS
2901#ifndef WIDL_C_INLINE_WRAPPERS
2902/*** IUnknown methods ***/
2903#define IWMCodecInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2904#define IWMCodecInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
2905#define IWMCodecInfo_Release(This) (This)->lpVtbl->Release(This)
2906/*** IWMCodecInfo methods ***/
2907#define IWMCodecInfo_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count)
2908#define IWMCodecInfo_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount)
2909#define IWMCodecInfo_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig)
2910#else
2911/*** IUnknown methods ***/
2912static inline HRESULT IWMCodecInfo_QueryInterface(IWMCodecInfo* This,REFIID riid,void **ppvObject) {
2913 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2914}
2915static inline ULONG IWMCodecInfo_AddRef(IWMCodecInfo* This) {
2916 return This->lpVtbl->AddRef(This);
2917}
2918static inline ULONG IWMCodecInfo_Release(IWMCodecInfo* This) {
2919 return This->lpVtbl->Release(This);
2920}
2921/*** IWMCodecInfo methods ***/
2922static inline HRESULT IWMCodecInfo_GetCodecInfoCount(IWMCodecInfo* This,REFGUID guid,DWORD *count) {
2923 return This->lpVtbl->GetCodecInfoCount(This,guid,count);
2924}
2925static inline HRESULT IWMCodecInfo_GetCodecFormatCount(IWMCodecInfo* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) {
2926 return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount);
2927}
2928static inline HRESULT IWMCodecInfo_GetCodecFormat(IWMCodecInfo* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) {
2929 return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig);
2930}
2931#endif
2932#endif
2933
2934#endif
2935
2936
2937#endif /* __IWMCodecInfo_INTERFACE_DEFINED__ */
2938
2939/*****************************************************************************
2940 * IWMCodecInfo2 interface
2941 */
2942#ifndef __IWMCodecInfo2_INTERFACE_DEFINED__
2943#define __IWMCodecInfo2_INTERFACE_DEFINED__
2944
2945DEFINE_GUID(IID_IWMCodecInfo2, 0xaa65e273, 0xb686, 0x4056, 0x91,0xec, 0xdd,0x76,0x8d,0x4d,0xf7,0x10);
2946#if defined(__cplusplus) && !defined(CINTERFACE)
2947MIDL_INTERFACE("aa65e273-b686-4056-91ec-dd768d4df710")
2948IWMCodecInfo2 : public IWMCodecInfo
2949{
2950 virtual HRESULT STDMETHODCALLTYPE GetCodecName(
2951 REFGUID guid,
2952 DWORD codecindex,
2953 WCHAR *name,
2954 DWORD *namesize) = 0;
2955
2956 virtual HRESULT STDMETHODCALLTYPE GetCodecFormatDesc(
2957 REFGUID guid,
2958 DWORD codecindex,
2959 DWORD formatindex,
2960 IWMStreamConfig **streamconfig,
2961 WCHAR *description,
2962 DWORD *descrsize) = 0;
2963
2964};
2965#ifdef __CRT_UUID_DECL
2966__CRT_UUID_DECL(IWMCodecInfo2, 0xaa65e273, 0xb686, 0x4056, 0x91,0xec, 0xdd,0x76,0x8d,0x4d,0xf7,0x10)
2967#endif
2968#else
2969typedef struct IWMCodecInfo2Vtbl {
2970 BEGIN_INTERFACE
2971
2972 /*** IUnknown methods ***/
2973 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2974 IWMCodecInfo2 *This,
2975 REFIID riid,
2976 void **ppvObject);
2977
2978 ULONG (STDMETHODCALLTYPE *AddRef)(
2979 IWMCodecInfo2 *This);
2980
2981 ULONG (STDMETHODCALLTYPE *Release)(
2982 IWMCodecInfo2 *This);
2983
2984 /*** IWMCodecInfo methods ***/
2985 HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)(
2986 IWMCodecInfo2 *This,
2987 REFGUID guid,
2988 DWORD *count);
2989
2990 HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)(
2991 IWMCodecInfo2 *This,
2992 REFGUID guid,
2993 DWORD codecindex,
2994 DWORD *formatcount);
2995
2996 HRESULT (STDMETHODCALLTYPE *GetCodecFormat)(
2997 IWMCodecInfo2 *This,
2998 REFGUID guid,
2999 DWORD codecindex,
3000 DWORD formatindex,
3001 IWMStreamConfig **streamconfig);
3002
3003 /*** IWMCodecInfo2 methods ***/
3004 HRESULT (STDMETHODCALLTYPE *GetCodecName)(
3005 IWMCodecInfo2 *This,
3006 REFGUID guid,
3007 DWORD codecindex,
3008 WCHAR *name,
3009 DWORD *namesize);
3010
3011 HRESULT (STDMETHODCALLTYPE *GetCodecFormatDesc)(
3012 IWMCodecInfo2 *This,
3013 REFGUID guid,
3014 DWORD codecindex,
3015 DWORD formatindex,
3016 IWMStreamConfig **streamconfig,
3017 WCHAR *description,
3018 DWORD *descrsize);
3019
3020 END_INTERFACE
3021} IWMCodecInfo2Vtbl;
3022
3023interface IWMCodecInfo2 {
3024 CONST_VTBL IWMCodecInfo2Vtbl* lpVtbl;
3025};
3026
3027#ifdef COBJMACROS
3028#ifndef WIDL_C_INLINE_WRAPPERS
3029/*** IUnknown methods ***/
3030#define IWMCodecInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3031#define IWMCodecInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
3032#define IWMCodecInfo2_Release(This) (This)->lpVtbl->Release(This)
3033/*** IWMCodecInfo methods ***/
3034#define IWMCodecInfo2_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count)
3035#define IWMCodecInfo2_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount)
3036#define IWMCodecInfo2_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig)
3037/*** IWMCodecInfo2 methods ***/
3038#define IWMCodecInfo2_GetCodecName(This,guid,codecindex,name,namesize) (This)->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize)
3039#define IWMCodecInfo2_GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) (This)->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize)
3040#else
3041/*** IUnknown methods ***/
3042static inline HRESULT IWMCodecInfo2_QueryInterface(IWMCodecInfo2* This,REFIID riid,void **ppvObject) {
3043 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3044}
3045static inline ULONG IWMCodecInfo2_AddRef(IWMCodecInfo2* This) {
3046 return This->lpVtbl->AddRef(This);
3047}
3048static inline ULONG IWMCodecInfo2_Release(IWMCodecInfo2* This) {
3049 return This->lpVtbl->Release(This);
3050}
3051/*** IWMCodecInfo methods ***/
3052static inline HRESULT IWMCodecInfo2_GetCodecInfoCount(IWMCodecInfo2* This,REFGUID guid,DWORD *count) {
3053 return This->lpVtbl->GetCodecInfoCount(This,guid,count);
3054}
3055static inline HRESULT IWMCodecInfo2_GetCodecFormatCount(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) {
3056 return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount);
3057}
3058static inline HRESULT IWMCodecInfo2_GetCodecFormat(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) {
3059 return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig);
3060}
3061/*** IWMCodecInfo2 methods ***/
3062static inline HRESULT IWMCodecInfo2_GetCodecName(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,WCHAR *name,DWORD *namesize) {
3063 return This->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize);
3064}
3065static inline HRESULT IWMCodecInfo2_GetCodecFormatDesc(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig,WCHAR *description,DWORD *descrsize) {
3066 return This->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize);
3067}
3068#endif
3069#endif
3070
3071#endif
3072
3073
3074#endif /* __IWMCodecInfo2_INTERFACE_DEFINED__ */
3075
3076/*****************************************************************************
3077 * IWMCodecInfo3 interface
3078 */
3079#ifndef __IWMCodecInfo3_INTERFACE_DEFINED__
3080#define __IWMCodecInfo3_INTERFACE_DEFINED__
3081
3082DEFINE_GUID(IID_IWMCodecInfo3, 0x7e51f487, 0x4d93, 0x4f98, 0x8a,0xb4, 0x27,0xd0,0x56,0x5a,0xdc,0x51);
3083#if defined(__cplusplus) && !defined(CINTERFACE)
3084MIDL_INTERFACE("7e51f487-4d93-4f98-8ab4-27d0565adc51")
3085IWMCodecInfo3 : public IWMCodecInfo2
3086{
3087 virtual HRESULT STDMETHODCALLTYPE GetCodecFormatProp(
3088 REFGUID guid,
3089 DWORD codecindex,
3090 DWORD formatindex,
3091 const WCHAR *name,
3092 WMT_ATTR_DATATYPE *type,
3093 BYTE *value,
3094 DWORD *size) = 0;
3095
3096 virtual HRESULT STDMETHODCALLTYPE GetCodecProp(
3097 REFGUID guid,
3098 DWORD codecindex,
3099 const WCHAR *name,
3100 WMT_ATTR_DATATYPE *type,
3101 BYTE *value,
3102 DWORD *size) = 0;
3103
3104 virtual HRESULT STDMETHODCALLTYPE SetCodecEnumerationSetting(
3105 REFGUID guid,
3106 DWORD codecindex,
3107 const WCHAR *name,
3108 WMT_ATTR_DATATYPE type,
3109 const BYTE *value,
3110 DWORD size) = 0;
3111
3112 virtual HRESULT STDMETHODCALLTYPE GetCodecEnumerationSetting(
3113 REFGUID guid,
3114 DWORD codecindex,
3115 const WCHAR *name,
3116 WMT_ATTR_DATATYPE *type,
3117 BYTE *value,
3118 DWORD *size) = 0;
3119
3120};
3121#ifdef __CRT_UUID_DECL
3122__CRT_UUID_DECL(IWMCodecInfo3, 0x7e51f487, 0x4d93, 0x4f98, 0x8a,0xb4, 0x27,0xd0,0x56,0x5a,0xdc,0x51)
3123#endif
3124#else
3125typedef struct IWMCodecInfo3Vtbl {
3126 BEGIN_INTERFACE
3127
3128 /*** IUnknown methods ***/
3129 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3130 IWMCodecInfo3 *This,
3131 REFIID riid,
3132 void **ppvObject);
3133
3134 ULONG (STDMETHODCALLTYPE *AddRef)(
3135 IWMCodecInfo3 *This);
3136
3137 ULONG (STDMETHODCALLTYPE *Release)(
3138 IWMCodecInfo3 *This);
3139
3140 /*** IWMCodecInfo methods ***/
3141 HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)(
3142 IWMCodecInfo3 *This,
3143 REFGUID guid,
3144 DWORD *count);
3145
3146 HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)(
3147 IWMCodecInfo3 *This,
3148 REFGUID guid,
3149 DWORD codecindex,
3150 DWORD *formatcount);
3151
3152 HRESULT (STDMETHODCALLTYPE *GetCodecFormat)(
3153 IWMCodecInfo3 *This,
3154 REFGUID guid,
3155 DWORD codecindex,
3156 DWORD formatindex,
3157 IWMStreamConfig **streamconfig);
3158
3159 /*** IWMCodecInfo2 methods ***/
3160 HRESULT (STDMETHODCALLTYPE *GetCodecName)(
3161 IWMCodecInfo3 *This,
3162 REFGUID guid,
3163 DWORD codecindex,
3164 WCHAR *name,
3165 DWORD *namesize);
3166
3167 HRESULT (STDMETHODCALLTYPE *GetCodecFormatDesc)(
3168 IWMCodecInfo3 *This,
3169 REFGUID guid,
3170 DWORD codecindex,
3171 DWORD formatindex,
3172 IWMStreamConfig **streamconfig,
3173 WCHAR *description,
3174 DWORD *descrsize);
3175
3176 /*** IWMCodecInfo3 methods ***/
3177 HRESULT (STDMETHODCALLTYPE *GetCodecFormatProp)(
3178 IWMCodecInfo3 *This,
3179 REFGUID guid,
3180 DWORD codecindex,
3181 DWORD formatindex,
3182 const WCHAR *name,
3183 WMT_ATTR_DATATYPE *type,
3184 BYTE *value,
3185 DWORD *size);
3186
3187 HRESULT (STDMETHODCALLTYPE *GetCodecProp)(
3188 IWMCodecInfo3 *This,
3189 REFGUID guid,
3190 DWORD codecindex,
3191 const WCHAR *name,
3192 WMT_ATTR_DATATYPE *type,
3193 BYTE *value,
3194 DWORD *size);
3195
3196 HRESULT (STDMETHODCALLTYPE *SetCodecEnumerationSetting)(
3197 IWMCodecInfo3 *This,
3198 REFGUID guid,
3199 DWORD codecindex,
3200 const WCHAR *name,
3201 WMT_ATTR_DATATYPE type,
3202 const BYTE *value,
3203 DWORD size);
3204
3205 HRESULT (STDMETHODCALLTYPE *GetCodecEnumerationSetting)(
3206 IWMCodecInfo3 *This,
3207 REFGUID guid,
3208 DWORD codecindex,
3209 const WCHAR *name,
3210 WMT_ATTR_DATATYPE *type,
3211 BYTE *value,
3212 DWORD *size);
3213
3214 END_INTERFACE
3215} IWMCodecInfo3Vtbl;
3216
3217interface IWMCodecInfo3 {
3218 CONST_VTBL IWMCodecInfo3Vtbl* lpVtbl;
3219};
3220
3221#ifdef COBJMACROS
3222#ifndef WIDL_C_INLINE_WRAPPERS
3223/*** IUnknown methods ***/
3224#define IWMCodecInfo3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3225#define IWMCodecInfo3_AddRef(This) (This)->lpVtbl->AddRef(This)
3226#define IWMCodecInfo3_Release(This) (This)->lpVtbl->Release(This)
3227/*** IWMCodecInfo methods ***/
3228#define IWMCodecInfo3_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count)
3229#define IWMCodecInfo3_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount)
3230#define IWMCodecInfo3_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig)
3231/*** IWMCodecInfo2 methods ***/
3232#define IWMCodecInfo3_GetCodecName(This,guid,codecindex,name,namesize) (This)->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize)
3233#define IWMCodecInfo3_GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) (This)->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize)
3234/*** IWMCodecInfo3 methods ***/
3235#define IWMCodecInfo3_GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size) (This)->lpVtbl->GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size)
3236#define IWMCodecInfo3_GetCodecProp(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->GetCodecProp(This,guid,codecindex,name,type,value,size)
3237#define IWMCodecInfo3_SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size)
3238#define IWMCodecInfo3_GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size)
3239#else
3240/*** IUnknown methods ***/
3241static inline HRESULT IWMCodecInfo3_QueryInterface(IWMCodecInfo3* This,REFIID riid,void **ppvObject) {
3242 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3243}
3244static inline ULONG IWMCodecInfo3_AddRef(IWMCodecInfo3* This) {
3245 return This->lpVtbl->AddRef(This);
3246}
3247static inline ULONG IWMCodecInfo3_Release(IWMCodecInfo3* This) {
3248 return This->lpVtbl->Release(This);
3249}
3250/*** IWMCodecInfo methods ***/
3251static inline HRESULT IWMCodecInfo3_GetCodecInfoCount(IWMCodecInfo3* This,REFGUID guid,DWORD *count) {
3252 return This->lpVtbl->GetCodecInfoCount(This,guid,count);
3253}
3254static inline HRESULT IWMCodecInfo3_GetCodecFormatCount(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) {
3255 return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount);
3256}
3257static inline HRESULT IWMCodecInfo3_GetCodecFormat(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) {
3258 return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig);
3259}
3260/*** IWMCodecInfo2 methods ***/
3261static inline HRESULT IWMCodecInfo3_GetCodecName(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,WCHAR *name,DWORD *namesize) {
3262 return This->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize);
3263}
3264static inline HRESULT IWMCodecInfo3_GetCodecFormatDesc(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig,WCHAR *description,DWORD *descrsize) {
3265 return This->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize);
3266}
3267/*** IWMCodecInfo3 methods ***/
3268static inline HRESULT IWMCodecInfo3_GetCodecFormatProp(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
3269 return This->lpVtbl->GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size);
3270}
3271static inline HRESULT IWMCodecInfo3_GetCodecProp(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
3272 return This->lpVtbl->GetCodecProp(This,guid,codecindex,name,type,value,size);
3273}
3274static inline HRESULT IWMCodecInfo3_SetCodecEnumerationSetting(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,DWORD size) {
3275 return This->lpVtbl->SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size);
3276}
3277static inline HRESULT IWMCodecInfo3_GetCodecEnumerationSetting(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
3278 return This->lpVtbl->GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size);
3279}
3280#endif
3281#endif
3282
3283#endif
3284
3285
3286#endif /* __IWMCodecInfo3_INTERFACE_DEFINED__ */
3287
3288static const WCHAR g_wszNumPasses[] = {'_','P','A','S','S','E','S','U','S','E','D',0};
3289static const WCHAR g_wszVBREnabled[] = {'_','V','B','R','E','N','A','B','L','E','D',0};
3290/*****************************************************************************
3291 * IWMMediaProps interface
3292 */
3293#ifndef __IWMMediaProps_INTERFACE_DEFINED__
3294#define __IWMMediaProps_INTERFACE_DEFINED__
3295
3296DEFINE_GUID(IID_IWMMediaProps, 0x96406bce, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
3297#if defined(__cplusplus) && !defined(CINTERFACE)
3298MIDL_INTERFACE("96406bce-2b2b-11d3-b36b-00c04f6108ff")
3299IWMMediaProps : public IUnknown
3300{
3301 virtual HRESULT STDMETHODCALLTYPE GetType(
3302 GUID *pguidType) = 0;
3303
3304 virtual HRESULT STDMETHODCALLTYPE GetMediaType(
3305 WM_MEDIA_TYPE *pType,
3306 DWORD *pcbType) = 0;
3307
3308 virtual HRESULT STDMETHODCALLTYPE SetMediaType(
3309 WM_MEDIA_TYPE *pType) = 0;
3310
3311};
3312#ifdef __CRT_UUID_DECL
3313__CRT_UUID_DECL(IWMMediaProps, 0x96406bce, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
3314#endif
3315#else
3316typedef struct IWMMediaPropsVtbl {
3317 BEGIN_INTERFACE
3318
3319 /*** IUnknown methods ***/
3320 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3321 IWMMediaProps *This,
3322 REFIID riid,
3323 void **ppvObject);
3324
3325 ULONG (STDMETHODCALLTYPE *AddRef)(
3326 IWMMediaProps *This);
3327
3328 ULONG (STDMETHODCALLTYPE *Release)(
3329 IWMMediaProps *This);
3330
3331 /*** IWMMediaProps methods ***/
3332 HRESULT (STDMETHODCALLTYPE *GetType)(
3333 IWMMediaProps *This,
3334 GUID *pguidType);
3335
3336 HRESULT (STDMETHODCALLTYPE *GetMediaType)(
3337 IWMMediaProps *This,
3338 WM_MEDIA_TYPE *pType,
3339 DWORD *pcbType);
3340
3341 HRESULT (STDMETHODCALLTYPE *SetMediaType)(
3342 IWMMediaProps *This,
3343 WM_MEDIA_TYPE *pType);
3344
3345 END_INTERFACE
3346} IWMMediaPropsVtbl;
3347
3348interface IWMMediaProps {
3349 CONST_VTBL IWMMediaPropsVtbl* lpVtbl;
3350};
3351
3352#ifdef COBJMACROS
3353#ifndef WIDL_C_INLINE_WRAPPERS
3354/*** IUnknown methods ***/
3355#define IWMMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3356#define IWMMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This)
3357#define IWMMediaProps_Release(This) (This)->lpVtbl->Release(This)
3358/*** IWMMediaProps methods ***/
3359#define IWMMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
3360#define IWMMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType)
3361#define IWMMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType)
3362#else
3363/*** IUnknown methods ***/
3364static inline HRESULT IWMMediaProps_QueryInterface(IWMMediaProps* This,REFIID riid,void **ppvObject) {
3365 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3366}
3367static inline ULONG IWMMediaProps_AddRef(IWMMediaProps* This) {
3368 return This->lpVtbl->AddRef(This);
3369}
3370static inline ULONG IWMMediaProps_Release(IWMMediaProps* This) {
3371 return This->lpVtbl->Release(This);
3372}
3373/*** IWMMediaProps methods ***/
3374static inline HRESULT IWMMediaProps_GetType(IWMMediaProps* This,GUID *pguidType) {
3375 return This->lpVtbl->GetType(This,pguidType);
3376}
3377static inline HRESULT IWMMediaProps_GetMediaType(IWMMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) {
3378 return This->lpVtbl->GetMediaType(This,pType,pcbType);
3379}
3380static inline HRESULT IWMMediaProps_SetMediaType(IWMMediaProps* This,WM_MEDIA_TYPE *pType) {
3381 return This->lpVtbl->SetMediaType(This,pType);
3382}
3383#endif
3384#endif
3385
3386#endif
3387
3388
3389#endif /* __IWMMediaProps_INTERFACE_DEFINED__ */
3390
3391/*****************************************************************************
3392 * IWMOutputMediaProps interface
3393 */
3394#ifndef __IWMOutputMediaProps_INTERFACE_DEFINED__
3395#define __IWMOutputMediaProps_INTERFACE_DEFINED__
3396
3397DEFINE_GUID(IID_IWMOutputMediaProps, 0x96406bd7, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
3398#if defined(__cplusplus) && !defined(CINTERFACE)
3399MIDL_INTERFACE("96406bd7-2b2b-11d3-b36b-00c04f6108ff")
3400IWMOutputMediaProps : public IWMMediaProps
3401{
3402 virtual HRESULT STDMETHODCALLTYPE GetStreamGroupName(
3403 WCHAR *pwszName,
3404 WORD *pcchName) = 0;
3405
3406 virtual HRESULT STDMETHODCALLTYPE GetConnectionName(
3407 WCHAR *pwszName,
3408 WORD *pcchName) = 0;
3409
3410};
3411#ifdef __CRT_UUID_DECL
3412__CRT_UUID_DECL(IWMOutputMediaProps, 0x96406bd7, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
3413#endif
3414#else
3415typedef struct IWMOutputMediaPropsVtbl {
3416 BEGIN_INTERFACE
3417
3418 /*** IUnknown methods ***/
3419 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3420 IWMOutputMediaProps *This,
3421 REFIID riid,
3422 void **ppvObject);
3423
3424 ULONG (STDMETHODCALLTYPE *AddRef)(
3425 IWMOutputMediaProps *This);
3426
3427 ULONG (STDMETHODCALLTYPE *Release)(
3428 IWMOutputMediaProps *This);
3429
3430 /*** IWMMediaProps methods ***/
3431 HRESULT (STDMETHODCALLTYPE *GetType)(
3432 IWMOutputMediaProps *This,
3433 GUID *pguidType);
3434
3435 HRESULT (STDMETHODCALLTYPE *GetMediaType)(
3436 IWMOutputMediaProps *This,
3437 WM_MEDIA_TYPE *pType,
3438 DWORD *pcbType);
3439
3440 HRESULT (STDMETHODCALLTYPE *SetMediaType)(
3441 IWMOutputMediaProps *This,
3442 WM_MEDIA_TYPE *pType);
3443
3444 /*** IWMOutputMediaProps methods ***/
3445 HRESULT (STDMETHODCALLTYPE *GetStreamGroupName)(
3446 IWMOutputMediaProps *This,
3447 WCHAR *pwszName,
3448 WORD *pcchName);
3449
3450 HRESULT (STDMETHODCALLTYPE *GetConnectionName)(
3451 IWMOutputMediaProps *This,
3452 WCHAR *pwszName,
3453 WORD *pcchName);
3454
3455 END_INTERFACE
3456} IWMOutputMediaPropsVtbl;
3457
3458interface IWMOutputMediaProps {
3459 CONST_VTBL IWMOutputMediaPropsVtbl* lpVtbl;
3460};
3461
3462#ifdef COBJMACROS
3463#ifndef WIDL_C_INLINE_WRAPPERS
3464/*** IUnknown methods ***/
3465#define IWMOutputMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3466#define IWMOutputMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This)
3467#define IWMOutputMediaProps_Release(This) (This)->lpVtbl->Release(This)
3468/*** IWMMediaProps methods ***/
3469#define IWMOutputMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
3470#define IWMOutputMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType)
3471#define IWMOutputMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType)
3472/*** IWMOutputMediaProps methods ***/
3473#define IWMOutputMediaProps_GetStreamGroupName(This,pwszName,pcchName) (This)->lpVtbl->GetStreamGroupName(This,pwszName,pcchName)
3474#define IWMOutputMediaProps_GetConnectionName(This,pwszName,pcchName) (This)->lpVtbl->GetConnectionName(This,pwszName,pcchName)
3475#else
3476/*** IUnknown methods ***/
3477static inline HRESULT IWMOutputMediaProps_QueryInterface(IWMOutputMediaProps* This,REFIID riid,void **ppvObject) {
3478 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3479}
3480static inline ULONG IWMOutputMediaProps_AddRef(IWMOutputMediaProps* This) {
3481 return This->lpVtbl->AddRef(This);
3482}
3483static inline ULONG IWMOutputMediaProps_Release(IWMOutputMediaProps* This) {
3484 return This->lpVtbl->Release(This);
3485}
3486/*** IWMMediaProps methods ***/
3487static inline HRESULT IWMOutputMediaProps_GetType(IWMOutputMediaProps* This,GUID *pguidType) {
3488 return This->lpVtbl->GetType(This,pguidType);
3489}
3490static inline HRESULT IWMOutputMediaProps_GetMediaType(IWMOutputMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) {
3491 return This->lpVtbl->GetMediaType(This,pType,pcbType);
3492}
3493static inline HRESULT IWMOutputMediaProps_SetMediaType(IWMOutputMediaProps* This,WM_MEDIA_TYPE *pType) {
3494 return This->lpVtbl->SetMediaType(This,pType);
3495}
3496/*** IWMOutputMediaProps methods ***/
3497static inline HRESULT IWMOutputMediaProps_GetStreamGroupName(IWMOutputMediaProps* This,WCHAR *pwszName,WORD *pcchName) {
3498 return This->lpVtbl->GetStreamGroupName(This,pwszName,pcchName);
3499}
3500static inline HRESULT IWMOutputMediaProps_GetConnectionName(IWMOutputMediaProps* This,WCHAR *pwszName,WORD *pcchName) {
3501 return This->lpVtbl->GetConnectionName(This,pwszName,pcchName);
3502}
3503#endif
3504#endif
3505
3506#endif
3507
3508
3509#endif /* __IWMOutputMediaProps_INTERFACE_DEFINED__ */
3510
3511/*****************************************************************************
3512 * IWMMetadataEditor interface
3513 */
3514#ifndef __IWMMetadataEditor_INTERFACE_DEFINED__
3515#define __IWMMetadataEditor_INTERFACE_DEFINED__
3516
3517DEFINE_GUID(IID_IWMMetadataEditor, 0x96406bd9, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
3518#if defined(__cplusplus) && !defined(CINTERFACE)
3519MIDL_INTERFACE("96406bd9-2b2b-11d3-b36b-00c04f6108ff")
3520IWMMetadataEditor : public IUnknown
3521{
3522 virtual HRESULT STDMETHODCALLTYPE Open(
3523 const WCHAR *pwszFilename) = 0;
3524
3525 virtual HRESULT STDMETHODCALLTYPE Close(
3526 ) = 0;
3527
3528 virtual HRESULT STDMETHODCALLTYPE Flush(
3529 ) = 0;
3530
3531};
3532#ifdef __CRT_UUID_DECL
3533__CRT_UUID_DECL(IWMMetadataEditor, 0x96406bd9, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
3534#endif
3535#else
3536typedef struct IWMMetadataEditorVtbl {
3537 BEGIN_INTERFACE
3538
3539 /*** IUnknown methods ***/
3540 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3541 IWMMetadataEditor *This,
3542 REFIID riid,
3543 void **ppvObject);
3544
3545 ULONG (STDMETHODCALLTYPE *AddRef)(
3546 IWMMetadataEditor *This);
3547
3548 ULONG (STDMETHODCALLTYPE *Release)(
3549 IWMMetadataEditor *This);
3550
3551 /*** IWMMetadataEditor methods ***/
3552 HRESULT (STDMETHODCALLTYPE *Open)(
3553 IWMMetadataEditor *This,
3554 const WCHAR *pwszFilename);
3555
3556 HRESULT (STDMETHODCALLTYPE *Close)(
3557 IWMMetadataEditor *This);
3558
3559 HRESULT (STDMETHODCALLTYPE *Flush)(
3560 IWMMetadataEditor *This);
3561
3562 END_INTERFACE
3563} IWMMetadataEditorVtbl;
3564
3565interface IWMMetadataEditor {
3566 CONST_VTBL IWMMetadataEditorVtbl* lpVtbl;
3567};
3568
3569#ifdef COBJMACROS
3570#ifndef WIDL_C_INLINE_WRAPPERS
3571/*** IUnknown methods ***/
3572#define IWMMetadataEditor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3573#define IWMMetadataEditor_AddRef(This) (This)->lpVtbl->AddRef(This)
3574#define IWMMetadataEditor_Release(This) (This)->lpVtbl->Release(This)
3575/*** IWMMetadataEditor methods ***/
3576#define IWMMetadataEditor_Open(This,pwszFilename) (This)->lpVtbl->Open(This,pwszFilename)
3577#define IWMMetadataEditor_Close(This) (This)->lpVtbl->Close(This)
3578#define IWMMetadataEditor_Flush(This) (This)->lpVtbl->Flush(This)
3579#else
3580/*** IUnknown methods ***/
3581static inline HRESULT IWMMetadataEditor_QueryInterface(IWMMetadataEditor* This,REFIID riid,void **ppvObject) {
3582 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3583}
3584static inline ULONG IWMMetadataEditor_AddRef(IWMMetadataEditor* This) {
3585 return This->lpVtbl->AddRef(This);
3586}
3587static inline ULONG IWMMetadataEditor_Release(IWMMetadataEditor* This) {
3588 return This->lpVtbl->Release(This);
3589}
3590/*** IWMMetadataEditor methods ***/
3591static inline HRESULT IWMMetadataEditor_Open(IWMMetadataEditor* This,const WCHAR *pwszFilename) {
3592 return This->lpVtbl->Open(This,pwszFilename);
3593}
3594static inline HRESULT IWMMetadataEditor_Close(IWMMetadataEditor* This) {
3595 return This->lpVtbl->Close(This);
3596}
3597static inline HRESULT IWMMetadataEditor_Flush(IWMMetadataEditor* This) {
3598 return This->lpVtbl->Flush(This);
3599}
3600#endif
3601#endif
3602
3603#endif
3604
3605
3606#endif /* __IWMMetadataEditor_INTERFACE_DEFINED__ */
3607
3608/*****************************************************************************
3609 * IWMReader interface
3610 */
3611#ifndef __IWMReader_INTERFACE_DEFINED__
3612#define __IWMReader_INTERFACE_DEFINED__
3613
3614DEFINE_GUID(IID_IWMReader, 0x96406bd6, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
3615#if defined(__cplusplus) && !defined(CINTERFACE)
3616MIDL_INTERFACE("96406bd6-2b2b-11d3-b36b-00c04f6108ff")
3617IWMReader : public IUnknown
3618{
3619 virtual HRESULT STDMETHODCALLTYPE Open(
3620 const WCHAR *pwszURL,
3621 IWMReaderCallback *pCallback,
3622 void *pvContext) = 0;
3623
3624 virtual HRESULT STDMETHODCALLTYPE Close(
3625 ) = 0;
3626
3627 virtual HRESULT STDMETHODCALLTYPE GetOutputCount(
3628 DWORD *pcOutputs) = 0;
3629
3630 virtual HRESULT STDMETHODCALLTYPE GetOutputProps(
3631 DWORD dwOutputNum,
3632 IWMOutputMediaProps **ppOutput) = 0;
3633
3634 virtual HRESULT STDMETHODCALLTYPE SetOutputProps(
3635 DWORD dwOutputNum,
3636 IWMOutputMediaProps *pOutput) = 0;
3637
3638 virtual HRESULT STDMETHODCALLTYPE GetOutputFormatCount(
3639 DWORD dwOutputNumber,
3640 DWORD *pcFormats) = 0;
3641
3642 virtual HRESULT STDMETHODCALLTYPE GetOutputFormat(
3643 DWORD dwOutputNumber,
3644 DWORD dwFormatNumber,
3645 IWMOutputMediaProps **ppProps) = 0;
3646
3647 virtual HRESULT STDMETHODCALLTYPE Start(
3648 QWORD cnsStart,
3649 QWORD cnsDuration,
3650 float fRate,
3651 void *pvContext) = 0;
3652
3653 virtual HRESULT STDMETHODCALLTYPE Stop(
3654 ) = 0;
3655
3656 virtual HRESULT STDMETHODCALLTYPE Pause(
3657 ) = 0;
3658
3659 virtual HRESULT STDMETHODCALLTYPE Resume(
3660 ) = 0;
3661
3662};
3663#ifdef __CRT_UUID_DECL
3664__CRT_UUID_DECL(IWMReader, 0x96406bd6, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
3665#endif
3666#else
3667typedef struct IWMReaderVtbl {
3668 BEGIN_INTERFACE
3669
3670 /*** IUnknown methods ***/
3671 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3672 IWMReader *This,
3673 REFIID riid,
3674 void **ppvObject);
3675
3676 ULONG (STDMETHODCALLTYPE *AddRef)(
3677 IWMReader *This);
3678
3679 ULONG (STDMETHODCALLTYPE *Release)(
3680 IWMReader *This);
3681
3682 /*** IWMReader methods ***/
3683 HRESULT (STDMETHODCALLTYPE *Open)(
3684 IWMReader *This,
3685 const WCHAR *pwszURL,
3686 IWMReaderCallback *pCallback,
3687 void *pvContext);
3688
3689 HRESULT (STDMETHODCALLTYPE *Close)(
3690 IWMReader *This);
3691
3692 HRESULT (STDMETHODCALLTYPE *GetOutputCount)(
3693 IWMReader *This,
3694 DWORD *pcOutputs);
3695
3696 HRESULT (STDMETHODCALLTYPE *GetOutputProps)(
3697 IWMReader *This,
3698 DWORD dwOutputNum,
3699 IWMOutputMediaProps **ppOutput);
3700
3701 HRESULT (STDMETHODCALLTYPE *SetOutputProps)(
3702 IWMReader *This,
3703 DWORD dwOutputNum,
3704 IWMOutputMediaProps *pOutput);
3705
3706 HRESULT (STDMETHODCALLTYPE *GetOutputFormatCount)(
3707 IWMReader *This,
3708 DWORD dwOutputNumber,
3709 DWORD *pcFormats);
3710
3711 HRESULT (STDMETHODCALLTYPE *GetOutputFormat)(
3712 IWMReader *This,
3713 DWORD dwOutputNumber,
3714 DWORD dwFormatNumber,
3715 IWMOutputMediaProps **ppProps);
3716
3717 HRESULT (STDMETHODCALLTYPE *Start)(
3718 IWMReader *This,
3719 QWORD cnsStart,
3720 QWORD cnsDuration,
3721 float fRate,
3722 void *pvContext);
3723
3724 HRESULT (STDMETHODCALLTYPE *Stop)(
3725 IWMReader *This);
3726
3727 HRESULT (STDMETHODCALLTYPE *Pause)(
3728 IWMReader *This);
3729
3730 HRESULT (STDMETHODCALLTYPE *Resume)(
3731 IWMReader *This);
3732
3733 END_INTERFACE
3734} IWMReaderVtbl;
3735
3736interface IWMReader {
3737 CONST_VTBL IWMReaderVtbl* lpVtbl;
3738};
3739
3740#ifdef COBJMACROS
3741#ifndef WIDL_C_INLINE_WRAPPERS
3742/*** IUnknown methods ***/
3743#define IWMReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3744#define IWMReader_AddRef(This) (This)->lpVtbl->AddRef(This)
3745#define IWMReader_Release(This) (This)->lpVtbl->Release(This)
3746/*** IWMReader methods ***/
3747#define IWMReader_Open(This,pwszURL,pCallback,pvContext) (This)->lpVtbl->Open(This,pwszURL,pCallback,pvContext)
3748#define IWMReader_Close(This) (This)->lpVtbl->Close(This)
3749#define IWMReader_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs)
3750#define IWMReader_GetOutputProps(This,dwOutputNum,ppOutput) (This)->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput)
3751#define IWMReader_SetOutputProps(This,dwOutputNum,pOutput) (This)->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput)
3752#define IWMReader_GetOutputFormatCount(This,dwOutputNumber,pcFormats) (This)->lpVtbl->GetOutputFormatCount(This,dwOutputNumber,pcFormats)
3753#define IWMReader_GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps) (This)->lpVtbl->GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps)
3754#define IWMReader_Start(This,cnsStart,cnsDuration,fRate,pvContext) (This)->lpVtbl->Start(This,cnsStart,cnsDuration,fRate,pvContext)
3755#define IWMReader_Stop(This) (This)->lpVtbl->Stop(This)
3756#define IWMReader_Pause(This) (This)->lpVtbl->Pause(This)
3757#define IWMReader_Resume(This) (This)->lpVtbl->Resume(This)
3758#else
3759/*** IUnknown methods ***/
3760static inline HRESULT IWMReader_QueryInterface(IWMReader* This,REFIID riid,void **ppvObject) {
3761 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3762}
3763static inline ULONG IWMReader_AddRef(IWMReader* This) {
3764 return This->lpVtbl->AddRef(This);
3765}
3766static inline ULONG IWMReader_Release(IWMReader* This) {
3767 return This->lpVtbl->Release(This);
3768}
3769/*** IWMReader methods ***/
3770static inline HRESULT IWMReader_Open(IWMReader* This,const WCHAR *pwszURL,IWMReaderCallback *pCallback,void *pvContext) {
3771 return This->lpVtbl->Open(This,pwszURL,pCallback,pvContext);
3772}
3773static inline HRESULT IWMReader_Close(IWMReader* This) {
3774 return This->lpVtbl->Close(This);
3775}
3776static inline HRESULT IWMReader_GetOutputCount(IWMReader* This,DWORD *pcOutputs) {
3777 return This->lpVtbl->GetOutputCount(This,pcOutputs);
3778}
3779static inline HRESULT IWMReader_GetOutputProps(IWMReader* This,DWORD dwOutputNum,IWMOutputMediaProps **ppOutput) {
3780 return This->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput);
3781}
3782static inline HRESULT IWMReader_SetOutputProps(IWMReader* This,DWORD dwOutputNum,IWMOutputMediaProps *pOutput) {
3783 return This->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput);
3784}
3785static inline HRESULT IWMReader_GetOutputFormatCount(IWMReader* This,DWORD dwOutputNumber,DWORD *pcFormats) {
3786 return This->lpVtbl->GetOutputFormatCount(This,dwOutputNumber,pcFormats);
3787}
3788static inline HRESULT IWMReader_GetOutputFormat(IWMReader* This,DWORD dwOutputNumber,DWORD dwFormatNumber,IWMOutputMediaProps **ppProps) {
3789 return This->lpVtbl->GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps);
3790}
3791static inline HRESULT IWMReader_Start(IWMReader* This,QWORD cnsStart,QWORD cnsDuration,float fRate,void *pvContext) {
3792 return This->lpVtbl->Start(This,cnsStart,cnsDuration,fRate,pvContext);
3793}
3794static inline HRESULT IWMReader_Stop(IWMReader* This) {
3795 return This->lpVtbl->Stop(This);
3796}
3797static inline HRESULT IWMReader_Pause(IWMReader* This) {
3798 return This->lpVtbl->Pause(This);
3799}
3800static inline HRESULT IWMReader_Resume(IWMReader* This) {
3801 return This->lpVtbl->Resume(This);
3802}
3803#endif
3804#endif
3805
3806#endif
3807
3808
3809#endif /* __IWMReader_INTERFACE_DEFINED__ */
3810
3811/*****************************************************************************
3812 * IWMPlayerHook interface
3813 */
3814#ifndef __IWMPlayerHook_INTERFACE_DEFINED__
3815#define __IWMPlayerHook_INTERFACE_DEFINED__
3816
3817DEFINE_GUID(IID_IWMPlayerHook, 0xe5b7ca9a, 0x0f1c, 0x4f66, 0x90,0x02, 0x74,0xec,0x50,0xd8,0xb3,0x04);
3818#if defined(__cplusplus) && !defined(CINTERFACE)
3819MIDL_INTERFACE("e5b7ca9a-0f1c-4f66-9002-74ec50d8b304")
3820IWMPlayerHook : public IUnknown
3821{
3822 virtual HRESULT STDMETHODCALLTYPE PreDecode(
3823 ) = 0;
3824
3825};
3826#ifdef __CRT_UUID_DECL
3827__CRT_UUID_DECL(IWMPlayerHook, 0xe5b7ca9a, 0x0f1c, 0x4f66, 0x90,0x02, 0x74,0xec,0x50,0xd8,0xb3,0x04)
3828#endif
3829#else
3830typedef struct IWMPlayerHookVtbl {
3831 BEGIN_INTERFACE
3832
3833 /*** IUnknown methods ***/
3834 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3835 IWMPlayerHook *This,
3836 REFIID riid,
3837 void **ppvObject);
3838
3839 ULONG (STDMETHODCALLTYPE *AddRef)(
3840 IWMPlayerHook *This);
3841
3842 ULONG (STDMETHODCALLTYPE *Release)(
3843 IWMPlayerHook *This);
3844
3845 /*** IWMPlayerHook methods ***/
3846 HRESULT (STDMETHODCALLTYPE *PreDecode)(
3847 IWMPlayerHook *This);
3848
3849 END_INTERFACE
3850} IWMPlayerHookVtbl;
3851
3852interface IWMPlayerHook {
3853 CONST_VTBL IWMPlayerHookVtbl* lpVtbl;
3854};
3855
3856#ifdef COBJMACROS
3857#ifndef WIDL_C_INLINE_WRAPPERS
3858/*** IUnknown methods ***/
3859#define IWMPlayerHook_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3860#define IWMPlayerHook_AddRef(This) (This)->lpVtbl->AddRef(This)
3861#define IWMPlayerHook_Release(This) (This)->lpVtbl->Release(This)
3862/*** IWMPlayerHook methods ***/
3863#define IWMPlayerHook_PreDecode(This) (This)->lpVtbl->PreDecode(This)
3864#else
3865/*** IUnknown methods ***/
3866static inline HRESULT IWMPlayerHook_QueryInterface(IWMPlayerHook* This,REFIID riid,void **ppvObject) {
3867 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3868}
3869static inline ULONG IWMPlayerHook_AddRef(IWMPlayerHook* This) {
3870 return This->lpVtbl->AddRef(This);
3871}
3872static inline ULONG IWMPlayerHook_Release(IWMPlayerHook* This) {
3873 return This->lpVtbl->Release(This);
3874}
3875/*** IWMPlayerHook methods ***/
3876static inline HRESULT IWMPlayerHook_PreDecode(IWMPlayerHook* This) {
3877 return This->lpVtbl->PreDecode(This);
3878}
3879#endif
3880#endif
3881
3882#endif
3883
3884
3885#endif /* __IWMPlayerHook_INTERFACE_DEFINED__ */
3886
3887/*****************************************************************************
3888 * IWMReaderAdvanced interface
3889 */
3890#ifndef __IWMReaderAdvanced_INTERFACE_DEFINED__
3891#define __IWMReaderAdvanced_INTERFACE_DEFINED__
3892
3893DEFINE_GUID(IID_IWMReaderAdvanced, 0x96406bea, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
3894#if defined(__cplusplus) && !defined(CINTERFACE)
3895MIDL_INTERFACE("96406bea-2b2b-11d3-b36b-00c04f6108ff")
3896IWMReaderAdvanced : public IUnknown
3897{
3898 virtual HRESULT STDMETHODCALLTYPE SetUserProvidedClock(
3899 WINBOOL fUserClock) = 0;
3900
3901 virtual HRESULT STDMETHODCALLTYPE GetUserProvidedClock(
3902 WINBOOL *pfUserClock) = 0;
3903
3904 virtual HRESULT STDMETHODCALLTYPE DeliverTime(
3905 QWORD cnsTime) = 0;
3906
3907 virtual HRESULT STDMETHODCALLTYPE SetManualStreamSelection(
3908 WINBOOL fSelection) = 0;
3909
3910 virtual HRESULT STDMETHODCALLTYPE GetManualStreamSelection(
3911 WINBOOL *pfSelection) = 0;
3912
3913 virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected(
3914 WORD cStreamCount,
3915 WORD *pwStreamNumbers,
3916 WMT_STREAM_SELECTION *pSelections) = 0;
3917
3918 virtual HRESULT STDMETHODCALLTYPE GetStreamSelected(
3919 WORD wStreamNum,
3920 WMT_STREAM_SELECTION *pSelection) = 0;
3921
3922 virtual HRESULT STDMETHODCALLTYPE SetReceiveSelectionCallbacks(
3923 WINBOOL fGetCallbacks) = 0;
3924
3925 virtual HRESULT STDMETHODCALLTYPE GetReceiveSelectionCallbacks(
3926 WINBOOL *pfGetCallbacks) = 0;
3927
3928 virtual HRESULT STDMETHODCALLTYPE SetReceiveStreamSamples(
3929 WORD wStreamNum,
3930 WINBOOL fReceiveStreamSamples) = 0;
3931
3932 virtual HRESULT STDMETHODCALLTYPE GetReceiveStreamSamples(
3933 WORD wStreamNum,
3934 WINBOOL *pfReceiveStreamSamples) = 0;
3935
3936 virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput(
3937 DWORD dwOutputNum,
3938 WINBOOL fAllocate) = 0;
3939
3940 virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput(
3941 DWORD dwOutputNum,
3942 WINBOOL *pfAllocate) = 0;
3943
3944 virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream(
3945 WORD wStreamNum,
3946 WINBOOL fAllocate) = 0;
3947
3948 virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream(
3949 WORD dwStreamNum,
3950 WINBOOL *pfAllocate) = 0;
3951
3952 virtual HRESULT STDMETHODCALLTYPE GetStatistics(
3953 WM_READER_STATISTICS *pStatistics) = 0;
3954
3955 virtual HRESULT STDMETHODCALLTYPE SetClientInfo(
3956 WM_READER_CLIENTINFO *pClientInfo) = 0;
3957
3958 virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize(
3959 DWORD dwOutput,
3960 DWORD *pcbMax) = 0;
3961
3962 virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize(
3963 WORD wStream,
3964 DWORD *pcbMax) = 0;
3965
3966 virtual HRESULT STDMETHODCALLTYPE NotifyLateDelivery(
3967 QWORD cnsLateness) = 0;
3968
3969};
3970#ifdef __CRT_UUID_DECL
3971__CRT_UUID_DECL(IWMReaderAdvanced, 0x96406bea, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
3972#endif
3973#else
3974typedef struct IWMReaderAdvancedVtbl {
3975 BEGIN_INTERFACE
3976
3977 /*** IUnknown methods ***/
3978 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3979 IWMReaderAdvanced *This,
3980 REFIID riid,
3981 void **ppvObject);
3982
3983 ULONG (STDMETHODCALLTYPE *AddRef)(
3984 IWMReaderAdvanced *This);
3985
3986 ULONG (STDMETHODCALLTYPE *Release)(
3987 IWMReaderAdvanced *This);
3988
3989 /*** IWMReaderAdvanced methods ***/
3990 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
3991 IWMReaderAdvanced *This,
3992 WINBOOL fUserClock);
3993
3994 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
3995 IWMReaderAdvanced *This,
3996 WINBOOL *pfUserClock);
3997
3998 HRESULT (STDMETHODCALLTYPE *DeliverTime)(
3999 IWMReaderAdvanced *This,
4000 QWORD cnsTime);
4001
4002 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
4003 IWMReaderAdvanced *This,
4004 WINBOOL fSelection);
4005
4006 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
4007 IWMReaderAdvanced *This,
4008 WINBOOL *pfSelection);
4009
4010 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
4011 IWMReaderAdvanced *This,
4012 WORD cStreamCount,
4013 WORD *pwStreamNumbers,
4014 WMT_STREAM_SELECTION *pSelections);
4015
4016 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
4017 IWMReaderAdvanced *This,
4018 WORD wStreamNum,
4019 WMT_STREAM_SELECTION *pSelection);
4020
4021 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
4022 IWMReaderAdvanced *This,
4023 WINBOOL fGetCallbacks);
4024
4025 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
4026 IWMReaderAdvanced *This,
4027 WINBOOL *pfGetCallbacks);
4028
4029 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
4030 IWMReaderAdvanced *This,
4031 WORD wStreamNum,
4032 WINBOOL fReceiveStreamSamples);
4033
4034 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
4035 IWMReaderAdvanced *This,
4036 WORD wStreamNum,
4037 WINBOOL *pfReceiveStreamSamples);
4038
4039 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
4040 IWMReaderAdvanced *This,
4041 DWORD dwOutputNum,
4042 WINBOOL fAllocate);
4043
4044 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
4045 IWMReaderAdvanced *This,
4046 DWORD dwOutputNum,
4047 WINBOOL *pfAllocate);
4048
4049 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
4050 IWMReaderAdvanced *This,
4051 WORD wStreamNum,
4052 WINBOOL fAllocate);
4053
4054 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
4055 IWMReaderAdvanced *This,
4056 WORD dwStreamNum,
4057 WINBOOL *pfAllocate);
4058
4059 HRESULT (STDMETHODCALLTYPE *GetStatistics)(
4060 IWMReaderAdvanced *This,
4061 WM_READER_STATISTICS *pStatistics);
4062
4063 HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
4064 IWMReaderAdvanced *This,
4065 WM_READER_CLIENTINFO *pClientInfo);
4066
4067 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
4068 IWMReaderAdvanced *This,
4069 DWORD dwOutput,
4070 DWORD *pcbMax);
4071
4072 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
4073 IWMReaderAdvanced *This,
4074 WORD wStream,
4075 DWORD *pcbMax);
4076
4077 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
4078 IWMReaderAdvanced *This,
4079 QWORD cnsLateness);
4080
4081 END_INTERFACE
4082} IWMReaderAdvancedVtbl;
4083
4084interface IWMReaderAdvanced {
4085 CONST_VTBL IWMReaderAdvancedVtbl* lpVtbl;
4086};
4087
4088#ifdef COBJMACROS
4089#ifndef WIDL_C_INLINE_WRAPPERS
4090/*** IUnknown methods ***/
4091#define IWMReaderAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4092#define IWMReaderAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This)
4093#define IWMReaderAdvanced_Release(This) (This)->lpVtbl->Release(This)
4094/*** IWMReaderAdvanced methods ***/
4095#define IWMReaderAdvanced_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
4096#define IWMReaderAdvanced_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
4097#define IWMReaderAdvanced_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
4098#define IWMReaderAdvanced_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
4099#define IWMReaderAdvanced_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
4100#define IWMReaderAdvanced_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
4101#define IWMReaderAdvanced_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
4102#define IWMReaderAdvanced_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
4103#define IWMReaderAdvanced_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
4104#define IWMReaderAdvanced_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
4105#define IWMReaderAdvanced_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
4106#define IWMReaderAdvanced_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
4107#define IWMReaderAdvanced_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
4108#define IWMReaderAdvanced_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
4109#define IWMReaderAdvanced_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
4110#define IWMReaderAdvanced_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
4111#define IWMReaderAdvanced_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
4112#define IWMReaderAdvanced_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
4113#define IWMReaderAdvanced_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
4114#define IWMReaderAdvanced_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
4115#else
4116/*** IUnknown methods ***/
4117static inline HRESULT IWMReaderAdvanced_QueryInterface(IWMReaderAdvanced* This,REFIID riid,void **ppvObject) {
4118 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4119}
4120static inline ULONG IWMReaderAdvanced_AddRef(IWMReaderAdvanced* This) {
4121 return This->lpVtbl->AddRef(This);
4122}
4123static inline ULONG IWMReaderAdvanced_Release(IWMReaderAdvanced* This) {
4124 return This->lpVtbl->Release(This);
4125}
4126/*** IWMReaderAdvanced methods ***/
4127static inline HRESULT IWMReaderAdvanced_SetUserProvidedClock(IWMReaderAdvanced* This,WINBOOL fUserClock) {
4128 return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
4129}
4130static inline HRESULT IWMReaderAdvanced_GetUserProvidedClock(IWMReaderAdvanced* This,WINBOOL *pfUserClock) {
4131 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
4132}
4133static inline HRESULT IWMReaderAdvanced_DeliverTime(IWMReaderAdvanced* This,QWORD cnsTime) {
4134 return This->lpVtbl->DeliverTime(This,cnsTime);
4135}
4136static inline HRESULT IWMReaderAdvanced_SetManualStreamSelection(IWMReaderAdvanced* This,WINBOOL fSelection) {
4137 return This->lpVtbl->SetManualStreamSelection(This,fSelection);
4138}
4139static inline HRESULT IWMReaderAdvanced_GetManualStreamSelection(IWMReaderAdvanced* This,WINBOOL *pfSelection) {
4140 return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
4141}
4142static inline HRESULT IWMReaderAdvanced_SetStreamsSelected(IWMReaderAdvanced* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
4143 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
4144}
4145static inline HRESULT IWMReaderAdvanced_GetStreamSelected(IWMReaderAdvanced* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
4146 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
4147}
4148static inline HRESULT IWMReaderAdvanced_SetReceiveSelectionCallbacks(IWMReaderAdvanced* This,WINBOOL fGetCallbacks) {
4149 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
4150}
4151static inline HRESULT IWMReaderAdvanced_GetReceiveSelectionCallbacks(IWMReaderAdvanced* This,WINBOOL *pfGetCallbacks) {
4152 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
4153}
4154static inline HRESULT IWMReaderAdvanced_SetReceiveStreamSamples(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
4155 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
4156}
4157static inline HRESULT IWMReaderAdvanced_GetReceiveStreamSamples(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
4158 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
4159}
4160static inline HRESULT IWMReaderAdvanced_SetAllocateForOutput(IWMReaderAdvanced* This,DWORD dwOutputNum,WINBOOL fAllocate) {
4161 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
4162}
4163static inline HRESULT IWMReaderAdvanced_GetAllocateForOutput(IWMReaderAdvanced* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
4164 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
4165}
4166static inline HRESULT IWMReaderAdvanced_SetAllocateForStream(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL fAllocate) {
4167 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
4168}
4169static inline HRESULT IWMReaderAdvanced_GetAllocateForStream(IWMReaderAdvanced* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
4170 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
4171}
4172static inline HRESULT IWMReaderAdvanced_GetStatistics(IWMReaderAdvanced* This,WM_READER_STATISTICS *pStatistics) {
4173 return This->lpVtbl->GetStatistics(This,pStatistics);
4174}
4175static inline HRESULT IWMReaderAdvanced_SetClientInfo(IWMReaderAdvanced* This,WM_READER_CLIENTINFO *pClientInfo) {
4176 return This->lpVtbl->SetClientInfo(This,pClientInfo);
4177}
4178static inline HRESULT IWMReaderAdvanced_GetMaxOutputSampleSize(IWMReaderAdvanced* This,DWORD dwOutput,DWORD *pcbMax) {
4179 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
4180}
4181static inline HRESULT IWMReaderAdvanced_GetMaxStreamSampleSize(IWMReaderAdvanced* This,WORD wStream,DWORD *pcbMax) {
4182 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
4183}
4184static inline HRESULT IWMReaderAdvanced_NotifyLateDelivery(IWMReaderAdvanced* This,QWORD cnsLateness) {
4185 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
4186}
4187#endif
4188#endif
4189
4190#endif
4191
4192
4193#endif /* __IWMReaderAdvanced_INTERFACE_DEFINED__ */
4194
4195/*****************************************************************************
4196 * IWMReaderAdvanced2 interface
4197 */
4198#ifndef __IWMReaderAdvanced2_INTERFACE_DEFINED__
4199#define __IWMReaderAdvanced2_INTERFACE_DEFINED__
4200
4201DEFINE_GUID(IID_IWMReaderAdvanced2, 0xae14a945, 0xb90c, 0x4d0d, 0x91,0x27, 0x80,0xd6,0x65,0xf7,0xd7,0x3e);
4202#if defined(__cplusplus) && !defined(CINTERFACE)
4203MIDL_INTERFACE("ae14a945-b90c-4d0d-9127-80d665f7d73e")
4204IWMReaderAdvanced2 : public IWMReaderAdvanced
4205{
4206 virtual HRESULT STDMETHODCALLTYPE SetPlayMode(
4207 WMT_PLAY_MODE Mode) = 0;
4208
4209 virtual HRESULT STDMETHODCALLTYPE GetPlayMode(
4210 WMT_PLAY_MODE *pMode) = 0;
4211
4212 virtual HRESULT STDMETHODCALLTYPE GetBufferProgress(
4213 DWORD *pdwPercent,
4214 QWORD *pcnsBuffering) = 0;
4215
4216 virtual HRESULT STDMETHODCALLTYPE GetDownloadProgress(
4217 DWORD *pdwPercent,
4218 QWORD *pqwBytesDownloaded,
4219 QWORD *pcnsDownload) = 0;
4220
4221 virtual HRESULT STDMETHODCALLTYPE GetSaveAsProgress(
4222 DWORD *pdwPercent) = 0;
4223
4224 virtual HRESULT STDMETHODCALLTYPE SaveFileAs(
4225 const WCHAR *pwszFilename) = 0;
4226
4227 virtual HRESULT STDMETHODCALLTYPE GetProtocolName(
4228 WCHAR *pwszProtocol,
4229 DWORD *pcchProtocol) = 0;
4230
4231 virtual HRESULT STDMETHODCALLTYPE StartAtMarker(
4232 WORD wMarkerIndex,
4233 QWORD cnsDuration,
4234 float fRate,
4235 void *pvContext) = 0;
4236
4237 virtual HRESULT STDMETHODCALLTYPE GetOutputSetting(
4238 DWORD dwOutputNum,
4239 LPCWSTR pszName,
4240 WMT_ATTR_DATATYPE *pType,
4241 BYTE *pValue,
4242 WORD *pcbLength) = 0;
4243
4244 virtual HRESULT STDMETHODCALLTYPE SetOutputSetting(
4245 DWORD dwOutputNum,
4246 LPCWSTR pszName,
4247 WMT_ATTR_DATATYPE Type,
4248 const BYTE *pValue,
4249 WORD cbLength) = 0;
4250
4251 virtual HRESULT STDMETHODCALLTYPE Preroll(
4252 QWORD cnsStart,
4253 QWORD cnsDuration,
4254 float fRate) = 0;
4255
4256 virtual HRESULT STDMETHODCALLTYPE SetLogClientID(
4257 WINBOOL fLogClientID) = 0;
4258
4259 virtual HRESULT STDMETHODCALLTYPE GetLogClientID(
4260 WINBOOL *pfLogClientID) = 0;
4261
4262 virtual HRESULT STDMETHODCALLTYPE StopBuffering(
4263 ) = 0;
4264
4265 virtual HRESULT STDMETHODCALLTYPE OpenStream(
4266 IStream *pStream,
4267 IWMReaderCallback *pCallback,
4268 void *pvContext) = 0;
4269
4270};
4271#ifdef __CRT_UUID_DECL
4272__CRT_UUID_DECL(IWMReaderAdvanced2, 0xae14a945, 0xb90c, 0x4d0d, 0x91,0x27, 0x80,0xd6,0x65,0xf7,0xd7,0x3e)
4273#endif
4274#else
4275typedef struct IWMReaderAdvanced2Vtbl {
4276 BEGIN_INTERFACE
4277
4278 /*** IUnknown methods ***/
4279 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4280 IWMReaderAdvanced2 *This,
4281 REFIID riid,
4282 void **ppvObject);
4283
4284 ULONG (STDMETHODCALLTYPE *AddRef)(
4285 IWMReaderAdvanced2 *This);
4286
4287 ULONG (STDMETHODCALLTYPE *Release)(
4288 IWMReaderAdvanced2 *This);
4289
4290 /*** IWMReaderAdvanced methods ***/
4291 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
4292 IWMReaderAdvanced2 *This,
4293 WINBOOL fUserClock);
4294
4295 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
4296 IWMReaderAdvanced2 *This,
4297 WINBOOL *pfUserClock);
4298
4299 HRESULT (STDMETHODCALLTYPE *DeliverTime)(
4300 IWMReaderAdvanced2 *This,
4301 QWORD cnsTime);
4302
4303 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
4304 IWMReaderAdvanced2 *This,
4305 WINBOOL fSelection);
4306
4307 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
4308 IWMReaderAdvanced2 *This,
4309 WINBOOL *pfSelection);
4310
4311 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
4312 IWMReaderAdvanced2 *This,
4313 WORD cStreamCount,
4314 WORD *pwStreamNumbers,
4315 WMT_STREAM_SELECTION *pSelections);
4316
4317 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
4318 IWMReaderAdvanced2 *This,
4319 WORD wStreamNum,
4320 WMT_STREAM_SELECTION *pSelection);
4321
4322 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
4323 IWMReaderAdvanced2 *This,
4324 WINBOOL fGetCallbacks);
4325
4326 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
4327 IWMReaderAdvanced2 *This,
4328 WINBOOL *pfGetCallbacks);
4329
4330 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
4331 IWMReaderAdvanced2 *This,
4332 WORD wStreamNum,
4333 WINBOOL fReceiveStreamSamples);
4334
4335 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
4336 IWMReaderAdvanced2 *This,
4337 WORD wStreamNum,
4338 WINBOOL *pfReceiveStreamSamples);
4339
4340 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
4341 IWMReaderAdvanced2 *This,
4342 DWORD dwOutputNum,
4343 WINBOOL fAllocate);
4344
4345 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
4346 IWMReaderAdvanced2 *This,
4347 DWORD dwOutputNum,
4348 WINBOOL *pfAllocate);
4349
4350 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
4351 IWMReaderAdvanced2 *This,
4352 WORD wStreamNum,
4353 WINBOOL fAllocate);
4354
4355 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
4356 IWMReaderAdvanced2 *This,
4357 WORD dwStreamNum,
4358 WINBOOL *pfAllocate);
4359
4360 HRESULT (STDMETHODCALLTYPE *GetStatistics)(
4361 IWMReaderAdvanced2 *This,
4362 WM_READER_STATISTICS *pStatistics);
4363
4364 HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
4365 IWMReaderAdvanced2 *This,
4366 WM_READER_CLIENTINFO *pClientInfo);
4367
4368 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
4369 IWMReaderAdvanced2 *This,
4370 DWORD dwOutput,
4371 DWORD *pcbMax);
4372
4373 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
4374 IWMReaderAdvanced2 *This,
4375 WORD wStream,
4376 DWORD *pcbMax);
4377
4378 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
4379 IWMReaderAdvanced2 *This,
4380 QWORD cnsLateness);
4381
4382 /*** IWMReaderAdvanced2 methods ***/
4383 HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
4384 IWMReaderAdvanced2 *This,
4385 WMT_PLAY_MODE Mode);
4386
4387 HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
4388 IWMReaderAdvanced2 *This,
4389 WMT_PLAY_MODE *pMode);
4390
4391 HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
4392 IWMReaderAdvanced2 *This,
4393 DWORD *pdwPercent,
4394 QWORD *pcnsBuffering);
4395
4396 HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
4397 IWMReaderAdvanced2 *This,
4398 DWORD *pdwPercent,
4399 QWORD *pqwBytesDownloaded,
4400 QWORD *pcnsDownload);
4401
4402 HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
4403 IWMReaderAdvanced2 *This,
4404 DWORD *pdwPercent);
4405
4406 HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
4407 IWMReaderAdvanced2 *This,
4408 const WCHAR *pwszFilename);
4409
4410 HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
4411 IWMReaderAdvanced2 *This,
4412 WCHAR *pwszProtocol,
4413 DWORD *pcchProtocol);
4414
4415 HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
4416 IWMReaderAdvanced2 *This,
4417 WORD wMarkerIndex,
4418 QWORD cnsDuration,
4419 float fRate,
4420 void *pvContext);
4421
4422 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
4423 IWMReaderAdvanced2 *This,
4424 DWORD dwOutputNum,
4425 LPCWSTR pszName,
4426 WMT_ATTR_DATATYPE *pType,
4427 BYTE *pValue,
4428 WORD *pcbLength);
4429
4430 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
4431 IWMReaderAdvanced2 *This,
4432 DWORD dwOutputNum,
4433 LPCWSTR pszName,
4434 WMT_ATTR_DATATYPE Type,
4435 const BYTE *pValue,
4436 WORD cbLength);
4437
4438 HRESULT (STDMETHODCALLTYPE *Preroll)(
4439 IWMReaderAdvanced2 *This,
4440 QWORD cnsStart,
4441 QWORD cnsDuration,
4442 float fRate);
4443
4444 HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
4445 IWMReaderAdvanced2 *This,
4446 WINBOOL fLogClientID);
4447
4448 HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
4449 IWMReaderAdvanced2 *This,
4450 WINBOOL *pfLogClientID);
4451
4452 HRESULT (STDMETHODCALLTYPE *StopBuffering)(
4453 IWMReaderAdvanced2 *This);
4454
4455 HRESULT (STDMETHODCALLTYPE *OpenStream)(
4456 IWMReaderAdvanced2 *This,
4457 IStream *pStream,
4458 IWMReaderCallback *pCallback,
4459 void *pvContext);
4460
4461 END_INTERFACE
4462} IWMReaderAdvanced2Vtbl;
4463
4464interface IWMReaderAdvanced2 {
4465 CONST_VTBL IWMReaderAdvanced2Vtbl* lpVtbl;
4466};
4467
4468#ifdef COBJMACROS
4469#ifndef WIDL_C_INLINE_WRAPPERS
4470/*** IUnknown methods ***/
4471#define IWMReaderAdvanced2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4472#define IWMReaderAdvanced2_AddRef(This) (This)->lpVtbl->AddRef(This)
4473#define IWMReaderAdvanced2_Release(This) (This)->lpVtbl->Release(This)
4474/*** IWMReaderAdvanced methods ***/
4475#define IWMReaderAdvanced2_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
4476#define IWMReaderAdvanced2_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
4477#define IWMReaderAdvanced2_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
4478#define IWMReaderAdvanced2_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
4479#define IWMReaderAdvanced2_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
4480#define IWMReaderAdvanced2_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
4481#define IWMReaderAdvanced2_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
4482#define IWMReaderAdvanced2_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
4483#define IWMReaderAdvanced2_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
4484#define IWMReaderAdvanced2_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
4485#define IWMReaderAdvanced2_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
4486#define IWMReaderAdvanced2_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
4487#define IWMReaderAdvanced2_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
4488#define IWMReaderAdvanced2_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
4489#define IWMReaderAdvanced2_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
4490#define IWMReaderAdvanced2_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
4491#define IWMReaderAdvanced2_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
4492#define IWMReaderAdvanced2_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
4493#define IWMReaderAdvanced2_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
4494#define IWMReaderAdvanced2_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
4495/*** IWMReaderAdvanced2 methods ***/
4496#define IWMReaderAdvanced2_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
4497#define IWMReaderAdvanced2_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
4498#define IWMReaderAdvanced2_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
4499#define IWMReaderAdvanced2_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
4500#define IWMReaderAdvanced2_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
4501#define IWMReaderAdvanced2_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
4502#define IWMReaderAdvanced2_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
4503#define IWMReaderAdvanced2_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
4504#define IWMReaderAdvanced2_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
4505#define IWMReaderAdvanced2_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
4506#define IWMReaderAdvanced2_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
4507#define IWMReaderAdvanced2_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
4508#define IWMReaderAdvanced2_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
4509#define IWMReaderAdvanced2_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
4510#define IWMReaderAdvanced2_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
4511#else
4512/*** IUnknown methods ***/
4513static inline HRESULT IWMReaderAdvanced2_QueryInterface(IWMReaderAdvanced2* This,REFIID riid,void **ppvObject) {
4514 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4515}
4516static inline ULONG IWMReaderAdvanced2_AddRef(IWMReaderAdvanced2* This) {
4517 return This->lpVtbl->AddRef(This);
4518}
4519static inline ULONG IWMReaderAdvanced2_Release(IWMReaderAdvanced2* This) {
4520 return This->lpVtbl->Release(This);
4521}
4522/*** IWMReaderAdvanced methods ***/
4523static inline HRESULT IWMReaderAdvanced2_SetUserProvidedClock(IWMReaderAdvanced2* This,WINBOOL fUserClock) {
4524 return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
4525}
4526static inline HRESULT IWMReaderAdvanced2_GetUserProvidedClock(IWMReaderAdvanced2* This,WINBOOL *pfUserClock) {
4527 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
4528}
4529static inline HRESULT IWMReaderAdvanced2_DeliverTime(IWMReaderAdvanced2* This,QWORD cnsTime) {
4530 return This->lpVtbl->DeliverTime(This,cnsTime);
4531}
4532static inline HRESULT IWMReaderAdvanced2_SetManualStreamSelection(IWMReaderAdvanced2* This,WINBOOL fSelection) {
4533 return This->lpVtbl->SetManualStreamSelection(This,fSelection);
4534}
4535static inline HRESULT IWMReaderAdvanced2_GetManualStreamSelection(IWMReaderAdvanced2* This,WINBOOL *pfSelection) {
4536 return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
4537}
4538static inline HRESULT IWMReaderAdvanced2_SetStreamsSelected(IWMReaderAdvanced2* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
4539 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
4540}
4541static inline HRESULT IWMReaderAdvanced2_GetStreamSelected(IWMReaderAdvanced2* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
4542 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
4543}
4544static inline HRESULT IWMReaderAdvanced2_SetReceiveSelectionCallbacks(IWMReaderAdvanced2* This,WINBOOL fGetCallbacks) {
4545 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
4546}
4547static inline HRESULT IWMReaderAdvanced2_GetReceiveSelectionCallbacks(IWMReaderAdvanced2* This,WINBOOL *pfGetCallbacks) {
4548 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
4549}
4550static inline HRESULT IWMReaderAdvanced2_SetReceiveStreamSamples(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
4551 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
4552}
4553static inline HRESULT IWMReaderAdvanced2_GetReceiveStreamSamples(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
4554 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
4555}
4556static inline HRESULT IWMReaderAdvanced2_SetAllocateForOutput(IWMReaderAdvanced2* This,DWORD dwOutputNum,WINBOOL fAllocate) {
4557 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
4558}
4559static inline HRESULT IWMReaderAdvanced2_GetAllocateForOutput(IWMReaderAdvanced2* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
4560 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
4561}
4562static inline HRESULT IWMReaderAdvanced2_SetAllocateForStream(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL fAllocate) {
4563 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
4564}
4565static inline HRESULT IWMReaderAdvanced2_GetAllocateForStream(IWMReaderAdvanced2* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
4566 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
4567}
4568static inline HRESULT IWMReaderAdvanced2_GetStatistics(IWMReaderAdvanced2* This,WM_READER_STATISTICS *pStatistics) {
4569 return This->lpVtbl->GetStatistics(This,pStatistics);
4570}
4571static inline HRESULT IWMReaderAdvanced2_SetClientInfo(IWMReaderAdvanced2* This,WM_READER_CLIENTINFO *pClientInfo) {
4572 return This->lpVtbl->SetClientInfo(This,pClientInfo);
4573}
4574static inline HRESULT IWMReaderAdvanced2_GetMaxOutputSampleSize(IWMReaderAdvanced2* This,DWORD dwOutput,DWORD *pcbMax) {
4575 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
4576}
4577static inline HRESULT IWMReaderAdvanced2_GetMaxStreamSampleSize(IWMReaderAdvanced2* This,WORD wStream,DWORD *pcbMax) {
4578 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
4579}
4580static inline HRESULT IWMReaderAdvanced2_NotifyLateDelivery(IWMReaderAdvanced2* This,QWORD cnsLateness) {
4581 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
4582}
4583/*** IWMReaderAdvanced2 methods ***/
4584static inline HRESULT IWMReaderAdvanced2_SetPlayMode(IWMReaderAdvanced2* This,WMT_PLAY_MODE Mode) {
4585 return This->lpVtbl->SetPlayMode(This,Mode);
4586}
4587static inline HRESULT IWMReaderAdvanced2_GetPlayMode(IWMReaderAdvanced2* This,WMT_PLAY_MODE *pMode) {
4588 return This->lpVtbl->GetPlayMode(This,pMode);
4589}
4590static inline HRESULT IWMReaderAdvanced2_GetBufferProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
4591 return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
4592}
4593static inline HRESULT IWMReaderAdvanced2_GetDownloadProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
4594 return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
4595}
4596static inline HRESULT IWMReaderAdvanced2_GetSaveAsProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent) {
4597 return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
4598}
4599static inline HRESULT IWMReaderAdvanced2_SaveFileAs(IWMReaderAdvanced2* This,const WCHAR *pwszFilename) {
4600 return This->lpVtbl->SaveFileAs(This,pwszFilename);
4601}
4602static inline HRESULT IWMReaderAdvanced2_GetProtocolName(IWMReaderAdvanced2* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
4603 return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
4604}
4605static inline HRESULT IWMReaderAdvanced2_StartAtMarker(IWMReaderAdvanced2* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
4606 return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
4607}
4608static inline HRESULT IWMReaderAdvanced2_GetOutputSetting(IWMReaderAdvanced2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
4609 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
4610}
4611static inline HRESULT IWMReaderAdvanced2_SetOutputSetting(IWMReaderAdvanced2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
4612 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
4613}
4614static inline HRESULT IWMReaderAdvanced2_Preroll(IWMReaderAdvanced2* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
4615 return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
4616}
4617static inline HRESULT IWMReaderAdvanced2_SetLogClientID(IWMReaderAdvanced2* This,WINBOOL fLogClientID) {
4618 return This->lpVtbl->SetLogClientID(This,fLogClientID);
4619}
4620static inline HRESULT IWMReaderAdvanced2_GetLogClientID(IWMReaderAdvanced2* This,WINBOOL *pfLogClientID) {
4621 return This->lpVtbl->GetLogClientID(This,pfLogClientID);
4622}
4623static inline HRESULT IWMReaderAdvanced2_StopBuffering(IWMReaderAdvanced2* This) {
4624 return This->lpVtbl->StopBuffering(This);
4625}
4626static inline HRESULT IWMReaderAdvanced2_OpenStream(IWMReaderAdvanced2* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
4627 return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
4628}
4629#endif
4630#endif
4631
4632#endif
4633
4634
4635#endif /* __IWMReaderAdvanced2_INTERFACE_DEFINED__ */
4636
4637/*****************************************************************************
4638 * IWMReaderAdvanced3 interface
4639 */
4640#ifndef __IWMReaderAdvanced3_INTERFACE_DEFINED__
4641#define __IWMReaderAdvanced3_INTERFACE_DEFINED__
4642
4643DEFINE_GUID(IID_IWMReaderAdvanced3, 0x5dc0674b, 0xf04b, 0x4a4e, 0x9f,0x2a, 0xb1,0xaf,0xde,0x2c,0x81,0x00);
4644#if defined(__cplusplus) && !defined(CINTERFACE)
4645MIDL_INTERFACE("5dc0674b-f04b-4a4e-9f2a-b1afde2c8100")
4646IWMReaderAdvanced3 : public IWMReaderAdvanced2
4647{
4648 virtual HRESULT STDMETHODCALLTYPE StopNetStreaming(
4649 ) = 0;
4650
4651 virtual HRESULT STDMETHODCALLTYPE StartAtPosition(
4652 WORD wStreamNum,
4653 void *pvOffsetStart,
4654 void *pvDuration,
4655 WMT_OFFSET_FORMAT dwOffsetFormat,
4656 float fRate,
4657 void *pvContext) = 0;
4658
4659};
4660#ifdef __CRT_UUID_DECL
4661__CRT_UUID_DECL(IWMReaderAdvanced3, 0x5dc0674b, 0xf04b, 0x4a4e, 0x9f,0x2a, 0xb1,0xaf,0xde,0x2c,0x81,0x00)
4662#endif
4663#else
4664typedef struct IWMReaderAdvanced3Vtbl {
4665 BEGIN_INTERFACE
4666
4667 /*** IUnknown methods ***/
4668 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4669 IWMReaderAdvanced3 *This,
4670 REFIID riid,
4671 void **ppvObject);
4672
4673 ULONG (STDMETHODCALLTYPE *AddRef)(
4674 IWMReaderAdvanced3 *This);
4675
4676 ULONG (STDMETHODCALLTYPE *Release)(
4677 IWMReaderAdvanced3 *This);
4678
4679 /*** IWMReaderAdvanced methods ***/
4680 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
4681 IWMReaderAdvanced3 *This,
4682 WINBOOL fUserClock);
4683
4684 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
4685 IWMReaderAdvanced3 *This,
4686 WINBOOL *pfUserClock);
4687
4688 HRESULT (STDMETHODCALLTYPE *DeliverTime)(
4689 IWMReaderAdvanced3 *This,
4690 QWORD cnsTime);
4691
4692 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
4693 IWMReaderAdvanced3 *This,
4694 WINBOOL fSelection);
4695
4696 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
4697 IWMReaderAdvanced3 *This,
4698 WINBOOL *pfSelection);
4699
4700 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
4701 IWMReaderAdvanced3 *This,
4702 WORD cStreamCount,
4703 WORD *pwStreamNumbers,
4704 WMT_STREAM_SELECTION *pSelections);
4705
4706 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
4707 IWMReaderAdvanced3 *This,
4708 WORD wStreamNum,
4709 WMT_STREAM_SELECTION *pSelection);
4710
4711 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
4712 IWMReaderAdvanced3 *This,
4713 WINBOOL fGetCallbacks);
4714
4715 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
4716 IWMReaderAdvanced3 *This,
4717 WINBOOL *pfGetCallbacks);
4718
4719 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
4720 IWMReaderAdvanced3 *This,
4721 WORD wStreamNum,
4722 WINBOOL fReceiveStreamSamples);
4723
4724 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
4725 IWMReaderAdvanced3 *This,
4726 WORD wStreamNum,
4727 WINBOOL *pfReceiveStreamSamples);
4728
4729 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
4730 IWMReaderAdvanced3 *This,
4731 DWORD dwOutputNum,
4732 WINBOOL fAllocate);
4733
4734 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
4735 IWMReaderAdvanced3 *This,
4736 DWORD dwOutputNum,
4737 WINBOOL *pfAllocate);
4738
4739 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
4740 IWMReaderAdvanced3 *This,
4741 WORD wStreamNum,
4742 WINBOOL fAllocate);
4743
4744 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
4745 IWMReaderAdvanced3 *This,
4746 WORD dwStreamNum,
4747 WINBOOL *pfAllocate);
4748
4749 HRESULT (STDMETHODCALLTYPE *GetStatistics)(
4750 IWMReaderAdvanced3 *This,
4751 WM_READER_STATISTICS *pStatistics);
4752
4753 HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
4754 IWMReaderAdvanced3 *This,
4755 WM_READER_CLIENTINFO *pClientInfo);
4756
4757 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
4758 IWMReaderAdvanced3 *This,
4759 DWORD dwOutput,
4760 DWORD *pcbMax);
4761
4762 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
4763 IWMReaderAdvanced3 *This,
4764 WORD wStream,
4765 DWORD *pcbMax);
4766
4767 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
4768 IWMReaderAdvanced3 *This,
4769 QWORD cnsLateness);
4770
4771 /*** IWMReaderAdvanced2 methods ***/
4772 HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
4773 IWMReaderAdvanced3 *This,
4774 WMT_PLAY_MODE Mode);
4775
4776 HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
4777 IWMReaderAdvanced3 *This,
4778 WMT_PLAY_MODE *pMode);
4779
4780 HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
4781 IWMReaderAdvanced3 *This,
4782 DWORD *pdwPercent,
4783 QWORD *pcnsBuffering);
4784
4785 HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
4786 IWMReaderAdvanced3 *This,
4787 DWORD *pdwPercent,
4788 QWORD *pqwBytesDownloaded,
4789 QWORD *pcnsDownload);
4790
4791 HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
4792 IWMReaderAdvanced3 *This,
4793 DWORD *pdwPercent);
4794
4795 HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
4796 IWMReaderAdvanced3 *This,
4797 const WCHAR *pwszFilename);
4798
4799 HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
4800 IWMReaderAdvanced3 *This,
4801 WCHAR *pwszProtocol,
4802 DWORD *pcchProtocol);
4803
4804 HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
4805 IWMReaderAdvanced3 *This,
4806 WORD wMarkerIndex,
4807 QWORD cnsDuration,
4808 float fRate,
4809 void *pvContext);
4810
4811 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
4812 IWMReaderAdvanced3 *This,
4813 DWORD dwOutputNum,
4814 LPCWSTR pszName,
4815 WMT_ATTR_DATATYPE *pType,
4816 BYTE *pValue,
4817 WORD *pcbLength);
4818
4819 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
4820 IWMReaderAdvanced3 *This,
4821 DWORD dwOutputNum,
4822 LPCWSTR pszName,
4823 WMT_ATTR_DATATYPE Type,
4824 const BYTE *pValue,
4825 WORD cbLength);
4826
4827 HRESULT (STDMETHODCALLTYPE *Preroll)(
4828 IWMReaderAdvanced3 *This,
4829 QWORD cnsStart,
4830 QWORD cnsDuration,
4831 float fRate);
4832
4833 HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
4834 IWMReaderAdvanced3 *This,
4835 WINBOOL fLogClientID);
4836
4837 HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
4838 IWMReaderAdvanced3 *This,
4839 WINBOOL *pfLogClientID);
4840
4841 HRESULT (STDMETHODCALLTYPE *StopBuffering)(
4842 IWMReaderAdvanced3 *This);
4843
4844 HRESULT (STDMETHODCALLTYPE *OpenStream)(
4845 IWMReaderAdvanced3 *This,
4846 IStream *pStream,
4847 IWMReaderCallback *pCallback,
4848 void *pvContext);
4849
4850 /*** IWMReaderAdvanced3 methods ***/
4851 HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
4852 IWMReaderAdvanced3 *This);
4853
4854 HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
4855 IWMReaderAdvanced3 *This,
4856 WORD wStreamNum,
4857 void *pvOffsetStart,
4858 void *pvDuration,
4859 WMT_OFFSET_FORMAT dwOffsetFormat,
4860 float fRate,
4861 void *pvContext);
4862
4863 END_INTERFACE
4864} IWMReaderAdvanced3Vtbl;
4865
4866interface IWMReaderAdvanced3 {
4867 CONST_VTBL IWMReaderAdvanced3Vtbl* lpVtbl;
4868};
4869
4870#ifdef COBJMACROS
4871#ifndef WIDL_C_INLINE_WRAPPERS
4872/*** IUnknown methods ***/
4873#define IWMReaderAdvanced3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4874#define IWMReaderAdvanced3_AddRef(This) (This)->lpVtbl->AddRef(This)
4875#define IWMReaderAdvanced3_Release(This) (This)->lpVtbl->Release(This)
4876/*** IWMReaderAdvanced methods ***/
4877#define IWMReaderAdvanced3_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
4878#define IWMReaderAdvanced3_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
4879#define IWMReaderAdvanced3_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
4880#define IWMReaderAdvanced3_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
4881#define IWMReaderAdvanced3_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
4882#define IWMReaderAdvanced3_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
4883#define IWMReaderAdvanced3_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
4884#define IWMReaderAdvanced3_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
4885#define IWMReaderAdvanced3_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
4886#define IWMReaderAdvanced3_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
4887#define IWMReaderAdvanced3_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
4888#define IWMReaderAdvanced3_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
4889#define IWMReaderAdvanced3_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
4890#define IWMReaderAdvanced3_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
4891#define IWMReaderAdvanced3_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
4892#define IWMReaderAdvanced3_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
4893#define IWMReaderAdvanced3_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
4894#define IWMReaderAdvanced3_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
4895#define IWMReaderAdvanced3_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
4896#define IWMReaderAdvanced3_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
4897/*** IWMReaderAdvanced2 methods ***/
4898#define IWMReaderAdvanced3_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
4899#define IWMReaderAdvanced3_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
4900#define IWMReaderAdvanced3_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
4901#define IWMReaderAdvanced3_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
4902#define IWMReaderAdvanced3_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
4903#define IWMReaderAdvanced3_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
4904#define IWMReaderAdvanced3_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
4905#define IWMReaderAdvanced3_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
4906#define IWMReaderAdvanced3_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
4907#define IWMReaderAdvanced3_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
4908#define IWMReaderAdvanced3_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
4909#define IWMReaderAdvanced3_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
4910#define IWMReaderAdvanced3_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
4911#define IWMReaderAdvanced3_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
4912#define IWMReaderAdvanced3_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
4913/*** IWMReaderAdvanced3 methods ***/
4914#define IWMReaderAdvanced3_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
4915#define IWMReaderAdvanced3_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
4916#else
4917/*** IUnknown methods ***/
4918static inline HRESULT IWMReaderAdvanced3_QueryInterface(IWMReaderAdvanced3* This,REFIID riid,void **ppvObject) {
4919 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4920}
4921static inline ULONG IWMReaderAdvanced3_AddRef(IWMReaderAdvanced3* This) {
4922 return This->lpVtbl->AddRef(This);
4923}
4924static inline ULONG IWMReaderAdvanced3_Release(IWMReaderAdvanced3* This) {
4925 return This->lpVtbl->Release(This);
4926}
4927/*** IWMReaderAdvanced methods ***/
4928static inline HRESULT IWMReaderAdvanced3_SetUserProvidedClock(IWMReaderAdvanced3* This,WINBOOL fUserClock) {
4929 return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
4930}
4931static inline HRESULT IWMReaderAdvanced3_GetUserProvidedClock(IWMReaderAdvanced3* This,WINBOOL *pfUserClock) {
4932 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
4933}
4934static inline HRESULT IWMReaderAdvanced3_DeliverTime(IWMReaderAdvanced3* This,QWORD cnsTime) {
4935 return This->lpVtbl->DeliverTime(This,cnsTime);
4936}
4937static inline HRESULT IWMReaderAdvanced3_SetManualStreamSelection(IWMReaderAdvanced3* This,WINBOOL fSelection) {
4938 return This->lpVtbl->SetManualStreamSelection(This,fSelection);
4939}
4940static inline HRESULT IWMReaderAdvanced3_GetManualStreamSelection(IWMReaderAdvanced3* This,WINBOOL *pfSelection) {
4941 return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
4942}
4943static inline HRESULT IWMReaderAdvanced3_SetStreamsSelected(IWMReaderAdvanced3* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
4944 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
4945}
4946static inline HRESULT IWMReaderAdvanced3_GetStreamSelected(IWMReaderAdvanced3* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
4947 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
4948}
4949static inline HRESULT IWMReaderAdvanced3_SetReceiveSelectionCallbacks(IWMReaderAdvanced3* This,WINBOOL fGetCallbacks) {
4950 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
4951}
4952static inline HRESULT IWMReaderAdvanced3_GetReceiveSelectionCallbacks(IWMReaderAdvanced3* This,WINBOOL *pfGetCallbacks) {
4953 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
4954}
4955static inline HRESULT IWMReaderAdvanced3_SetReceiveStreamSamples(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
4956 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
4957}
4958static inline HRESULT IWMReaderAdvanced3_GetReceiveStreamSamples(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
4959 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
4960}
4961static inline HRESULT IWMReaderAdvanced3_SetAllocateForOutput(IWMReaderAdvanced3* This,DWORD dwOutputNum,WINBOOL fAllocate) {
4962 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
4963}
4964static inline HRESULT IWMReaderAdvanced3_GetAllocateForOutput(IWMReaderAdvanced3* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
4965 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
4966}
4967static inline HRESULT IWMReaderAdvanced3_SetAllocateForStream(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL fAllocate) {
4968 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
4969}
4970static inline HRESULT IWMReaderAdvanced3_GetAllocateForStream(IWMReaderAdvanced3* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
4971 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
4972}
4973static inline HRESULT IWMReaderAdvanced3_GetStatistics(IWMReaderAdvanced3* This,WM_READER_STATISTICS *pStatistics) {
4974 return This->lpVtbl->GetStatistics(This,pStatistics);
4975}
4976static inline HRESULT IWMReaderAdvanced3_SetClientInfo(IWMReaderAdvanced3* This,WM_READER_CLIENTINFO *pClientInfo) {
4977 return This->lpVtbl->SetClientInfo(This,pClientInfo);
4978}
4979static inline HRESULT IWMReaderAdvanced3_GetMaxOutputSampleSize(IWMReaderAdvanced3* This,DWORD dwOutput,DWORD *pcbMax) {
4980 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
4981}
4982static inline HRESULT IWMReaderAdvanced3_GetMaxStreamSampleSize(IWMReaderAdvanced3* This,WORD wStream,DWORD *pcbMax) {
4983 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
4984}
4985static inline HRESULT IWMReaderAdvanced3_NotifyLateDelivery(IWMReaderAdvanced3* This,QWORD cnsLateness) {
4986 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
4987}
4988/*** IWMReaderAdvanced2 methods ***/
4989static inline HRESULT IWMReaderAdvanced3_SetPlayMode(IWMReaderAdvanced3* This,WMT_PLAY_MODE Mode) {
4990 return This->lpVtbl->SetPlayMode(This,Mode);
4991}
4992static inline HRESULT IWMReaderAdvanced3_GetPlayMode(IWMReaderAdvanced3* This,WMT_PLAY_MODE *pMode) {
4993 return This->lpVtbl->GetPlayMode(This,pMode);
4994}
4995static inline HRESULT IWMReaderAdvanced3_GetBufferProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
4996 return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
4997}
4998static inline HRESULT IWMReaderAdvanced3_GetDownloadProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
4999 return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
5000}
5001static inline HRESULT IWMReaderAdvanced3_GetSaveAsProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent) {
5002 return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
5003}
5004static inline HRESULT IWMReaderAdvanced3_SaveFileAs(IWMReaderAdvanced3* This,const WCHAR *pwszFilename) {
5005 return This->lpVtbl->SaveFileAs(This,pwszFilename);
5006}
5007static inline HRESULT IWMReaderAdvanced3_GetProtocolName(IWMReaderAdvanced3* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
5008 return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
5009}
5010static inline HRESULT IWMReaderAdvanced3_StartAtMarker(IWMReaderAdvanced3* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
5011 return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
5012}
5013static inline HRESULT IWMReaderAdvanced3_GetOutputSetting(IWMReaderAdvanced3* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
5014 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
5015}
5016static inline HRESULT IWMReaderAdvanced3_SetOutputSetting(IWMReaderAdvanced3* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
5017 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
5018}
5019static inline HRESULT IWMReaderAdvanced3_Preroll(IWMReaderAdvanced3* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
5020 return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
5021}
5022static inline HRESULT IWMReaderAdvanced3_SetLogClientID(IWMReaderAdvanced3* This,WINBOOL fLogClientID) {
5023 return This->lpVtbl->SetLogClientID(This,fLogClientID);
5024}
5025static inline HRESULT IWMReaderAdvanced3_GetLogClientID(IWMReaderAdvanced3* This,WINBOOL *pfLogClientID) {
5026 return This->lpVtbl->GetLogClientID(This,pfLogClientID);
5027}
5028static inline HRESULT IWMReaderAdvanced3_StopBuffering(IWMReaderAdvanced3* This) {
5029 return This->lpVtbl->StopBuffering(This);
5030}
5031static inline HRESULT IWMReaderAdvanced3_OpenStream(IWMReaderAdvanced3* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
5032 return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
5033}
5034/*** IWMReaderAdvanced3 methods ***/
5035static inline HRESULT IWMReaderAdvanced3_StopNetStreaming(IWMReaderAdvanced3* This) {
5036 return This->lpVtbl->StopNetStreaming(This);
5037}
5038static inline HRESULT IWMReaderAdvanced3_StartAtPosition(IWMReaderAdvanced3* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
5039 return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
5040}
5041#endif
5042#endif
5043
5044#endif
5045
5046
5047#endif /* __IWMReaderAdvanced3_INTERFACE_DEFINED__ */
5048
5049/*****************************************************************************
5050 * IWMReaderAdvanced4 interface
5051 */
5052#ifndef __IWMReaderAdvanced4_INTERFACE_DEFINED__
5053#define __IWMReaderAdvanced4_INTERFACE_DEFINED__
5054
5055DEFINE_GUID(IID_IWMReaderAdvanced4, 0x945a76a2, 0x12ae, 0x4d48, 0xbd,0x3c, 0xcd,0x1d,0x90,0x39,0x9b,0x85);
5056#if defined(__cplusplus) && !defined(CINTERFACE)
5057MIDL_INTERFACE("945a76a2-12ae-4d48-bd3c-cd1d90399b85")
5058IWMReaderAdvanced4 : public IWMReaderAdvanced3
5059{
5060 virtual HRESULT STDMETHODCALLTYPE GetLanguageCount(
5061 DWORD dwOutputNum,
5062 WORD *pwLanguageCount) = 0;
5063
5064 virtual HRESULT STDMETHODCALLTYPE GetLanguage(
5065 DWORD dwOutputNum,
5066 WORD wLanguage,
5067 WCHAR *pwszLanguageString,
5068 WORD *pcchLanguageStringLength) = 0;
5069
5070 virtual HRESULT STDMETHODCALLTYPE GetMaxSpeedFactor(
5071 double *pdblFactor) = 0;
5072
5073 virtual HRESULT STDMETHODCALLTYPE IsUsingFastCache(
5074 WINBOOL *pfUsingFastCache) = 0;
5075
5076 virtual HRESULT STDMETHODCALLTYPE AddLogParam(
5077 LPCWSTR wszNameSpace,
5078 LPCWSTR wszName,
5079 LPCWSTR wszValue) = 0;
5080
5081 virtual HRESULT STDMETHODCALLTYPE SendLogParams(
5082 ) = 0;
5083
5084 virtual HRESULT STDMETHODCALLTYPE CanSaveFileAs(
5085 WINBOOL *pfCanSave) = 0;
5086
5087 virtual HRESULT STDMETHODCALLTYPE CancelSaveFileAs(
5088 ) = 0;
5089
5090 virtual HRESULT STDMETHODCALLTYPE GetURL(
5091 WCHAR *pwszURL,
5092 DWORD *pcchURL) = 0;
5093
5094};
5095#ifdef __CRT_UUID_DECL
5096__CRT_UUID_DECL(IWMReaderAdvanced4, 0x945a76a2, 0x12ae, 0x4d48, 0xbd,0x3c, 0xcd,0x1d,0x90,0x39,0x9b,0x85)
5097#endif
5098#else
5099typedef struct IWMReaderAdvanced4Vtbl {
5100 BEGIN_INTERFACE
5101
5102 /*** IUnknown methods ***/
5103 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5104 IWMReaderAdvanced4 *This,
5105 REFIID riid,
5106 void **ppvObject);
5107
5108 ULONG (STDMETHODCALLTYPE *AddRef)(
5109 IWMReaderAdvanced4 *This);
5110
5111 ULONG (STDMETHODCALLTYPE *Release)(
5112 IWMReaderAdvanced4 *This);
5113
5114 /*** IWMReaderAdvanced methods ***/
5115 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
5116 IWMReaderAdvanced4 *This,
5117 WINBOOL fUserClock);
5118
5119 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
5120 IWMReaderAdvanced4 *This,
5121 WINBOOL *pfUserClock);
5122
5123 HRESULT (STDMETHODCALLTYPE *DeliverTime)(
5124 IWMReaderAdvanced4 *This,
5125 QWORD cnsTime);
5126
5127 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
5128 IWMReaderAdvanced4 *This,
5129 WINBOOL fSelection);
5130
5131 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
5132 IWMReaderAdvanced4 *This,
5133 WINBOOL *pfSelection);
5134
5135 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
5136 IWMReaderAdvanced4 *This,
5137 WORD cStreamCount,
5138 WORD *pwStreamNumbers,
5139 WMT_STREAM_SELECTION *pSelections);
5140
5141 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
5142 IWMReaderAdvanced4 *This,
5143 WORD wStreamNum,
5144 WMT_STREAM_SELECTION *pSelection);
5145
5146 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
5147 IWMReaderAdvanced4 *This,
5148 WINBOOL fGetCallbacks);
5149
5150 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
5151 IWMReaderAdvanced4 *This,
5152 WINBOOL *pfGetCallbacks);
5153
5154 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
5155 IWMReaderAdvanced4 *This,
5156 WORD wStreamNum,
5157 WINBOOL fReceiveStreamSamples);
5158
5159 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
5160 IWMReaderAdvanced4 *This,
5161 WORD wStreamNum,
5162 WINBOOL *pfReceiveStreamSamples);
5163
5164 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
5165 IWMReaderAdvanced4 *This,
5166 DWORD dwOutputNum,
5167 WINBOOL fAllocate);
5168
5169 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
5170 IWMReaderAdvanced4 *This,
5171 DWORD dwOutputNum,
5172 WINBOOL *pfAllocate);
5173
5174 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
5175 IWMReaderAdvanced4 *This,
5176 WORD wStreamNum,
5177 WINBOOL fAllocate);
5178
5179 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
5180 IWMReaderAdvanced4 *This,
5181 WORD dwStreamNum,
5182 WINBOOL *pfAllocate);
5183
5184 HRESULT (STDMETHODCALLTYPE *GetStatistics)(
5185 IWMReaderAdvanced4 *This,
5186 WM_READER_STATISTICS *pStatistics);
5187
5188 HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
5189 IWMReaderAdvanced4 *This,
5190 WM_READER_CLIENTINFO *pClientInfo);
5191
5192 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
5193 IWMReaderAdvanced4 *This,
5194 DWORD dwOutput,
5195 DWORD *pcbMax);
5196
5197 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
5198 IWMReaderAdvanced4 *This,
5199 WORD wStream,
5200 DWORD *pcbMax);
5201
5202 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
5203 IWMReaderAdvanced4 *This,
5204 QWORD cnsLateness);
5205
5206 /*** IWMReaderAdvanced2 methods ***/
5207 HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
5208 IWMReaderAdvanced4 *This,
5209 WMT_PLAY_MODE Mode);
5210
5211 HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
5212 IWMReaderAdvanced4 *This,
5213 WMT_PLAY_MODE *pMode);
5214
5215 HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
5216 IWMReaderAdvanced4 *This,
5217 DWORD *pdwPercent,
5218 QWORD *pcnsBuffering);
5219
5220 HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
5221 IWMReaderAdvanced4 *This,
5222 DWORD *pdwPercent,
5223 QWORD *pqwBytesDownloaded,
5224 QWORD *pcnsDownload);
5225
5226 HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
5227 IWMReaderAdvanced4 *This,
5228 DWORD *pdwPercent);
5229
5230 HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
5231 IWMReaderAdvanced4 *This,
5232 const WCHAR *pwszFilename);
5233
5234 HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
5235 IWMReaderAdvanced4 *This,
5236 WCHAR *pwszProtocol,
5237 DWORD *pcchProtocol);
5238
5239 HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
5240 IWMReaderAdvanced4 *This,
5241 WORD wMarkerIndex,
5242 QWORD cnsDuration,
5243 float fRate,
5244 void *pvContext);
5245
5246 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
5247 IWMReaderAdvanced4 *This,
5248 DWORD dwOutputNum,
5249 LPCWSTR pszName,
5250 WMT_ATTR_DATATYPE *pType,
5251 BYTE *pValue,
5252 WORD *pcbLength);
5253
5254 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
5255 IWMReaderAdvanced4 *This,
5256 DWORD dwOutputNum,
5257 LPCWSTR pszName,
5258 WMT_ATTR_DATATYPE Type,
5259 const BYTE *pValue,
5260 WORD cbLength);
5261
5262 HRESULT (STDMETHODCALLTYPE *Preroll)(
5263 IWMReaderAdvanced4 *This,
5264 QWORD cnsStart,
5265 QWORD cnsDuration,
5266 float fRate);
5267
5268 HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
5269 IWMReaderAdvanced4 *This,
5270 WINBOOL fLogClientID);
5271
5272 HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
5273 IWMReaderAdvanced4 *This,
5274 WINBOOL *pfLogClientID);
5275
5276 HRESULT (STDMETHODCALLTYPE *StopBuffering)(
5277 IWMReaderAdvanced4 *This);
5278
5279 HRESULT (STDMETHODCALLTYPE *OpenStream)(
5280 IWMReaderAdvanced4 *This,
5281 IStream *pStream,
5282 IWMReaderCallback *pCallback,
5283 void *pvContext);
5284
5285 /*** IWMReaderAdvanced3 methods ***/
5286 HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
5287 IWMReaderAdvanced4 *This);
5288
5289 HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
5290 IWMReaderAdvanced4 *This,
5291 WORD wStreamNum,
5292 void *pvOffsetStart,
5293 void *pvDuration,
5294 WMT_OFFSET_FORMAT dwOffsetFormat,
5295 float fRate,
5296 void *pvContext);
5297
5298 /*** IWMReaderAdvanced4 methods ***/
5299 HRESULT (STDMETHODCALLTYPE *GetLanguageCount)(
5300 IWMReaderAdvanced4 *This,
5301 DWORD dwOutputNum,
5302 WORD *pwLanguageCount);
5303
5304 HRESULT (STDMETHODCALLTYPE *GetLanguage)(
5305 IWMReaderAdvanced4 *This,
5306 DWORD dwOutputNum,
5307 WORD wLanguage,
5308 WCHAR *pwszLanguageString,
5309 WORD *pcchLanguageStringLength);
5310
5311 HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)(
5312 IWMReaderAdvanced4 *This,
5313 double *pdblFactor);
5314
5315 HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)(
5316 IWMReaderAdvanced4 *This,
5317 WINBOOL *pfUsingFastCache);
5318
5319 HRESULT (STDMETHODCALLTYPE *AddLogParam)(
5320 IWMReaderAdvanced4 *This,
5321 LPCWSTR wszNameSpace,
5322 LPCWSTR wszName,
5323 LPCWSTR wszValue);
5324
5325 HRESULT (STDMETHODCALLTYPE *SendLogParams)(
5326 IWMReaderAdvanced4 *This);
5327
5328 HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)(
5329 IWMReaderAdvanced4 *This,
5330 WINBOOL *pfCanSave);
5331
5332 HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)(
5333 IWMReaderAdvanced4 *This);
5334
5335 HRESULT (STDMETHODCALLTYPE *GetURL)(
5336 IWMReaderAdvanced4 *This,
5337 WCHAR *pwszURL,
5338 DWORD *pcchURL);
5339
5340 END_INTERFACE
5341} IWMReaderAdvanced4Vtbl;
5342
5343interface IWMReaderAdvanced4 {
5344 CONST_VTBL IWMReaderAdvanced4Vtbl* lpVtbl;
5345};
5346
5347#ifdef COBJMACROS
5348#ifndef WIDL_C_INLINE_WRAPPERS
5349/*** IUnknown methods ***/
5350#define IWMReaderAdvanced4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5351#define IWMReaderAdvanced4_AddRef(This) (This)->lpVtbl->AddRef(This)
5352#define IWMReaderAdvanced4_Release(This) (This)->lpVtbl->Release(This)
5353/*** IWMReaderAdvanced methods ***/
5354#define IWMReaderAdvanced4_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
5355#define IWMReaderAdvanced4_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
5356#define IWMReaderAdvanced4_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
5357#define IWMReaderAdvanced4_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
5358#define IWMReaderAdvanced4_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
5359#define IWMReaderAdvanced4_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
5360#define IWMReaderAdvanced4_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
5361#define IWMReaderAdvanced4_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
5362#define IWMReaderAdvanced4_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
5363#define IWMReaderAdvanced4_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
5364#define IWMReaderAdvanced4_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
5365#define IWMReaderAdvanced4_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
5366#define IWMReaderAdvanced4_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
5367#define IWMReaderAdvanced4_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
5368#define IWMReaderAdvanced4_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
5369#define IWMReaderAdvanced4_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
5370#define IWMReaderAdvanced4_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
5371#define IWMReaderAdvanced4_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
5372#define IWMReaderAdvanced4_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
5373#define IWMReaderAdvanced4_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
5374/*** IWMReaderAdvanced2 methods ***/
5375#define IWMReaderAdvanced4_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
5376#define IWMReaderAdvanced4_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
5377#define IWMReaderAdvanced4_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
5378#define IWMReaderAdvanced4_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
5379#define IWMReaderAdvanced4_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
5380#define IWMReaderAdvanced4_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
5381#define IWMReaderAdvanced4_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
5382#define IWMReaderAdvanced4_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
5383#define IWMReaderAdvanced4_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
5384#define IWMReaderAdvanced4_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
5385#define IWMReaderAdvanced4_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
5386#define IWMReaderAdvanced4_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
5387#define IWMReaderAdvanced4_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
5388#define IWMReaderAdvanced4_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
5389#define IWMReaderAdvanced4_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
5390/*** IWMReaderAdvanced3 methods ***/
5391#define IWMReaderAdvanced4_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
5392#define IWMReaderAdvanced4_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
5393/*** IWMReaderAdvanced4 methods ***/
5394#define IWMReaderAdvanced4_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount)
5395#define IWMReaderAdvanced4_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength)
5396#define IWMReaderAdvanced4_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor)
5397#define IWMReaderAdvanced4_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache)
5398#define IWMReaderAdvanced4_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue)
5399#define IWMReaderAdvanced4_SendLogParams(This) (This)->lpVtbl->SendLogParams(This)
5400#define IWMReaderAdvanced4_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave)
5401#define IWMReaderAdvanced4_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This)
5402#define IWMReaderAdvanced4_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL)
5403#else
5404/*** IUnknown methods ***/
5405static inline HRESULT IWMReaderAdvanced4_QueryInterface(IWMReaderAdvanced4* This,REFIID riid,void **ppvObject) {
5406 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5407}
5408static inline ULONG IWMReaderAdvanced4_AddRef(IWMReaderAdvanced4* This) {
5409 return This->lpVtbl->AddRef(This);
5410}
5411static inline ULONG IWMReaderAdvanced4_Release(IWMReaderAdvanced4* This) {
5412 return This->lpVtbl->Release(This);
5413}
5414/*** IWMReaderAdvanced methods ***/
5415static inline HRESULT IWMReaderAdvanced4_SetUserProvidedClock(IWMReaderAdvanced4* This,WINBOOL fUserClock) {
5416 return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
5417}
5418static inline HRESULT IWMReaderAdvanced4_GetUserProvidedClock(IWMReaderAdvanced4* This,WINBOOL *pfUserClock) {
5419 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
5420}
5421static inline HRESULT IWMReaderAdvanced4_DeliverTime(IWMReaderAdvanced4* This,QWORD cnsTime) {
5422 return This->lpVtbl->DeliverTime(This,cnsTime);
5423}
5424static inline HRESULT IWMReaderAdvanced4_SetManualStreamSelection(IWMReaderAdvanced4* This,WINBOOL fSelection) {
5425 return This->lpVtbl->SetManualStreamSelection(This,fSelection);
5426}
5427static inline HRESULT IWMReaderAdvanced4_GetManualStreamSelection(IWMReaderAdvanced4* This,WINBOOL *pfSelection) {
5428 return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
5429}
5430static inline HRESULT IWMReaderAdvanced4_SetStreamsSelected(IWMReaderAdvanced4* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
5431 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
5432}
5433static inline HRESULT IWMReaderAdvanced4_GetStreamSelected(IWMReaderAdvanced4* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
5434 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
5435}
5436static inline HRESULT IWMReaderAdvanced4_SetReceiveSelectionCallbacks(IWMReaderAdvanced4* This,WINBOOL fGetCallbacks) {
5437 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
5438}
5439static inline HRESULT IWMReaderAdvanced4_GetReceiveSelectionCallbacks(IWMReaderAdvanced4* This,WINBOOL *pfGetCallbacks) {
5440 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
5441}
5442static inline HRESULT IWMReaderAdvanced4_SetReceiveStreamSamples(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
5443 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
5444}
5445static inline HRESULT IWMReaderAdvanced4_GetReceiveStreamSamples(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
5446 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
5447}
5448static inline HRESULT IWMReaderAdvanced4_SetAllocateForOutput(IWMReaderAdvanced4* This,DWORD dwOutputNum,WINBOOL fAllocate) {
5449 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
5450}
5451static inline HRESULT IWMReaderAdvanced4_GetAllocateForOutput(IWMReaderAdvanced4* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
5452 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
5453}
5454static inline HRESULT IWMReaderAdvanced4_SetAllocateForStream(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL fAllocate) {
5455 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
5456}
5457static inline HRESULT IWMReaderAdvanced4_GetAllocateForStream(IWMReaderAdvanced4* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
5458 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
5459}
5460static inline HRESULT IWMReaderAdvanced4_GetStatistics(IWMReaderAdvanced4* This,WM_READER_STATISTICS *pStatistics) {
5461 return This->lpVtbl->GetStatistics(This,pStatistics);
5462}
5463static inline HRESULT IWMReaderAdvanced4_SetClientInfo(IWMReaderAdvanced4* This,WM_READER_CLIENTINFO *pClientInfo) {
5464 return This->lpVtbl->SetClientInfo(This,pClientInfo);
5465}
5466static inline HRESULT IWMReaderAdvanced4_GetMaxOutputSampleSize(IWMReaderAdvanced4* This,DWORD dwOutput,DWORD *pcbMax) {
5467 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
5468}
5469static inline HRESULT IWMReaderAdvanced4_GetMaxStreamSampleSize(IWMReaderAdvanced4* This,WORD wStream,DWORD *pcbMax) {
5470 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
5471}
5472static inline HRESULT IWMReaderAdvanced4_NotifyLateDelivery(IWMReaderAdvanced4* This,QWORD cnsLateness) {
5473 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
5474}
5475/*** IWMReaderAdvanced2 methods ***/
5476static inline HRESULT IWMReaderAdvanced4_SetPlayMode(IWMReaderAdvanced4* This,WMT_PLAY_MODE Mode) {
5477 return This->lpVtbl->SetPlayMode(This,Mode);
5478}
5479static inline HRESULT IWMReaderAdvanced4_GetPlayMode(IWMReaderAdvanced4* This,WMT_PLAY_MODE *pMode) {
5480 return This->lpVtbl->GetPlayMode(This,pMode);
5481}
5482static inline HRESULT IWMReaderAdvanced4_GetBufferProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
5483 return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
5484}
5485static inline HRESULT IWMReaderAdvanced4_GetDownloadProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
5486 return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
5487}
5488static inline HRESULT IWMReaderAdvanced4_GetSaveAsProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent) {
5489 return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
5490}
5491static inline HRESULT IWMReaderAdvanced4_SaveFileAs(IWMReaderAdvanced4* This,const WCHAR *pwszFilename) {
5492 return This->lpVtbl->SaveFileAs(This,pwszFilename);
5493}
5494static inline HRESULT IWMReaderAdvanced4_GetProtocolName(IWMReaderAdvanced4* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
5495 return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
5496}
5497static inline HRESULT IWMReaderAdvanced4_StartAtMarker(IWMReaderAdvanced4* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
5498 return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
5499}
5500static inline HRESULT IWMReaderAdvanced4_GetOutputSetting(IWMReaderAdvanced4* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
5501 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
5502}
5503static inline HRESULT IWMReaderAdvanced4_SetOutputSetting(IWMReaderAdvanced4* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
5504 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
5505}
5506static inline HRESULT IWMReaderAdvanced4_Preroll(IWMReaderAdvanced4* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
5507 return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
5508}
5509static inline HRESULT IWMReaderAdvanced4_SetLogClientID(IWMReaderAdvanced4* This,WINBOOL fLogClientID) {
5510 return This->lpVtbl->SetLogClientID(This,fLogClientID);
5511}
5512static inline HRESULT IWMReaderAdvanced4_GetLogClientID(IWMReaderAdvanced4* This,WINBOOL *pfLogClientID) {
5513 return This->lpVtbl->GetLogClientID(This,pfLogClientID);
5514}
5515static inline HRESULT IWMReaderAdvanced4_StopBuffering(IWMReaderAdvanced4* This) {
5516 return This->lpVtbl->StopBuffering(This);
5517}
5518static inline HRESULT IWMReaderAdvanced4_OpenStream(IWMReaderAdvanced4* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
5519 return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
5520}
5521/*** IWMReaderAdvanced3 methods ***/
5522static inline HRESULT IWMReaderAdvanced4_StopNetStreaming(IWMReaderAdvanced4* This) {
5523 return This->lpVtbl->StopNetStreaming(This);
5524}
5525static inline HRESULT IWMReaderAdvanced4_StartAtPosition(IWMReaderAdvanced4* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
5526 return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
5527}
5528/*** IWMReaderAdvanced4 methods ***/
5529static inline HRESULT IWMReaderAdvanced4_GetLanguageCount(IWMReaderAdvanced4* This,DWORD dwOutputNum,WORD *pwLanguageCount) {
5530 return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount);
5531}
5532static inline HRESULT IWMReaderAdvanced4_GetLanguage(IWMReaderAdvanced4* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) {
5533 return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength);
5534}
5535static inline HRESULT IWMReaderAdvanced4_GetMaxSpeedFactor(IWMReaderAdvanced4* This,double *pdblFactor) {
5536 return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor);
5537}
5538static inline HRESULT IWMReaderAdvanced4_IsUsingFastCache(IWMReaderAdvanced4* This,WINBOOL *pfUsingFastCache) {
5539 return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache);
5540}
5541static inline HRESULT IWMReaderAdvanced4_AddLogParam(IWMReaderAdvanced4* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) {
5542 return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue);
5543}
5544static inline HRESULT IWMReaderAdvanced4_SendLogParams(IWMReaderAdvanced4* This) {
5545 return This->lpVtbl->SendLogParams(This);
5546}
5547static inline HRESULT IWMReaderAdvanced4_CanSaveFileAs(IWMReaderAdvanced4* This,WINBOOL *pfCanSave) {
5548 return This->lpVtbl->CanSaveFileAs(This,pfCanSave);
5549}
5550static inline HRESULT IWMReaderAdvanced4_CancelSaveFileAs(IWMReaderAdvanced4* This) {
5551 return This->lpVtbl->CancelSaveFileAs(This);
5552}
5553static inline HRESULT IWMReaderAdvanced4_GetURL(IWMReaderAdvanced4* This,WCHAR *pwszURL,DWORD *pcchURL) {
5554 return This->lpVtbl->GetURL(This,pwszURL,pcchURL);
5555}
5556#endif
5557#endif
5558
5559#endif
5560
5561
5562#endif /* __IWMReaderAdvanced4_INTERFACE_DEFINED__ */
5563
5564/*****************************************************************************
5565 * IWMReaderAdvanced5 interface
5566 */
5567#ifndef __IWMReaderAdvanced5_INTERFACE_DEFINED__
5568#define __IWMReaderAdvanced5_INTERFACE_DEFINED__
5569
5570DEFINE_GUID(IID_IWMReaderAdvanced5, 0x24c44db0, 0x55d1, 0x49ae, 0xa5,0xcc, 0xf1,0x38,0x15,0xe3,0x63,0x63);
5571#if defined(__cplusplus) && !defined(CINTERFACE)
5572MIDL_INTERFACE("24c44db0-55d1-49ae-a5cc-f13815e36363")
5573IWMReaderAdvanced5 : public IWMReaderAdvanced4
5574{
5575 virtual HRESULT STDMETHODCALLTYPE SetPlayerHook(
5576 DWORD dwOutputNum,
5577 IWMPlayerHook *pHook) = 0;
5578
5579};
5580#ifdef __CRT_UUID_DECL
5581__CRT_UUID_DECL(IWMReaderAdvanced5, 0x24c44db0, 0x55d1, 0x49ae, 0xa5,0xcc, 0xf1,0x38,0x15,0xe3,0x63,0x63)
5582#endif
5583#else
5584typedef struct IWMReaderAdvanced5Vtbl {
5585 BEGIN_INTERFACE
5586
5587 /*** IUnknown methods ***/
5588 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5589 IWMReaderAdvanced5 *This,
5590 REFIID riid,
5591 void **ppvObject);
5592
5593 ULONG (STDMETHODCALLTYPE *AddRef)(
5594 IWMReaderAdvanced5 *This);
5595
5596 ULONG (STDMETHODCALLTYPE *Release)(
5597 IWMReaderAdvanced5 *This);
5598
5599 /*** IWMReaderAdvanced methods ***/
5600 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
5601 IWMReaderAdvanced5 *This,
5602 WINBOOL fUserClock);
5603
5604 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
5605 IWMReaderAdvanced5 *This,
5606 WINBOOL *pfUserClock);
5607
5608 HRESULT (STDMETHODCALLTYPE *DeliverTime)(
5609 IWMReaderAdvanced5 *This,
5610 QWORD cnsTime);
5611
5612 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
5613 IWMReaderAdvanced5 *This,
5614 WINBOOL fSelection);
5615
5616 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
5617 IWMReaderAdvanced5 *This,
5618 WINBOOL *pfSelection);
5619
5620 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
5621 IWMReaderAdvanced5 *This,
5622 WORD cStreamCount,
5623 WORD *pwStreamNumbers,
5624 WMT_STREAM_SELECTION *pSelections);
5625
5626 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
5627 IWMReaderAdvanced5 *This,
5628 WORD wStreamNum,
5629 WMT_STREAM_SELECTION *pSelection);
5630
5631 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
5632 IWMReaderAdvanced5 *This,
5633 WINBOOL fGetCallbacks);
5634
5635 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
5636 IWMReaderAdvanced5 *This,
5637 WINBOOL *pfGetCallbacks);
5638
5639 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
5640 IWMReaderAdvanced5 *This,
5641 WORD wStreamNum,
5642 WINBOOL fReceiveStreamSamples);
5643
5644 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
5645 IWMReaderAdvanced5 *This,
5646 WORD wStreamNum,
5647 WINBOOL *pfReceiveStreamSamples);
5648
5649 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
5650 IWMReaderAdvanced5 *This,
5651 DWORD dwOutputNum,
5652 WINBOOL fAllocate);
5653
5654 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
5655 IWMReaderAdvanced5 *This,
5656 DWORD dwOutputNum,
5657 WINBOOL *pfAllocate);
5658
5659 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
5660 IWMReaderAdvanced5 *This,
5661 WORD wStreamNum,
5662 WINBOOL fAllocate);
5663
5664 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
5665 IWMReaderAdvanced5 *This,
5666 WORD dwStreamNum,
5667 WINBOOL *pfAllocate);
5668
5669 HRESULT (STDMETHODCALLTYPE *GetStatistics)(
5670 IWMReaderAdvanced5 *This,
5671 WM_READER_STATISTICS *pStatistics);
5672
5673 HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
5674 IWMReaderAdvanced5 *This,
5675 WM_READER_CLIENTINFO *pClientInfo);
5676
5677 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
5678 IWMReaderAdvanced5 *This,
5679 DWORD dwOutput,
5680 DWORD *pcbMax);
5681
5682 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
5683 IWMReaderAdvanced5 *This,
5684 WORD wStream,
5685 DWORD *pcbMax);
5686
5687 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
5688 IWMReaderAdvanced5 *This,
5689 QWORD cnsLateness);
5690
5691 /*** IWMReaderAdvanced2 methods ***/
5692 HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
5693 IWMReaderAdvanced5 *This,
5694 WMT_PLAY_MODE Mode);
5695
5696 HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
5697 IWMReaderAdvanced5 *This,
5698 WMT_PLAY_MODE *pMode);
5699
5700 HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
5701 IWMReaderAdvanced5 *This,
5702 DWORD *pdwPercent,
5703 QWORD *pcnsBuffering);
5704
5705 HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
5706 IWMReaderAdvanced5 *This,
5707 DWORD *pdwPercent,
5708 QWORD *pqwBytesDownloaded,
5709 QWORD *pcnsDownload);
5710
5711 HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
5712 IWMReaderAdvanced5 *This,
5713 DWORD *pdwPercent);
5714
5715 HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
5716 IWMReaderAdvanced5 *This,
5717 const WCHAR *pwszFilename);
5718
5719 HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
5720 IWMReaderAdvanced5 *This,
5721 WCHAR *pwszProtocol,
5722 DWORD *pcchProtocol);
5723
5724 HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
5725 IWMReaderAdvanced5 *This,
5726 WORD wMarkerIndex,
5727 QWORD cnsDuration,
5728 float fRate,
5729 void *pvContext);
5730
5731 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
5732 IWMReaderAdvanced5 *This,
5733 DWORD dwOutputNum,
5734 LPCWSTR pszName,
5735 WMT_ATTR_DATATYPE *pType,
5736 BYTE *pValue,
5737 WORD *pcbLength);
5738
5739 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
5740 IWMReaderAdvanced5 *This,
5741 DWORD dwOutputNum,
5742 LPCWSTR pszName,
5743 WMT_ATTR_DATATYPE Type,
5744 const BYTE *pValue,
5745 WORD cbLength);
5746
5747 HRESULT (STDMETHODCALLTYPE *Preroll)(
5748 IWMReaderAdvanced5 *This,
5749 QWORD cnsStart,
5750 QWORD cnsDuration,
5751 float fRate);
5752
5753 HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
5754 IWMReaderAdvanced5 *This,
5755 WINBOOL fLogClientID);
5756
5757 HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
5758 IWMReaderAdvanced5 *This,
5759 WINBOOL *pfLogClientID);
5760
5761 HRESULT (STDMETHODCALLTYPE *StopBuffering)(
5762 IWMReaderAdvanced5 *This);
5763
5764 HRESULT (STDMETHODCALLTYPE *OpenStream)(
5765 IWMReaderAdvanced5 *This,
5766 IStream *pStream,
5767 IWMReaderCallback *pCallback,
5768 void *pvContext);
5769
5770 /*** IWMReaderAdvanced3 methods ***/
5771 HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
5772 IWMReaderAdvanced5 *This);
5773
5774 HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
5775 IWMReaderAdvanced5 *This,
5776 WORD wStreamNum,
5777 void *pvOffsetStart,
5778 void *pvDuration,
5779 WMT_OFFSET_FORMAT dwOffsetFormat,
5780 float fRate,
5781 void *pvContext);
5782
5783 /*** IWMReaderAdvanced4 methods ***/
5784 HRESULT (STDMETHODCALLTYPE *GetLanguageCount)(
5785 IWMReaderAdvanced5 *This,
5786 DWORD dwOutputNum,
5787 WORD *pwLanguageCount);
5788
5789 HRESULT (STDMETHODCALLTYPE *GetLanguage)(
5790 IWMReaderAdvanced5 *This,
5791 DWORD dwOutputNum,
5792 WORD wLanguage,
5793 WCHAR *pwszLanguageString,
5794 WORD *pcchLanguageStringLength);
5795
5796 HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)(
5797 IWMReaderAdvanced5 *This,
5798 double *pdblFactor);
5799
5800 HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)(
5801 IWMReaderAdvanced5 *This,
5802 WINBOOL *pfUsingFastCache);
5803
5804 HRESULT (STDMETHODCALLTYPE *AddLogParam)(
5805 IWMReaderAdvanced5 *This,
5806 LPCWSTR wszNameSpace,
5807 LPCWSTR wszName,
5808 LPCWSTR wszValue);
5809
5810 HRESULT (STDMETHODCALLTYPE *SendLogParams)(
5811 IWMReaderAdvanced5 *This);
5812
5813 HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)(
5814 IWMReaderAdvanced5 *This,
5815 WINBOOL *pfCanSave);
5816
5817 HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)(
5818 IWMReaderAdvanced5 *This);
5819
5820 HRESULT (STDMETHODCALLTYPE *GetURL)(
5821 IWMReaderAdvanced5 *This,
5822 WCHAR *pwszURL,
5823 DWORD *pcchURL);
5824
5825 /*** IWMReaderAdvanced5 methods ***/
5826 HRESULT (STDMETHODCALLTYPE *SetPlayerHook)(
5827 IWMReaderAdvanced5 *This,
5828 DWORD dwOutputNum,
5829 IWMPlayerHook *pHook);
5830
5831 END_INTERFACE
5832} IWMReaderAdvanced5Vtbl;
5833
5834interface IWMReaderAdvanced5 {
5835 CONST_VTBL IWMReaderAdvanced5Vtbl* lpVtbl;
5836};
5837
5838#ifdef COBJMACROS
5839#ifndef WIDL_C_INLINE_WRAPPERS
5840/*** IUnknown methods ***/
5841#define IWMReaderAdvanced5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5842#define IWMReaderAdvanced5_AddRef(This) (This)->lpVtbl->AddRef(This)
5843#define IWMReaderAdvanced5_Release(This) (This)->lpVtbl->Release(This)
5844/*** IWMReaderAdvanced methods ***/
5845#define IWMReaderAdvanced5_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
5846#define IWMReaderAdvanced5_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
5847#define IWMReaderAdvanced5_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
5848#define IWMReaderAdvanced5_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
5849#define IWMReaderAdvanced5_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
5850#define IWMReaderAdvanced5_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
5851#define IWMReaderAdvanced5_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
5852#define IWMReaderAdvanced5_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
5853#define IWMReaderAdvanced5_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
5854#define IWMReaderAdvanced5_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
5855#define IWMReaderAdvanced5_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
5856#define IWMReaderAdvanced5_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
5857#define IWMReaderAdvanced5_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
5858#define IWMReaderAdvanced5_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
5859#define IWMReaderAdvanced5_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
5860#define IWMReaderAdvanced5_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
5861#define IWMReaderAdvanced5_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
5862#define IWMReaderAdvanced5_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
5863#define IWMReaderAdvanced5_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
5864#define IWMReaderAdvanced5_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
5865/*** IWMReaderAdvanced2 methods ***/
5866#define IWMReaderAdvanced5_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
5867#define IWMReaderAdvanced5_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
5868#define IWMReaderAdvanced5_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
5869#define IWMReaderAdvanced5_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
5870#define IWMReaderAdvanced5_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
5871#define IWMReaderAdvanced5_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
5872#define IWMReaderAdvanced5_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
5873#define IWMReaderAdvanced5_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
5874#define IWMReaderAdvanced5_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
5875#define IWMReaderAdvanced5_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
5876#define IWMReaderAdvanced5_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
5877#define IWMReaderAdvanced5_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
5878#define IWMReaderAdvanced5_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
5879#define IWMReaderAdvanced5_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
5880#define IWMReaderAdvanced5_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
5881/*** IWMReaderAdvanced3 methods ***/
5882#define IWMReaderAdvanced5_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
5883#define IWMReaderAdvanced5_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
5884/*** IWMReaderAdvanced4 methods ***/
5885#define IWMReaderAdvanced5_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount)
5886#define IWMReaderAdvanced5_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength)
5887#define IWMReaderAdvanced5_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor)
5888#define IWMReaderAdvanced5_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache)
5889#define IWMReaderAdvanced5_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue)
5890#define IWMReaderAdvanced5_SendLogParams(This) (This)->lpVtbl->SendLogParams(This)
5891#define IWMReaderAdvanced5_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave)
5892#define IWMReaderAdvanced5_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This)
5893#define IWMReaderAdvanced5_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL)
5894/*** IWMReaderAdvanced5 methods ***/
5895#define IWMReaderAdvanced5_SetPlayerHook(This,dwOutputNum,pHook) (This)->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook)
5896#else
5897/*** IUnknown methods ***/
5898static inline HRESULT IWMReaderAdvanced5_QueryInterface(IWMReaderAdvanced5* This,REFIID riid,void **ppvObject) {
5899 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5900}
5901static inline ULONG IWMReaderAdvanced5_AddRef(IWMReaderAdvanced5* This) {
5902 return This->lpVtbl->AddRef(This);
5903}
5904static inline ULONG IWMReaderAdvanced5_Release(IWMReaderAdvanced5* This) {
5905 return This->lpVtbl->Release(This);
5906}
5907/*** IWMReaderAdvanced methods ***/
5908static inline HRESULT IWMReaderAdvanced5_SetUserProvidedClock(IWMReaderAdvanced5* This,WINBOOL fUserClock) {
5909 return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
5910}
5911static inline HRESULT IWMReaderAdvanced5_GetUserProvidedClock(IWMReaderAdvanced5* This,WINBOOL *pfUserClock) {
5912 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
5913}
5914static inline HRESULT IWMReaderAdvanced5_DeliverTime(IWMReaderAdvanced5* This,QWORD cnsTime) {
5915 return This->lpVtbl->DeliverTime(This,cnsTime);
5916}
5917static inline HRESULT IWMReaderAdvanced5_SetManualStreamSelection(IWMReaderAdvanced5* This,WINBOOL fSelection) {
5918 return This->lpVtbl->SetManualStreamSelection(This,fSelection);
5919}
5920static inline HRESULT IWMReaderAdvanced5_GetManualStreamSelection(IWMReaderAdvanced5* This,WINBOOL *pfSelection) {
5921 return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
5922}
5923static inline HRESULT IWMReaderAdvanced5_SetStreamsSelected(IWMReaderAdvanced5* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
5924 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
5925}
5926static inline HRESULT IWMReaderAdvanced5_GetStreamSelected(IWMReaderAdvanced5* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
5927 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
5928}
5929static inline HRESULT IWMReaderAdvanced5_SetReceiveSelectionCallbacks(IWMReaderAdvanced5* This,WINBOOL fGetCallbacks) {
5930 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
5931}
5932static inline HRESULT IWMReaderAdvanced5_GetReceiveSelectionCallbacks(IWMReaderAdvanced5* This,WINBOOL *pfGetCallbacks) {
5933 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
5934}
5935static inline HRESULT IWMReaderAdvanced5_SetReceiveStreamSamples(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
5936 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
5937}
5938static inline HRESULT IWMReaderAdvanced5_GetReceiveStreamSamples(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
5939 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
5940}
5941static inline HRESULT IWMReaderAdvanced5_SetAllocateForOutput(IWMReaderAdvanced5* This,DWORD dwOutputNum,WINBOOL fAllocate) {
5942 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
5943}
5944static inline HRESULT IWMReaderAdvanced5_GetAllocateForOutput(IWMReaderAdvanced5* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
5945 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
5946}
5947static inline HRESULT IWMReaderAdvanced5_SetAllocateForStream(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL fAllocate) {
5948 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
5949}
5950static inline HRESULT IWMReaderAdvanced5_GetAllocateForStream(IWMReaderAdvanced5* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
5951 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
5952}
5953static inline HRESULT IWMReaderAdvanced5_GetStatistics(IWMReaderAdvanced5* This,WM_READER_STATISTICS *pStatistics) {
5954 return This->lpVtbl->GetStatistics(This,pStatistics);
5955}
5956static inline HRESULT IWMReaderAdvanced5_SetClientInfo(IWMReaderAdvanced5* This,WM_READER_CLIENTINFO *pClientInfo) {
5957 return This->lpVtbl->SetClientInfo(This,pClientInfo);
5958}
5959static inline HRESULT IWMReaderAdvanced5_GetMaxOutputSampleSize(IWMReaderAdvanced5* This,DWORD dwOutput,DWORD *pcbMax) {
5960 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
5961}
5962static inline HRESULT IWMReaderAdvanced5_GetMaxStreamSampleSize(IWMReaderAdvanced5* This,WORD wStream,DWORD *pcbMax) {
5963 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
5964}
5965static inline HRESULT IWMReaderAdvanced5_NotifyLateDelivery(IWMReaderAdvanced5* This,QWORD cnsLateness) {
5966 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
5967}
5968/*** IWMReaderAdvanced2 methods ***/
5969static inline HRESULT IWMReaderAdvanced5_SetPlayMode(IWMReaderAdvanced5* This,WMT_PLAY_MODE Mode) {
5970 return This->lpVtbl->SetPlayMode(This,Mode);
5971}
5972static inline HRESULT IWMReaderAdvanced5_GetPlayMode(IWMReaderAdvanced5* This,WMT_PLAY_MODE *pMode) {
5973 return This->lpVtbl->GetPlayMode(This,pMode);
5974}
5975static inline HRESULT IWMReaderAdvanced5_GetBufferProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
5976 return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
5977}
5978static inline HRESULT IWMReaderAdvanced5_GetDownloadProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
5979 return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
5980}
5981static inline HRESULT IWMReaderAdvanced5_GetSaveAsProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent) {
5982 return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
5983}
5984static inline HRESULT IWMReaderAdvanced5_SaveFileAs(IWMReaderAdvanced5* This,const WCHAR *pwszFilename) {
5985 return This->lpVtbl->SaveFileAs(This,pwszFilename);
5986}
5987static inline HRESULT IWMReaderAdvanced5_GetProtocolName(IWMReaderAdvanced5* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
5988 return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
5989}
5990static inline HRESULT IWMReaderAdvanced5_StartAtMarker(IWMReaderAdvanced5* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
5991 return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
5992}
5993static inline HRESULT IWMReaderAdvanced5_GetOutputSetting(IWMReaderAdvanced5* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
5994 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
5995}
5996static inline HRESULT IWMReaderAdvanced5_SetOutputSetting(IWMReaderAdvanced5* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
5997 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
5998}
5999static inline HRESULT IWMReaderAdvanced5_Preroll(IWMReaderAdvanced5* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
6000 return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
6001}
6002static inline HRESULT IWMReaderAdvanced5_SetLogClientID(IWMReaderAdvanced5* This,WINBOOL fLogClientID) {
6003 return This->lpVtbl->SetLogClientID(This,fLogClientID);
6004}
6005static inline HRESULT IWMReaderAdvanced5_GetLogClientID(IWMReaderAdvanced5* This,WINBOOL *pfLogClientID) {
6006 return This->lpVtbl->GetLogClientID(This,pfLogClientID);
6007}
6008static inline HRESULT IWMReaderAdvanced5_StopBuffering(IWMReaderAdvanced5* This) {
6009 return This->lpVtbl->StopBuffering(This);
6010}
6011static inline HRESULT IWMReaderAdvanced5_OpenStream(IWMReaderAdvanced5* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
6012 return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
6013}
6014/*** IWMReaderAdvanced3 methods ***/
6015static inline HRESULT IWMReaderAdvanced5_StopNetStreaming(IWMReaderAdvanced5* This) {
6016 return This->lpVtbl->StopNetStreaming(This);
6017}
6018static inline HRESULT IWMReaderAdvanced5_StartAtPosition(IWMReaderAdvanced5* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
6019 return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
6020}
6021/*** IWMReaderAdvanced4 methods ***/
6022static inline HRESULT IWMReaderAdvanced5_GetLanguageCount(IWMReaderAdvanced5* This,DWORD dwOutputNum,WORD *pwLanguageCount) {
6023 return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount);
6024}
6025static inline HRESULT IWMReaderAdvanced5_GetLanguage(IWMReaderAdvanced5* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) {
6026 return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength);
6027}
6028static inline HRESULT IWMReaderAdvanced5_GetMaxSpeedFactor(IWMReaderAdvanced5* This,double *pdblFactor) {
6029 return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor);
6030}
6031static inline HRESULT IWMReaderAdvanced5_IsUsingFastCache(IWMReaderAdvanced5* This,WINBOOL *pfUsingFastCache) {
6032 return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache);
6033}
6034static inline HRESULT IWMReaderAdvanced5_AddLogParam(IWMReaderAdvanced5* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) {
6035 return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue);
6036}
6037static inline HRESULT IWMReaderAdvanced5_SendLogParams(IWMReaderAdvanced5* This) {
6038 return This->lpVtbl->SendLogParams(This);
6039}
6040static inline HRESULT IWMReaderAdvanced5_CanSaveFileAs(IWMReaderAdvanced5* This,WINBOOL *pfCanSave) {
6041 return This->lpVtbl->CanSaveFileAs(This,pfCanSave);
6042}
6043static inline HRESULT IWMReaderAdvanced5_CancelSaveFileAs(IWMReaderAdvanced5* This) {
6044 return This->lpVtbl->CancelSaveFileAs(This);
6045}
6046static inline HRESULT IWMReaderAdvanced5_GetURL(IWMReaderAdvanced5* This,WCHAR *pwszURL,DWORD *pcchURL) {
6047 return This->lpVtbl->GetURL(This,pwszURL,pcchURL);
6048}
6049/*** IWMReaderAdvanced5 methods ***/
6050static inline HRESULT IWMReaderAdvanced5_SetPlayerHook(IWMReaderAdvanced5* This,DWORD dwOutputNum,IWMPlayerHook *pHook) {
6051 return This->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook);
6052}
6053#endif
6054#endif
6055
6056#endif
6057
6058
6059#endif /* __IWMReaderAdvanced5_INTERFACE_DEFINED__ */
6060
6061/*****************************************************************************
6062 * IWMReaderAdvanced6 interface
6063 */
6064#ifndef __IWMReaderAdvanced6_INTERFACE_DEFINED__
6065#define __IWMReaderAdvanced6_INTERFACE_DEFINED__
6066
6067DEFINE_GUID(IID_IWMReaderAdvanced6, 0x18a2e7f8, 0x428f, 0x4acd, 0x8a,0x00, 0xe6,0x46,0x39,0xbc,0x93,0xde);
6068#if defined(__cplusplus) && !defined(CINTERFACE)
6069MIDL_INTERFACE("18a2e7f8-428f-4acd-8a00-e64639bc93de")
6070IWMReaderAdvanced6 : public IWMReaderAdvanced5
6071{
6072 virtual HRESULT STDMETHODCALLTYPE SetProtectStreamSamples(
6073 BYTE *pbCertificate,
6074 DWORD cbCertificate,
6075 DWORD dwCertificateType,
6076 DWORD dwFlags,
6077 BYTE *pbInitializationVector,
6078 DWORD *pcbInitializationVector) = 0;
6079
6080};
6081#ifdef __CRT_UUID_DECL
6082__CRT_UUID_DECL(IWMReaderAdvanced6, 0x18a2e7f8, 0x428f, 0x4acd, 0x8a,0x00, 0xe6,0x46,0x39,0xbc,0x93,0xde)
6083#endif
6084#else
6085typedef struct IWMReaderAdvanced6Vtbl {
6086 BEGIN_INTERFACE
6087
6088 /*** IUnknown methods ***/
6089 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6090 IWMReaderAdvanced6 *This,
6091 REFIID riid,
6092 void **ppvObject);
6093
6094 ULONG (STDMETHODCALLTYPE *AddRef)(
6095 IWMReaderAdvanced6 *This);
6096
6097 ULONG (STDMETHODCALLTYPE *Release)(
6098 IWMReaderAdvanced6 *This);
6099
6100 /*** IWMReaderAdvanced methods ***/
6101 HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
6102 IWMReaderAdvanced6 *This,
6103 WINBOOL fUserClock);
6104
6105 HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
6106 IWMReaderAdvanced6 *This,
6107 WINBOOL *pfUserClock);
6108
6109 HRESULT (STDMETHODCALLTYPE *DeliverTime)(
6110 IWMReaderAdvanced6 *This,
6111 QWORD cnsTime);
6112
6113 HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
6114 IWMReaderAdvanced6 *This,
6115 WINBOOL fSelection);
6116
6117 HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
6118 IWMReaderAdvanced6 *This,
6119 WINBOOL *pfSelection);
6120
6121 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
6122 IWMReaderAdvanced6 *This,
6123 WORD cStreamCount,
6124 WORD *pwStreamNumbers,
6125 WMT_STREAM_SELECTION *pSelections);
6126
6127 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
6128 IWMReaderAdvanced6 *This,
6129 WORD wStreamNum,
6130 WMT_STREAM_SELECTION *pSelection);
6131
6132 HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
6133 IWMReaderAdvanced6 *This,
6134 WINBOOL fGetCallbacks);
6135
6136 HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
6137 IWMReaderAdvanced6 *This,
6138 WINBOOL *pfGetCallbacks);
6139
6140 HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
6141 IWMReaderAdvanced6 *This,
6142 WORD wStreamNum,
6143 WINBOOL fReceiveStreamSamples);
6144
6145 HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
6146 IWMReaderAdvanced6 *This,
6147 WORD wStreamNum,
6148 WINBOOL *pfReceiveStreamSamples);
6149
6150 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
6151 IWMReaderAdvanced6 *This,
6152 DWORD dwOutputNum,
6153 WINBOOL fAllocate);
6154
6155 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
6156 IWMReaderAdvanced6 *This,
6157 DWORD dwOutputNum,
6158 WINBOOL *pfAllocate);
6159
6160 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
6161 IWMReaderAdvanced6 *This,
6162 WORD wStreamNum,
6163 WINBOOL fAllocate);
6164
6165 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
6166 IWMReaderAdvanced6 *This,
6167 WORD dwStreamNum,
6168 WINBOOL *pfAllocate);
6169
6170 HRESULT (STDMETHODCALLTYPE *GetStatistics)(
6171 IWMReaderAdvanced6 *This,
6172 WM_READER_STATISTICS *pStatistics);
6173
6174 HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
6175 IWMReaderAdvanced6 *This,
6176 WM_READER_CLIENTINFO *pClientInfo);
6177
6178 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
6179 IWMReaderAdvanced6 *This,
6180 DWORD dwOutput,
6181 DWORD *pcbMax);
6182
6183 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
6184 IWMReaderAdvanced6 *This,
6185 WORD wStream,
6186 DWORD *pcbMax);
6187
6188 HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
6189 IWMReaderAdvanced6 *This,
6190 QWORD cnsLateness);
6191
6192 /*** IWMReaderAdvanced2 methods ***/
6193 HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
6194 IWMReaderAdvanced6 *This,
6195 WMT_PLAY_MODE Mode);
6196
6197 HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
6198 IWMReaderAdvanced6 *This,
6199 WMT_PLAY_MODE *pMode);
6200
6201 HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
6202 IWMReaderAdvanced6 *This,
6203 DWORD *pdwPercent,
6204 QWORD *pcnsBuffering);
6205
6206 HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
6207 IWMReaderAdvanced6 *This,
6208 DWORD *pdwPercent,
6209 QWORD *pqwBytesDownloaded,
6210 QWORD *pcnsDownload);
6211
6212 HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
6213 IWMReaderAdvanced6 *This,
6214 DWORD *pdwPercent);
6215
6216 HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
6217 IWMReaderAdvanced6 *This,
6218 const WCHAR *pwszFilename);
6219
6220 HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
6221 IWMReaderAdvanced6 *This,
6222 WCHAR *pwszProtocol,
6223 DWORD *pcchProtocol);
6224
6225 HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
6226 IWMReaderAdvanced6 *This,
6227 WORD wMarkerIndex,
6228 QWORD cnsDuration,
6229 float fRate,
6230 void *pvContext);
6231
6232 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
6233 IWMReaderAdvanced6 *This,
6234 DWORD dwOutputNum,
6235 LPCWSTR pszName,
6236 WMT_ATTR_DATATYPE *pType,
6237 BYTE *pValue,
6238 WORD *pcbLength);
6239
6240 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
6241 IWMReaderAdvanced6 *This,
6242 DWORD dwOutputNum,
6243 LPCWSTR pszName,
6244 WMT_ATTR_DATATYPE Type,
6245 const BYTE *pValue,
6246 WORD cbLength);
6247
6248 HRESULT (STDMETHODCALLTYPE *Preroll)(
6249 IWMReaderAdvanced6 *This,
6250 QWORD cnsStart,
6251 QWORD cnsDuration,
6252 float fRate);
6253
6254 HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
6255 IWMReaderAdvanced6 *This,
6256 WINBOOL fLogClientID);
6257
6258 HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
6259 IWMReaderAdvanced6 *This,
6260 WINBOOL *pfLogClientID);
6261
6262 HRESULT (STDMETHODCALLTYPE *StopBuffering)(
6263 IWMReaderAdvanced6 *This);
6264
6265 HRESULT (STDMETHODCALLTYPE *OpenStream)(
6266 IWMReaderAdvanced6 *This,
6267 IStream *pStream,
6268 IWMReaderCallback *pCallback,
6269 void *pvContext);
6270
6271 /*** IWMReaderAdvanced3 methods ***/
6272 HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
6273 IWMReaderAdvanced6 *This);
6274
6275 HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
6276 IWMReaderAdvanced6 *This,
6277 WORD wStreamNum,
6278 void *pvOffsetStart,
6279 void *pvDuration,
6280 WMT_OFFSET_FORMAT dwOffsetFormat,
6281 float fRate,
6282 void *pvContext);
6283
6284 /*** IWMReaderAdvanced4 methods ***/
6285 HRESULT (STDMETHODCALLTYPE *GetLanguageCount)(
6286 IWMReaderAdvanced6 *This,
6287 DWORD dwOutputNum,
6288 WORD *pwLanguageCount);
6289
6290 HRESULT (STDMETHODCALLTYPE *GetLanguage)(
6291 IWMReaderAdvanced6 *This,
6292 DWORD dwOutputNum,
6293 WORD wLanguage,
6294 WCHAR *pwszLanguageString,
6295 WORD *pcchLanguageStringLength);
6296
6297 HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)(
6298 IWMReaderAdvanced6 *This,
6299 double *pdblFactor);
6300
6301 HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)(
6302 IWMReaderAdvanced6 *This,
6303 WINBOOL *pfUsingFastCache);
6304
6305 HRESULT (STDMETHODCALLTYPE *AddLogParam)(
6306 IWMReaderAdvanced6 *This,
6307 LPCWSTR wszNameSpace,
6308 LPCWSTR wszName,
6309 LPCWSTR wszValue);
6310
6311 HRESULT (STDMETHODCALLTYPE *SendLogParams)(
6312 IWMReaderAdvanced6 *This);
6313
6314 HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)(
6315 IWMReaderAdvanced6 *This,
6316 WINBOOL *pfCanSave);
6317
6318 HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)(
6319 IWMReaderAdvanced6 *This);
6320
6321 HRESULT (STDMETHODCALLTYPE *GetURL)(
6322 IWMReaderAdvanced6 *This,
6323 WCHAR *pwszURL,
6324 DWORD *pcchURL);
6325
6326 /*** IWMReaderAdvanced5 methods ***/
6327 HRESULT (STDMETHODCALLTYPE *SetPlayerHook)(
6328 IWMReaderAdvanced6 *This,
6329 DWORD dwOutputNum,
6330 IWMPlayerHook *pHook);
6331
6332 /*** IWMReaderAdvanced6 methods ***/
6333 HRESULT (STDMETHODCALLTYPE *SetProtectStreamSamples)(
6334 IWMReaderAdvanced6 *This,
6335 BYTE *pbCertificate,
6336 DWORD cbCertificate,
6337 DWORD dwCertificateType,
6338 DWORD dwFlags,
6339 BYTE *pbInitializationVector,
6340 DWORD *pcbInitializationVector);
6341
6342 END_INTERFACE
6343} IWMReaderAdvanced6Vtbl;
6344
6345interface IWMReaderAdvanced6 {
6346 CONST_VTBL IWMReaderAdvanced6Vtbl* lpVtbl;
6347};
6348
6349#ifdef COBJMACROS
6350#ifndef WIDL_C_INLINE_WRAPPERS
6351/*** IUnknown methods ***/
6352#define IWMReaderAdvanced6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6353#define IWMReaderAdvanced6_AddRef(This) (This)->lpVtbl->AddRef(This)
6354#define IWMReaderAdvanced6_Release(This) (This)->lpVtbl->Release(This)
6355/*** IWMReaderAdvanced methods ***/
6356#define IWMReaderAdvanced6_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
6357#define IWMReaderAdvanced6_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
6358#define IWMReaderAdvanced6_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
6359#define IWMReaderAdvanced6_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
6360#define IWMReaderAdvanced6_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
6361#define IWMReaderAdvanced6_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
6362#define IWMReaderAdvanced6_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
6363#define IWMReaderAdvanced6_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
6364#define IWMReaderAdvanced6_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
6365#define IWMReaderAdvanced6_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
6366#define IWMReaderAdvanced6_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
6367#define IWMReaderAdvanced6_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
6368#define IWMReaderAdvanced6_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
6369#define IWMReaderAdvanced6_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
6370#define IWMReaderAdvanced6_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
6371#define IWMReaderAdvanced6_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
6372#define IWMReaderAdvanced6_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
6373#define IWMReaderAdvanced6_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
6374#define IWMReaderAdvanced6_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
6375#define IWMReaderAdvanced6_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
6376/*** IWMReaderAdvanced2 methods ***/
6377#define IWMReaderAdvanced6_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
6378#define IWMReaderAdvanced6_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
6379#define IWMReaderAdvanced6_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
6380#define IWMReaderAdvanced6_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
6381#define IWMReaderAdvanced6_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
6382#define IWMReaderAdvanced6_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
6383#define IWMReaderAdvanced6_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
6384#define IWMReaderAdvanced6_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
6385#define IWMReaderAdvanced6_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
6386#define IWMReaderAdvanced6_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
6387#define IWMReaderAdvanced6_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
6388#define IWMReaderAdvanced6_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
6389#define IWMReaderAdvanced6_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
6390#define IWMReaderAdvanced6_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
6391#define IWMReaderAdvanced6_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
6392/*** IWMReaderAdvanced3 methods ***/
6393#define IWMReaderAdvanced6_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
6394#define IWMReaderAdvanced6_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
6395/*** IWMReaderAdvanced4 methods ***/
6396#define IWMReaderAdvanced6_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount)
6397#define IWMReaderAdvanced6_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength)
6398#define IWMReaderAdvanced6_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor)
6399#define IWMReaderAdvanced6_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache)
6400#define IWMReaderAdvanced6_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue)
6401#define IWMReaderAdvanced6_SendLogParams(This) (This)->lpVtbl->SendLogParams(This)
6402#define IWMReaderAdvanced6_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave)
6403#define IWMReaderAdvanced6_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This)
6404#define IWMReaderAdvanced6_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL)
6405/*** IWMReaderAdvanced5 methods ***/
6406#define IWMReaderAdvanced6_SetPlayerHook(This,dwOutputNum,pHook) (This)->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook)
6407/*** IWMReaderAdvanced6 methods ***/
6408#define IWMReaderAdvanced6_SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector) (This)->lpVtbl->SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector)
6409#else
6410/*** IUnknown methods ***/
6411static inline HRESULT IWMReaderAdvanced6_QueryInterface(IWMReaderAdvanced6* This,REFIID riid,void **ppvObject) {
6412 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6413}
6414static inline ULONG IWMReaderAdvanced6_AddRef(IWMReaderAdvanced6* This) {
6415 return This->lpVtbl->AddRef(This);
6416}
6417static inline ULONG IWMReaderAdvanced6_Release(IWMReaderAdvanced6* This) {
6418 return This->lpVtbl->Release(This);
6419}
6420/*** IWMReaderAdvanced methods ***/
6421static inline HRESULT IWMReaderAdvanced6_SetUserProvidedClock(IWMReaderAdvanced6* This,WINBOOL fUserClock) {
6422 return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
6423}
6424static inline HRESULT IWMReaderAdvanced6_GetUserProvidedClock(IWMReaderAdvanced6* This,WINBOOL *pfUserClock) {
6425 return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
6426}
6427static inline HRESULT IWMReaderAdvanced6_DeliverTime(IWMReaderAdvanced6* This,QWORD cnsTime) {
6428 return This->lpVtbl->DeliverTime(This,cnsTime);
6429}
6430static inline HRESULT IWMReaderAdvanced6_SetManualStreamSelection(IWMReaderAdvanced6* This,WINBOOL fSelection) {
6431 return This->lpVtbl->SetManualStreamSelection(This,fSelection);
6432}
6433static inline HRESULT IWMReaderAdvanced6_GetManualStreamSelection(IWMReaderAdvanced6* This,WINBOOL *pfSelection) {
6434 return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
6435}
6436static inline HRESULT IWMReaderAdvanced6_SetStreamsSelected(IWMReaderAdvanced6* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
6437 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
6438}
6439static inline HRESULT IWMReaderAdvanced6_GetStreamSelected(IWMReaderAdvanced6* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
6440 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
6441}
6442static inline HRESULT IWMReaderAdvanced6_SetReceiveSelectionCallbacks(IWMReaderAdvanced6* This,WINBOOL fGetCallbacks) {
6443 return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
6444}
6445static inline HRESULT IWMReaderAdvanced6_GetReceiveSelectionCallbacks(IWMReaderAdvanced6* This,WINBOOL *pfGetCallbacks) {
6446 return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
6447}
6448static inline HRESULT IWMReaderAdvanced6_SetReceiveStreamSamples(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
6449 return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
6450}
6451static inline HRESULT IWMReaderAdvanced6_GetReceiveStreamSamples(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
6452 return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
6453}
6454static inline HRESULT IWMReaderAdvanced6_SetAllocateForOutput(IWMReaderAdvanced6* This,DWORD dwOutputNum,WINBOOL fAllocate) {
6455 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
6456}
6457static inline HRESULT IWMReaderAdvanced6_GetAllocateForOutput(IWMReaderAdvanced6* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
6458 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
6459}
6460static inline HRESULT IWMReaderAdvanced6_SetAllocateForStream(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL fAllocate) {
6461 return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
6462}
6463static inline HRESULT IWMReaderAdvanced6_GetAllocateForStream(IWMReaderAdvanced6* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
6464 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
6465}
6466static inline HRESULT IWMReaderAdvanced6_GetStatistics(IWMReaderAdvanced6* This,WM_READER_STATISTICS *pStatistics) {
6467 return This->lpVtbl->GetStatistics(This,pStatistics);
6468}
6469static inline HRESULT IWMReaderAdvanced6_SetClientInfo(IWMReaderAdvanced6* This,WM_READER_CLIENTINFO *pClientInfo) {
6470 return This->lpVtbl->SetClientInfo(This,pClientInfo);
6471}
6472static inline HRESULT IWMReaderAdvanced6_GetMaxOutputSampleSize(IWMReaderAdvanced6* This,DWORD dwOutput,DWORD *pcbMax) {
6473 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
6474}
6475static inline HRESULT IWMReaderAdvanced6_GetMaxStreamSampleSize(IWMReaderAdvanced6* This,WORD wStream,DWORD *pcbMax) {
6476 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
6477}
6478static inline HRESULT IWMReaderAdvanced6_NotifyLateDelivery(IWMReaderAdvanced6* This,QWORD cnsLateness) {
6479 return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
6480}
6481/*** IWMReaderAdvanced2 methods ***/
6482static inline HRESULT IWMReaderAdvanced6_SetPlayMode(IWMReaderAdvanced6* This,WMT_PLAY_MODE Mode) {
6483 return This->lpVtbl->SetPlayMode(This,Mode);
6484}
6485static inline HRESULT IWMReaderAdvanced6_GetPlayMode(IWMReaderAdvanced6* This,WMT_PLAY_MODE *pMode) {
6486 return This->lpVtbl->GetPlayMode(This,pMode);
6487}
6488static inline HRESULT IWMReaderAdvanced6_GetBufferProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
6489 return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
6490}
6491static inline HRESULT IWMReaderAdvanced6_GetDownloadProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
6492 return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
6493}
6494static inline HRESULT IWMReaderAdvanced6_GetSaveAsProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent) {
6495 return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
6496}
6497static inline HRESULT IWMReaderAdvanced6_SaveFileAs(IWMReaderAdvanced6* This,const WCHAR *pwszFilename) {
6498 return This->lpVtbl->SaveFileAs(This,pwszFilename);
6499}
6500static inline HRESULT IWMReaderAdvanced6_GetProtocolName(IWMReaderAdvanced6* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
6501 return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
6502}
6503static inline HRESULT IWMReaderAdvanced6_StartAtMarker(IWMReaderAdvanced6* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
6504 return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
6505}
6506static inline HRESULT IWMReaderAdvanced6_GetOutputSetting(IWMReaderAdvanced6* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
6507 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
6508}
6509static inline HRESULT IWMReaderAdvanced6_SetOutputSetting(IWMReaderAdvanced6* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
6510 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
6511}
6512static inline HRESULT IWMReaderAdvanced6_Preroll(IWMReaderAdvanced6* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
6513 return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
6514}
6515static inline HRESULT IWMReaderAdvanced6_SetLogClientID(IWMReaderAdvanced6* This,WINBOOL fLogClientID) {
6516 return This->lpVtbl->SetLogClientID(This,fLogClientID);
6517}
6518static inline HRESULT IWMReaderAdvanced6_GetLogClientID(IWMReaderAdvanced6* This,WINBOOL *pfLogClientID) {
6519 return This->lpVtbl->GetLogClientID(This,pfLogClientID);
6520}
6521static inline HRESULT IWMReaderAdvanced6_StopBuffering(IWMReaderAdvanced6* This) {
6522 return This->lpVtbl->StopBuffering(This);
6523}
6524static inline HRESULT IWMReaderAdvanced6_OpenStream(IWMReaderAdvanced6* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
6525 return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
6526}
6527/*** IWMReaderAdvanced3 methods ***/
6528static inline HRESULT IWMReaderAdvanced6_StopNetStreaming(IWMReaderAdvanced6* This) {
6529 return This->lpVtbl->StopNetStreaming(This);
6530}
6531static inline HRESULT IWMReaderAdvanced6_StartAtPosition(IWMReaderAdvanced6* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
6532 return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
6533}
6534/*** IWMReaderAdvanced4 methods ***/
6535static inline HRESULT IWMReaderAdvanced6_GetLanguageCount(IWMReaderAdvanced6* This,DWORD dwOutputNum,WORD *pwLanguageCount) {
6536 return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount);
6537}
6538static inline HRESULT IWMReaderAdvanced6_GetLanguage(IWMReaderAdvanced6* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) {
6539 return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength);
6540}
6541static inline HRESULT IWMReaderAdvanced6_GetMaxSpeedFactor(IWMReaderAdvanced6* This,double *pdblFactor) {
6542 return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor);
6543}
6544static inline HRESULT IWMReaderAdvanced6_IsUsingFastCache(IWMReaderAdvanced6* This,WINBOOL *pfUsingFastCache) {
6545 return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache);
6546}
6547static inline HRESULT IWMReaderAdvanced6_AddLogParam(IWMReaderAdvanced6* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) {
6548 return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue);
6549}
6550static inline HRESULT IWMReaderAdvanced6_SendLogParams(IWMReaderAdvanced6* This) {
6551 return This->lpVtbl->SendLogParams(This);
6552}
6553static inline HRESULT IWMReaderAdvanced6_CanSaveFileAs(IWMReaderAdvanced6* This,WINBOOL *pfCanSave) {
6554 return This->lpVtbl->CanSaveFileAs(This,pfCanSave);
6555}
6556static inline HRESULT IWMReaderAdvanced6_CancelSaveFileAs(IWMReaderAdvanced6* This) {
6557 return This->lpVtbl->CancelSaveFileAs(This);
6558}
6559static inline HRESULT IWMReaderAdvanced6_GetURL(IWMReaderAdvanced6* This,WCHAR *pwszURL,DWORD *pcchURL) {
6560 return This->lpVtbl->GetURL(This,pwszURL,pcchURL);
6561}
6562/*** IWMReaderAdvanced5 methods ***/
6563static inline HRESULT IWMReaderAdvanced6_SetPlayerHook(IWMReaderAdvanced6* This,DWORD dwOutputNum,IWMPlayerHook *pHook) {
6564 return This->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook);
6565}
6566/*** IWMReaderAdvanced6 methods ***/
6567static inline HRESULT IWMReaderAdvanced6_SetProtectStreamSamples(IWMReaderAdvanced6* This,BYTE *pbCertificate,DWORD cbCertificate,DWORD dwCertificateType,DWORD dwFlags,BYTE *pbInitializationVector,DWORD *pcbInitializationVector) {
6568 return This->lpVtbl->SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector);
6569}
6570#endif
6571#endif
6572
6573#endif
6574
6575
6576#endif /* __IWMReaderAdvanced6_INTERFACE_DEFINED__ */
6577
6578/*****************************************************************************
6579 * IWMSyncReader interface
6580 */
6581#ifndef __IWMSyncReader_INTERFACE_DEFINED__
6582#define __IWMSyncReader_INTERFACE_DEFINED__
6583
6584DEFINE_GUID(IID_IWMSyncReader, 0x9397f121, 0x7705, 0x4dc9, 0xb0,0x49, 0x98,0xb6,0x98,0x18,0x84,0x14);
6585#if defined(__cplusplus) && !defined(CINTERFACE)
6586MIDL_INTERFACE("9397f121-7705-4dc9-b049-98b698188414")
6587IWMSyncReader : public IUnknown
6588{
6589 virtual HRESULT STDMETHODCALLTYPE Open(
6590 const WCHAR *pwszFilename) = 0;
6591
6592 virtual HRESULT STDMETHODCALLTYPE Close(
6593 ) = 0;
6594
6595 virtual HRESULT STDMETHODCALLTYPE SetRange(
6596 QWORD cnsStartTime,
6597 LONGLONG cnsDuration) = 0;
6598
6599 virtual HRESULT STDMETHODCALLTYPE SetRangeByFrame(
6600 WORD wStreamNum,
6601 QWORD qwFrameNumber,
6602 LONGLONG cFramesToRead) = 0;
6603
6604 virtual HRESULT STDMETHODCALLTYPE GetNextSample(
6605 WORD wStreamNum,
6606 INSSBuffer **ppSample,
6607 QWORD *pcnsSampleTime,
6608 QWORD *pcnsDuration,
6609 DWORD *pdwFlags,
6610 DWORD *pdwOutputNum,
6611 WORD *pwStreamNum) = 0;
6612
6613 virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected(
6614 WORD cStreamCount,
6615 WORD *pwStreamNumbers,
6616 WMT_STREAM_SELECTION *pSelections) = 0;
6617
6618 virtual HRESULT STDMETHODCALLTYPE GetStreamSelected(
6619 WORD wStreamNum,
6620 WMT_STREAM_SELECTION *pSelection) = 0;
6621
6622 virtual HRESULT STDMETHODCALLTYPE SetReadStreamSamples(
6623 WORD wStreamNum,
6624 WINBOOL fCompressed) = 0;
6625
6626 virtual HRESULT STDMETHODCALLTYPE GetReadStreamSamples(
6627 WORD wStreamNum,
6628 WINBOOL *pfCompressed) = 0;
6629
6630 virtual HRESULT STDMETHODCALLTYPE GetOutputSetting(
6631 DWORD dwOutputNum,
6632 LPCWSTR pszName,
6633 WMT_ATTR_DATATYPE *pType,
6634 BYTE *pValue,
6635 WORD *pcbLength) = 0;
6636
6637 virtual HRESULT STDMETHODCALLTYPE SetOutputSetting(
6638 DWORD dwOutputNum,
6639 LPCWSTR pszName,
6640 WMT_ATTR_DATATYPE Type,
6641 const BYTE *pValue,
6642 WORD cbLength) = 0;
6643
6644 virtual HRESULT STDMETHODCALLTYPE GetOutputCount(
6645 DWORD *pcOutputs) = 0;
6646
6647 virtual HRESULT STDMETHODCALLTYPE GetOutputProps(
6648 DWORD dwOutputNum,
6649 IWMOutputMediaProps **ppOutput) = 0;
6650
6651 virtual HRESULT STDMETHODCALLTYPE SetOutputProps(
6652 DWORD dwOutputNum,
6653 IWMOutputMediaProps *pOutput) = 0;
6654
6655 virtual HRESULT STDMETHODCALLTYPE GetOutputFormatCount(
6656 DWORD dwOutputNum,
6657 DWORD *pcFormats) = 0;
6658
6659 virtual HRESULT STDMETHODCALLTYPE GetOutputFormat(
6660 DWORD dwOutputNum,
6661 DWORD dwFormatNum,
6662 IWMOutputMediaProps **ppProps) = 0;
6663
6664 virtual HRESULT STDMETHODCALLTYPE GetOutputNumberForStream(
6665 WORD wStreamNum,
6666 DWORD *pdwOutputNum) = 0;
6667
6668 virtual HRESULT STDMETHODCALLTYPE GetStreamNumberForOutput(
6669 DWORD dwOutputNum,
6670 WORD *pwStreamNum) = 0;
6671
6672 virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize(
6673 DWORD dwOutput,
6674 DWORD *pcbMax) = 0;
6675
6676 virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize(
6677 WORD wStream,
6678 DWORD *pcbMax) = 0;
6679
6680 virtual HRESULT STDMETHODCALLTYPE OpenStream(
6681 IStream *pStream) = 0;
6682
6683};
6684#ifdef __CRT_UUID_DECL
6685__CRT_UUID_DECL(IWMSyncReader, 0x9397f121, 0x7705, 0x4dc9, 0xb0,0x49, 0x98,0xb6,0x98,0x18,0x84,0x14)
6686#endif
6687#else
6688typedef struct IWMSyncReaderVtbl {
6689 BEGIN_INTERFACE
6690
6691 /*** IUnknown methods ***/
6692 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6693 IWMSyncReader *This,
6694 REFIID riid,
6695 void **ppvObject);
6696
6697 ULONG (STDMETHODCALLTYPE *AddRef)(
6698 IWMSyncReader *This);
6699
6700 ULONG (STDMETHODCALLTYPE *Release)(
6701 IWMSyncReader *This);
6702
6703 /*** IWMSyncReader methods ***/
6704 HRESULT (STDMETHODCALLTYPE *Open)(
6705 IWMSyncReader *This,
6706 const WCHAR *pwszFilename);
6707
6708 HRESULT (STDMETHODCALLTYPE *Close)(
6709 IWMSyncReader *This);
6710
6711 HRESULT (STDMETHODCALLTYPE *SetRange)(
6712 IWMSyncReader *This,
6713 QWORD cnsStartTime,
6714 LONGLONG cnsDuration);
6715
6716 HRESULT (STDMETHODCALLTYPE *SetRangeByFrame)(
6717 IWMSyncReader *This,
6718 WORD wStreamNum,
6719 QWORD qwFrameNumber,
6720 LONGLONG cFramesToRead);
6721
6722 HRESULT (STDMETHODCALLTYPE *GetNextSample)(
6723 IWMSyncReader *This,
6724 WORD wStreamNum,
6725 INSSBuffer **ppSample,
6726 QWORD *pcnsSampleTime,
6727 QWORD *pcnsDuration,
6728 DWORD *pdwFlags,
6729 DWORD *pdwOutputNum,
6730 WORD *pwStreamNum);
6731
6732 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
6733 IWMSyncReader *This,
6734 WORD cStreamCount,
6735 WORD *pwStreamNumbers,
6736 WMT_STREAM_SELECTION *pSelections);
6737
6738 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
6739 IWMSyncReader *This,
6740 WORD wStreamNum,
6741 WMT_STREAM_SELECTION *pSelection);
6742
6743 HRESULT (STDMETHODCALLTYPE *SetReadStreamSamples)(
6744 IWMSyncReader *This,
6745 WORD wStreamNum,
6746 WINBOOL fCompressed);
6747
6748 HRESULT (STDMETHODCALLTYPE *GetReadStreamSamples)(
6749 IWMSyncReader *This,
6750 WORD wStreamNum,
6751 WINBOOL *pfCompressed);
6752
6753 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
6754 IWMSyncReader *This,
6755 DWORD dwOutputNum,
6756 LPCWSTR pszName,
6757 WMT_ATTR_DATATYPE *pType,
6758 BYTE *pValue,
6759 WORD *pcbLength);
6760
6761 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
6762 IWMSyncReader *This,
6763 DWORD dwOutputNum,
6764 LPCWSTR pszName,
6765 WMT_ATTR_DATATYPE Type,
6766 const BYTE *pValue,
6767 WORD cbLength);
6768
6769 HRESULT (STDMETHODCALLTYPE *GetOutputCount)(
6770 IWMSyncReader *This,
6771 DWORD *pcOutputs);
6772
6773 HRESULT (STDMETHODCALLTYPE *GetOutputProps)(
6774 IWMSyncReader *This,
6775 DWORD dwOutputNum,
6776 IWMOutputMediaProps **ppOutput);
6777
6778 HRESULT (STDMETHODCALLTYPE *SetOutputProps)(
6779 IWMSyncReader *This,
6780 DWORD dwOutputNum,
6781 IWMOutputMediaProps *pOutput);
6782
6783 HRESULT (STDMETHODCALLTYPE *GetOutputFormatCount)(
6784 IWMSyncReader *This,
6785 DWORD dwOutputNum,
6786 DWORD *pcFormats);
6787
6788 HRESULT (STDMETHODCALLTYPE *GetOutputFormat)(
6789 IWMSyncReader *This,
6790 DWORD dwOutputNum,
6791 DWORD dwFormatNum,
6792 IWMOutputMediaProps **ppProps);
6793
6794 HRESULT (STDMETHODCALLTYPE *GetOutputNumberForStream)(
6795 IWMSyncReader *This,
6796 WORD wStreamNum,
6797 DWORD *pdwOutputNum);
6798
6799 HRESULT (STDMETHODCALLTYPE *GetStreamNumberForOutput)(
6800 IWMSyncReader *This,
6801 DWORD dwOutputNum,
6802 WORD *pwStreamNum);
6803
6804 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
6805 IWMSyncReader *This,
6806 DWORD dwOutput,
6807 DWORD *pcbMax);
6808
6809 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
6810 IWMSyncReader *This,
6811 WORD wStream,
6812 DWORD *pcbMax);
6813
6814 HRESULT (STDMETHODCALLTYPE *OpenStream)(
6815 IWMSyncReader *This,
6816 IStream *pStream);
6817
6818 END_INTERFACE
6819} IWMSyncReaderVtbl;
6820
6821interface IWMSyncReader {
6822 CONST_VTBL IWMSyncReaderVtbl* lpVtbl;
6823};
6824
6825#ifdef COBJMACROS
6826#ifndef WIDL_C_INLINE_WRAPPERS
6827/*** IUnknown methods ***/
6828#define IWMSyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6829#define IWMSyncReader_AddRef(This) (This)->lpVtbl->AddRef(This)
6830#define IWMSyncReader_Release(This) (This)->lpVtbl->Release(This)
6831/*** IWMSyncReader methods ***/
6832#define IWMSyncReader_Open(This,pwszFilename) (This)->lpVtbl->Open(This,pwszFilename)
6833#define IWMSyncReader_Close(This) (This)->lpVtbl->Close(This)
6834#define IWMSyncReader_SetRange(This,cnsStartTime,cnsDuration) (This)->lpVtbl->SetRange(This,cnsStartTime,cnsDuration)
6835#define IWMSyncReader_SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead) (This)->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)
6836#define IWMSyncReader_GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum) (This)->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)
6837#define IWMSyncReader_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
6838#define IWMSyncReader_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
6839#define IWMSyncReader_SetReadStreamSamples(This,wStreamNum,fCompressed) (This)->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed)
6840#define IWMSyncReader_GetReadStreamSamples(This,wStreamNum,pfCompressed) (This)->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed)
6841#define IWMSyncReader_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
6842#define IWMSyncReader_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
6843#define IWMSyncReader_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs)
6844#define IWMSyncReader_GetOutputProps(This,dwOutputNum,ppOutput) (This)->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput)
6845#define IWMSyncReader_SetOutputProps(This,dwOutputNum,pOutput) (This)->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput)
6846#define IWMSyncReader_GetOutputFormatCount(This,dwOutputNum,pcFormats) (This)->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats)
6847#define IWMSyncReader_GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps) (This)->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)
6848#define IWMSyncReader_GetOutputNumberForStream(This,wStreamNum,pdwOutputNum) (This)->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)
6849#define IWMSyncReader_GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum) (This)->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)
6850#define IWMSyncReader_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
6851#define IWMSyncReader_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
6852#define IWMSyncReader_OpenStream(This,pStream) (This)->lpVtbl->OpenStream(This,pStream)
6853#else
6854/*** IUnknown methods ***/
6855static inline HRESULT IWMSyncReader_QueryInterface(IWMSyncReader* This,REFIID riid,void **ppvObject) {
6856 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6857}
6858static inline ULONG IWMSyncReader_AddRef(IWMSyncReader* This) {
6859 return This->lpVtbl->AddRef(This);
6860}
6861static inline ULONG IWMSyncReader_Release(IWMSyncReader* This) {
6862 return This->lpVtbl->Release(This);
6863}
6864/*** IWMSyncReader methods ***/
6865static inline HRESULT IWMSyncReader_Open(IWMSyncReader* This,const WCHAR *pwszFilename) {
6866 return This->lpVtbl->Open(This,pwszFilename);
6867}
6868static inline HRESULT IWMSyncReader_Close(IWMSyncReader* This) {
6869 return This->lpVtbl->Close(This);
6870}
6871static inline HRESULT IWMSyncReader_SetRange(IWMSyncReader* This,QWORD cnsStartTime,LONGLONG cnsDuration) {
6872 return This->lpVtbl->SetRange(This,cnsStartTime,cnsDuration);
6873}
6874static inline HRESULT IWMSyncReader_SetRangeByFrame(IWMSyncReader* This,WORD wStreamNum,QWORD qwFrameNumber,LONGLONG cFramesToRead) {
6875 return This->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead);
6876}
6877static inline HRESULT IWMSyncReader_GetNextSample(IWMSyncReader* This,WORD wStreamNum,INSSBuffer **ppSample,QWORD *pcnsSampleTime,QWORD *pcnsDuration,DWORD *pdwFlags,DWORD *pdwOutputNum,WORD *pwStreamNum) {
6878 return This->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum);
6879}
6880static inline HRESULT IWMSyncReader_SetStreamsSelected(IWMSyncReader* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
6881 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
6882}
6883static inline HRESULT IWMSyncReader_GetStreamSelected(IWMSyncReader* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
6884 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
6885}
6886static inline HRESULT IWMSyncReader_SetReadStreamSamples(IWMSyncReader* This,WORD wStreamNum,WINBOOL fCompressed) {
6887 return This->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed);
6888}
6889static inline HRESULT IWMSyncReader_GetReadStreamSamples(IWMSyncReader* This,WORD wStreamNum,WINBOOL *pfCompressed) {
6890 return This->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed);
6891}
6892static inline HRESULT IWMSyncReader_GetOutputSetting(IWMSyncReader* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
6893 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
6894}
6895static inline HRESULT IWMSyncReader_SetOutputSetting(IWMSyncReader* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
6896 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
6897}
6898static inline HRESULT IWMSyncReader_GetOutputCount(IWMSyncReader* This,DWORD *pcOutputs) {
6899 return This->lpVtbl->GetOutputCount(This,pcOutputs);
6900}
6901static inline HRESULT IWMSyncReader_GetOutputProps(IWMSyncReader* This,DWORD dwOutputNum,IWMOutputMediaProps **ppOutput) {
6902 return This->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput);
6903}
6904static inline HRESULT IWMSyncReader_SetOutputProps(IWMSyncReader* This,DWORD dwOutputNum,IWMOutputMediaProps *pOutput) {
6905 return This->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput);
6906}
6907static inline HRESULT IWMSyncReader_GetOutputFormatCount(IWMSyncReader* This,DWORD dwOutputNum,DWORD *pcFormats) {
6908 return This->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats);
6909}
6910static inline HRESULT IWMSyncReader_GetOutputFormat(IWMSyncReader* This,DWORD dwOutputNum,DWORD dwFormatNum,IWMOutputMediaProps **ppProps) {
6911 return This->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps);
6912}
6913static inline HRESULT IWMSyncReader_GetOutputNumberForStream(IWMSyncReader* This,WORD wStreamNum,DWORD *pdwOutputNum) {
6914 return This->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum);
6915}
6916static inline HRESULT IWMSyncReader_GetStreamNumberForOutput(IWMSyncReader* This,DWORD dwOutputNum,WORD *pwStreamNum) {
6917 return This->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum);
6918}
6919static inline HRESULT IWMSyncReader_GetMaxOutputSampleSize(IWMSyncReader* This,DWORD dwOutput,DWORD *pcbMax) {
6920 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
6921}
6922static inline HRESULT IWMSyncReader_GetMaxStreamSampleSize(IWMSyncReader* This,WORD wStream,DWORD *pcbMax) {
6923 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
6924}
6925static inline HRESULT IWMSyncReader_OpenStream(IWMSyncReader* This,IStream *pStream) {
6926 return This->lpVtbl->OpenStream(This,pStream);
6927}
6928#endif
6929#endif
6930
6931#endif
6932
6933
6934#endif /* __IWMSyncReader_INTERFACE_DEFINED__ */
6935
6936/*****************************************************************************
6937 * IWMReaderAllocatorEx interface
6938 */
6939#ifndef __IWMReaderAllocatorEx_INTERFACE_DEFINED__
6940#define __IWMReaderAllocatorEx_INTERFACE_DEFINED__
6941
6942DEFINE_GUID(IID_IWMReaderAllocatorEx, 0x9f762fa7, 0xa22e, 0x428d, 0x93,0xc9, 0xac,0x82,0xf3,0xaa,0xfe,0x5a);
6943#if defined(__cplusplus) && !defined(CINTERFACE)
6944MIDL_INTERFACE("9f762fa7-a22e-428d-93c9-ac82f3aafe5a")
6945IWMReaderAllocatorEx : public IUnknown
6946{
6947 virtual HRESULT STDMETHODCALLTYPE AllocateForStreamEx(
6948 WORD wStreamNum,
6949 DWORD cbBuffer,
6950 INSSBuffer **ppBuffer,
6951 DWORD dwFlags,
6952 QWORD cnsSampleTime,
6953 QWORD cnsSampleDuration,
6954 void *pvContext) = 0;
6955
6956 virtual HRESULT STDMETHODCALLTYPE AllocateForOutputEx(
6957 DWORD output,
6958 DWORD cbBuffer,
6959 INSSBuffer **ppBuffer,
6960 DWORD dwFlags,
6961 QWORD cnsSampleTime,
6962 QWORD cnsSampleDuration,
6963 void *pvContext) = 0;
6964
6965};
6966#ifdef __CRT_UUID_DECL
6967__CRT_UUID_DECL(IWMReaderAllocatorEx, 0x9f762fa7, 0xa22e, 0x428d, 0x93,0xc9, 0xac,0x82,0xf3,0xaa,0xfe,0x5a)
6968#endif
6969#else
6970typedef struct IWMReaderAllocatorExVtbl {
6971 BEGIN_INTERFACE
6972
6973 /*** IUnknown methods ***/
6974 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6975 IWMReaderAllocatorEx *This,
6976 REFIID riid,
6977 void **ppvObject);
6978
6979 ULONG (STDMETHODCALLTYPE *AddRef)(
6980 IWMReaderAllocatorEx *This);
6981
6982 ULONG (STDMETHODCALLTYPE *Release)(
6983 IWMReaderAllocatorEx *This);
6984
6985 /*** IWMReaderAllocatorEx methods ***/
6986 HRESULT (STDMETHODCALLTYPE *AllocateForStreamEx)(
6987 IWMReaderAllocatorEx *This,
6988 WORD wStreamNum,
6989 DWORD cbBuffer,
6990 INSSBuffer **ppBuffer,
6991 DWORD dwFlags,
6992 QWORD cnsSampleTime,
6993 QWORD cnsSampleDuration,
6994 void *pvContext);
6995
6996 HRESULT (STDMETHODCALLTYPE *AllocateForOutputEx)(
6997 IWMReaderAllocatorEx *This,
6998 DWORD output,
6999 DWORD cbBuffer,
7000 INSSBuffer **ppBuffer,
7001 DWORD dwFlags,
7002 QWORD cnsSampleTime,
7003 QWORD cnsSampleDuration,
7004 void *pvContext);
7005
7006 END_INTERFACE
7007} IWMReaderAllocatorExVtbl;
7008
7009interface IWMReaderAllocatorEx {
7010 CONST_VTBL IWMReaderAllocatorExVtbl* lpVtbl;
7011};
7012
7013#ifdef COBJMACROS
7014#ifndef WIDL_C_INLINE_WRAPPERS
7015/*** IUnknown methods ***/
7016#define IWMReaderAllocatorEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7017#define IWMReaderAllocatorEx_AddRef(This) (This)->lpVtbl->AddRef(This)
7018#define IWMReaderAllocatorEx_Release(This) (This)->lpVtbl->Release(This)
7019/*** IWMReaderAllocatorEx methods ***/
7020#define IWMReaderAllocatorEx_AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) (This)->lpVtbl->AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext)
7021#define IWMReaderAllocatorEx_AllocateForOutputEx(This,output,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) (This)->lpVtbl->AllocateForOutputEx(This,output,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext)
7022#else
7023/*** IUnknown methods ***/
7024static inline HRESULT IWMReaderAllocatorEx_QueryInterface(IWMReaderAllocatorEx* This,REFIID riid,void **ppvObject) {
7025 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7026}
7027static inline ULONG IWMReaderAllocatorEx_AddRef(IWMReaderAllocatorEx* This) {
7028 return This->lpVtbl->AddRef(This);
7029}
7030static inline ULONG IWMReaderAllocatorEx_Release(IWMReaderAllocatorEx* This) {
7031 return This->lpVtbl->Release(This);
7032}
7033/*** IWMReaderAllocatorEx methods ***/
7034static inline HRESULT IWMReaderAllocatorEx_AllocateForStreamEx(IWMReaderAllocatorEx* This,WORD wStreamNum,DWORD cbBuffer,INSSBuffer **ppBuffer,DWORD dwFlags,QWORD cnsSampleTime,QWORD cnsSampleDuration,void *pvContext) {
7035 return This->lpVtbl->AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext);
7036}
7037static inline HRESULT IWMReaderAllocatorEx_AllocateForOutputEx(IWMReaderAllocatorEx* This,DWORD output,DWORD cbBuffer,INSSBuffer **ppBuffer,DWORD dwFlags,QWORD cnsSampleTime,QWORD cnsSampleDuration,void *pvContext) {
7038 return This->lpVtbl->AllocateForOutputEx(This,output,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext);
7039}
7040#endif
7041#endif
7042
7043#endif
7044
7045
7046#endif /* __IWMReaderAllocatorEx_INTERFACE_DEFINED__ */
7047
7048/*****************************************************************************
7049 * IWMSyncReader2 interface
7050 */
7051#ifndef __IWMSyncReader2_INTERFACE_DEFINED__
7052#define __IWMSyncReader2_INTERFACE_DEFINED__
7053
7054DEFINE_GUID(IID_IWMSyncReader2, 0xfaed3d21, 0x1b6b, 0x4af7, 0x8c,0xb6, 0x3e,0x18,0x9b,0xbc,0x18,0x7b);
7055#if defined(__cplusplus) && !defined(CINTERFACE)
7056MIDL_INTERFACE("faed3d21-1b6b-4af7-8cb6-3e189bbc187b")
7057IWMSyncReader2 : public IWMSyncReader
7058{
7059 virtual HRESULT STDMETHODCALLTYPE SetRangeByTimecode(
7060 WORD wStreamNum,
7061 WMT_TIMECODE_EXTENSION_DATA *pStart,
7062 WMT_TIMECODE_EXTENSION_DATA *pEnd) = 0;
7063
7064 virtual HRESULT STDMETHODCALLTYPE SetRangeByFrameEx(
7065 WORD wStreamNum,
7066 QWORD qwFrameNumber,
7067 LONGLONG cFramesToRead,
7068 QWORD *pcnsStartTime) = 0;
7069
7070 virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput(
7071 DWORD dwOutputNum,
7072 IWMReaderAllocatorEx *pAllocator) = 0;
7073
7074 virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput(
7075 DWORD dwOutputNum,
7076 IWMReaderAllocatorEx **ppAllocator) = 0;
7077
7078 virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream(
7079 DWORD dwStreamNum,
7080 IWMReaderAllocatorEx *pAllocator) = 0;
7081
7082 virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream(
7083 DWORD dwStreamNum,
7084 IWMReaderAllocatorEx **ppAllocator) = 0;
7085
7086};
7087#ifdef __CRT_UUID_DECL
7088__CRT_UUID_DECL(IWMSyncReader2, 0xfaed3d21, 0x1b6b, 0x4af7, 0x8c,0xb6, 0x3e,0x18,0x9b,0xbc,0x18,0x7b)
7089#endif
7090#else
7091typedef struct IWMSyncReader2Vtbl {
7092 BEGIN_INTERFACE
7093
7094 /*** IUnknown methods ***/
7095 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7096 IWMSyncReader2 *This,
7097 REFIID riid,
7098 void **ppvObject);
7099
7100 ULONG (STDMETHODCALLTYPE *AddRef)(
7101 IWMSyncReader2 *This);
7102
7103 ULONG (STDMETHODCALLTYPE *Release)(
7104 IWMSyncReader2 *This);
7105
7106 /*** IWMSyncReader methods ***/
7107 HRESULT (STDMETHODCALLTYPE *Open)(
7108 IWMSyncReader2 *This,
7109 const WCHAR *pwszFilename);
7110
7111 HRESULT (STDMETHODCALLTYPE *Close)(
7112 IWMSyncReader2 *This);
7113
7114 HRESULT (STDMETHODCALLTYPE *SetRange)(
7115 IWMSyncReader2 *This,
7116 QWORD cnsStartTime,
7117 LONGLONG cnsDuration);
7118
7119 HRESULT (STDMETHODCALLTYPE *SetRangeByFrame)(
7120 IWMSyncReader2 *This,
7121 WORD wStreamNum,
7122 QWORD qwFrameNumber,
7123 LONGLONG cFramesToRead);
7124
7125 HRESULT (STDMETHODCALLTYPE *GetNextSample)(
7126 IWMSyncReader2 *This,
7127 WORD wStreamNum,
7128 INSSBuffer **ppSample,
7129 QWORD *pcnsSampleTime,
7130 QWORD *pcnsDuration,
7131 DWORD *pdwFlags,
7132 DWORD *pdwOutputNum,
7133 WORD *pwStreamNum);
7134
7135 HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
7136 IWMSyncReader2 *This,
7137 WORD cStreamCount,
7138 WORD *pwStreamNumbers,
7139 WMT_STREAM_SELECTION *pSelections);
7140
7141 HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
7142 IWMSyncReader2 *This,
7143 WORD wStreamNum,
7144 WMT_STREAM_SELECTION *pSelection);
7145
7146 HRESULT (STDMETHODCALLTYPE *SetReadStreamSamples)(
7147 IWMSyncReader2 *This,
7148 WORD wStreamNum,
7149 WINBOOL fCompressed);
7150
7151 HRESULT (STDMETHODCALLTYPE *GetReadStreamSamples)(
7152 IWMSyncReader2 *This,
7153 WORD wStreamNum,
7154 WINBOOL *pfCompressed);
7155
7156 HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
7157 IWMSyncReader2 *This,
7158 DWORD dwOutputNum,
7159 LPCWSTR pszName,
7160 WMT_ATTR_DATATYPE *pType,
7161 BYTE *pValue,
7162 WORD *pcbLength);
7163
7164 HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
7165 IWMSyncReader2 *This,
7166 DWORD dwOutputNum,
7167 LPCWSTR pszName,
7168 WMT_ATTR_DATATYPE Type,
7169 const BYTE *pValue,
7170 WORD cbLength);
7171
7172 HRESULT (STDMETHODCALLTYPE *GetOutputCount)(
7173 IWMSyncReader2 *This,
7174 DWORD *pcOutputs);
7175
7176 HRESULT (STDMETHODCALLTYPE *GetOutputProps)(
7177 IWMSyncReader2 *This,
7178 DWORD dwOutputNum,
7179 IWMOutputMediaProps **ppOutput);
7180
7181 HRESULT (STDMETHODCALLTYPE *SetOutputProps)(
7182 IWMSyncReader2 *This,
7183 DWORD dwOutputNum,
7184 IWMOutputMediaProps *pOutput);
7185
7186 HRESULT (STDMETHODCALLTYPE *GetOutputFormatCount)(
7187 IWMSyncReader2 *This,
7188 DWORD dwOutputNum,
7189 DWORD *pcFormats);
7190
7191 HRESULT (STDMETHODCALLTYPE *GetOutputFormat)(
7192 IWMSyncReader2 *This,
7193 DWORD dwOutputNum,
7194 DWORD dwFormatNum,
7195 IWMOutputMediaProps **ppProps);
7196
7197 HRESULT (STDMETHODCALLTYPE *GetOutputNumberForStream)(
7198 IWMSyncReader2 *This,
7199 WORD wStreamNum,
7200 DWORD *pdwOutputNum);
7201
7202 HRESULT (STDMETHODCALLTYPE *GetStreamNumberForOutput)(
7203 IWMSyncReader2 *This,
7204 DWORD dwOutputNum,
7205 WORD *pwStreamNum);
7206
7207 HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
7208 IWMSyncReader2 *This,
7209 DWORD dwOutput,
7210 DWORD *pcbMax);
7211
7212 HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
7213 IWMSyncReader2 *This,
7214 WORD wStream,
7215 DWORD *pcbMax);
7216
7217 HRESULT (STDMETHODCALLTYPE *OpenStream)(
7218 IWMSyncReader2 *This,
7219 IStream *pStream);
7220
7221 /*** IWMSyncReader2 methods ***/
7222 HRESULT (STDMETHODCALLTYPE *SetRangeByTimecode)(
7223 IWMSyncReader2 *This,
7224 WORD wStreamNum,
7225 WMT_TIMECODE_EXTENSION_DATA *pStart,
7226 WMT_TIMECODE_EXTENSION_DATA *pEnd);
7227
7228 HRESULT (STDMETHODCALLTYPE *SetRangeByFrameEx)(
7229 IWMSyncReader2 *This,
7230 WORD wStreamNum,
7231 QWORD qwFrameNumber,
7232 LONGLONG cFramesToRead,
7233 QWORD *pcnsStartTime);
7234
7235 HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
7236 IWMSyncReader2 *This,
7237 DWORD dwOutputNum,
7238 IWMReaderAllocatorEx *pAllocator);
7239
7240 HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
7241 IWMSyncReader2 *This,
7242 DWORD dwOutputNum,
7243 IWMReaderAllocatorEx **ppAllocator);
7244
7245 HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
7246 IWMSyncReader2 *This,
7247 DWORD dwStreamNum,
7248 IWMReaderAllocatorEx *pAllocator);
7249
7250 HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
7251 IWMSyncReader2 *This,
7252 DWORD dwStreamNum,
7253 IWMReaderAllocatorEx **ppAllocator);
7254
7255 END_INTERFACE
7256} IWMSyncReader2Vtbl;
7257
7258interface IWMSyncReader2 {
7259 CONST_VTBL IWMSyncReader2Vtbl* lpVtbl;
7260};
7261
7262#ifdef COBJMACROS
7263#ifndef WIDL_C_INLINE_WRAPPERS
7264/*** IUnknown methods ***/
7265#define IWMSyncReader2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7266#define IWMSyncReader2_AddRef(This) (This)->lpVtbl->AddRef(This)
7267#define IWMSyncReader2_Release(This) (This)->lpVtbl->Release(This)
7268/*** IWMSyncReader methods ***/
7269#define IWMSyncReader2_Open(This,pwszFilename) (This)->lpVtbl->Open(This,pwszFilename)
7270#define IWMSyncReader2_Close(This) (This)->lpVtbl->Close(This)
7271#define IWMSyncReader2_SetRange(This,cnsStartTime,cnsDuration) (This)->lpVtbl->SetRange(This,cnsStartTime,cnsDuration)
7272#define IWMSyncReader2_SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead) (This)->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)
7273#define IWMSyncReader2_GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum) (This)->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)
7274#define IWMSyncReader2_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
7275#define IWMSyncReader2_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
7276#define IWMSyncReader2_SetReadStreamSamples(This,wStreamNum,fCompressed) (This)->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed)
7277#define IWMSyncReader2_GetReadStreamSamples(This,wStreamNum,pfCompressed) (This)->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed)
7278#define IWMSyncReader2_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
7279#define IWMSyncReader2_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
7280#define IWMSyncReader2_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs)
7281#define IWMSyncReader2_GetOutputProps(This,dwOutputNum,ppOutput) (This)->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput)
7282#define IWMSyncReader2_SetOutputProps(This,dwOutputNum,pOutput) (This)->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput)
7283#define IWMSyncReader2_GetOutputFormatCount(This,dwOutputNum,pcFormats) (This)->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats)
7284#define IWMSyncReader2_GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps) (This)->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)
7285#define IWMSyncReader2_GetOutputNumberForStream(This,wStreamNum,pdwOutputNum) (This)->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)
7286#define IWMSyncReader2_GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum) (This)->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)
7287#define IWMSyncReader2_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
7288#define IWMSyncReader2_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
7289#define IWMSyncReader2_OpenStream(This,pStream) (This)->lpVtbl->OpenStream(This,pStream)
7290/*** IWMSyncReader2 methods ***/
7291#define IWMSyncReader2_SetRangeByTimecode(This,wStreamNum,pStart,pEnd) (This)->lpVtbl->SetRangeByTimecode(This,wStreamNum,pStart,pEnd)
7292#define IWMSyncReader2_SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime) (This)->lpVtbl->SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime)
7293#define IWMSyncReader2_SetAllocateForOutput(This,dwOutputNum,pAllocator) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,pAllocator)
7294#define IWMSyncReader2_GetAllocateForOutput(This,dwOutputNum,ppAllocator) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,ppAllocator)
7295#define IWMSyncReader2_SetAllocateForStream(This,dwStreamNum,pAllocator) (This)->lpVtbl->SetAllocateForStream(This,dwStreamNum,pAllocator)
7296#define IWMSyncReader2_GetAllocateForStream(This,dwStreamNum,ppAllocator) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,ppAllocator)
7297#else
7298/*** IUnknown methods ***/
7299static inline HRESULT IWMSyncReader2_QueryInterface(IWMSyncReader2* This,REFIID riid,void **ppvObject) {
7300 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7301}
7302static inline ULONG IWMSyncReader2_AddRef(IWMSyncReader2* This) {
7303 return This->lpVtbl->AddRef(This);
7304}
7305static inline ULONG IWMSyncReader2_Release(IWMSyncReader2* This) {
7306 return This->lpVtbl->Release(This);
7307}
7308/*** IWMSyncReader methods ***/
7309static inline HRESULT IWMSyncReader2_Open(IWMSyncReader2* This,const WCHAR *pwszFilename) {
7310 return This->lpVtbl->Open(This,pwszFilename);
7311}
7312static inline HRESULT IWMSyncReader2_Close(IWMSyncReader2* This) {
7313 return This->lpVtbl->Close(This);
7314}
7315static inline HRESULT IWMSyncReader2_SetRange(IWMSyncReader2* This,QWORD cnsStartTime,LONGLONG cnsDuration) {
7316 return This->lpVtbl->SetRange(This,cnsStartTime,cnsDuration);
7317}
7318static inline HRESULT IWMSyncReader2_SetRangeByFrame(IWMSyncReader2* This,WORD wStreamNum,QWORD qwFrameNumber,LONGLONG cFramesToRead) {
7319 return This->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead);
7320}
7321static inline HRESULT IWMSyncReader2_GetNextSample(IWMSyncReader2* This,WORD wStreamNum,INSSBuffer **ppSample,QWORD *pcnsSampleTime,QWORD *pcnsDuration,DWORD *pdwFlags,DWORD *pdwOutputNum,WORD *pwStreamNum) {
7322 return This->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum);
7323}
7324static inline HRESULT IWMSyncReader2_SetStreamsSelected(IWMSyncReader2* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
7325 return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
7326}
7327static inline HRESULT IWMSyncReader2_GetStreamSelected(IWMSyncReader2* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
7328 return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
7329}
7330static inline HRESULT IWMSyncReader2_SetReadStreamSamples(IWMSyncReader2* This,WORD wStreamNum,WINBOOL fCompressed) {
7331 return This->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed);
7332}
7333static inline HRESULT IWMSyncReader2_GetReadStreamSamples(IWMSyncReader2* This,WORD wStreamNum,WINBOOL *pfCompressed) {
7334 return This->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed);
7335}
7336static inline HRESULT IWMSyncReader2_GetOutputSetting(IWMSyncReader2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
7337 return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
7338}
7339static inline HRESULT IWMSyncReader2_SetOutputSetting(IWMSyncReader2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
7340 return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
7341}
7342static inline HRESULT IWMSyncReader2_GetOutputCount(IWMSyncReader2* This,DWORD *pcOutputs) {
7343 return This->lpVtbl->GetOutputCount(This,pcOutputs);
7344}
7345static inline HRESULT IWMSyncReader2_GetOutputProps(IWMSyncReader2* This,DWORD dwOutputNum,IWMOutputMediaProps **ppOutput) {
7346 return This->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput);
7347}
7348static inline HRESULT IWMSyncReader2_SetOutputProps(IWMSyncReader2* This,DWORD dwOutputNum,IWMOutputMediaProps *pOutput) {
7349 return This->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput);
7350}
7351static inline HRESULT IWMSyncReader2_GetOutputFormatCount(IWMSyncReader2* This,DWORD dwOutputNum,DWORD *pcFormats) {
7352 return This->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats);
7353}
7354static inline HRESULT IWMSyncReader2_GetOutputFormat(IWMSyncReader2* This,DWORD dwOutputNum,DWORD dwFormatNum,IWMOutputMediaProps **ppProps) {
7355 return This->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps);
7356}
7357static inline HRESULT IWMSyncReader2_GetOutputNumberForStream(IWMSyncReader2* This,WORD wStreamNum,DWORD *pdwOutputNum) {
7358 return This->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum);
7359}
7360static inline HRESULT IWMSyncReader2_GetStreamNumberForOutput(IWMSyncReader2* This,DWORD dwOutputNum,WORD *pwStreamNum) {
7361 return This->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum);
7362}
7363static inline HRESULT IWMSyncReader2_GetMaxOutputSampleSize(IWMSyncReader2* This,DWORD dwOutput,DWORD *pcbMax) {
7364 return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
7365}
7366static inline HRESULT IWMSyncReader2_GetMaxStreamSampleSize(IWMSyncReader2* This,WORD wStream,DWORD *pcbMax) {
7367 return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
7368}
7369static inline HRESULT IWMSyncReader2_OpenStream(IWMSyncReader2* This,IStream *pStream) {
7370 return This->lpVtbl->OpenStream(This,pStream);
7371}
7372/*** IWMSyncReader2 methods ***/
7373static inline HRESULT IWMSyncReader2_SetRangeByTimecode(IWMSyncReader2* This,WORD wStreamNum,WMT_TIMECODE_EXTENSION_DATA *pStart,WMT_TIMECODE_EXTENSION_DATA *pEnd) {
7374 return This->lpVtbl->SetRangeByTimecode(This,wStreamNum,pStart,pEnd);
7375}
7376static inline HRESULT IWMSyncReader2_SetRangeByFrameEx(IWMSyncReader2* This,WORD wStreamNum,QWORD qwFrameNumber,LONGLONG cFramesToRead,QWORD *pcnsStartTime) {
7377 return This->lpVtbl->SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime);
7378}
7379static inline HRESULT IWMSyncReader2_SetAllocateForOutput(IWMSyncReader2* This,DWORD dwOutputNum,IWMReaderAllocatorEx *pAllocator) {
7380 return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,pAllocator);
7381}
7382static inline HRESULT IWMSyncReader2_GetAllocateForOutput(IWMSyncReader2* This,DWORD dwOutputNum,IWMReaderAllocatorEx **ppAllocator) {
7383 return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,ppAllocator);
7384}
7385static inline HRESULT IWMSyncReader2_SetAllocateForStream(IWMSyncReader2* This,DWORD dwStreamNum,IWMReaderAllocatorEx *pAllocator) {
7386 return This->lpVtbl->SetAllocateForStream(This,dwStreamNum,pAllocator);
7387}
7388static inline HRESULT IWMSyncReader2_GetAllocateForStream(IWMSyncReader2* This,DWORD dwStreamNum,IWMReaderAllocatorEx **ppAllocator) {
7389 return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,ppAllocator);
7390}
7391#endif
7392#endif
7393
7394#endif
7395
7396
7397#endif /* __IWMSyncReader2_INTERFACE_DEFINED__ */
7398
7399/*****************************************************************************
7400 * IWMInputMediaProps interface
7401 */
7402#ifndef __IWMInputMediaProps_INTERFACE_DEFINED__
7403#define __IWMInputMediaProps_INTERFACE_DEFINED__
7404
7405DEFINE_GUID(IID_IWMInputMediaProps, 0x96406bd5, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
7406#if defined(__cplusplus) && !defined(CINTERFACE)
7407MIDL_INTERFACE("96406bd5-2b2b-11d3-b36b-00c04f6108ff")
7408IWMInputMediaProps : public IWMMediaProps
7409{
7410 virtual HRESULT STDMETHODCALLTYPE GetConnectionName(
7411 WCHAR *pwszName,
7412 WORD *pcchName) = 0;
7413
7414 virtual HRESULT STDMETHODCALLTYPE GetGroupName(
7415 WCHAR *pwszName,
7416 WORD *pcchName) = 0;
7417
7418};
7419#ifdef __CRT_UUID_DECL
7420__CRT_UUID_DECL(IWMInputMediaProps, 0x96406bd5, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
7421#endif
7422#else
7423typedef struct IWMInputMediaPropsVtbl {
7424 BEGIN_INTERFACE
7425
7426 /*** IUnknown methods ***/
7427 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7428 IWMInputMediaProps *This,
7429 REFIID riid,
7430 void **ppvObject);
7431
7432 ULONG (STDMETHODCALLTYPE *AddRef)(
7433 IWMInputMediaProps *This);
7434
7435 ULONG (STDMETHODCALLTYPE *Release)(
7436 IWMInputMediaProps *This);
7437
7438 /*** IWMMediaProps methods ***/
7439 HRESULT (STDMETHODCALLTYPE *GetType)(
7440 IWMInputMediaProps *This,
7441 GUID *pguidType);
7442
7443 HRESULT (STDMETHODCALLTYPE *GetMediaType)(
7444 IWMInputMediaProps *This,
7445 WM_MEDIA_TYPE *pType,
7446 DWORD *pcbType);
7447
7448 HRESULT (STDMETHODCALLTYPE *SetMediaType)(
7449 IWMInputMediaProps *This,
7450 WM_MEDIA_TYPE *pType);
7451
7452 /*** IWMInputMediaProps methods ***/
7453 HRESULT (STDMETHODCALLTYPE *GetConnectionName)(
7454 IWMInputMediaProps *This,
7455 WCHAR *pwszName,
7456 WORD *pcchName);
7457
7458 HRESULT (STDMETHODCALLTYPE *GetGroupName)(
7459 IWMInputMediaProps *This,
7460 WCHAR *pwszName,
7461 WORD *pcchName);
7462
7463 END_INTERFACE
7464} IWMInputMediaPropsVtbl;
7465
7466interface IWMInputMediaProps {
7467 CONST_VTBL IWMInputMediaPropsVtbl* lpVtbl;
7468};
7469
7470#ifdef COBJMACROS
7471#ifndef WIDL_C_INLINE_WRAPPERS
7472/*** IUnknown methods ***/
7473#define IWMInputMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7474#define IWMInputMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This)
7475#define IWMInputMediaProps_Release(This) (This)->lpVtbl->Release(This)
7476/*** IWMMediaProps methods ***/
7477#define IWMInputMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
7478#define IWMInputMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType)
7479#define IWMInputMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType)
7480/*** IWMInputMediaProps methods ***/
7481#define IWMInputMediaProps_GetConnectionName(This,pwszName,pcchName) (This)->lpVtbl->GetConnectionName(This,pwszName,pcchName)
7482#define IWMInputMediaProps_GetGroupName(This,pwszName,pcchName) (This)->lpVtbl->GetGroupName(This,pwszName,pcchName)
7483#else
7484/*** IUnknown methods ***/
7485static inline HRESULT IWMInputMediaProps_QueryInterface(IWMInputMediaProps* This,REFIID riid,void **ppvObject) {
7486 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7487}
7488static inline ULONG IWMInputMediaProps_AddRef(IWMInputMediaProps* This) {
7489 return This->lpVtbl->AddRef(This);
7490}
7491static inline ULONG IWMInputMediaProps_Release(IWMInputMediaProps* This) {
7492 return This->lpVtbl->Release(This);
7493}
7494/*** IWMMediaProps methods ***/
7495static inline HRESULT IWMInputMediaProps_GetType(IWMInputMediaProps* This,GUID *pguidType) {
7496 return This->lpVtbl->GetType(This,pguidType);
7497}
7498static inline HRESULT IWMInputMediaProps_GetMediaType(IWMInputMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) {
7499 return This->lpVtbl->GetMediaType(This,pType,pcbType);
7500}
7501static inline HRESULT IWMInputMediaProps_SetMediaType(IWMInputMediaProps* This,WM_MEDIA_TYPE *pType) {
7502 return This->lpVtbl->SetMediaType(This,pType);
7503}
7504/*** IWMInputMediaProps methods ***/
7505static inline HRESULT IWMInputMediaProps_GetConnectionName(IWMInputMediaProps* This,WCHAR *pwszName,WORD *pcchName) {
7506 return This->lpVtbl->GetConnectionName(This,pwszName,pcchName);
7507}
7508static inline HRESULT IWMInputMediaProps_GetGroupName(IWMInputMediaProps* This,WCHAR *pwszName,WORD *pcchName) {
7509 return This->lpVtbl->GetGroupName(This,pwszName,pcchName);
7510}
7511#endif
7512#endif
7513
7514#endif
7515
7516
7517#endif /* __IWMInputMediaProps_INTERFACE_DEFINED__ */
7518
7519/*****************************************************************************
7520 * IWMWriterSink interface
7521 */
7522#ifndef __IWMWriterSink_INTERFACE_DEFINED__
7523#define __IWMWriterSink_INTERFACE_DEFINED__
7524
7525DEFINE_GUID(IID_IWMWriterSink, 0x96406be4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
7526#if defined(__cplusplus) && !defined(CINTERFACE)
7527MIDL_INTERFACE("96406be4-2b2b-11d3-b36b-00c04f6108ff")
7528IWMWriterSink : public IUnknown
7529{
7530 virtual HRESULT STDMETHODCALLTYPE OnHeader(
7531 INSSBuffer *pHeader) = 0;
7532
7533 virtual HRESULT STDMETHODCALLTYPE IsRealTime(
7534 WINBOOL *pfRealTime) = 0;
7535
7536 virtual HRESULT STDMETHODCALLTYPE AllocateDataUnit(
7537 DWORD cbDataUnit,
7538 INSSBuffer **ppDataUnit) = 0;
7539
7540 virtual HRESULT STDMETHODCALLTYPE OnDataUnit(
7541 INSSBuffer *pDataUnit) = 0;
7542
7543 virtual HRESULT STDMETHODCALLTYPE OnEndWriting(
7544 ) = 0;
7545
7546};
7547#ifdef __CRT_UUID_DECL
7548__CRT_UUID_DECL(IWMWriterSink, 0x96406be4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
7549#endif
7550#else
7551typedef struct IWMWriterSinkVtbl {
7552 BEGIN_INTERFACE
7553
7554 /*** IUnknown methods ***/
7555 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7556 IWMWriterSink *This,
7557 REFIID riid,
7558 void **ppvObject);
7559
7560 ULONG (STDMETHODCALLTYPE *AddRef)(
7561 IWMWriterSink *This);
7562
7563 ULONG (STDMETHODCALLTYPE *Release)(
7564 IWMWriterSink *This);
7565
7566 /*** IWMWriterSink methods ***/
7567 HRESULT (STDMETHODCALLTYPE *OnHeader)(
7568 IWMWriterSink *This,
7569 INSSBuffer *pHeader);
7570
7571 HRESULT (STDMETHODCALLTYPE *IsRealTime)(
7572 IWMWriterSink *This,
7573 WINBOOL *pfRealTime);
7574
7575 HRESULT (STDMETHODCALLTYPE *AllocateDataUnit)(
7576 IWMWriterSink *This,
7577 DWORD cbDataUnit,
7578 INSSBuffer **ppDataUnit);
7579
7580 HRESULT (STDMETHODCALLTYPE *OnDataUnit)(
7581 IWMWriterSink *This,
7582 INSSBuffer *pDataUnit);
7583
7584 HRESULT (STDMETHODCALLTYPE *OnEndWriting)(
7585 IWMWriterSink *This);
7586
7587 END_INTERFACE
7588} IWMWriterSinkVtbl;
7589
7590interface IWMWriterSink {
7591 CONST_VTBL IWMWriterSinkVtbl* lpVtbl;
7592};
7593
7594#ifdef COBJMACROS
7595#ifndef WIDL_C_INLINE_WRAPPERS
7596/*** IUnknown methods ***/
7597#define IWMWriterSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7598#define IWMWriterSink_AddRef(This) (This)->lpVtbl->AddRef(This)
7599#define IWMWriterSink_Release(This) (This)->lpVtbl->Release(This)
7600/*** IWMWriterSink methods ***/
7601#define IWMWriterSink_OnHeader(This,pHeader) (This)->lpVtbl->OnHeader(This,pHeader)
7602#define IWMWriterSink_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
7603#define IWMWriterSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit) (This)->lpVtbl->AllocateDataUnit(This,cbDataUnit,ppDataUnit)
7604#define IWMWriterSink_OnDataUnit(This,pDataUnit) (This)->lpVtbl->OnDataUnit(This,pDataUnit)
7605#define IWMWriterSink_OnEndWriting(This) (This)->lpVtbl->OnEndWriting(This)
7606#else
7607/*** IUnknown methods ***/
7608static inline HRESULT IWMWriterSink_QueryInterface(IWMWriterSink* This,REFIID riid,void **ppvObject) {
7609 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7610}
7611static inline ULONG IWMWriterSink_AddRef(IWMWriterSink* This) {
7612 return This->lpVtbl->AddRef(This);
7613}
7614static inline ULONG IWMWriterSink_Release(IWMWriterSink* This) {
7615 return This->lpVtbl->Release(This);
7616}
7617/*** IWMWriterSink methods ***/
7618static inline HRESULT IWMWriterSink_OnHeader(IWMWriterSink* This,INSSBuffer *pHeader) {
7619 return This->lpVtbl->OnHeader(This,pHeader);
7620}
7621static inline HRESULT IWMWriterSink_IsRealTime(IWMWriterSink* This,WINBOOL *pfRealTime) {
7622 return This->lpVtbl->IsRealTime(This,pfRealTime);
7623}
7624static inline HRESULT IWMWriterSink_AllocateDataUnit(IWMWriterSink* This,DWORD cbDataUnit,INSSBuffer **ppDataUnit) {
7625 return This->lpVtbl->AllocateDataUnit(This,cbDataUnit,ppDataUnit);
7626}
7627static inline HRESULT IWMWriterSink_OnDataUnit(IWMWriterSink* This,INSSBuffer *pDataUnit) {
7628 return This->lpVtbl->OnDataUnit(This,pDataUnit);
7629}
7630static inline HRESULT IWMWriterSink_OnEndWriting(IWMWriterSink* This) {
7631 return This->lpVtbl->OnEndWriting(This);
7632}
7633#endif
7634#endif
7635
7636#endif
7637
7638
7639#endif /* __IWMWriterSink_INTERFACE_DEFINED__ */
7640
7641/*****************************************************************************
7642 * IWMWriter interface
7643 */
7644#ifndef __IWMWriter_INTERFACE_DEFINED__
7645#define __IWMWriter_INTERFACE_DEFINED__
7646
7647DEFINE_GUID(IID_IWMWriter, 0x96406bd4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
7648#if defined(__cplusplus) && !defined(CINTERFACE)
7649MIDL_INTERFACE("96406bd4-2b2b-11d3-b36b-00c04f6108ff")
7650IWMWriter : public IUnknown
7651{
7652 virtual HRESULT STDMETHODCALLTYPE SetProfileByID(
7653 REFGUID guidProfile) = 0;
7654
7655 virtual HRESULT STDMETHODCALLTYPE SetProfile(
7656 IWMProfile *pProfile) = 0;
7657
7658 virtual HRESULT STDMETHODCALLTYPE SetOutputFilename(
7659 const WCHAR *pwszFilename) = 0;
7660
7661 virtual HRESULT STDMETHODCALLTYPE GetInputCount(
7662 DWORD *pcInputs) = 0;
7663
7664 virtual HRESULT STDMETHODCALLTYPE GetInputProps(
7665 DWORD dwInputNum,
7666 IWMInputMediaProps **ppInput) = 0;
7667
7668 virtual HRESULT STDMETHODCALLTYPE SetInputProps(
7669 DWORD dwInputNum,
7670 IWMInputMediaProps *pInput) = 0;
7671
7672 virtual HRESULT STDMETHODCALLTYPE GetInputFormatCount(
7673 DWORD dwInputNumber,
7674 DWORD *pcFormats) = 0;
7675
7676 virtual HRESULT STDMETHODCALLTYPE GetInputFormat(
7677 DWORD dwInputNumber,
7678 DWORD dwFormatNumber,
7679 IWMInputMediaProps **pProps) = 0;
7680
7681 virtual HRESULT STDMETHODCALLTYPE BeginWriting(
7682 ) = 0;
7683
7684 virtual HRESULT STDMETHODCALLTYPE EndWriting(
7685 ) = 0;
7686
7687 virtual HRESULT STDMETHODCALLTYPE AllocateSample(
7688 DWORD dwSampleSize,
7689 INSSBuffer **ppSample) = 0;
7690
7691 virtual HRESULT STDMETHODCALLTYPE WriteSample(
7692 DWORD dwInputNum,
7693 QWORD cnsSampleTime,
7694 DWORD dwFlags,
7695 INSSBuffer *pSample) = 0;
7696
7697 virtual HRESULT STDMETHODCALLTYPE Flush(
7698 ) = 0;
7699
7700};
7701#ifdef __CRT_UUID_DECL
7702__CRT_UUID_DECL(IWMWriter, 0x96406bd4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
7703#endif
7704#else
7705typedef struct IWMWriterVtbl {
7706 BEGIN_INTERFACE
7707
7708 /*** IUnknown methods ***/
7709 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7710 IWMWriter *This,
7711 REFIID riid,
7712 void **ppvObject);
7713
7714 ULONG (STDMETHODCALLTYPE *AddRef)(
7715 IWMWriter *This);
7716
7717 ULONG (STDMETHODCALLTYPE *Release)(
7718 IWMWriter *This);
7719
7720 /*** IWMWriter methods ***/
7721 HRESULT (STDMETHODCALLTYPE *SetProfileByID)(
7722 IWMWriter *This,
7723 REFGUID guidProfile);
7724
7725 HRESULT (STDMETHODCALLTYPE *SetProfile)(
7726 IWMWriter *This,
7727 IWMProfile *pProfile);
7728
7729 HRESULT (STDMETHODCALLTYPE *SetOutputFilename)(
7730 IWMWriter *This,
7731 const WCHAR *pwszFilename);
7732
7733 HRESULT (STDMETHODCALLTYPE *GetInputCount)(
7734 IWMWriter *This,
7735 DWORD *pcInputs);
7736
7737 HRESULT (STDMETHODCALLTYPE *GetInputProps)(
7738 IWMWriter *This,
7739 DWORD dwInputNum,
7740 IWMInputMediaProps **ppInput);
7741
7742 HRESULT (STDMETHODCALLTYPE *SetInputProps)(
7743 IWMWriter *This,
7744 DWORD dwInputNum,
7745 IWMInputMediaProps *pInput);
7746
7747 HRESULT (STDMETHODCALLTYPE *GetInputFormatCount)(
7748 IWMWriter *This,
7749 DWORD dwInputNumber,
7750 DWORD *pcFormats);
7751
7752 HRESULT (STDMETHODCALLTYPE *GetInputFormat)(
7753 IWMWriter *This,
7754 DWORD dwInputNumber,
7755 DWORD dwFormatNumber,
7756 IWMInputMediaProps **pProps);
7757
7758 HRESULT (STDMETHODCALLTYPE *BeginWriting)(
7759 IWMWriter *This);
7760
7761 HRESULT (STDMETHODCALLTYPE *EndWriting)(
7762 IWMWriter *This);
7763
7764 HRESULT (STDMETHODCALLTYPE *AllocateSample)(
7765 IWMWriter *This,
7766 DWORD dwSampleSize,
7767 INSSBuffer **ppSample);
7768
7769 HRESULT (STDMETHODCALLTYPE *WriteSample)(
7770 IWMWriter *This,
7771 DWORD dwInputNum,
7772 QWORD cnsSampleTime,
7773 DWORD dwFlags,
7774 INSSBuffer *pSample);
7775
7776 HRESULT (STDMETHODCALLTYPE *Flush)(
7777 IWMWriter *This);
7778
7779 END_INTERFACE
7780} IWMWriterVtbl;
7781
7782interface IWMWriter {
7783 CONST_VTBL IWMWriterVtbl* lpVtbl;
7784};
7785
7786#ifdef COBJMACROS
7787#ifndef WIDL_C_INLINE_WRAPPERS
7788/*** IUnknown methods ***/
7789#define IWMWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7790#define IWMWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
7791#define IWMWriter_Release(This) (This)->lpVtbl->Release(This)
7792/*** IWMWriter methods ***/
7793#define IWMWriter_SetProfileByID(This,guidProfile) (This)->lpVtbl->SetProfileByID(This,guidProfile)
7794#define IWMWriter_SetProfile(This,pProfile) (This)->lpVtbl->SetProfile(This,pProfile)
7795#define IWMWriter_SetOutputFilename(This,pwszFilename) (This)->lpVtbl->SetOutputFilename(This,pwszFilename)
7796#define IWMWriter_GetInputCount(This,pcInputs) (This)->lpVtbl->GetInputCount(This,pcInputs)
7797#define IWMWriter_GetInputProps(This,dwInputNum,ppInput) (This)->lpVtbl->GetInputProps(This,dwInputNum,ppInput)
7798#define IWMWriter_SetInputProps(This,dwInputNum,pInput) (This)->lpVtbl->SetInputProps(This,dwInputNum,pInput)
7799#define IWMWriter_GetInputFormatCount(This,dwInputNumber,pcFormats) (This)->lpVtbl->GetInputFormatCount(This,dwInputNumber,pcFormats)
7800#define IWMWriter_GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps) (This)->lpVtbl->GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps)
7801#define IWMWriter_BeginWriting(This) (This)->lpVtbl->BeginWriting(This)
7802#define IWMWriter_EndWriting(This) (This)->lpVtbl->EndWriting(This)
7803#define IWMWriter_AllocateSample(This,dwSampleSize,ppSample) (This)->lpVtbl->AllocateSample(This,dwSampleSize,ppSample)
7804#define IWMWriter_WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample) (This)->lpVtbl->WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample)
7805#define IWMWriter_Flush(This) (This)->lpVtbl->Flush(This)
7806#else
7807/*** IUnknown methods ***/
7808static inline HRESULT IWMWriter_QueryInterface(IWMWriter* This,REFIID riid,void **ppvObject) {
7809 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7810}
7811static inline ULONG IWMWriter_AddRef(IWMWriter* This) {
7812 return This->lpVtbl->AddRef(This);
7813}
7814static inline ULONG IWMWriter_Release(IWMWriter* This) {
7815 return This->lpVtbl->Release(This);
7816}
7817/*** IWMWriter methods ***/
7818static inline HRESULT IWMWriter_SetProfileByID(IWMWriter* This,REFGUID guidProfile) {
7819 return This->lpVtbl->SetProfileByID(This,guidProfile);
7820}
7821static inline HRESULT IWMWriter_SetProfile(IWMWriter* This,IWMProfile *pProfile) {
7822 return This->lpVtbl->SetProfile(This,pProfile);
7823}
7824static inline HRESULT IWMWriter_SetOutputFilename(IWMWriter* This,const WCHAR *pwszFilename) {
7825 return This->lpVtbl->SetOutputFilename(This,pwszFilename);
7826}
7827static inline HRESULT IWMWriter_GetInputCount(IWMWriter* This,DWORD *pcInputs) {
7828 return This->lpVtbl->GetInputCount(This,pcInputs);
7829}
7830static inline HRESULT IWMWriter_GetInputProps(IWMWriter* This,DWORD dwInputNum,IWMInputMediaProps **ppInput) {
7831 return This->lpVtbl->GetInputProps(This,dwInputNum,ppInput);
7832}
7833static inline HRESULT IWMWriter_SetInputProps(IWMWriter* This,DWORD dwInputNum,IWMInputMediaProps *pInput) {
7834 return This->lpVtbl->SetInputProps(This,dwInputNum,pInput);
7835}
7836static inline HRESULT IWMWriter_GetInputFormatCount(IWMWriter* This,DWORD dwInputNumber,DWORD *pcFormats) {
7837 return This->lpVtbl->GetInputFormatCount(This,dwInputNumber,pcFormats);
7838}
7839static inline HRESULT IWMWriter_GetInputFormat(IWMWriter* This,DWORD dwInputNumber,DWORD dwFormatNumber,IWMInputMediaProps **pProps) {
7840 return This->lpVtbl->GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps);
7841}
7842static inline HRESULT IWMWriter_BeginWriting(IWMWriter* This) {
7843 return This->lpVtbl->BeginWriting(This);
7844}
7845static inline HRESULT IWMWriter_EndWriting(IWMWriter* This) {
7846 return This->lpVtbl->EndWriting(This);
7847}
7848static inline HRESULT IWMWriter_AllocateSample(IWMWriter* This,DWORD dwSampleSize,INSSBuffer **ppSample) {
7849 return This->lpVtbl->AllocateSample(This,dwSampleSize,ppSample);
7850}
7851static inline HRESULT IWMWriter_WriteSample(IWMWriter* This,DWORD dwInputNum,QWORD cnsSampleTime,DWORD dwFlags,INSSBuffer *pSample) {
7852 return This->lpVtbl->WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample);
7853}
7854static inline HRESULT IWMWriter_Flush(IWMWriter* This) {
7855 return This->lpVtbl->Flush(This);
7856}
7857#endif
7858#endif
7859
7860#endif
7861
7862
7863#endif /* __IWMWriter_INTERFACE_DEFINED__ */
7864
7865/*****************************************************************************
7866 * IWMWriterAdvanced interface
7867 */
7868#ifndef __IWMWriterAdvanced_INTERFACE_DEFINED__
7869#define __IWMWriterAdvanced_INTERFACE_DEFINED__
7870
7871DEFINE_GUID(IID_IWMWriterAdvanced, 0x96406be3, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
7872#if defined(__cplusplus) && !defined(CINTERFACE)
7873MIDL_INTERFACE("96406be3-2b2b-11d3-b36b-00c04f6108ff")
7874IWMWriterAdvanced : public IUnknown
7875{
7876 virtual HRESULT STDMETHODCALLTYPE GetSinkCount(
7877 DWORD *pcSinks) = 0;
7878
7879 virtual HRESULT STDMETHODCALLTYPE GetSink(
7880 DWORD dwSinkNum,
7881 IWMWriterSink **ppSink) = 0;
7882
7883 virtual HRESULT STDMETHODCALLTYPE AddSink(
7884 IWMWriterSink *pSink) = 0;
7885
7886 virtual HRESULT STDMETHODCALLTYPE RemoveSink(
7887 IWMWriterSink *pSink) = 0;
7888
7889 virtual HRESULT STDMETHODCALLTYPE WriteStreamSample(
7890 WORD wStreamNum,
7891 QWORD cnsSampleTime,
7892 DWORD msSampleSendTime,
7893 QWORD cnsSampleDuration,
7894 DWORD dwFlags,
7895 INSSBuffer *pSample) = 0;
7896
7897 virtual HRESULT STDMETHODCALLTYPE SetLiveSource(
7898 WINBOOL fIsLiveSource) = 0;
7899
7900 virtual HRESULT STDMETHODCALLTYPE IsRealTime(
7901 WINBOOL *pfRealTime) = 0;
7902
7903 virtual HRESULT STDMETHODCALLTYPE GetWriterTime(
7904 QWORD *pCurrentTime) = 0;
7905
7906 virtual HRESULT STDMETHODCALLTYPE GetStatistics(
7907 WORD wStreamNum,
7908 WM_WRITER_STATISTICS *pStats) = 0;
7909
7910 virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance(
7911 DWORD msWindow) = 0;
7912
7913 virtual HRESULT STDMETHODCALLTYPE GetSyncTolerance(
7914 DWORD *pmsWindow) = 0;
7915
7916};
7917#ifdef __CRT_UUID_DECL
7918__CRT_UUID_DECL(IWMWriterAdvanced, 0x96406be3, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
7919#endif
7920#else
7921typedef struct IWMWriterAdvancedVtbl {
7922 BEGIN_INTERFACE
7923
7924 /*** IUnknown methods ***/
7925 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7926 IWMWriterAdvanced *This,
7927 REFIID riid,
7928 void **ppvObject);
7929
7930 ULONG (STDMETHODCALLTYPE *AddRef)(
7931 IWMWriterAdvanced *This);
7932
7933 ULONG (STDMETHODCALLTYPE *Release)(
7934 IWMWriterAdvanced *This);
7935
7936 /*** IWMWriterAdvanced methods ***/
7937 HRESULT (STDMETHODCALLTYPE *GetSinkCount)(
7938 IWMWriterAdvanced *This,
7939 DWORD *pcSinks);
7940
7941 HRESULT (STDMETHODCALLTYPE *GetSink)(
7942 IWMWriterAdvanced *This,
7943 DWORD dwSinkNum,
7944 IWMWriterSink **ppSink);
7945
7946 HRESULT (STDMETHODCALLTYPE *AddSink)(
7947 IWMWriterAdvanced *This,
7948 IWMWriterSink *pSink);
7949
7950 HRESULT (STDMETHODCALLTYPE *RemoveSink)(
7951 IWMWriterAdvanced *This,
7952 IWMWriterSink *pSink);
7953
7954 HRESULT (STDMETHODCALLTYPE *WriteStreamSample)(
7955 IWMWriterAdvanced *This,
7956 WORD wStreamNum,
7957 QWORD cnsSampleTime,
7958 DWORD msSampleSendTime,
7959 QWORD cnsSampleDuration,
7960 DWORD dwFlags,
7961 INSSBuffer *pSample);
7962
7963 HRESULT (STDMETHODCALLTYPE *SetLiveSource)(
7964 IWMWriterAdvanced *This,
7965 WINBOOL fIsLiveSource);
7966
7967 HRESULT (STDMETHODCALLTYPE *IsRealTime)(
7968 IWMWriterAdvanced *This,
7969 WINBOOL *pfRealTime);
7970
7971 HRESULT (STDMETHODCALLTYPE *GetWriterTime)(
7972 IWMWriterAdvanced *This,
7973 QWORD *pCurrentTime);
7974
7975 HRESULT (STDMETHODCALLTYPE *GetStatistics)(
7976 IWMWriterAdvanced *This,
7977 WORD wStreamNum,
7978 WM_WRITER_STATISTICS *pStats);
7979
7980 HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)(
7981 IWMWriterAdvanced *This,
7982 DWORD msWindow);
7983
7984 HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)(
7985 IWMWriterAdvanced *This,
7986 DWORD *pmsWindow);
7987
7988 END_INTERFACE
7989} IWMWriterAdvancedVtbl;
7990
7991interface IWMWriterAdvanced {
7992 CONST_VTBL IWMWriterAdvancedVtbl* lpVtbl;
7993};
7994
7995#ifdef COBJMACROS
7996#ifndef WIDL_C_INLINE_WRAPPERS
7997/*** IUnknown methods ***/
7998#define IWMWriterAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7999#define IWMWriterAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This)
8000#define IWMWriterAdvanced_Release(This) (This)->lpVtbl->Release(This)
8001/*** IWMWriterAdvanced methods ***/
8002#define IWMWriterAdvanced_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks)
8003#define IWMWriterAdvanced_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink)
8004#define IWMWriterAdvanced_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink)
8005#define IWMWriterAdvanced_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink)
8006#define IWMWriterAdvanced_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
8007#define IWMWriterAdvanced_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource)
8008#define IWMWriterAdvanced_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
8009#define IWMWriterAdvanced_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime)
8010#define IWMWriterAdvanced_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats)
8011#define IWMWriterAdvanced_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow)
8012#define IWMWriterAdvanced_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow)
8013#else
8014/*** IUnknown methods ***/
8015static inline HRESULT IWMWriterAdvanced_QueryInterface(IWMWriterAdvanced* This,REFIID riid,void **ppvObject) {
8016 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8017}
8018static inline ULONG IWMWriterAdvanced_AddRef(IWMWriterAdvanced* This) {
8019 return This->lpVtbl->AddRef(This);
8020}
8021static inline ULONG IWMWriterAdvanced_Release(IWMWriterAdvanced* This) {
8022 return This->lpVtbl->Release(This);
8023}
8024/*** IWMWriterAdvanced methods ***/
8025static inline HRESULT IWMWriterAdvanced_GetSinkCount(IWMWriterAdvanced* This,DWORD *pcSinks) {
8026 return This->lpVtbl->GetSinkCount(This,pcSinks);
8027}
8028static inline HRESULT IWMWriterAdvanced_GetSink(IWMWriterAdvanced* This,DWORD dwSinkNum,IWMWriterSink **ppSink) {
8029 return This->lpVtbl->GetSink(This,dwSinkNum,ppSink);
8030}
8031static inline HRESULT IWMWriterAdvanced_AddSink(IWMWriterAdvanced* This,IWMWriterSink *pSink) {
8032 return This->lpVtbl->AddSink(This,pSink);
8033}
8034static inline HRESULT IWMWriterAdvanced_RemoveSink(IWMWriterAdvanced* This,IWMWriterSink *pSink) {
8035 return This->lpVtbl->RemoveSink(This,pSink);
8036}
8037static inline HRESULT IWMWriterAdvanced_WriteStreamSample(IWMWriterAdvanced* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) {
8038 return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample);
8039}
8040static inline HRESULT IWMWriterAdvanced_SetLiveSource(IWMWriterAdvanced* This,WINBOOL fIsLiveSource) {
8041 return This->lpVtbl->SetLiveSource(This,fIsLiveSource);
8042}
8043static inline HRESULT IWMWriterAdvanced_IsRealTime(IWMWriterAdvanced* This,WINBOOL *pfRealTime) {
8044 return This->lpVtbl->IsRealTime(This,pfRealTime);
8045}
8046static inline HRESULT IWMWriterAdvanced_GetWriterTime(IWMWriterAdvanced* This,QWORD *pCurrentTime) {
8047 return This->lpVtbl->GetWriterTime(This,pCurrentTime);
8048}
8049static inline HRESULT IWMWriterAdvanced_GetStatistics(IWMWriterAdvanced* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) {
8050 return This->lpVtbl->GetStatistics(This,wStreamNum,pStats);
8051}
8052static inline HRESULT IWMWriterAdvanced_SetSyncTolerance(IWMWriterAdvanced* This,DWORD msWindow) {
8053 return This->lpVtbl->SetSyncTolerance(This,msWindow);
8054}
8055static inline HRESULT IWMWriterAdvanced_GetSyncTolerance(IWMWriterAdvanced* This,DWORD *pmsWindow) {
8056 return This->lpVtbl->GetSyncTolerance(This,pmsWindow);
8057}
8058#endif
8059#endif
8060
8061#endif
8062
8063
8064#endif /* __IWMWriterAdvanced_INTERFACE_DEFINED__ */
8065
8066/*****************************************************************************
8067 * IWMWriterAdvanced2 interface
8068 */
8069#ifndef __IWMWriterAdvanced2_INTERFACE_DEFINED__
8070#define __IWMWriterAdvanced2_INTERFACE_DEFINED__
8071
8072DEFINE_GUID(IID_IWMWriterAdvanced2, 0x962dc1ec, 0xc046, 0x4db8, 0x9c,0xc7, 0x26,0xce,0xae,0x50,0x08,0x17);
8073#if defined(__cplusplus) && !defined(CINTERFACE)
8074MIDL_INTERFACE("962dc1ec-c046-4db8-9cc7-26ceae500817")
8075IWMWriterAdvanced2 : public IWMWriterAdvanced
8076{
8077 virtual HRESULT STDMETHODCALLTYPE GetInputSetting(
8078 DWORD dwInputNum,
8079 LPCWSTR pszName,
8080 WMT_ATTR_DATATYPE *pType,
8081 BYTE *pValue,
8082 WORD *pcbLength) = 0;
8083
8084 virtual HRESULT STDMETHODCALLTYPE SetInputSetting(
8085 DWORD dwInputNum,
8086 LPCWSTR pszName,
8087 WMT_ATTR_DATATYPE Type,
8088 const BYTE *pValue,
8089 WORD cbLength) = 0;
8090
8091};
8092#ifdef __CRT_UUID_DECL
8093__CRT_UUID_DECL(IWMWriterAdvanced2, 0x962dc1ec, 0xc046, 0x4db8, 0x9c,0xc7, 0x26,0xce,0xae,0x50,0x08,0x17)
8094#endif
8095#else
8096typedef struct IWMWriterAdvanced2Vtbl {
8097 BEGIN_INTERFACE
8098
8099 /*** IUnknown methods ***/
8100 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8101 IWMWriterAdvanced2 *This,
8102 REFIID riid,
8103 void **ppvObject);
8104
8105 ULONG (STDMETHODCALLTYPE *AddRef)(
8106 IWMWriterAdvanced2 *This);
8107
8108 ULONG (STDMETHODCALLTYPE *Release)(
8109 IWMWriterAdvanced2 *This);
8110
8111 /*** IWMWriterAdvanced methods ***/
8112 HRESULT (STDMETHODCALLTYPE *GetSinkCount)(
8113 IWMWriterAdvanced2 *This,
8114 DWORD *pcSinks);
8115
8116 HRESULT (STDMETHODCALLTYPE *GetSink)(
8117 IWMWriterAdvanced2 *This,
8118 DWORD dwSinkNum,
8119 IWMWriterSink **ppSink);
8120
8121 HRESULT (STDMETHODCALLTYPE *AddSink)(
8122 IWMWriterAdvanced2 *This,
8123 IWMWriterSink *pSink);
8124
8125 HRESULT (STDMETHODCALLTYPE *RemoveSink)(
8126 IWMWriterAdvanced2 *This,
8127 IWMWriterSink *pSink);
8128
8129 HRESULT (STDMETHODCALLTYPE *WriteStreamSample)(
8130 IWMWriterAdvanced2 *This,
8131 WORD wStreamNum,
8132 QWORD cnsSampleTime,
8133 DWORD msSampleSendTime,
8134 QWORD cnsSampleDuration,
8135 DWORD dwFlags,
8136 INSSBuffer *pSample);
8137
8138 HRESULT (STDMETHODCALLTYPE *SetLiveSource)(
8139 IWMWriterAdvanced2 *This,
8140 WINBOOL fIsLiveSource);
8141
8142 HRESULT (STDMETHODCALLTYPE *IsRealTime)(
8143 IWMWriterAdvanced2 *This,
8144 WINBOOL *pfRealTime);
8145
8146 HRESULT (STDMETHODCALLTYPE *GetWriterTime)(
8147 IWMWriterAdvanced2 *This,
8148 QWORD *pCurrentTime);
8149
8150 HRESULT (STDMETHODCALLTYPE *GetStatistics)(
8151 IWMWriterAdvanced2 *This,
8152 WORD wStreamNum,
8153 WM_WRITER_STATISTICS *pStats);
8154
8155 HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)(
8156 IWMWriterAdvanced2 *This,
8157 DWORD msWindow);
8158
8159 HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)(
8160 IWMWriterAdvanced2 *This,
8161 DWORD *pmsWindow);
8162
8163 /*** IWMWriterAdvanced2 methods ***/
8164 HRESULT (STDMETHODCALLTYPE *GetInputSetting)(
8165 IWMWriterAdvanced2 *This,
8166 DWORD dwInputNum,
8167 LPCWSTR pszName,
8168 WMT_ATTR_DATATYPE *pType,
8169 BYTE *pValue,
8170 WORD *pcbLength);
8171
8172 HRESULT (STDMETHODCALLTYPE *SetInputSetting)(
8173 IWMWriterAdvanced2 *This,
8174 DWORD dwInputNum,
8175 LPCWSTR pszName,
8176 WMT_ATTR_DATATYPE Type,
8177 const BYTE *pValue,
8178 WORD cbLength);
8179
8180 END_INTERFACE
8181} IWMWriterAdvanced2Vtbl;
8182
8183interface IWMWriterAdvanced2 {
8184 CONST_VTBL IWMWriterAdvanced2Vtbl* lpVtbl;
8185};
8186
8187#ifdef COBJMACROS
8188#ifndef WIDL_C_INLINE_WRAPPERS
8189/*** IUnknown methods ***/
8190#define IWMWriterAdvanced2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8191#define IWMWriterAdvanced2_AddRef(This) (This)->lpVtbl->AddRef(This)
8192#define IWMWriterAdvanced2_Release(This) (This)->lpVtbl->Release(This)
8193/*** IWMWriterAdvanced methods ***/
8194#define IWMWriterAdvanced2_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks)
8195#define IWMWriterAdvanced2_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink)
8196#define IWMWriterAdvanced2_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink)
8197#define IWMWriterAdvanced2_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink)
8198#define IWMWriterAdvanced2_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
8199#define IWMWriterAdvanced2_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource)
8200#define IWMWriterAdvanced2_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
8201#define IWMWriterAdvanced2_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime)
8202#define IWMWriterAdvanced2_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats)
8203#define IWMWriterAdvanced2_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow)
8204#define IWMWriterAdvanced2_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow)
8205/*** IWMWriterAdvanced2 methods ***/
8206#define IWMWriterAdvanced2_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
8207#define IWMWriterAdvanced2_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
8208#else
8209/*** IUnknown methods ***/
8210static inline HRESULT IWMWriterAdvanced2_QueryInterface(IWMWriterAdvanced2* This,REFIID riid,void **ppvObject) {
8211 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8212}
8213static inline ULONG IWMWriterAdvanced2_AddRef(IWMWriterAdvanced2* This) {
8214 return This->lpVtbl->AddRef(This);
8215}
8216static inline ULONG IWMWriterAdvanced2_Release(IWMWriterAdvanced2* This) {
8217 return This->lpVtbl->Release(This);
8218}
8219/*** IWMWriterAdvanced methods ***/
8220static inline HRESULT IWMWriterAdvanced2_GetSinkCount(IWMWriterAdvanced2* This,DWORD *pcSinks) {
8221 return This->lpVtbl->GetSinkCount(This,pcSinks);
8222}
8223static inline HRESULT IWMWriterAdvanced2_GetSink(IWMWriterAdvanced2* This,DWORD dwSinkNum,IWMWriterSink **ppSink) {
8224 return This->lpVtbl->GetSink(This,dwSinkNum,ppSink);
8225}
8226static inline HRESULT IWMWriterAdvanced2_AddSink(IWMWriterAdvanced2* This,IWMWriterSink *pSink) {
8227 return This->lpVtbl->AddSink(This,pSink);
8228}
8229static inline HRESULT IWMWriterAdvanced2_RemoveSink(IWMWriterAdvanced2* This,IWMWriterSink *pSink) {
8230 return This->lpVtbl->RemoveSink(This,pSink);
8231}
8232static inline HRESULT IWMWriterAdvanced2_WriteStreamSample(IWMWriterAdvanced2* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) {
8233 return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample);
8234}
8235static inline HRESULT IWMWriterAdvanced2_SetLiveSource(IWMWriterAdvanced2* This,WINBOOL fIsLiveSource) {
8236 return This->lpVtbl->SetLiveSource(This,fIsLiveSource);
8237}
8238static inline HRESULT IWMWriterAdvanced2_IsRealTime(IWMWriterAdvanced2* This,WINBOOL *pfRealTime) {
8239 return This->lpVtbl->IsRealTime(This,pfRealTime);
8240}
8241static inline HRESULT IWMWriterAdvanced2_GetWriterTime(IWMWriterAdvanced2* This,QWORD *pCurrentTime) {
8242 return This->lpVtbl->GetWriterTime(This,pCurrentTime);
8243}
8244static inline HRESULT IWMWriterAdvanced2_GetStatistics(IWMWriterAdvanced2* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) {
8245 return This->lpVtbl->GetStatistics(This,wStreamNum,pStats);
8246}
8247static inline HRESULT IWMWriterAdvanced2_SetSyncTolerance(IWMWriterAdvanced2* This,DWORD msWindow) {
8248 return This->lpVtbl->SetSyncTolerance(This,msWindow);
8249}
8250static inline HRESULT IWMWriterAdvanced2_GetSyncTolerance(IWMWriterAdvanced2* This,DWORD *pmsWindow) {
8251 return This->lpVtbl->GetSyncTolerance(This,pmsWindow);
8252}
8253/*** IWMWriterAdvanced2 methods ***/
8254static inline HRESULT IWMWriterAdvanced2_GetInputSetting(IWMWriterAdvanced2* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
8255 return This->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength);
8256}
8257static inline HRESULT IWMWriterAdvanced2_SetInputSetting(IWMWriterAdvanced2* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
8258 return This->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength);
8259}
8260#endif
8261#endif
8262
8263#endif
8264
8265
8266#endif /* __IWMWriterAdvanced2_INTERFACE_DEFINED__ */
8267
8268/*****************************************************************************
8269 * IWMWriterAdvanced3 interface
8270 */
8271#ifndef __IWMWriterAdvanced3_INTERFACE_DEFINED__
8272#define __IWMWriterAdvanced3_INTERFACE_DEFINED__
8273
8274DEFINE_GUID(IID_IWMWriterAdvanced3, 0x2cd6492d, 0x7c37, 0x4e76, 0x9d,0x3b, 0x59,0x26,0x11,0x83,0xa2,0x2e);
8275#if defined(__cplusplus) && !defined(CINTERFACE)
8276MIDL_INTERFACE("2cd6492d-7c37-4e76-9d3b-59261183a22e")
8277IWMWriterAdvanced3 : public IWMWriterAdvanced2
8278{
8279 virtual HRESULT STDMETHODCALLTYPE GetStatisticsEx(
8280 WORD wStreamNum,
8281 WM_WRITER_STATISTICS_EX *pStats) = 0;
8282
8283 virtual HRESULT STDMETHODCALLTYPE SetNonBlocking(
8284 ) = 0;
8285
8286};
8287#ifdef __CRT_UUID_DECL
8288__CRT_UUID_DECL(IWMWriterAdvanced3, 0x2cd6492d, 0x7c37, 0x4e76, 0x9d,0x3b, 0x59,0x26,0x11,0x83,0xa2,0x2e)
8289#endif
8290#else
8291typedef struct IWMWriterAdvanced3Vtbl {
8292 BEGIN_INTERFACE
8293
8294 /*** IUnknown methods ***/
8295 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8296 IWMWriterAdvanced3 *This,
8297 REFIID riid,
8298 void **ppvObject);
8299
8300 ULONG (STDMETHODCALLTYPE *AddRef)(
8301 IWMWriterAdvanced3 *This);
8302
8303 ULONG (STDMETHODCALLTYPE *Release)(
8304 IWMWriterAdvanced3 *This);
8305
8306 /*** IWMWriterAdvanced methods ***/
8307 HRESULT (STDMETHODCALLTYPE *GetSinkCount)(
8308 IWMWriterAdvanced3 *This,
8309 DWORD *pcSinks);
8310
8311 HRESULT (STDMETHODCALLTYPE *GetSink)(
8312 IWMWriterAdvanced3 *This,
8313 DWORD dwSinkNum,
8314 IWMWriterSink **ppSink);
8315
8316 HRESULT (STDMETHODCALLTYPE *AddSink)(
8317 IWMWriterAdvanced3 *This,
8318 IWMWriterSink *pSink);
8319
8320 HRESULT (STDMETHODCALLTYPE *RemoveSink)(
8321 IWMWriterAdvanced3 *This,
8322 IWMWriterSink *pSink);
8323
8324 HRESULT (STDMETHODCALLTYPE *WriteStreamSample)(
8325 IWMWriterAdvanced3 *This,
8326 WORD wStreamNum,
8327 QWORD cnsSampleTime,
8328 DWORD msSampleSendTime,
8329 QWORD cnsSampleDuration,
8330 DWORD dwFlags,
8331 INSSBuffer *pSample);
8332
8333 HRESULT (STDMETHODCALLTYPE *SetLiveSource)(
8334 IWMWriterAdvanced3 *This,
8335 WINBOOL fIsLiveSource);
8336
8337 HRESULT (STDMETHODCALLTYPE *IsRealTime)(
8338 IWMWriterAdvanced3 *This,
8339 WINBOOL *pfRealTime);
8340
8341 HRESULT (STDMETHODCALLTYPE *GetWriterTime)(
8342 IWMWriterAdvanced3 *This,
8343 QWORD *pCurrentTime);
8344
8345 HRESULT (STDMETHODCALLTYPE *GetStatistics)(
8346 IWMWriterAdvanced3 *This,
8347 WORD wStreamNum,
8348 WM_WRITER_STATISTICS *pStats);
8349
8350 HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)(
8351 IWMWriterAdvanced3 *This,
8352 DWORD msWindow);
8353
8354 HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)(
8355 IWMWriterAdvanced3 *This,
8356 DWORD *pmsWindow);
8357
8358 /*** IWMWriterAdvanced2 methods ***/
8359 HRESULT (STDMETHODCALLTYPE *GetInputSetting)(
8360 IWMWriterAdvanced3 *This,
8361 DWORD dwInputNum,
8362 LPCWSTR pszName,
8363 WMT_ATTR_DATATYPE *pType,
8364 BYTE *pValue,
8365 WORD *pcbLength);
8366
8367 HRESULT (STDMETHODCALLTYPE *SetInputSetting)(
8368 IWMWriterAdvanced3 *This,
8369 DWORD dwInputNum,
8370 LPCWSTR pszName,
8371 WMT_ATTR_DATATYPE Type,
8372 const BYTE *pValue,
8373 WORD cbLength);
8374
8375 /*** IWMWriterAdvanced3 methods ***/
8376 HRESULT (STDMETHODCALLTYPE *GetStatisticsEx)(
8377 IWMWriterAdvanced3 *This,
8378 WORD wStreamNum,
8379 WM_WRITER_STATISTICS_EX *pStats);
8380
8381 HRESULT (STDMETHODCALLTYPE *SetNonBlocking)(
8382 IWMWriterAdvanced3 *This);
8383
8384 END_INTERFACE
8385} IWMWriterAdvanced3Vtbl;
8386
8387interface IWMWriterAdvanced3 {
8388 CONST_VTBL IWMWriterAdvanced3Vtbl* lpVtbl;
8389};
8390
8391#ifdef COBJMACROS
8392#ifndef WIDL_C_INLINE_WRAPPERS
8393/*** IUnknown methods ***/
8394#define IWMWriterAdvanced3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8395#define IWMWriterAdvanced3_AddRef(This) (This)->lpVtbl->AddRef(This)
8396#define IWMWriterAdvanced3_Release(This) (This)->lpVtbl->Release(This)
8397/*** IWMWriterAdvanced methods ***/
8398#define IWMWriterAdvanced3_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks)
8399#define IWMWriterAdvanced3_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink)
8400#define IWMWriterAdvanced3_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink)
8401#define IWMWriterAdvanced3_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink)
8402#define IWMWriterAdvanced3_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
8403#define IWMWriterAdvanced3_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource)
8404#define IWMWriterAdvanced3_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
8405#define IWMWriterAdvanced3_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime)
8406#define IWMWriterAdvanced3_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats)
8407#define IWMWriterAdvanced3_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow)
8408#define IWMWriterAdvanced3_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow)
8409/*** IWMWriterAdvanced2 methods ***/
8410#define IWMWriterAdvanced3_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
8411#define IWMWriterAdvanced3_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
8412/*** IWMWriterAdvanced3 methods ***/
8413#define IWMWriterAdvanced3_GetStatisticsEx(This,wStreamNum,pStats) (This)->lpVtbl->GetStatisticsEx(This,wStreamNum,pStats)
8414#define IWMWriterAdvanced3_SetNonBlocking(This) (This)->lpVtbl->SetNonBlocking(This)
8415#else
8416/*** IUnknown methods ***/
8417static inline HRESULT IWMWriterAdvanced3_QueryInterface(IWMWriterAdvanced3* This,REFIID riid,void **ppvObject) {
8418 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8419}
8420static inline ULONG IWMWriterAdvanced3_AddRef(IWMWriterAdvanced3* This) {
8421 return This->lpVtbl->AddRef(This);
8422}
8423static inline ULONG IWMWriterAdvanced3_Release(IWMWriterAdvanced3* This) {
8424 return This->lpVtbl->Release(This);
8425}
8426/*** IWMWriterAdvanced methods ***/
8427static inline HRESULT IWMWriterAdvanced3_GetSinkCount(IWMWriterAdvanced3* This,DWORD *pcSinks) {
8428 return This->lpVtbl->GetSinkCount(This,pcSinks);
8429}
8430static inline HRESULT IWMWriterAdvanced3_GetSink(IWMWriterAdvanced3* This,DWORD dwSinkNum,IWMWriterSink **ppSink) {
8431 return This->lpVtbl->GetSink(This,dwSinkNum,ppSink);
8432}
8433static inline HRESULT IWMWriterAdvanced3_AddSink(IWMWriterAdvanced3* This,IWMWriterSink *pSink) {
8434 return This->lpVtbl->AddSink(This,pSink);
8435}
8436static inline HRESULT IWMWriterAdvanced3_RemoveSink(IWMWriterAdvanced3* This,IWMWriterSink *pSink) {
8437 return This->lpVtbl->RemoveSink(This,pSink);
8438}
8439static inline HRESULT IWMWriterAdvanced3_WriteStreamSample(IWMWriterAdvanced3* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) {
8440 return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample);
8441}
8442static inline HRESULT IWMWriterAdvanced3_SetLiveSource(IWMWriterAdvanced3* This,WINBOOL fIsLiveSource) {
8443 return This->lpVtbl->SetLiveSource(This,fIsLiveSource);
8444}
8445static inline HRESULT IWMWriterAdvanced3_IsRealTime(IWMWriterAdvanced3* This,WINBOOL *pfRealTime) {
8446 return This->lpVtbl->IsRealTime(This,pfRealTime);
8447}
8448static inline HRESULT IWMWriterAdvanced3_GetWriterTime(IWMWriterAdvanced3* This,QWORD *pCurrentTime) {
8449 return This->lpVtbl->GetWriterTime(This,pCurrentTime);
8450}
8451static inline HRESULT IWMWriterAdvanced3_GetStatistics(IWMWriterAdvanced3* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) {
8452 return This->lpVtbl->GetStatistics(This,wStreamNum,pStats);
8453}
8454static inline HRESULT IWMWriterAdvanced3_SetSyncTolerance(IWMWriterAdvanced3* This,DWORD msWindow) {
8455 return This->lpVtbl->SetSyncTolerance(This,msWindow);
8456}
8457static inline HRESULT IWMWriterAdvanced3_GetSyncTolerance(IWMWriterAdvanced3* This,DWORD *pmsWindow) {
8458 return This->lpVtbl->GetSyncTolerance(This,pmsWindow);
8459}
8460/*** IWMWriterAdvanced2 methods ***/
8461static inline HRESULT IWMWriterAdvanced3_GetInputSetting(IWMWriterAdvanced3* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
8462 return This->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength);
8463}
8464static inline HRESULT IWMWriterAdvanced3_SetInputSetting(IWMWriterAdvanced3* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
8465 return This->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength);
8466}
8467/*** IWMWriterAdvanced3 methods ***/
8468static inline HRESULT IWMWriterAdvanced3_GetStatisticsEx(IWMWriterAdvanced3* This,WORD wStreamNum,WM_WRITER_STATISTICS_EX *pStats) {
8469 return This->lpVtbl->GetStatisticsEx(This,wStreamNum,pStats);
8470}
8471static inline HRESULT IWMWriterAdvanced3_SetNonBlocking(IWMWriterAdvanced3* This) {
8472 return This->lpVtbl->SetNonBlocking(This);
8473}
8474#endif
8475#endif
8476
8477#endif
8478
8479
8480#endif /* __IWMWriterAdvanced3_INTERFACE_DEFINED__ */
8481
8482/*****************************************************************************
8483 * IWMHeaderInfo interface
8484 */
8485#ifndef __IWMHeaderInfo_INTERFACE_DEFINED__
8486#define __IWMHeaderInfo_INTERFACE_DEFINED__
8487
8488DEFINE_GUID(IID_IWMHeaderInfo, 0x96406bda, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
8489#if defined(__cplusplus) && !defined(CINTERFACE)
8490MIDL_INTERFACE("96406bda-2b2b-11d3-b36b-00c04f6108ff")
8491IWMHeaderInfo : public IUnknown
8492{
8493 virtual HRESULT STDMETHODCALLTYPE GetAttributeCount(
8494 WORD stream_num,
8495 WORD *attributes) = 0;
8496
8497 virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndex(
8498 WORD index,
8499 WORD *stream_num,
8500 WCHAR *name,
8501 WORD *name_len,
8502 WMT_ATTR_DATATYPE *type,
8503 BYTE *value,
8504 WORD *length) = 0;
8505
8506 virtual HRESULT STDMETHODCALLTYPE GetAttributeByName(
8507 WORD *stream_num,
8508 LPCWSTR name,
8509 WMT_ATTR_DATATYPE *type,
8510 BYTE *value,
8511 WORD *length) = 0;
8512
8513 virtual HRESULT STDMETHODCALLTYPE SetAttribute(
8514 WORD stream_num,
8515 LPCWSTR name,
8516 WMT_ATTR_DATATYPE type,
8517 const BYTE *value,
8518 WORD length) = 0;
8519
8520 virtual HRESULT STDMETHODCALLTYPE GetMarkerCount(
8521 WORD *markers) = 0;
8522
8523 virtual HRESULT STDMETHODCALLTYPE GetMarker(
8524 WORD index,
8525 WCHAR *marker_name,
8526 WORD *marker_len,
8527 QWORD *marker_time) = 0;
8528
8529 virtual HRESULT STDMETHODCALLTYPE AddMarker(
8530 LPCWSTR_WMSDK_TYPE_SAFE marker_name,
8531 QWORD marker_time) = 0;
8532
8533 virtual HRESULT STDMETHODCALLTYPE RemoveMarker(
8534 WORD index) = 0;
8535
8536 virtual HRESULT STDMETHODCALLTYPE GetScriptCount(
8537 WORD *scripts) = 0;
8538
8539 virtual HRESULT STDMETHODCALLTYPE GetScript(
8540 WORD index,
8541 WCHAR *type,
8542 WORD *type_len,
8543 WCHAR *command,
8544 WORD *command_len,
8545 QWORD *script_time) = 0;
8546
8547 virtual HRESULT STDMETHODCALLTYPE AddScript(
8548 LPCWSTR_WMSDK_TYPE_SAFE type,
8549 LPCWSTR_WMSDK_TYPE_SAFE command,
8550 QWORD script_time) = 0;
8551
8552 virtual HRESULT STDMETHODCALLTYPE RemoveScript(
8553 WORD index) = 0;
8554
8555};
8556#ifdef __CRT_UUID_DECL
8557__CRT_UUID_DECL(IWMHeaderInfo, 0x96406bda, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
8558#endif
8559#else
8560typedef struct IWMHeaderInfoVtbl {
8561 BEGIN_INTERFACE
8562
8563 /*** IUnknown methods ***/
8564 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8565 IWMHeaderInfo *This,
8566 REFIID riid,
8567 void **ppvObject);
8568
8569 ULONG (STDMETHODCALLTYPE *AddRef)(
8570 IWMHeaderInfo *This);
8571
8572 ULONG (STDMETHODCALLTYPE *Release)(
8573 IWMHeaderInfo *This);
8574
8575 /*** IWMHeaderInfo methods ***/
8576 HRESULT (STDMETHODCALLTYPE *GetAttributeCount)(
8577 IWMHeaderInfo *This,
8578 WORD stream_num,
8579 WORD *attributes);
8580
8581 HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)(
8582 IWMHeaderInfo *This,
8583 WORD index,
8584 WORD *stream_num,
8585 WCHAR *name,
8586 WORD *name_len,
8587 WMT_ATTR_DATATYPE *type,
8588 BYTE *value,
8589 WORD *length);
8590
8591 HRESULT (STDMETHODCALLTYPE *GetAttributeByName)(
8592 IWMHeaderInfo *This,
8593 WORD *stream_num,
8594 LPCWSTR name,
8595 WMT_ATTR_DATATYPE *type,
8596 BYTE *value,
8597 WORD *length);
8598
8599 HRESULT (STDMETHODCALLTYPE *SetAttribute)(
8600 IWMHeaderInfo *This,
8601 WORD stream_num,
8602 LPCWSTR name,
8603 WMT_ATTR_DATATYPE type,
8604 const BYTE *value,
8605 WORD length);
8606
8607 HRESULT (STDMETHODCALLTYPE *GetMarkerCount)(
8608 IWMHeaderInfo *This,
8609 WORD *markers);
8610
8611 HRESULT (STDMETHODCALLTYPE *GetMarker)(
8612 IWMHeaderInfo *This,
8613 WORD index,
8614 WCHAR *marker_name,
8615 WORD *marker_len,
8616 QWORD *marker_time);
8617
8618 HRESULT (STDMETHODCALLTYPE *AddMarker)(
8619 IWMHeaderInfo *This,
8620 LPCWSTR_WMSDK_TYPE_SAFE marker_name,
8621 QWORD marker_time);
8622
8623 HRESULT (STDMETHODCALLTYPE *RemoveMarker)(
8624 IWMHeaderInfo *This,
8625 WORD index);
8626
8627 HRESULT (STDMETHODCALLTYPE *GetScriptCount)(
8628 IWMHeaderInfo *This,
8629 WORD *scripts);
8630
8631 HRESULT (STDMETHODCALLTYPE *GetScript)(
8632 IWMHeaderInfo *This,
8633 WORD index,
8634 WCHAR *type,
8635 WORD *type_len,
8636 WCHAR *command,
8637 WORD *command_len,
8638 QWORD *script_time);
8639
8640 HRESULT (STDMETHODCALLTYPE *AddScript)(
8641 IWMHeaderInfo *This,
8642 LPCWSTR_WMSDK_TYPE_SAFE type,
8643 LPCWSTR_WMSDK_TYPE_SAFE command,
8644 QWORD script_time);
8645
8646 HRESULT (STDMETHODCALLTYPE *RemoveScript)(
8647 IWMHeaderInfo *This,
8648 WORD index);
8649
8650 END_INTERFACE
8651} IWMHeaderInfoVtbl;
8652
8653interface IWMHeaderInfo {
8654 CONST_VTBL IWMHeaderInfoVtbl* lpVtbl;
8655};
8656
8657#ifdef COBJMACROS
8658#ifndef WIDL_C_INLINE_WRAPPERS
8659/*** IUnknown methods ***/
8660#define IWMHeaderInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8661#define IWMHeaderInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
8662#define IWMHeaderInfo_Release(This) (This)->lpVtbl->Release(This)
8663/*** IWMHeaderInfo methods ***/
8664#define IWMHeaderInfo_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes)
8665#define IWMHeaderInfo_GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) (This)->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length)
8666#define IWMHeaderInfo_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length)
8667#define IWMHeaderInfo_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length)
8668#define IWMHeaderInfo_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers)
8669#define IWMHeaderInfo_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time)
8670#define IWMHeaderInfo_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time)
8671#define IWMHeaderInfo_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index)
8672#define IWMHeaderInfo_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts)
8673#define IWMHeaderInfo_GetScript(This,index,type,type_len,command,command_len,script_time) (This)->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time)
8674#define IWMHeaderInfo_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time)
8675#define IWMHeaderInfo_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index)
8676#else
8677/*** IUnknown methods ***/
8678static inline HRESULT IWMHeaderInfo_QueryInterface(IWMHeaderInfo* This,REFIID riid,void **ppvObject) {
8679 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8680}
8681static inline ULONG IWMHeaderInfo_AddRef(IWMHeaderInfo* This) {
8682 return This->lpVtbl->AddRef(This);
8683}
8684static inline ULONG IWMHeaderInfo_Release(IWMHeaderInfo* This) {
8685 return This->lpVtbl->Release(This);
8686}
8687/*** IWMHeaderInfo methods ***/
8688static inline HRESULT IWMHeaderInfo_GetAttributeCount(IWMHeaderInfo* This,WORD stream_num,WORD *attributes) {
8689 return This->lpVtbl->GetAttributeCount(This,stream_num,attributes);
8690}
8691static inline HRESULT IWMHeaderInfo_GetAttributeByIndex(IWMHeaderInfo* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
8692 return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length);
8693}
8694static inline HRESULT IWMHeaderInfo_GetAttributeByName(IWMHeaderInfo* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
8695 return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length);
8696}
8697static inline HRESULT IWMHeaderInfo_SetAttribute(IWMHeaderInfo* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
8698 return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length);
8699}
8700static inline HRESULT IWMHeaderInfo_GetMarkerCount(IWMHeaderInfo* This,WORD *markers) {
8701 return This->lpVtbl->GetMarkerCount(This,markers);
8702}
8703static inline HRESULT IWMHeaderInfo_GetMarker(IWMHeaderInfo* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) {
8704 return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time);
8705}
8706static inline HRESULT IWMHeaderInfo_AddMarker(IWMHeaderInfo* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) {
8707 return This->lpVtbl->AddMarker(This,marker_name,marker_time);
8708}
8709static inline HRESULT IWMHeaderInfo_RemoveMarker(IWMHeaderInfo* This,WORD index) {
8710 return This->lpVtbl->RemoveMarker(This,index);
8711}
8712static inline HRESULT IWMHeaderInfo_GetScriptCount(IWMHeaderInfo* This,WORD *scripts) {
8713 return This->lpVtbl->GetScriptCount(This,scripts);
8714}
8715static inline HRESULT IWMHeaderInfo_GetScript(IWMHeaderInfo* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) {
8716 return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time);
8717}
8718static inline HRESULT IWMHeaderInfo_AddScript(IWMHeaderInfo* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) {
8719 return This->lpVtbl->AddScript(This,type,command,script_time);
8720}
8721static inline HRESULT IWMHeaderInfo_RemoveScript(IWMHeaderInfo* This,WORD index) {
8722 return This->lpVtbl->RemoveScript(This,index);
8723}
8724#endif
8725#endif
8726
8727#endif
8728
8729
8730#endif /* __IWMHeaderInfo_INTERFACE_DEFINED__ */
8731
8732/*****************************************************************************
8733 * IWMHeaderInfo2 interface
8734 */
8735#ifndef __IWMHeaderInfo2_INTERFACE_DEFINED__
8736#define __IWMHeaderInfo2_INTERFACE_DEFINED__
8737
8738DEFINE_GUID(IID_IWMHeaderInfo2, 0x15cf9781, 0x454e, 0x482e, 0xb3,0x93, 0x85,0xfa,0xe4,0x87,0xa8,0x10);
8739#if defined(__cplusplus) && !defined(CINTERFACE)
8740MIDL_INTERFACE("15cf9781-454e-482e-b393-85fae487a810")
8741IWMHeaderInfo2 : public IWMHeaderInfo
8742{
8743 virtual HRESULT STDMETHODCALLTYPE GetCodecInfoCount(
8744 DWORD *codec_infos) = 0;
8745
8746 virtual HRESULT STDMETHODCALLTYPE GetCodecInfo(
8747 DWORD index,
8748 WORD *name_len,
8749 WCHAR *name,
8750 WORD *description_len,
8751 WCHAR *description,
8752 WMT_CODEC_INFO_TYPE *codec_type,
8753 WORD *codec_info_cnt,
8754 BYTE *codec_info) = 0;
8755
8756};
8757#ifdef __CRT_UUID_DECL
8758__CRT_UUID_DECL(IWMHeaderInfo2, 0x15cf9781, 0x454e, 0x482e, 0xb3,0x93, 0x85,0xfa,0xe4,0x87,0xa8,0x10)
8759#endif
8760#else
8761typedef struct IWMHeaderInfo2Vtbl {
8762 BEGIN_INTERFACE
8763
8764 /*** IUnknown methods ***/
8765 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8766 IWMHeaderInfo2 *This,
8767 REFIID riid,
8768 void **ppvObject);
8769
8770 ULONG (STDMETHODCALLTYPE *AddRef)(
8771 IWMHeaderInfo2 *This);
8772
8773 ULONG (STDMETHODCALLTYPE *Release)(
8774 IWMHeaderInfo2 *This);
8775
8776 /*** IWMHeaderInfo methods ***/
8777 HRESULT (STDMETHODCALLTYPE *GetAttributeCount)(
8778 IWMHeaderInfo2 *This,
8779 WORD stream_num,
8780 WORD *attributes);
8781
8782 HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)(
8783 IWMHeaderInfo2 *This,
8784 WORD index,
8785 WORD *stream_num,
8786 WCHAR *name,
8787 WORD *name_len,
8788 WMT_ATTR_DATATYPE *type,
8789 BYTE *value,
8790 WORD *length);
8791
8792 HRESULT (STDMETHODCALLTYPE *GetAttributeByName)(
8793 IWMHeaderInfo2 *This,
8794 WORD *stream_num,
8795 LPCWSTR name,
8796 WMT_ATTR_DATATYPE *type,
8797 BYTE *value,
8798 WORD *length);
8799
8800 HRESULT (STDMETHODCALLTYPE *SetAttribute)(
8801 IWMHeaderInfo2 *This,
8802 WORD stream_num,
8803 LPCWSTR name,
8804 WMT_ATTR_DATATYPE type,
8805 const BYTE *value,
8806 WORD length);
8807
8808 HRESULT (STDMETHODCALLTYPE *GetMarkerCount)(
8809 IWMHeaderInfo2 *This,
8810 WORD *markers);
8811
8812 HRESULT (STDMETHODCALLTYPE *GetMarker)(
8813 IWMHeaderInfo2 *This,
8814 WORD index,
8815 WCHAR *marker_name,
8816 WORD *marker_len,
8817 QWORD *marker_time);
8818
8819 HRESULT (STDMETHODCALLTYPE *AddMarker)(
8820 IWMHeaderInfo2 *This,
8821 LPCWSTR_WMSDK_TYPE_SAFE marker_name,
8822 QWORD marker_time);
8823
8824 HRESULT (STDMETHODCALLTYPE *RemoveMarker)(
8825 IWMHeaderInfo2 *This,
8826 WORD index);
8827
8828 HRESULT (STDMETHODCALLTYPE *GetScriptCount)(
8829 IWMHeaderInfo2 *This,
8830 WORD *scripts);
8831
8832 HRESULT (STDMETHODCALLTYPE *GetScript)(
8833 IWMHeaderInfo2 *This,
8834 WORD index,
8835 WCHAR *type,
8836 WORD *type_len,
8837 WCHAR *command,
8838 WORD *command_len,
8839 QWORD *script_time);
8840
8841 HRESULT (STDMETHODCALLTYPE *AddScript)(
8842 IWMHeaderInfo2 *This,
8843 LPCWSTR_WMSDK_TYPE_SAFE type,
8844 LPCWSTR_WMSDK_TYPE_SAFE command,
8845 QWORD script_time);
8846
8847 HRESULT (STDMETHODCALLTYPE *RemoveScript)(
8848 IWMHeaderInfo2 *This,
8849 WORD index);
8850
8851 /*** IWMHeaderInfo2 methods ***/
8852 HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)(
8853 IWMHeaderInfo2 *This,
8854 DWORD *codec_infos);
8855
8856 HRESULT (STDMETHODCALLTYPE *GetCodecInfo)(
8857 IWMHeaderInfo2 *This,
8858 DWORD index,
8859 WORD *name_len,
8860 WCHAR *name,
8861 WORD *description_len,
8862 WCHAR *description,
8863 WMT_CODEC_INFO_TYPE *codec_type,
8864 WORD *codec_info_cnt,
8865 BYTE *codec_info);
8866
8867 END_INTERFACE
8868} IWMHeaderInfo2Vtbl;
8869
8870interface IWMHeaderInfo2 {
8871 CONST_VTBL IWMHeaderInfo2Vtbl* lpVtbl;
8872};
8873
8874#ifdef COBJMACROS
8875#ifndef WIDL_C_INLINE_WRAPPERS
8876/*** IUnknown methods ***/
8877#define IWMHeaderInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8878#define IWMHeaderInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
8879#define IWMHeaderInfo2_Release(This) (This)->lpVtbl->Release(This)
8880/*** IWMHeaderInfo methods ***/
8881#define IWMHeaderInfo2_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes)
8882#define IWMHeaderInfo2_GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) (This)->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length)
8883#define IWMHeaderInfo2_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length)
8884#define IWMHeaderInfo2_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length)
8885#define IWMHeaderInfo2_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers)
8886#define IWMHeaderInfo2_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time)
8887#define IWMHeaderInfo2_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time)
8888#define IWMHeaderInfo2_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index)
8889#define IWMHeaderInfo2_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts)
8890#define IWMHeaderInfo2_GetScript(This,index,type,type_len,command,command_len,script_time) (This)->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time)
8891#define IWMHeaderInfo2_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time)
8892#define IWMHeaderInfo2_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index)
8893/*** IWMHeaderInfo2 methods ***/
8894#define IWMHeaderInfo2_GetCodecInfoCount(This,codec_infos) (This)->lpVtbl->GetCodecInfoCount(This,codec_infos)
8895#define IWMHeaderInfo2_GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info) (This)->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info)
8896#else
8897/*** IUnknown methods ***/
8898static inline HRESULT IWMHeaderInfo2_QueryInterface(IWMHeaderInfo2* This,REFIID riid,void **ppvObject) {
8899 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8900}
8901static inline ULONG IWMHeaderInfo2_AddRef(IWMHeaderInfo2* This) {
8902 return This->lpVtbl->AddRef(This);
8903}
8904static inline ULONG IWMHeaderInfo2_Release(IWMHeaderInfo2* This) {
8905 return This->lpVtbl->Release(This);
8906}
8907/*** IWMHeaderInfo methods ***/
8908static inline HRESULT IWMHeaderInfo2_GetAttributeCount(IWMHeaderInfo2* This,WORD stream_num,WORD *attributes) {
8909 return This->lpVtbl->GetAttributeCount(This,stream_num,attributes);
8910}
8911static inline HRESULT IWMHeaderInfo2_GetAttributeByIndex(IWMHeaderInfo2* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
8912 return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length);
8913}
8914static inline HRESULT IWMHeaderInfo2_GetAttributeByName(IWMHeaderInfo2* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
8915 return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length);
8916}
8917static inline HRESULT IWMHeaderInfo2_SetAttribute(IWMHeaderInfo2* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
8918 return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length);
8919}
8920static inline HRESULT IWMHeaderInfo2_GetMarkerCount(IWMHeaderInfo2* This,WORD *markers) {
8921 return This->lpVtbl->GetMarkerCount(This,markers);
8922}
8923static inline HRESULT IWMHeaderInfo2_GetMarker(IWMHeaderInfo2* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) {
8924 return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time);
8925}
8926static inline HRESULT IWMHeaderInfo2_AddMarker(IWMHeaderInfo2* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) {
8927 return This->lpVtbl->AddMarker(This,marker_name,marker_time);
8928}
8929static inline HRESULT IWMHeaderInfo2_RemoveMarker(IWMHeaderInfo2* This,WORD index) {
8930 return This->lpVtbl->RemoveMarker(This,index);
8931}
8932static inline HRESULT IWMHeaderInfo2_GetScriptCount(IWMHeaderInfo2* This,WORD *scripts) {
8933 return This->lpVtbl->GetScriptCount(This,scripts);
8934}
8935static inline HRESULT IWMHeaderInfo2_GetScript(IWMHeaderInfo2* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) {
8936 return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time);
8937}
8938static inline HRESULT IWMHeaderInfo2_AddScript(IWMHeaderInfo2* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) {
8939 return This->lpVtbl->AddScript(This,type,command,script_time);
8940}
8941static inline HRESULT IWMHeaderInfo2_RemoveScript(IWMHeaderInfo2* This,WORD index) {
8942 return This->lpVtbl->RemoveScript(This,index);
8943}
8944/*** IWMHeaderInfo2 methods ***/
8945static inline HRESULT IWMHeaderInfo2_GetCodecInfoCount(IWMHeaderInfo2* This,DWORD *codec_infos) {
8946 return This->lpVtbl->GetCodecInfoCount(This,codec_infos);
8947}
8948static inline HRESULT IWMHeaderInfo2_GetCodecInfo(IWMHeaderInfo2* This,DWORD index,WORD *name_len,WCHAR *name,WORD *description_len,WCHAR *description,WMT_CODEC_INFO_TYPE *codec_type,WORD *codec_info_cnt,BYTE *codec_info) {
8949 return This->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info);
8950}
8951#endif
8952#endif
8953
8954#endif
8955
8956
8957#endif /* __IWMHeaderInfo2_INTERFACE_DEFINED__ */
8958
8959/*****************************************************************************
8960 * IWMHeaderInfo3 interface
8961 */
8962#ifndef __IWMHeaderInfo3_INTERFACE_DEFINED__
8963#define __IWMHeaderInfo3_INTERFACE_DEFINED__
8964
8965DEFINE_GUID(IID_IWMHeaderInfo3, 0x15cc68e3, 0x27cc, 0x4ecd, 0xb2,0x22, 0x3f,0x5d,0x02,0xd8,0x0b,0xd5);
8966#if defined(__cplusplus) && !defined(CINTERFACE)
8967MIDL_INTERFACE("15cc68e3-27cc-4ecd-b222-3f5d02d80bd5")
8968IWMHeaderInfo3 : public IWMHeaderInfo2
8969{
8970 virtual HRESULT STDMETHODCALLTYPE GetAttributeCountEx(
8971 WORD stream_num,
8972 WORD *attributes) = 0;
8973
8974 virtual HRESULT STDMETHODCALLTYPE GetAttributeIndices(
8975 WORD stream_num,
8976 LPCWSTR name,
8977 WORD *lang_index,
8978 WORD *indices,
8979 WORD *count) = 0;
8980
8981 virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndexEx(
8982 WORD stream_num,
8983 WORD index,
8984 LPWSTR name,
8985 WORD *name_len,
8986 WMT_ATTR_DATATYPE *type,
8987 WORD *lang_index,
8988 BYTE *value,
8989 DWORD *data_len) = 0;
8990
8991 virtual HRESULT STDMETHODCALLTYPE ModifyAttribute(
8992 WORD stream_num,
8993 WORD index,
8994 WMT_ATTR_DATATYPE type,
8995 WORD lang_index,
8996 const BYTE *value,
8997 DWORD length) = 0;
8998
8999 virtual HRESULT STDMETHODCALLTYPE AddAttribute(
9000 WORD stream_num,
9001 LPCWSTR name,
9002 WORD *index,
9003 WMT_ATTR_DATATYPE type,
9004 WORD lang_index,
9005 const BYTE *value,
9006 DWORD length) = 0;
9007
9008 virtual HRESULT STDMETHODCALLTYPE DeleteAttribute(
9009 WORD stream_num,
9010 WORD index) = 0;
9011
9012 virtual HRESULT STDMETHODCALLTYPE AddCodecInfo(
9013 LPCWSTR_WMSDK_TYPE_SAFE name,
9014 LPCWSTR_WMSDK_TYPE_SAFE description,
9015 WMT_CODEC_INFO_TYPE codec_type,
9016 WORD codec_info_cnt,
9017 BYTE *codec_info) = 0;
9018
9019};
9020#ifdef __CRT_UUID_DECL
9021__CRT_UUID_DECL(IWMHeaderInfo3, 0x15cc68e3, 0x27cc, 0x4ecd, 0xb2,0x22, 0x3f,0x5d,0x02,0xd8,0x0b,0xd5)
9022#endif
9023#else
9024typedef struct IWMHeaderInfo3Vtbl {
9025 BEGIN_INTERFACE
9026
9027 /*** IUnknown methods ***/
9028 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9029 IWMHeaderInfo3 *This,
9030 REFIID riid,
9031 void **ppvObject);
9032
9033 ULONG (STDMETHODCALLTYPE *AddRef)(
9034 IWMHeaderInfo3 *This);
9035
9036 ULONG (STDMETHODCALLTYPE *Release)(
9037 IWMHeaderInfo3 *This);
9038
9039 /*** IWMHeaderInfo methods ***/
9040 HRESULT (STDMETHODCALLTYPE *GetAttributeCount)(
9041 IWMHeaderInfo3 *This,
9042 WORD stream_num,
9043 WORD *attributes);
9044
9045 HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)(
9046 IWMHeaderInfo3 *This,
9047 WORD index,
9048 WORD *stream_num,
9049 WCHAR *name,
9050 WORD *name_len,
9051 WMT_ATTR_DATATYPE *type,
9052 BYTE *value,
9053 WORD *length);
9054
9055 HRESULT (STDMETHODCALLTYPE *GetAttributeByName)(
9056 IWMHeaderInfo3 *This,
9057 WORD *stream_num,
9058 LPCWSTR name,
9059 WMT_ATTR_DATATYPE *type,
9060 BYTE *value,
9061 WORD *length);
9062
9063 HRESULT (STDMETHODCALLTYPE *SetAttribute)(
9064 IWMHeaderInfo3 *This,
9065 WORD stream_num,
9066 LPCWSTR name,
9067 WMT_ATTR_DATATYPE type,
9068 const BYTE *value,
9069 WORD length);
9070
9071 HRESULT (STDMETHODCALLTYPE *GetMarkerCount)(
9072 IWMHeaderInfo3 *This,
9073 WORD *markers);
9074
9075 HRESULT (STDMETHODCALLTYPE *GetMarker)(
9076 IWMHeaderInfo3 *This,
9077 WORD index,
9078 WCHAR *marker_name,
9079 WORD *marker_len,
9080 QWORD *marker_time);
9081
9082 HRESULT (STDMETHODCALLTYPE *AddMarker)(
9083 IWMHeaderInfo3 *This,
9084 LPCWSTR_WMSDK_TYPE_SAFE marker_name,
9085 QWORD marker_time);
9086
9087 HRESULT (STDMETHODCALLTYPE *RemoveMarker)(
9088 IWMHeaderInfo3 *This,
9089 WORD index);
9090
9091 HRESULT (STDMETHODCALLTYPE *GetScriptCount)(
9092 IWMHeaderInfo3 *This,
9093 WORD *scripts);
9094
9095 HRESULT (STDMETHODCALLTYPE *GetScript)(
9096 IWMHeaderInfo3 *This,
9097 WORD index,
9098 WCHAR *type,
9099 WORD *type_len,
9100 WCHAR *command,
9101 WORD *command_len,
9102 QWORD *script_time);
9103
9104 HRESULT (STDMETHODCALLTYPE *AddScript)(
9105 IWMHeaderInfo3 *This,
9106 LPCWSTR_WMSDK_TYPE_SAFE type,
9107 LPCWSTR_WMSDK_TYPE_SAFE command,
9108 QWORD script_time);
9109
9110 HRESULT (STDMETHODCALLTYPE *RemoveScript)(
9111 IWMHeaderInfo3 *This,
9112 WORD index);
9113
9114 /*** IWMHeaderInfo2 methods ***/
9115 HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)(
9116 IWMHeaderInfo3 *This,
9117 DWORD *codec_infos);
9118
9119 HRESULT (STDMETHODCALLTYPE *GetCodecInfo)(
9120 IWMHeaderInfo3 *This,
9121 DWORD index,
9122 WORD *name_len,
9123 WCHAR *name,
9124 WORD *description_len,
9125 WCHAR *description,
9126 WMT_CODEC_INFO_TYPE *codec_type,
9127 WORD *codec_info_cnt,
9128 BYTE *codec_info);
9129
9130 /*** IWMHeaderInfo3 methods ***/
9131 HRESULT (STDMETHODCALLTYPE *GetAttributeCountEx)(
9132 IWMHeaderInfo3 *This,
9133 WORD stream_num,
9134 WORD *attributes);
9135
9136 HRESULT (STDMETHODCALLTYPE *GetAttributeIndices)(
9137 IWMHeaderInfo3 *This,
9138 WORD stream_num,
9139 LPCWSTR name,
9140 WORD *lang_index,
9141 WORD *indices,
9142 WORD *count);
9143
9144 HRESULT (STDMETHODCALLTYPE *GetAttributeByIndexEx)(
9145 IWMHeaderInfo3 *This,
9146 WORD stream_num,
9147 WORD index,
9148 LPWSTR name,
9149 WORD *name_len,
9150 WMT_ATTR_DATATYPE *type,
9151 WORD *lang_index,
9152 BYTE *value,
9153 DWORD *data_len);
9154
9155 HRESULT (STDMETHODCALLTYPE *ModifyAttribute)(
9156 IWMHeaderInfo3 *This,
9157 WORD stream_num,
9158 WORD index,
9159 WMT_ATTR_DATATYPE type,
9160 WORD lang_index,
9161 const BYTE *value,
9162 DWORD length);
9163
9164 HRESULT (STDMETHODCALLTYPE *AddAttribute)(
9165 IWMHeaderInfo3 *This,
9166 WORD stream_num,
9167 LPCWSTR name,
9168 WORD *index,
9169 WMT_ATTR_DATATYPE type,
9170 WORD lang_index,
9171 const BYTE *value,
9172 DWORD length);
9173
9174 HRESULT (STDMETHODCALLTYPE *DeleteAttribute)(
9175 IWMHeaderInfo3 *This,
9176 WORD stream_num,
9177 WORD index);
9178
9179 HRESULT (STDMETHODCALLTYPE *AddCodecInfo)(
9180 IWMHeaderInfo3 *This,
9181 LPCWSTR_WMSDK_TYPE_SAFE name,
9182 LPCWSTR_WMSDK_TYPE_SAFE description,
9183 WMT_CODEC_INFO_TYPE codec_type,
9184 WORD codec_info_cnt,
9185 BYTE *codec_info);
9186
9187 END_INTERFACE
9188} IWMHeaderInfo3Vtbl;
9189
9190interface IWMHeaderInfo3 {
9191 CONST_VTBL IWMHeaderInfo3Vtbl* lpVtbl;
9192};
9193
9194#ifdef COBJMACROS
9195#ifndef WIDL_C_INLINE_WRAPPERS
9196/*** IUnknown methods ***/
9197#define IWMHeaderInfo3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9198#define IWMHeaderInfo3_AddRef(This) (This)->lpVtbl->AddRef(This)
9199#define IWMHeaderInfo3_Release(This) (This)->lpVtbl->Release(This)
9200/*** IWMHeaderInfo methods ***/
9201#define IWMHeaderInfo3_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes)
9202#define IWMHeaderInfo3_GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) (This)->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length)
9203#define IWMHeaderInfo3_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length)
9204#define IWMHeaderInfo3_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length)
9205#define IWMHeaderInfo3_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers)
9206#define IWMHeaderInfo3_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time)
9207#define IWMHeaderInfo3_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time)
9208#define IWMHeaderInfo3_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index)
9209#define IWMHeaderInfo3_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts)
9210#define IWMHeaderInfo3_GetScript(This,index,type,type_len,command,command_len,script_time) (This)->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time)
9211#define IWMHeaderInfo3_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time)
9212#define IWMHeaderInfo3_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index)
9213/*** IWMHeaderInfo2 methods ***/
9214#define IWMHeaderInfo3_GetCodecInfoCount(This,codec_infos) (This)->lpVtbl->GetCodecInfoCount(This,codec_infos)
9215#define IWMHeaderInfo3_GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info) (This)->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info)
9216/*** IWMHeaderInfo3 methods ***/
9217#define IWMHeaderInfo3_GetAttributeCountEx(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCountEx(This,stream_num,attributes)
9218#define IWMHeaderInfo3_GetAttributeIndices(This,stream_num,name,lang_index,indices,count) (This)->lpVtbl->GetAttributeIndices(This,stream_num,name,lang_index,indices,count)
9219#define IWMHeaderInfo3_GetAttributeByIndexEx(This,stream_num,index,name,name_len,type,lang_index,value,data_len) (This)->lpVtbl->GetAttributeByIndexEx(This,stream_num,index,name,name_len,type,lang_index,value,data_len)
9220#define IWMHeaderInfo3_ModifyAttribute(This,stream_num,index,type,lang_index,value,length) (This)->lpVtbl->ModifyAttribute(This,stream_num,index,type,lang_index,value,length)
9221#define IWMHeaderInfo3_AddAttribute(This,stream_num,name,index,type,lang_index,value,length) (This)->lpVtbl->AddAttribute(This,stream_num,name,index,type,lang_index,value,length)
9222#define IWMHeaderInfo3_DeleteAttribute(This,stream_num,index) (This)->lpVtbl->DeleteAttribute(This,stream_num,index)
9223#define IWMHeaderInfo3_AddCodecInfo(This,name,description,codec_type,codec_info_cnt,codec_info) (This)->lpVtbl->AddCodecInfo(This,name,description,codec_type,codec_info_cnt,codec_info)
9224#else
9225/*** IUnknown methods ***/
9226static inline HRESULT IWMHeaderInfo3_QueryInterface(IWMHeaderInfo3* This,REFIID riid,void **ppvObject) {
9227 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9228}
9229static inline ULONG IWMHeaderInfo3_AddRef(IWMHeaderInfo3* This) {
9230 return This->lpVtbl->AddRef(This);
9231}
9232static inline ULONG IWMHeaderInfo3_Release(IWMHeaderInfo3* This) {
9233 return This->lpVtbl->Release(This);
9234}
9235/*** IWMHeaderInfo methods ***/
9236static inline HRESULT IWMHeaderInfo3_GetAttributeCount(IWMHeaderInfo3* This,WORD stream_num,WORD *attributes) {
9237 return This->lpVtbl->GetAttributeCount(This,stream_num,attributes);
9238}
9239static inline HRESULT IWMHeaderInfo3_GetAttributeByIndex(IWMHeaderInfo3* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
9240 return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length);
9241}
9242static inline HRESULT IWMHeaderInfo3_GetAttributeByName(IWMHeaderInfo3* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
9243 return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length);
9244}
9245static inline HRESULT IWMHeaderInfo3_SetAttribute(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
9246 return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length);
9247}
9248static inline HRESULT IWMHeaderInfo3_GetMarkerCount(IWMHeaderInfo3* This,WORD *markers) {
9249 return This->lpVtbl->GetMarkerCount(This,markers);
9250}
9251static inline HRESULT IWMHeaderInfo3_GetMarker(IWMHeaderInfo3* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) {
9252 return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time);
9253}
9254static inline HRESULT IWMHeaderInfo3_AddMarker(IWMHeaderInfo3* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) {
9255 return This->lpVtbl->AddMarker(This,marker_name,marker_time);
9256}
9257static inline HRESULT IWMHeaderInfo3_RemoveMarker(IWMHeaderInfo3* This,WORD index) {
9258 return This->lpVtbl->RemoveMarker(This,index);
9259}
9260static inline HRESULT IWMHeaderInfo3_GetScriptCount(IWMHeaderInfo3* This,WORD *scripts) {
9261 return This->lpVtbl->GetScriptCount(This,scripts);
9262}
9263static inline HRESULT IWMHeaderInfo3_GetScript(IWMHeaderInfo3* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) {
9264 return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time);
9265}
9266static inline HRESULT IWMHeaderInfo3_AddScript(IWMHeaderInfo3* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) {
9267 return This->lpVtbl->AddScript(This,type,command,script_time);
9268}
9269static inline HRESULT IWMHeaderInfo3_RemoveScript(IWMHeaderInfo3* This,WORD index) {
9270 return This->lpVtbl->RemoveScript(This,index);
9271}
9272/*** IWMHeaderInfo2 methods ***/
9273static inline HRESULT IWMHeaderInfo3_GetCodecInfoCount(IWMHeaderInfo3* This,DWORD *codec_infos) {
9274 return This->lpVtbl->GetCodecInfoCount(This,codec_infos);
9275}
9276static inline HRESULT IWMHeaderInfo3_GetCodecInfo(IWMHeaderInfo3* This,DWORD index,WORD *name_len,WCHAR *name,WORD *description_len,WCHAR *description,WMT_CODEC_INFO_TYPE *codec_type,WORD *codec_info_cnt,BYTE *codec_info) {
9277 return This->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info);
9278}
9279/*** IWMHeaderInfo3 methods ***/
9280static inline HRESULT IWMHeaderInfo3_GetAttributeCountEx(IWMHeaderInfo3* This,WORD stream_num,WORD *attributes) {
9281 return This->lpVtbl->GetAttributeCountEx(This,stream_num,attributes);
9282}
9283static inline HRESULT IWMHeaderInfo3_GetAttributeIndices(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WORD *lang_index,WORD *indices,WORD *count) {
9284 return This->lpVtbl->GetAttributeIndices(This,stream_num,name,lang_index,indices,count);
9285}
9286static inline HRESULT IWMHeaderInfo3_GetAttributeByIndexEx(IWMHeaderInfo3* This,WORD stream_num,WORD index,LPWSTR name,WORD *name_len,WMT_ATTR_DATATYPE *type,WORD *lang_index,BYTE *value,DWORD *data_len) {
9287 return This->lpVtbl->GetAttributeByIndexEx(This,stream_num,index,name,name_len,type,lang_index,value,data_len);
9288}
9289static inline HRESULT IWMHeaderInfo3_ModifyAttribute(IWMHeaderInfo3* This,WORD stream_num,WORD index,WMT_ATTR_DATATYPE type,WORD lang_index,const BYTE *value,DWORD length) {
9290 return This->lpVtbl->ModifyAttribute(This,stream_num,index,type,lang_index,value,length);
9291}
9292static inline HRESULT IWMHeaderInfo3_AddAttribute(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WORD *index,WMT_ATTR_DATATYPE type,WORD lang_index,const BYTE *value,DWORD length) {
9293 return This->lpVtbl->AddAttribute(This,stream_num,name,index,type,lang_index,value,length);
9294}
9295static inline HRESULT IWMHeaderInfo3_DeleteAttribute(IWMHeaderInfo3* This,WORD stream_num,WORD index) {
9296 return This->lpVtbl->DeleteAttribute(This,stream_num,index);
9297}
9298static inline HRESULT IWMHeaderInfo3_AddCodecInfo(IWMHeaderInfo3* This,LPCWSTR_WMSDK_TYPE_SAFE name,LPCWSTR_WMSDK_TYPE_SAFE description,WMT_CODEC_INFO_TYPE codec_type,WORD codec_info_cnt,BYTE *codec_info) {
9299 return This->lpVtbl->AddCodecInfo(This,name,description,codec_type,codec_info_cnt,codec_info);
9300}
9301#endif
9302#endif
9303
9304#endif
9305
9306
9307#endif /* __IWMHeaderInfo3_INTERFACE_DEFINED__ */
9308
9309/*****************************************************************************
9310 * IWMReaderNetworkConfig interface
9311 */
9312#ifndef __IWMReaderNetworkConfig_INTERFACE_DEFINED__
9313#define __IWMReaderNetworkConfig_INTERFACE_DEFINED__
9314
9315DEFINE_GUID(IID_IWMReaderNetworkConfig, 0x96406bec, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
9316#if defined(__cplusplus) && !defined(CINTERFACE)
9317MIDL_INTERFACE("96406bec-2b2b-11d3-b36b-00c04f6108ff")
9318IWMReaderNetworkConfig : public IUnknown
9319{
9320 virtual HRESULT STDMETHODCALLTYPE GetBufferingTime(
9321 QWORD *buffering_time) = 0;
9322
9323 virtual HRESULT STDMETHODCALLTYPE SetBufferingTime(
9324 QWORD buffering_time) = 0;
9325
9326 virtual HRESULT STDMETHODCALLTYPE GetUDPPortRanges(
9327 WM_PORT_NUMBER_RANGE *array,
9328 DWORD *ranges) = 0;
9329
9330 virtual HRESULT STDMETHODCALLTYPE SetUDPPortRanges(
9331 WM_PORT_NUMBER_RANGE *array,
9332 DWORD ranges) = 0;
9333
9334 virtual HRESULT STDMETHODCALLTYPE GetProxySettings(
9335 const WCHAR *protocol,
9336 WMT_PROXY_SETTINGS *proxy) = 0;
9337
9338 virtual HRESULT STDMETHODCALLTYPE SetProxySettings(
9339 LPCWSTR protocol,
9340 WMT_PROXY_SETTINGS proxy) = 0;
9341
9342 virtual HRESULT STDMETHODCALLTYPE GetProxyHostName(
9343 const WCHAR *protocol,
9344 WCHAR *hostname,
9345 DWORD *size) = 0;
9346
9347 virtual HRESULT STDMETHODCALLTYPE SetProxyHostName(
9348 const WCHAR *protocol,
9349 const WCHAR *hostname) = 0;
9350
9351 virtual HRESULT STDMETHODCALLTYPE GetProxyPort(
9352 const WCHAR *protocol,
9353 DWORD *port) = 0;
9354
9355 virtual HRESULT STDMETHODCALLTYPE SetProxyPort(
9356 const WCHAR *protocol,
9357 DWORD port) = 0;
9358
9359 virtual HRESULT STDMETHODCALLTYPE GetProxyExceptionList(
9360 const WCHAR *protocol,
9361 WCHAR *exceptions,
9362 DWORD *count) = 0;
9363
9364 virtual HRESULT STDMETHODCALLTYPE SetProxyExceptionList(
9365 const WCHAR *protocol,
9366 const WCHAR *exceptions) = 0;
9367
9368 virtual HRESULT STDMETHODCALLTYPE GetProxyBypassForLocal(
9369 const WCHAR *protocol,
9370 WINBOOL *bypass) = 0;
9371
9372 virtual HRESULT STDMETHODCALLTYPE SetProxyBypassForLocal(
9373 const WCHAR *protocol,
9374 WINBOOL bypass) = 0;
9375
9376 virtual HRESULT STDMETHODCALLTYPE GetForceRerunAutoProxyDetection(
9377 WINBOOL *detection) = 0;
9378
9379 virtual HRESULT STDMETHODCALLTYPE SetForceRerunAutoProxyDetection(
9380 WINBOOL detection) = 0;
9381
9382 virtual HRESULT STDMETHODCALLTYPE GetEnableMulticast(
9383 WINBOOL *multicast) = 0;
9384
9385 virtual HRESULT STDMETHODCALLTYPE SetEnableMulticast(
9386 WINBOOL multicast) = 0;
9387
9388 virtual HRESULT STDMETHODCALLTYPE GetEnableHTTP(
9389 WINBOOL *enable) = 0;
9390
9391 virtual HRESULT STDMETHODCALLTYPE SetEnableHTTP(
9392 WINBOOL enable) = 0;
9393
9394 virtual HRESULT STDMETHODCALLTYPE GetEnableUDP(
9395 WINBOOL *enable) = 0;
9396
9397 virtual HRESULT STDMETHODCALLTYPE SetEnableUDP(
9398 WINBOOL enable) = 0;
9399
9400 virtual HRESULT STDMETHODCALLTYPE GetEnableTCP(
9401 WINBOOL *enable) = 0;
9402
9403 virtual HRESULT STDMETHODCALLTYPE SetEnableTCP(
9404 WINBOOL enable) = 0;
9405
9406 virtual HRESULT STDMETHODCALLTYPE ResetProtocolRollover(
9407 ) = 0;
9408
9409 virtual HRESULT STDMETHODCALLTYPE GetConnectionBandwidth(
9410 DWORD *bandwidth) = 0;
9411
9412 virtual HRESULT STDMETHODCALLTYPE SetConnectionBandwidth(
9413 DWORD bandwidth) = 0;
9414
9415 virtual HRESULT STDMETHODCALLTYPE GetNumProtocolsSupported(
9416 DWORD *protocols) = 0;
9417
9418 virtual HRESULT STDMETHODCALLTYPE GetSupportedProtocolName(
9419 DWORD protocol_num,
9420 WCHAR *protocol,
9421 DWORD *size) = 0;
9422
9423 virtual HRESULT STDMETHODCALLTYPE AddLoggingUrl(
9424 const WCHAR *url) = 0;
9425
9426 virtual HRESULT STDMETHODCALLTYPE GetLoggingUrl(
9427 DWORD index,
9428 WCHAR *url,
9429 DWORD *size) = 0;
9430
9431 virtual HRESULT STDMETHODCALLTYPE GetLoggingUrlCount(
9432 DWORD *count) = 0;
9433
9434 virtual HRESULT STDMETHODCALLTYPE ResetLoggingUrlList(
9435 ) = 0;
9436
9437};
9438#ifdef __CRT_UUID_DECL
9439__CRT_UUID_DECL(IWMReaderNetworkConfig, 0x96406bec, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
9440#endif
9441#else
9442typedef struct IWMReaderNetworkConfigVtbl {
9443 BEGIN_INTERFACE
9444
9445 /*** IUnknown methods ***/
9446 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9447 IWMReaderNetworkConfig *This,
9448 REFIID riid,
9449 void **ppvObject);
9450
9451 ULONG (STDMETHODCALLTYPE *AddRef)(
9452 IWMReaderNetworkConfig *This);
9453
9454 ULONG (STDMETHODCALLTYPE *Release)(
9455 IWMReaderNetworkConfig *This);
9456
9457 /*** IWMReaderNetworkConfig methods ***/
9458 HRESULT (STDMETHODCALLTYPE *GetBufferingTime)(
9459 IWMReaderNetworkConfig *This,
9460 QWORD *buffering_time);
9461
9462 HRESULT (STDMETHODCALLTYPE *SetBufferingTime)(
9463 IWMReaderNetworkConfig *This,
9464 QWORD buffering_time);
9465
9466 HRESULT (STDMETHODCALLTYPE *GetUDPPortRanges)(
9467 IWMReaderNetworkConfig *This,
9468 WM_PORT_NUMBER_RANGE *array,
9469 DWORD *ranges);
9470
9471 HRESULT (STDMETHODCALLTYPE *SetUDPPortRanges)(
9472 IWMReaderNetworkConfig *This,
9473 WM_PORT_NUMBER_RANGE *array,
9474 DWORD ranges);
9475
9476 HRESULT (STDMETHODCALLTYPE *GetProxySettings)(
9477 IWMReaderNetworkConfig *This,
9478 const WCHAR *protocol,
9479 WMT_PROXY_SETTINGS *proxy);
9480
9481 HRESULT (STDMETHODCALLTYPE *SetProxySettings)(
9482 IWMReaderNetworkConfig *This,
9483 LPCWSTR protocol,
9484 WMT_PROXY_SETTINGS proxy);
9485
9486 HRESULT (STDMETHODCALLTYPE *GetProxyHostName)(
9487 IWMReaderNetworkConfig *This,
9488 const WCHAR *protocol,
9489 WCHAR *hostname,
9490 DWORD *size);
9491
9492 HRESULT (STDMETHODCALLTYPE *SetProxyHostName)(
9493 IWMReaderNetworkConfig *This,
9494 const WCHAR *protocol,
9495 const WCHAR *hostname);
9496
9497 HRESULT (STDMETHODCALLTYPE *GetProxyPort)(
9498 IWMReaderNetworkConfig *This,
9499 const WCHAR *protocol,
9500 DWORD *port);
9501
9502 HRESULT (STDMETHODCALLTYPE *SetProxyPort)(
9503 IWMReaderNetworkConfig *This,
9504 const WCHAR *protocol,
9505 DWORD port);
9506
9507 HRESULT (STDMETHODCALLTYPE *GetProxyExceptionList)(
9508 IWMReaderNetworkConfig *This,
9509 const WCHAR *protocol,
9510 WCHAR *exceptions,
9511 DWORD *count);
9512
9513 HRESULT (STDMETHODCALLTYPE *SetProxyExceptionList)(
9514 IWMReaderNetworkConfig *This,
9515 const WCHAR *protocol,
9516 const WCHAR *exceptions);
9517
9518 HRESULT (STDMETHODCALLTYPE *GetProxyBypassForLocal)(
9519 IWMReaderNetworkConfig *This,
9520 const WCHAR *protocol,
9521 WINBOOL *bypass);
9522
9523 HRESULT (STDMETHODCALLTYPE *SetProxyBypassForLocal)(
9524 IWMReaderNetworkConfig *This,
9525 const WCHAR *protocol,
9526 WINBOOL bypass);
9527
9528 HRESULT (STDMETHODCALLTYPE *GetForceRerunAutoProxyDetection)(
9529 IWMReaderNetworkConfig *This,
9530 WINBOOL *detection);
9531
9532 HRESULT (STDMETHODCALLTYPE *SetForceRerunAutoProxyDetection)(
9533 IWMReaderNetworkConfig *This,
9534 WINBOOL detection);
9535
9536 HRESULT (STDMETHODCALLTYPE *GetEnableMulticast)(
9537 IWMReaderNetworkConfig *This,
9538 WINBOOL *multicast);
9539
9540 HRESULT (STDMETHODCALLTYPE *SetEnableMulticast)(
9541 IWMReaderNetworkConfig *This,
9542 WINBOOL multicast);
9543
9544 HRESULT (STDMETHODCALLTYPE *GetEnableHTTP)(
9545 IWMReaderNetworkConfig *This,
9546 WINBOOL *enable);
9547
9548 HRESULT (STDMETHODCALLTYPE *SetEnableHTTP)(
9549 IWMReaderNetworkConfig *This,
9550 WINBOOL enable);
9551
9552 HRESULT (STDMETHODCALLTYPE *GetEnableUDP)(
9553 IWMReaderNetworkConfig *This,
9554 WINBOOL *enable);
9555
9556 HRESULT (STDMETHODCALLTYPE *SetEnableUDP)(
9557 IWMReaderNetworkConfig *This,
9558 WINBOOL enable);
9559
9560 HRESULT (STDMETHODCALLTYPE *GetEnableTCP)(
9561 IWMReaderNetworkConfig *This,
9562 WINBOOL *enable);
9563
9564 HRESULT (STDMETHODCALLTYPE *SetEnableTCP)(
9565 IWMReaderNetworkConfig *This,
9566 WINBOOL enable);
9567
9568 HRESULT (STDMETHODCALLTYPE *ResetProtocolRollover)(
9569 IWMReaderNetworkConfig *This);
9570
9571 HRESULT (STDMETHODCALLTYPE *GetConnectionBandwidth)(
9572 IWMReaderNetworkConfig *This,
9573 DWORD *bandwidth);
9574
9575 HRESULT (STDMETHODCALLTYPE *SetConnectionBandwidth)(
9576 IWMReaderNetworkConfig *This,
9577 DWORD bandwidth);
9578
9579 HRESULT (STDMETHODCALLTYPE *GetNumProtocolsSupported)(
9580 IWMReaderNetworkConfig *This,
9581 DWORD *protocols);
9582
9583 HRESULT (STDMETHODCALLTYPE *GetSupportedProtocolName)(
9584 IWMReaderNetworkConfig *This,
9585 DWORD protocol_num,
9586 WCHAR *protocol,
9587 DWORD *size);
9588
9589 HRESULT (STDMETHODCALLTYPE *AddLoggingUrl)(
9590 IWMReaderNetworkConfig *This,
9591 const WCHAR *url);
9592
9593 HRESULT (STDMETHODCALLTYPE *GetLoggingUrl)(
9594 IWMReaderNetworkConfig *This,
9595 DWORD index,
9596 WCHAR *url,
9597 DWORD *size);
9598
9599 HRESULT (STDMETHODCALLTYPE *GetLoggingUrlCount)(
9600 IWMReaderNetworkConfig *This,
9601 DWORD *count);
9602
9603 HRESULT (STDMETHODCALLTYPE *ResetLoggingUrlList)(
9604 IWMReaderNetworkConfig *This);
9605
9606 END_INTERFACE
9607} IWMReaderNetworkConfigVtbl;
9608
9609interface IWMReaderNetworkConfig {
9610 CONST_VTBL IWMReaderNetworkConfigVtbl* lpVtbl;
9611};
9612
9613#ifdef COBJMACROS
9614#ifndef WIDL_C_INLINE_WRAPPERS
9615/*** IUnknown methods ***/
9616#define IWMReaderNetworkConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9617#define IWMReaderNetworkConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
9618#define IWMReaderNetworkConfig_Release(This) (This)->lpVtbl->Release(This)
9619/*** IWMReaderNetworkConfig methods ***/
9620#define IWMReaderNetworkConfig_GetBufferingTime(This,buffering_time) (This)->lpVtbl->GetBufferingTime(This,buffering_time)
9621#define IWMReaderNetworkConfig_SetBufferingTime(This,buffering_time) (This)->lpVtbl->SetBufferingTime(This,buffering_time)
9622#define IWMReaderNetworkConfig_GetUDPPortRanges(This,array,ranges) (This)->lpVtbl->GetUDPPortRanges(This,array,ranges)
9623#define IWMReaderNetworkConfig_SetUDPPortRanges(This,array,ranges) (This)->lpVtbl->SetUDPPortRanges(This,array,ranges)
9624#define IWMReaderNetworkConfig_GetProxySettings(This,protocol,proxy) (This)->lpVtbl->GetProxySettings(This,protocol,proxy)
9625#define IWMReaderNetworkConfig_SetProxySettings(This,protocol,proxy) (This)->lpVtbl->SetProxySettings(This,protocol,proxy)
9626#define IWMReaderNetworkConfig_GetProxyHostName(This,protocol,hostname,size) (This)->lpVtbl->GetProxyHostName(This,protocol,hostname,size)
9627#define IWMReaderNetworkConfig_SetProxyHostName(This,protocol,hostname) (This)->lpVtbl->SetProxyHostName(This,protocol,hostname)
9628#define IWMReaderNetworkConfig_GetProxyPort(This,protocol,port) (This)->lpVtbl->GetProxyPort(This,protocol,port)
9629#define IWMReaderNetworkConfig_SetProxyPort(This,protocol,port) (This)->lpVtbl->SetProxyPort(This,protocol,port)
9630#define IWMReaderNetworkConfig_GetProxyExceptionList(This,protocol,exceptions,count) (This)->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count)
9631#define IWMReaderNetworkConfig_SetProxyExceptionList(This,protocol,exceptions) (This)->lpVtbl->SetProxyExceptionList(This,protocol,exceptions)
9632#define IWMReaderNetworkConfig_GetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass)
9633#define IWMReaderNetworkConfig_SetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass)
9634#define IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->GetForceRerunAutoProxyDetection(This,detection)
9635#define IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->SetForceRerunAutoProxyDetection(This,detection)
9636#define IWMReaderNetworkConfig_GetEnableMulticast(This,multicast) (This)->lpVtbl->GetEnableMulticast(This,multicast)
9637#define IWMReaderNetworkConfig_SetEnableMulticast(This,multicast) (This)->lpVtbl->SetEnableMulticast(This,multicast)
9638#define IWMReaderNetworkConfig_GetEnableHTTP(This,enable) (This)->lpVtbl->GetEnableHTTP(This,enable)
9639#define IWMReaderNetworkConfig_SetEnableHTTP(This,enable) (This)->lpVtbl->SetEnableHTTP(This,enable)
9640#define IWMReaderNetworkConfig_GetEnableUDP(This,enable) (This)->lpVtbl->GetEnableUDP(This,enable)
9641#define IWMReaderNetworkConfig_SetEnableUDP(This,enable) (This)->lpVtbl->SetEnableUDP(This,enable)
9642#define IWMReaderNetworkConfig_GetEnableTCP(This,enable) (This)->lpVtbl->GetEnableTCP(This,enable)
9643#define IWMReaderNetworkConfig_SetEnableTCP(This,enable) (This)->lpVtbl->SetEnableTCP(This,enable)
9644#define IWMReaderNetworkConfig_ResetProtocolRollover(This) (This)->lpVtbl->ResetProtocolRollover(This)
9645#define IWMReaderNetworkConfig_GetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->GetConnectionBandwidth(This,bandwidth)
9646#define IWMReaderNetworkConfig_SetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->SetConnectionBandwidth(This,bandwidth)
9647#define IWMReaderNetworkConfig_GetNumProtocolsSupported(This,protocols) (This)->lpVtbl->GetNumProtocolsSupported(This,protocols)
9648#define IWMReaderNetworkConfig_GetSupportedProtocolName(This,protocol_num,protocol,size) (This)->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size)
9649#define IWMReaderNetworkConfig_AddLoggingUrl(This,url) (This)->lpVtbl->AddLoggingUrl(This,url)
9650#define IWMReaderNetworkConfig_GetLoggingUrl(This,index,url,size) (This)->lpVtbl->GetLoggingUrl(This,index,url,size)
9651#define IWMReaderNetworkConfig_GetLoggingUrlCount(This,count) (This)->lpVtbl->GetLoggingUrlCount(This,count)
9652#define IWMReaderNetworkConfig_ResetLoggingUrlList(This) (This)->lpVtbl->ResetLoggingUrlList(This)
9653#else
9654/*** IUnknown methods ***/
9655static inline HRESULT IWMReaderNetworkConfig_QueryInterface(IWMReaderNetworkConfig* This,REFIID riid,void **ppvObject) {
9656 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9657}
9658static inline ULONG IWMReaderNetworkConfig_AddRef(IWMReaderNetworkConfig* This) {
9659 return This->lpVtbl->AddRef(This);
9660}
9661static inline ULONG IWMReaderNetworkConfig_Release(IWMReaderNetworkConfig* This) {
9662 return This->lpVtbl->Release(This);
9663}
9664/*** IWMReaderNetworkConfig methods ***/
9665static inline HRESULT IWMReaderNetworkConfig_GetBufferingTime(IWMReaderNetworkConfig* This,QWORD *buffering_time) {
9666 return This->lpVtbl->GetBufferingTime(This,buffering_time);
9667}
9668static inline HRESULT IWMReaderNetworkConfig_SetBufferingTime(IWMReaderNetworkConfig* This,QWORD buffering_time) {
9669 return This->lpVtbl->SetBufferingTime(This,buffering_time);
9670}
9671static inline HRESULT IWMReaderNetworkConfig_GetUDPPortRanges(IWMReaderNetworkConfig* This,WM_PORT_NUMBER_RANGE *array,DWORD *ranges) {
9672 return This->lpVtbl->GetUDPPortRanges(This,array,ranges);
9673}
9674static inline HRESULT IWMReaderNetworkConfig_SetUDPPortRanges(IWMReaderNetworkConfig* This,WM_PORT_NUMBER_RANGE *array,DWORD ranges) {
9675 return This->lpVtbl->SetUDPPortRanges(This,array,ranges);
9676}
9677static inline HRESULT IWMReaderNetworkConfig_GetProxySettings(IWMReaderNetworkConfig* This,const WCHAR *protocol,WMT_PROXY_SETTINGS *proxy) {
9678 return This->lpVtbl->GetProxySettings(This,protocol,proxy);
9679}
9680static inline HRESULT IWMReaderNetworkConfig_SetProxySettings(IWMReaderNetworkConfig* This,LPCWSTR protocol,WMT_PROXY_SETTINGS proxy) {
9681 return This->lpVtbl->SetProxySettings(This,protocol,proxy);
9682}
9683static inline HRESULT IWMReaderNetworkConfig_GetProxyHostName(IWMReaderNetworkConfig* This,const WCHAR *protocol,WCHAR *hostname,DWORD *size) {
9684 return This->lpVtbl->GetProxyHostName(This,protocol,hostname,size);
9685}
9686static inline HRESULT IWMReaderNetworkConfig_SetProxyHostName(IWMReaderNetworkConfig* This,const WCHAR *protocol,const WCHAR *hostname) {
9687 return This->lpVtbl->SetProxyHostName(This,protocol,hostname);
9688}
9689static inline HRESULT IWMReaderNetworkConfig_GetProxyPort(IWMReaderNetworkConfig* This,const WCHAR *protocol,DWORD *port) {
9690 return This->lpVtbl->GetProxyPort(This,protocol,port);
9691}
9692static inline HRESULT IWMReaderNetworkConfig_SetProxyPort(IWMReaderNetworkConfig* This,const WCHAR *protocol,DWORD port) {
9693 return This->lpVtbl->SetProxyPort(This,protocol,port);
9694}
9695static inline HRESULT IWMReaderNetworkConfig_GetProxyExceptionList(IWMReaderNetworkConfig* This,const WCHAR *protocol,WCHAR *exceptions,DWORD *count) {
9696 return This->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count);
9697}
9698static inline HRESULT IWMReaderNetworkConfig_SetProxyExceptionList(IWMReaderNetworkConfig* This,const WCHAR *protocol,const WCHAR *exceptions) {
9699 return This->lpVtbl->SetProxyExceptionList(This,protocol,exceptions);
9700}
9701static inline HRESULT IWMReaderNetworkConfig_GetProxyBypassForLocal(IWMReaderNetworkConfig* This,const WCHAR *protocol,WINBOOL *bypass) {
9702 return This->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass);
9703}
9704static inline HRESULT IWMReaderNetworkConfig_SetProxyBypassForLocal(IWMReaderNetworkConfig* This,const WCHAR *protocol,WINBOOL bypass) {
9705 return This->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass);
9706}
9707static inline HRESULT IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection(IWMReaderNetworkConfig* This,WINBOOL *detection) {
9708 return This->lpVtbl->GetForceRerunAutoProxyDetection(This,detection);
9709}
9710static inline HRESULT IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection(IWMReaderNetworkConfig* This,WINBOOL detection) {
9711 return This->lpVtbl->SetForceRerunAutoProxyDetection(This,detection);
9712}
9713static inline HRESULT IWMReaderNetworkConfig_GetEnableMulticast(IWMReaderNetworkConfig* This,WINBOOL *multicast) {
9714 return This->lpVtbl->GetEnableMulticast(This,multicast);
9715}
9716static inline HRESULT IWMReaderNetworkConfig_SetEnableMulticast(IWMReaderNetworkConfig* This,WINBOOL multicast) {
9717 return This->lpVtbl->SetEnableMulticast(This,multicast);
9718}
9719static inline HRESULT IWMReaderNetworkConfig_GetEnableHTTP(IWMReaderNetworkConfig* This,WINBOOL *enable) {
9720 return This->lpVtbl->GetEnableHTTP(This,enable);
9721}
9722static inline HRESULT IWMReaderNetworkConfig_SetEnableHTTP(IWMReaderNetworkConfig* This,WINBOOL enable) {
9723 return This->lpVtbl->SetEnableHTTP(This,enable);
9724}
9725static inline HRESULT IWMReaderNetworkConfig_GetEnableUDP(IWMReaderNetworkConfig* This,WINBOOL *enable) {
9726 return This->lpVtbl->GetEnableUDP(This,enable);
9727}
9728static inline HRESULT IWMReaderNetworkConfig_SetEnableUDP(IWMReaderNetworkConfig* This,WINBOOL enable) {
9729 return This->lpVtbl->SetEnableUDP(This,enable);
9730}
9731static inline HRESULT IWMReaderNetworkConfig_GetEnableTCP(IWMReaderNetworkConfig* This,WINBOOL *enable) {
9732 return This->lpVtbl->GetEnableTCP(This,enable);
9733}
9734static inline HRESULT IWMReaderNetworkConfig_SetEnableTCP(IWMReaderNetworkConfig* This,WINBOOL enable) {
9735 return This->lpVtbl->SetEnableTCP(This,enable);
9736}
9737static inline HRESULT IWMReaderNetworkConfig_ResetProtocolRollover(IWMReaderNetworkConfig* This) {
9738 return This->lpVtbl->ResetProtocolRollover(This);
9739}
9740static inline HRESULT IWMReaderNetworkConfig_GetConnectionBandwidth(IWMReaderNetworkConfig* This,DWORD *bandwidth) {
9741 return This->lpVtbl->GetConnectionBandwidth(This,bandwidth);
9742}
9743static inline HRESULT IWMReaderNetworkConfig_SetConnectionBandwidth(IWMReaderNetworkConfig* This,DWORD bandwidth) {
9744 return This->lpVtbl->SetConnectionBandwidth(This,bandwidth);
9745}
9746static inline HRESULT IWMReaderNetworkConfig_GetNumProtocolsSupported(IWMReaderNetworkConfig* This,DWORD *protocols) {
9747 return This->lpVtbl->GetNumProtocolsSupported(This,protocols);
9748}
9749static inline HRESULT IWMReaderNetworkConfig_GetSupportedProtocolName(IWMReaderNetworkConfig* This,DWORD protocol_num,WCHAR *protocol,DWORD *size) {
9750 return This->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size);
9751}
9752static inline HRESULT IWMReaderNetworkConfig_AddLoggingUrl(IWMReaderNetworkConfig* This,const WCHAR *url) {
9753 return This->lpVtbl->AddLoggingUrl(This,url);
9754}
9755static inline HRESULT IWMReaderNetworkConfig_GetLoggingUrl(IWMReaderNetworkConfig* This,DWORD index,WCHAR *url,DWORD *size) {
9756 return This->lpVtbl->GetLoggingUrl(This,index,url,size);
9757}
9758static inline HRESULT IWMReaderNetworkConfig_GetLoggingUrlCount(IWMReaderNetworkConfig* This,DWORD *count) {
9759 return This->lpVtbl->GetLoggingUrlCount(This,count);
9760}
9761static inline HRESULT IWMReaderNetworkConfig_ResetLoggingUrlList(IWMReaderNetworkConfig* This) {
9762 return This->lpVtbl->ResetLoggingUrlList(This);
9763}
9764#endif
9765#endif
9766
9767#endif
9768
9769
9770#endif /* __IWMReaderNetworkConfig_INTERFACE_DEFINED__ */
9771
9772/*****************************************************************************
9773 * IWMReaderNetworkConfig2 interface
9774 */
9775#ifndef __IWMReaderNetworkConfig2_INTERFACE_DEFINED__
9776#define __IWMReaderNetworkConfig2_INTERFACE_DEFINED__
9777
9778DEFINE_GUID(IID_IWMReaderNetworkConfig2, 0xd979a853, 0x042b, 0x4050, 0x83,0x87, 0xc9,0x39,0xdb,0x22,0x01,0x3f);
9779#if defined(__cplusplus) && !defined(CINTERFACE)
9780MIDL_INTERFACE("d979a853-042b-4050-8387-c939db22013f")
9781IWMReaderNetworkConfig2 : public IWMReaderNetworkConfig
9782{
9783 virtual HRESULT STDMETHODCALLTYPE GetEnableContentCaching(
9784 WINBOOL *enable) = 0;
9785
9786 virtual HRESULT STDMETHODCALLTYPE SetEnableContentCaching(
9787 WINBOOL enable) = 0;
9788
9789 virtual HRESULT STDMETHODCALLTYPE GetEnableFastCache(
9790 WINBOOL *enable) = 0;
9791
9792 virtual HRESULT STDMETHODCALLTYPE SetEnableFastCache(
9793 WINBOOL enable) = 0;
9794
9795 virtual HRESULT STDMETHODCALLTYPE GetAcceleratedStreamingDuration(
9796 QWORD *duration) = 0;
9797
9798 virtual HRESULT STDMETHODCALLTYPE SetAcceleratedStreamingDuration(
9799 QWORD duration) = 0;
9800
9801 virtual HRESULT STDMETHODCALLTYPE GetAutoReconnectLimit(
9802 DWORD *limit) = 0;
9803
9804 virtual HRESULT STDMETHODCALLTYPE SetAutoReconnectLimit(
9805 DWORD limit) = 0;
9806
9807 virtual HRESULT STDMETHODCALLTYPE GetEnableResends(
9808 WINBOOL *enable) = 0;
9809
9810 virtual HRESULT STDMETHODCALLTYPE SetEnableResends(
9811 WINBOOL enable) = 0;
9812
9813 virtual HRESULT STDMETHODCALLTYPE GetEnableThinning(
9814 WINBOOL *enable) = 0;
9815
9816 virtual HRESULT STDMETHODCALLTYPE SetEnableThinning(
9817 WINBOOL enable) = 0;
9818
9819 virtual HRESULT STDMETHODCALLTYPE GetMaxNetPacketSize(
9820 DWORD *packet_size) = 0;
9821
9822};
9823#ifdef __CRT_UUID_DECL
9824__CRT_UUID_DECL(IWMReaderNetworkConfig2, 0xd979a853, 0x042b, 0x4050, 0x83,0x87, 0xc9,0x39,0xdb,0x22,0x01,0x3f)
9825#endif
9826#else
9827typedef struct IWMReaderNetworkConfig2Vtbl {
9828 BEGIN_INTERFACE
9829
9830 /*** IUnknown methods ***/
9831 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9832 IWMReaderNetworkConfig2 *This,
9833 REFIID riid,
9834 void **ppvObject);
9835
9836 ULONG (STDMETHODCALLTYPE *AddRef)(
9837 IWMReaderNetworkConfig2 *This);
9838
9839 ULONG (STDMETHODCALLTYPE *Release)(
9840 IWMReaderNetworkConfig2 *This);
9841
9842 /*** IWMReaderNetworkConfig methods ***/
9843 HRESULT (STDMETHODCALLTYPE *GetBufferingTime)(
9844 IWMReaderNetworkConfig2 *This,
9845 QWORD *buffering_time);
9846
9847 HRESULT (STDMETHODCALLTYPE *SetBufferingTime)(
9848 IWMReaderNetworkConfig2 *This,
9849 QWORD buffering_time);
9850
9851 HRESULT (STDMETHODCALLTYPE *GetUDPPortRanges)(
9852 IWMReaderNetworkConfig2 *This,
9853 WM_PORT_NUMBER_RANGE *array,
9854 DWORD *ranges);
9855
9856 HRESULT (STDMETHODCALLTYPE *SetUDPPortRanges)(
9857 IWMReaderNetworkConfig2 *This,
9858 WM_PORT_NUMBER_RANGE *array,
9859 DWORD ranges);
9860
9861 HRESULT (STDMETHODCALLTYPE *GetProxySettings)(
9862 IWMReaderNetworkConfig2 *This,
9863 const WCHAR *protocol,
9864 WMT_PROXY_SETTINGS *proxy);
9865
9866 HRESULT (STDMETHODCALLTYPE *SetProxySettings)(
9867 IWMReaderNetworkConfig2 *This,
9868 LPCWSTR protocol,
9869 WMT_PROXY_SETTINGS proxy);
9870
9871 HRESULT (STDMETHODCALLTYPE *GetProxyHostName)(
9872 IWMReaderNetworkConfig2 *This,
9873 const WCHAR *protocol,
9874 WCHAR *hostname,
9875 DWORD *size);
9876
9877 HRESULT (STDMETHODCALLTYPE *SetProxyHostName)(
9878 IWMReaderNetworkConfig2 *This,
9879 const WCHAR *protocol,
9880 const WCHAR *hostname);
9881
9882 HRESULT (STDMETHODCALLTYPE *GetProxyPort)(
9883 IWMReaderNetworkConfig2 *This,
9884 const WCHAR *protocol,
9885 DWORD *port);
9886
9887 HRESULT (STDMETHODCALLTYPE *SetProxyPort)(
9888 IWMReaderNetworkConfig2 *This,
9889 const WCHAR *protocol,
9890 DWORD port);
9891
9892 HRESULT (STDMETHODCALLTYPE *GetProxyExceptionList)(
9893 IWMReaderNetworkConfig2 *This,
9894 const WCHAR *protocol,
9895 WCHAR *exceptions,
9896 DWORD *count);
9897
9898 HRESULT (STDMETHODCALLTYPE *SetProxyExceptionList)(
9899 IWMReaderNetworkConfig2 *This,
9900 const WCHAR *protocol,
9901 const WCHAR *exceptions);
9902
9903 HRESULT (STDMETHODCALLTYPE *GetProxyBypassForLocal)(
9904 IWMReaderNetworkConfig2 *This,
9905 const WCHAR *protocol,
9906 WINBOOL *bypass);
9907
9908 HRESULT (STDMETHODCALLTYPE *SetProxyBypassForLocal)(
9909 IWMReaderNetworkConfig2 *This,
9910 const WCHAR *protocol,
9911 WINBOOL bypass);
9912
9913 HRESULT (STDMETHODCALLTYPE *GetForceRerunAutoProxyDetection)(
9914 IWMReaderNetworkConfig2 *This,
9915 WINBOOL *detection);
9916
9917 HRESULT (STDMETHODCALLTYPE *SetForceRerunAutoProxyDetection)(
9918 IWMReaderNetworkConfig2 *This,
9919 WINBOOL detection);
9920
9921 HRESULT (STDMETHODCALLTYPE *GetEnableMulticast)(
9922 IWMReaderNetworkConfig2 *This,
9923 WINBOOL *multicast);
9924
9925 HRESULT (STDMETHODCALLTYPE *SetEnableMulticast)(
9926 IWMReaderNetworkConfig2 *This,
9927 WINBOOL multicast);
9928
9929 HRESULT (STDMETHODCALLTYPE *GetEnableHTTP)(
9930 IWMReaderNetworkConfig2 *This,
9931 WINBOOL *enable);
9932
9933 HRESULT (STDMETHODCALLTYPE *SetEnableHTTP)(
9934 IWMReaderNetworkConfig2 *This,
9935 WINBOOL enable);
9936
9937 HRESULT (STDMETHODCALLTYPE *GetEnableUDP)(
9938 IWMReaderNetworkConfig2 *This,
9939 WINBOOL *enable);
9940
9941 HRESULT (STDMETHODCALLTYPE *SetEnableUDP)(
9942 IWMReaderNetworkConfig2 *This,
9943 WINBOOL enable);
9944
9945 HRESULT (STDMETHODCALLTYPE *GetEnableTCP)(
9946 IWMReaderNetworkConfig2 *This,
9947 WINBOOL *enable);
9948
9949 HRESULT (STDMETHODCALLTYPE *SetEnableTCP)(
9950 IWMReaderNetworkConfig2 *This,
9951 WINBOOL enable);
9952
9953 HRESULT (STDMETHODCALLTYPE *ResetProtocolRollover)(
9954 IWMReaderNetworkConfig2 *This);
9955
9956 HRESULT (STDMETHODCALLTYPE *GetConnectionBandwidth)(
9957 IWMReaderNetworkConfig2 *This,
9958 DWORD *bandwidth);
9959
9960 HRESULT (STDMETHODCALLTYPE *SetConnectionBandwidth)(
9961 IWMReaderNetworkConfig2 *This,
9962 DWORD bandwidth);
9963
9964 HRESULT (STDMETHODCALLTYPE *GetNumProtocolsSupported)(
9965 IWMReaderNetworkConfig2 *This,
9966 DWORD *protocols);
9967
9968 HRESULT (STDMETHODCALLTYPE *GetSupportedProtocolName)(
9969 IWMReaderNetworkConfig2 *This,
9970 DWORD protocol_num,
9971 WCHAR *protocol,
9972 DWORD *size);
9973
9974 HRESULT (STDMETHODCALLTYPE *AddLoggingUrl)(
9975 IWMReaderNetworkConfig2 *This,
9976 const WCHAR *url);
9977
9978 HRESULT (STDMETHODCALLTYPE *GetLoggingUrl)(
9979 IWMReaderNetworkConfig2 *This,
9980 DWORD index,
9981 WCHAR *url,
9982 DWORD *size);
9983
9984 HRESULT (STDMETHODCALLTYPE *GetLoggingUrlCount)(
9985 IWMReaderNetworkConfig2 *This,
9986 DWORD *count);
9987
9988 HRESULT (STDMETHODCALLTYPE *ResetLoggingUrlList)(
9989 IWMReaderNetworkConfig2 *This);
9990
9991 /*** IWMReaderNetworkConfig2 methods ***/
9992 HRESULT (STDMETHODCALLTYPE *GetEnableContentCaching)(
9993 IWMReaderNetworkConfig2 *This,
9994 WINBOOL *enable);
9995
9996 HRESULT (STDMETHODCALLTYPE *SetEnableContentCaching)(
9997 IWMReaderNetworkConfig2 *This,
9998 WINBOOL enable);
9999
10000 HRESULT (STDMETHODCALLTYPE *GetEnableFastCache)(
10001 IWMReaderNetworkConfig2 *This,
10002 WINBOOL *enable);
10003
10004 HRESULT (STDMETHODCALLTYPE *SetEnableFastCache)(
10005 IWMReaderNetworkConfig2 *This,
10006 WINBOOL enable);
10007
10008 HRESULT (STDMETHODCALLTYPE *GetAcceleratedStreamingDuration)(
10009 IWMReaderNetworkConfig2 *This,
10010 QWORD *duration);
10011
10012 HRESULT (STDMETHODCALLTYPE *SetAcceleratedStreamingDuration)(
10013 IWMReaderNetworkConfig2 *This,
10014 QWORD duration);
10015
10016 HRESULT (STDMETHODCALLTYPE *GetAutoReconnectLimit)(
10017 IWMReaderNetworkConfig2 *This,
10018 DWORD *limit);
10019
10020 HRESULT (STDMETHODCALLTYPE *SetAutoReconnectLimit)(
10021 IWMReaderNetworkConfig2 *This,
10022 DWORD limit);
10023
10024 HRESULT (STDMETHODCALLTYPE *GetEnableResends)(
10025 IWMReaderNetworkConfig2 *This,
10026 WINBOOL *enable);
10027
10028 HRESULT (STDMETHODCALLTYPE *SetEnableResends)(
10029 IWMReaderNetworkConfig2 *This,
10030 WINBOOL enable);
10031
10032 HRESULT (STDMETHODCALLTYPE *GetEnableThinning)(
10033 IWMReaderNetworkConfig2 *This,
10034 WINBOOL *enable);
10035
10036 HRESULT (STDMETHODCALLTYPE *SetEnableThinning)(
10037 IWMReaderNetworkConfig2 *This,
10038 WINBOOL enable);
10039
10040 HRESULT (STDMETHODCALLTYPE *GetMaxNetPacketSize)(
10041 IWMReaderNetworkConfig2 *This,
10042 DWORD *packet_size);
10043
10044 END_INTERFACE
10045} IWMReaderNetworkConfig2Vtbl;
10046
10047interface IWMReaderNetworkConfig2 {
10048 CONST_VTBL IWMReaderNetworkConfig2Vtbl* lpVtbl;
10049};
10050
10051#ifdef COBJMACROS
10052#ifndef WIDL_C_INLINE_WRAPPERS
10053/*** IUnknown methods ***/
10054#define IWMReaderNetworkConfig2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10055#define IWMReaderNetworkConfig2_AddRef(This) (This)->lpVtbl->AddRef(This)
10056#define IWMReaderNetworkConfig2_Release(This) (This)->lpVtbl->Release(This)
10057/*** IWMReaderNetworkConfig methods ***/
10058#define IWMReaderNetworkConfig2_GetBufferingTime(This,buffering_time) (This)->lpVtbl->GetBufferingTime(This,buffering_time)
10059#define IWMReaderNetworkConfig2_SetBufferingTime(This,buffering_time) (This)->lpVtbl->SetBufferingTime(This,buffering_time)
10060#define IWMReaderNetworkConfig2_GetUDPPortRanges(This,array,ranges) (This)->lpVtbl->GetUDPPortRanges(This,array,ranges)
10061#define IWMReaderNetworkConfig2_SetUDPPortRanges(This,array,ranges) (This)->lpVtbl->SetUDPPortRanges(This,array,ranges)
10062#define IWMReaderNetworkConfig2_GetProxySettings(This,protocol,proxy) (This)->lpVtbl->GetProxySettings(This,protocol,proxy)
10063#define IWMReaderNetworkConfig2_SetProxySettings(This,protocol,proxy) (This)->lpVtbl->SetProxySettings(This,protocol,proxy)
10064#define IWMReaderNetworkConfig2_GetProxyHostName(This,protocol,hostname,size) (This)->lpVtbl->GetProxyHostName(This,protocol,hostname,size)
10065#define IWMReaderNetworkConfig2_SetProxyHostName(This,protocol,hostname) (This)->lpVtbl->SetProxyHostName(This,protocol,hostname)
10066#define IWMReaderNetworkConfig2_GetProxyPort(This,protocol,port) (This)->lpVtbl->GetProxyPort(This,protocol,port)
10067#define IWMReaderNetworkConfig2_SetProxyPort(This,protocol,port) (This)->lpVtbl->SetProxyPort(This,protocol,port)
10068#define IWMReaderNetworkConfig2_GetProxyExceptionList(This,protocol,exceptions,count) (This)->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count)
10069#define IWMReaderNetworkConfig2_SetProxyExceptionList(This,protocol,exceptions) (This)->lpVtbl->SetProxyExceptionList(This,protocol,exceptions)
10070#define IWMReaderNetworkConfig2_GetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass)
10071#define IWMReaderNetworkConfig2_SetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass)
10072#define IWMReaderNetworkConfig2_GetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->GetForceRerunAutoProxyDetection(This,detection)
10073#define IWMReaderNetworkConfig2_SetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->SetForceRerunAutoProxyDetection(This,detection)
10074#define IWMReaderNetworkConfig2_GetEnableMulticast(This,multicast) (This)->lpVtbl->GetEnableMulticast(This,multicast)
10075#define IWMReaderNetworkConfig2_SetEnableMulticast(This,multicast) (This)->lpVtbl->SetEnableMulticast(This,multicast)
10076#define IWMReaderNetworkConfig2_GetEnableHTTP(This,enable) (This)->lpVtbl->GetEnableHTTP(This,enable)
10077#define IWMReaderNetworkConfig2_SetEnableHTTP(This,enable) (This)->lpVtbl->SetEnableHTTP(This,enable)
10078#define IWMReaderNetworkConfig2_GetEnableUDP(This,enable) (This)->lpVtbl->GetEnableUDP(This,enable)
10079#define IWMReaderNetworkConfig2_SetEnableUDP(This,enable) (This)->lpVtbl->SetEnableUDP(This,enable)
10080#define IWMReaderNetworkConfig2_GetEnableTCP(This,enable) (This)->lpVtbl->GetEnableTCP(This,enable)
10081#define IWMReaderNetworkConfig2_SetEnableTCP(This,enable) (This)->lpVtbl->SetEnableTCP(This,enable)
10082#define IWMReaderNetworkConfig2_ResetProtocolRollover(This) (This)->lpVtbl->ResetProtocolRollover(This)
10083#define IWMReaderNetworkConfig2_GetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->GetConnectionBandwidth(This,bandwidth)
10084#define IWMReaderNetworkConfig2_SetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->SetConnectionBandwidth(This,bandwidth)
10085#define IWMReaderNetworkConfig2_GetNumProtocolsSupported(This,protocols) (This)->lpVtbl->GetNumProtocolsSupported(This,protocols)
10086#define IWMReaderNetworkConfig2_GetSupportedProtocolName(This,protocol_num,protocol,size) (This)->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size)
10087#define IWMReaderNetworkConfig2_AddLoggingUrl(This,url) (This)->lpVtbl->AddLoggingUrl(This,url)
10088#define IWMReaderNetworkConfig2_GetLoggingUrl(This,index,url,size) (This)->lpVtbl->GetLoggingUrl(This,index,url,size)
10089#define IWMReaderNetworkConfig2_GetLoggingUrlCount(This,count) (This)->lpVtbl->GetLoggingUrlCount(This,count)
10090#define IWMReaderNetworkConfig2_ResetLoggingUrlList(This) (This)->lpVtbl->ResetLoggingUrlList(This)
10091/*** IWMReaderNetworkConfig2 methods ***/
10092#define IWMReaderNetworkConfig2_GetEnableContentCaching(This,enable) (This)->lpVtbl->GetEnableContentCaching(This,enable)
10093#define IWMReaderNetworkConfig2_SetEnableContentCaching(This,enable) (This)->lpVtbl->SetEnableContentCaching(This,enable)
10094#define IWMReaderNetworkConfig2_GetEnableFastCache(This,enable) (This)->lpVtbl->GetEnableFastCache(This,enable)
10095#define IWMReaderNetworkConfig2_SetEnableFastCache(This,enable) (This)->lpVtbl->SetEnableFastCache(This,enable)
10096#define IWMReaderNetworkConfig2_GetAcceleratedStreamingDuration(This,duration) (This)->lpVtbl->GetAcceleratedStreamingDuration(This,duration)
10097#define IWMReaderNetworkConfig2_SetAcceleratedStreamingDuration(This,duration) (This)->lpVtbl->SetAcceleratedStreamingDuration(This,duration)
10098#define IWMReaderNetworkConfig2_GetAutoReconnectLimit(This,limit) (This)->lpVtbl->GetAutoReconnectLimit(This,limit)
10099#define IWMReaderNetworkConfig2_SetAutoReconnectLimit(This,limit) (This)->lpVtbl->SetAutoReconnectLimit(This,limit)
10100#define IWMReaderNetworkConfig2_GetEnableResends(This,enable) (This)->lpVtbl->GetEnableResends(This,enable)
10101#define IWMReaderNetworkConfig2_SetEnableResends(This,enable) (This)->lpVtbl->SetEnableResends(This,enable)
10102#define IWMReaderNetworkConfig2_GetEnableThinning(This,enable) (This)->lpVtbl->GetEnableThinning(This,enable)
10103#define IWMReaderNetworkConfig2_SetEnableThinning(This,enable) (This)->lpVtbl->SetEnableThinning(This,enable)
10104#define IWMReaderNetworkConfig2_GetMaxNetPacketSize(This,packet_size) (This)->lpVtbl->GetMaxNetPacketSize(This,packet_size)
10105#else
10106/*** IUnknown methods ***/
10107static inline HRESULT IWMReaderNetworkConfig2_QueryInterface(IWMReaderNetworkConfig2* This,REFIID riid,void **ppvObject) {
10108 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10109}
10110static inline ULONG IWMReaderNetworkConfig2_AddRef(IWMReaderNetworkConfig2* This) {
10111 return This->lpVtbl->AddRef(This);
10112}
10113static inline ULONG IWMReaderNetworkConfig2_Release(IWMReaderNetworkConfig2* This) {
10114 return This->lpVtbl->Release(This);
10115}
10116/*** IWMReaderNetworkConfig methods ***/
10117static inline HRESULT IWMReaderNetworkConfig2_GetBufferingTime(IWMReaderNetworkConfig2* This,QWORD *buffering_time) {
10118 return This->lpVtbl->GetBufferingTime(This,buffering_time);
10119}
10120static inline HRESULT IWMReaderNetworkConfig2_SetBufferingTime(IWMReaderNetworkConfig2* This,QWORD buffering_time) {
10121 return This->lpVtbl->SetBufferingTime(This,buffering_time);
10122}
10123static inline HRESULT IWMReaderNetworkConfig2_GetUDPPortRanges(IWMReaderNetworkConfig2* This,WM_PORT_NUMBER_RANGE *array,DWORD *ranges) {
10124 return This->lpVtbl->GetUDPPortRanges(This,array,ranges);
10125}
10126static inline HRESULT IWMReaderNetworkConfig2_SetUDPPortRanges(IWMReaderNetworkConfig2* This,WM_PORT_NUMBER_RANGE *array,DWORD ranges) {
10127 return This->lpVtbl->SetUDPPortRanges(This,array,ranges);
10128}
10129static inline HRESULT IWMReaderNetworkConfig2_GetProxySettings(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WMT_PROXY_SETTINGS *proxy) {
10130 return This->lpVtbl->GetProxySettings(This,protocol,proxy);
10131}
10132static inline HRESULT IWMReaderNetworkConfig2_SetProxySettings(IWMReaderNetworkConfig2* This,LPCWSTR protocol,WMT_PROXY_SETTINGS proxy) {
10133 return This->lpVtbl->SetProxySettings(This,protocol,proxy);
10134}
10135static inline HRESULT IWMReaderNetworkConfig2_GetProxyHostName(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WCHAR *hostname,DWORD *size) {
10136 return This->lpVtbl->GetProxyHostName(This,protocol,hostname,size);
10137}
10138static inline HRESULT IWMReaderNetworkConfig2_SetProxyHostName(IWMReaderNetworkConfig2* This,const WCHAR *protocol,const WCHAR *hostname) {
10139 return This->lpVtbl->SetProxyHostName(This,protocol,hostname);
10140}
10141static inline HRESULT IWMReaderNetworkConfig2_GetProxyPort(IWMReaderNetworkConfig2* This,const WCHAR *protocol,DWORD *port) {
10142 return This->lpVtbl->GetProxyPort(This,protocol,port);
10143}
10144static inline HRESULT IWMReaderNetworkConfig2_SetProxyPort(IWMReaderNetworkConfig2* This,const WCHAR *protocol,DWORD port) {
10145 return This->lpVtbl->SetProxyPort(This,protocol,port);
10146}
10147static inline HRESULT IWMReaderNetworkConfig2_GetProxyExceptionList(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WCHAR *exceptions,DWORD *count) {
10148 return This->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count);
10149}
10150static inline HRESULT IWMReaderNetworkConfig2_SetProxyExceptionList(IWMReaderNetworkConfig2* This,const WCHAR *protocol,const WCHAR *exceptions) {
10151 return This->lpVtbl->SetProxyExceptionList(This,protocol,exceptions);
10152}
10153static inline HRESULT IWMReaderNetworkConfig2_GetProxyBypassForLocal(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WINBOOL *bypass) {
10154 return This->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass);
10155}
10156static inline HRESULT IWMReaderNetworkConfig2_SetProxyBypassForLocal(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WINBOOL bypass) {
10157 return This->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass);
10158}
10159static inline HRESULT IWMReaderNetworkConfig2_GetForceRerunAutoProxyDetection(IWMReaderNetworkConfig2* This,WINBOOL *detection) {
10160 return This->lpVtbl->GetForceRerunAutoProxyDetection(This,detection);
10161}
10162static inline HRESULT IWMReaderNetworkConfig2_SetForceRerunAutoProxyDetection(IWMReaderNetworkConfig2* This,WINBOOL detection) {
10163 return This->lpVtbl->SetForceRerunAutoProxyDetection(This,detection);
10164}
10165static inline HRESULT IWMReaderNetworkConfig2_GetEnableMulticast(IWMReaderNetworkConfig2* This,WINBOOL *multicast) {
10166 return This->lpVtbl->GetEnableMulticast(This,multicast);
10167}
10168static inline HRESULT IWMReaderNetworkConfig2_SetEnableMulticast(IWMReaderNetworkConfig2* This,WINBOOL multicast) {
10169 return This->lpVtbl->SetEnableMulticast(This,multicast);
10170}
10171static inline HRESULT IWMReaderNetworkConfig2_GetEnableHTTP(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10172 return This->lpVtbl->GetEnableHTTP(This,enable);
10173}
10174static inline HRESULT IWMReaderNetworkConfig2_SetEnableHTTP(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10175 return This->lpVtbl->SetEnableHTTP(This,enable);
10176}
10177static inline HRESULT IWMReaderNetworkConfig2_GetEnableUDP(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10178 return This->lpVtbl->GetEnableUDP(This,enable);
10179}
10180static inline HRESULT IWMReaderNetworkConfig2_SetEnableUDP(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10181 return This->lpVtbl->SetEnableUDP(This,enable);
10182}
10183static inline HRESULT IWMReaderNetworkConfig2_GetEnableTCP(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10184 return This->lpVtbl->GetEnableTCP(This,enable);
10185}
10186static inline HRESULT IWMReaderNetworkConfig2_SetEnableTCP(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10187 return This->lpVtbl->SetEnableTCP(This,enable);
10188}
10189static inline HRESULT IWMReaderNetworkConfig2_ResetProtocolRollover(IWMReaderNetworkConfig2* This) {
10190 return This->lpVtbl->ResetProtocolRollover(This);
10191}
10192static inline HRESULT IWMReaderNetworkConfig2_GetConnectionBandwidth(IWMReaderNetworkConfig2* This,DWORD *bandwidth) {
10193 return This->lpVtbl->GetConnectionBandwidth(This,bandwidth);
10194}
10195static inline HRESULT IWMReaderNetworkConfig2_SetConnectionBandwidth(IWMReaderNetworkConfig2* This,DWORD bandwidth) {
10196 return This->lpVtbl->SetConnectionBandwidth(This,bandwidth);
10197}
10198static inline HRESULT IWMReaderNetworkConfig2_GetNumProtocolsSupported(IWMReaderNetworkConfig2* This,DWORD *protocols) {
10199 return This->lpVtbl->GetNumProtocolsSupported(This,protocols);
10200}
10201static inline HRESULT IWMReaderNetworkConfig2_GetSupportedProtocolName(IWMReaderNetworkConfig2* This,DWORD protocol_num,WCHAR *protocol,DWORD *size) {
10202 return This->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size);
10203}
10204static inline HRESULT IWMReaderNetworkConfig2_AddLoggingUrl(IWMReaderNetworkConfig2* This,const WCHAR *url) {
10205 return This->lpVtbl->AddLoggingUrl(This,url);
10206}
10207static inline HRESULT IWMReaderNetworkConfig2_GetLoggingUrl(IWMReaderNetworkConfig2* This,DWORD index,WCHAR *url,DWORD *size) {
10208 return This->lpVtbl->GetLoggingUrl(This,index,url,size);
10209}
10210static inline HRESULT IWMReaderNetworkConfig2_GetLoggingUrlCount(IWMReaderNetworkConfig2* This,DWORD *count) {
10211 return This->lpVtbl->GetLoggingUrlCount(This,count);
10212}
10213static inline HRESULT IWMReaderNetworkConfig2_ResetLoggingUrlList(IWMReaderNetworkConfig2* This) {
10214 return This->lpVtbl->ResetLoggingUrlList(This);
10215}
10216/*** IWMReaderNetworkConfig2 methods ***/
10217static inline HRESULT IWMReaderNetworkConfig2_GetEnableContentCaching(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10218 return This->lpVtbl->GetEnableContentCaching(This,enable);
10219}
10220static inline HRESULT IWMReaderNetworkConfig2_SetEnableContentCaching(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10221 return This->lpVtbl->SetEnableContentCaching(This,enable);
10222}
10223static inline HRESULT IWMReaderNetworkConfig2_GetEnableFastCache(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10224 return This->lpVtbl->GetEnableFastCache(This,enable);
10225}
10226static inline HRESULT IWMReaderNetworkConfig2_SetEnableFastCache(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10227 return This->lpVtbl->SetEnableFastCache(This,enable);
10228}
10229static inline HRESULT IWMReaderNetworkConfig2_GetAcceleratedStreamingDuration(IWMReaderNetworkConfig2* This,QWORD *duration) {
10230 return This->lpVtbl->GetAcceleratedStreamingDuration(This,duration);
10231}
10232static inline HRESULT IWMReaderNetworkConfig2_SetAcceleratedStreamingDuration(IWMReaderNetworkConfig2* This,QWORD duration) {
10233 return This->lpVtbl->SetAcceleratedStreamingDuration(This,duration);
10234}
10235static inline HRESULT IWMReaderNetworkConfig2_GetAutoReconnectLimit(IWMReaderNetworkConfig2* This,DWORD *limit) {
10236 return This->lpVtbl->GetAutoReconnectLimit(This,limit);
10237}
10238static inline HRESULT IWMReaderNetworkConfig2_SetAutoReconnectLimit(IWMReaderNetworkConfig2* This,DWORD limit) {
10239 return This->lpVtbl->SetAutoReconnectLimit(This,limit);
10240}
10241static inline HRESULT IWMReaderNetworkConfig2_GetEnableResends(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10242 return This->lpVtbl->GetEnableResends(This,enable);
10243}
10244static inline HRESULT IWMReaderNetworkConfig2_SetEnableResends(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10245 return This->lpVtbl->SetEnableResends(This,enable);
10246}
10247static inline HRESULT IWMReaderNetworkConfig2_GetEnableThinning(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10248 return This->lpVtbl->GetEnableThinning(This,enable);
10249}
10250static inline HRESULT IWMReaderNetworkConfig2_SetEnableThinning(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10251 return This->lpVtbl->SetEnableThinning(This,enable);
10252}
10253static inline HRESULT IWMReaderNetworkConfig2_GetMaxNetPacketSize(IWMReaderNetworkConfig2* This,DWORD *packet_size) {
10254 return This->lpVtbl->GetMaxNetPacketSize(This,packet_size);
10255}
10256#endif
10257#endif
10258
10259#endif
10260
10261
10262#endif /* __IWMReaderNetworkConfig2_INTERFACE_DEFINED__ */
10263
10264/*****************************************************************************
10265 * IWMReaderStreamClock interface
10266 */
10267#ifndef __IWMReaderStreamClock_INTERFACE_DEFINED__
10268#define __IWMReaderStreamClock_INTERFACE_DEFINED__
10269
10270DEFINE_GUID(IID_IWMReaderStreamClock, 0x96406bed, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
10271#if defined(__cplusplus) && !defined(CINTERFACE)
10272MIDL_INTERFACE("96406bed-2b2b-11d3-b36b-00c04f6108ff")
10273IWMReaderStreamClock : public IUnknown
10274{
10275 virtual HRESULT STDMETHODCALLTYPE GetTime(
10276 QWORD *now) = 0;
10277
10278 virtual HRESULT STDMETHODCALLTYPE SetTimer(
10279 QWORD when,
10280 void *param,
10281 DWORD *id) = 0;
10282
10283 virtual HRESULT STDMETHODCALLTYPE KillTimer(
10284 DWORD id) = 0;
10285
10286};
10287#ifdef __CRT_UUID_DECL
10288__CRT_UUID_DECL(IWMReaderStreamClock, 0x96406bed, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
10289#endif
10290#else
10291typedef struct IWMReaderStreamClockVtbl {
10292 BEGIN_INTERFACE
10293
10294 /*** IUnknown methods ***/
10295 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10296 IWMReaderStreamClock *This,
10297 REFIID riid,
10298 void **ppvObject);
10299
10300 ULONG (STDMETHODCALLTYPE *AddRef)(
10301 IWMReaderStreamClock *This);
10302
10303 ULONG (STDMETHODCALLTYPE *Release)(
10304 IWMReaderStreamClock *This);
10305
10306 /*** IWMReaderStreamClock methods ***/
10307 HRESULT (STDMETHODCALLTYPE *GetTime)(
10308 IWMReaderStreamClock *This,
10309 QWORD *now);
10310
10311 HRESULT (STDMETHODCALLTYPE *SetTimer)(
10312 IWMReaderStreamClock *This,
10313 QWORD when,
10314 void *param,
10315 DWORD *id);
10316
10317 HRESULT (STDMETHODCALLTYPE *KillTimer)(
10318 IWMReaderStreamClock *This,
10319 DWORD id);
10320
10321 END_INTERFACE
10322} IWMReaderStreamClockVtbl;
10323
10324interface IWMReaderStreamClock {
10325 CONST_VTBL IWMReaderStreamClockVtbl* lpVtbl;
10326};
10327
10328#ifdef COBJMACROS
10329#ifndef WIDL_C_INLINE_WRAPPERS
10330/*** IUnknown methods ***/
10331#define IWMReaderStreamClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10332#define IWMReaderStreamClock_AddRef(This) (This)->lpVtbl->AddRef(This)
10333#define IWMReaderStreamClock_Release(This) (This)->lpVtbl->Release(This)
10334/*** IWMReaderStreamClock methods ***/
10335#define IWMReaderStreamClock_GetTime(This,now) (This)->lpVtbl->GetTime(This,now)
10336#define IWMReaderStreamClock_SetTimer(This,when,param,id) (This)->lpVtbl->SetTimer(This,when,param,id)
10337#define IWMReaderStreamClock_KillTimer(This,id) (This)->lpVtbl->KillTimer(This,id)
10338#else
10339/*** IUnknown methods ***/
10340static inline HRESULT IWMReaderStreamClock_QueryInterface(IWMReaderStreamClock* This,REFIID riid,void **ppvObject) {
10341 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10342}
10343static inline ULONG IWMReaderStreamClock_AddRef(IWMReaderStreamClock* This) {
10344 return This->lpVtbl->AddRef(This);
10345}
10346static inline ULONG IWMReaderStreamClock_Release(IWMReaderStreamClock* This) {
10347 return This->lpVtbl->Release(This);
10348}
10349/*** IWMReaderStreamClock methods ***/
10350static inline HRESULT IWMReaderStreamClock_GetTime(IWMReaderStreamClock* This,QWORD *now) {
10351 return This->lpVtbl->GetTime(This,now);
10352}
10353static inline HRESULT IWMReaderStreamClock_SetTimer(IWMReaderStreamClock* This,QWORD when,void *param,DWORD *id) {
10354 return This->lpVtbl->SetTimer(This,when,param,id);
10355}
10356static inline HRESULT IWMReaderStreamClock_KillTimer(IWMReaderStreamClock* This,DWORD id) {
10357 return This->lpVtbl->KillTimer(This,id);
10358}
10359#endif
10360#endif
10361
10362#endif
10363
10364
10365#endif /* __IWMReaderStreamClock_INTERFACE_DEFINED__ */
10366
10367/*****************************************************************************
10368 * IWMPacketSize interface
10369 */
10370#ifndef __IWMPacketSize_INTERFACE_DEFINED__
10371#define __IWMPacketSize_INTERFACE_DEFINED__
10372
10373DEFINE_GUID(IID_IWMPacketSize, 0xcdfb97ab, 0x188f, 0x40b3, 0xb6,0x43, 0x5b,0x79,0x03,0x97,0x5c,0x59);
10374#if defined(__cplusplus) && !defined(CINTERFACE)
10375MIDL_INTERFACE("cdfb97ab-188f-40b3-b643-5b7903975c59")
10376IWMPacketSize : public IUnknown
10377{
10378 virtual HRESULT STDMETHODCALLTYPE GetMaxPacketSize(
10379 DWORD *size) = 0;
10380
10381 virtual HRESULT STDMETHODCALLTYPE SetMaxPacketSize(
10382 DWORD size) = 0;
10383
10384};
10385#ifdef __CRT_UUID_DECL
10386__CRT_UUID_DECL(IWMPacketSize, 0xcdfb97ab, 0x188f, 0x40b3, 0xb6,0x43, 0x5b,0x79,0x03,0x97,0x5c,0x59)
10387#endif
10388#else
10389typedef struct IWMPacketSizeVtbl {
10390 BEGIN_INTERFACE
10391
10392 /*** IUnknown methods ***/
10393 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10394 IWMPacketSize *This,
10395 REFIID riid,
10396 void **ppvObject);
10397
10398 ULONG (STDMETHODCALLTYPE *AddRef)(
10399 IWMPacketSize *This);
10400
10401 ULONG (STDMETHODCALLTYPE *Release)(
10402 IWMPacketSize *This);
10403
10404 /*** IWMPacketSize methods ***/
10405 HRESULT (STDMETHODCALLTYPE *GetMaxPacketSize)(
10406 IWMPacketSize *This,
10407 DWORD *size);
10408
10409 HRESULT (STDMETHODCALLTYPE *SetMaxPacketSize)(
10410 IWMPacketSize *This,
10411 DWORD size);
10412
10413 END_INTERFACE
10414} IWMPacketSizeVtbl;
10415
10416interface IWMPacketSize {
10417 CONST_VTBL IWMPacketSizeVtbl* lpVtbl;
10418};
10419
10420#ifdef COBJMACROS
10421#ifndef WIDL_C_INLINE_WRAPPERS
10422/*** IUnknown methods ***/
10423#define IWMPacketSize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10424#define IWMPacketSize_AddRef(This) (This)->lpVtbl->AddRef(This)
10425#define IWMPacketSize_Release(This) (This)->lpVtbl->Release(This)
10426/*** IWMPacketSize methods ***/
10427#define IWMPacketSize_GetMaxPacketSize(This,size) (This)->lpVtbl->GetMaxPacketSize(This,size)
10428#define IWMPacketSize_SetMaxPacketSize(This,size) (This)->lpVtbl->SetMaxPacketSize(This,size)
10429#else
10430/*** IUnknown methods ***/
10431static inline HRESULT IWMPacketSize_QueryInterface(IWMPacketSize* This,REFIID riid,void **ppvObject) {
10432 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10433}
10434static inline ULONG IWMPacketSize_AddRef(IWMPacketSize* This) {
10435 return This->lpVtbl->AddRef(This);
10436}
10437static inline ULONG IWMPacketSize_Release(IWMPacketSize* This) {
10438 return This->lpVtbl->Release(This);
10439}
10440/*** IWMPacketSize methods ***/
10441static inline HRESULT IWMPacketSize_GetMaxPacketSize(IWMPacketSize* This,DWORD *size) {
10442 return This->lpVtbl->GetMaxPacketSize(This,size);
10443}
10444static inline HRESULT IWMPacketSize_SetMaxPacketSize(IWMPacketSize* This,DWORD size) {
10445 return This->lpVtbl->SetMaxPacketSize(This,size);
10446}
10447#endif
10448#endif
10449
10450#endif
10451
10452
10453#endif /* __IWMPacketSize_INTERFACE_DEFINED__ */
10454
10455/*****************************************************************************
10456 * IWMPacketSize2 interface
10457 */
10458#ifndef __IWMPacketSize2_INTERFACE_DEFINED__
10459#define __IWMPacketSize2_INTERFACE_DEFINED__
10460
10461DEFINE_GUID(IID_IWMPacketSize2, 0x8bfc2b9e, 0xb646, 0x4233, 0xa8,0x77, 0x1c,0x6a,0x07,0x96,0x69,0xdc);
10462#if defined(__cplusplus) && !defined(CINTERFACE)
10463MIDL_INTERFACE("8bfc2b9e-b646-4233-a877-1c6a079669dc")
10464IWMPacketSize2 : public IWMPacketSize
10465{
10466 virtual HRESULT STDMETHODCALLTYPE GetMinPacketSize(
10467 DWORD *size) = 0;
10468
10469 virtual HRESULT STDMETHODCALLTYPE SetMinPacketSize(
10470 DWORD size) = 0;
10471
10472};
10473#ifdef __CRT_UUID_DECL
10474__CRT_UUID_DECL(IWMPacketSize2, 0x8bfc2b9e, 0xb646, 0x4233, 0xa8,0x77, 0x1c,0x6a,0x07,0x96,0x69,0xdc)
10475#endif
10476#else
10477typedef struct IWMPacketSize2Vtbl {
10478 BEGIN_INTERFACE
10479
10480 /*** IUnknown methods ***/
10481 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10482 IWMPacketSize2 *This,
10483 REFIID riid,
10484 void **ppvObject);
10485
10486 ULONG (STDMETHODCALLTYPE *AddRef)(
10487 IWMPacketSize2 *This);
10488
10489 ULONG (STDMETHODCALLTYPE *Release)(
10490 IWMPacketSize2 *This);
10491
10492 /*** IWMPacketSize methods ***/
10493 HRESULT (STDMETHODCALLTYPE *GetMaxPacketSize)(
10494 IWMPacketSize2 *This,
10495 DWORD *size);
10496
10497 HRESULT (STDMETHODCALLTYPE *SetMaxPacketSize)(
10498 IWMPacketSize2 *This,
10499 DWORD size);
10500
10501 /*** IWMPacketSize2 methods ***/
10502 HRESULT (STDMETHODCALLTYPE *GetMinPacketSize)(
10503 IWMPacketSize2 *This,
10504 DWORD *size);
10505
10506 HRESULT (STDMETHODCALLTYPE *SetMinPacketSize)(
10507 IWMPacketSize2 *This,
10508 DWORD size);
10509
10510 END_INTERFACE
10511} IWMPacketSize2Vtbl;
10512
10513interface IWMPacketSize2 {
10514 CONST_VTBL IWMPacketSize2Vtbl* lpVtbl;
10515};
10516
10517#ifdef COBJMACROS
10518#ifndef WIDL_C_INLINE_WRAPPERS
10519/*** IUnknown methods ***/
10520#define IWMPacketSize2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10521#define IWMPacketSize2_AddRef(This) (This)->lpVtbl->AddRef(This)
10522#define IWMPacketSize2_Release(This) (This)->lpVtbl->Release(This)
10523/*** IWMPacketSize methods ***/
10524#define IWMPacketSize2_GetMaxPacketSize(This,size) (This)->lpVtbl->GetMaxPacketSize(This,size)
10525#define IWMPacketSize2_SetMaxPacketSize(This,size) (This)->lpVtbl->SetMaxPacketSize(This,size)
10526/*** IWMPacketSize2 methods ***/
10527#define IWMPacketSize2_GetMinPacketSize(This,size) (This)->lpVtbl->GetMinPacketSize(This,size)
10528#define IWMPacketSize2_SetMinPacketSize(This,size) (This)->lpVtbl->SetMinPacketSize(This,size)
10529#else
10530/*** IUnknown methods ***/
10531static inline HRESULT IWMPacketSize2_QueryInterface(IWMPacketSize2* This,REFIID riid,void **ppvObject) {
10532 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10533}
10534static inline ULONG IWMPacketSize2_AddRef(IWMPacketSize2* This) {
10535 return This->lpVtbl->AddRef(This);
10536}
10537static inline ULONG IWMPacketSize2_Release(IWMPacketSize2* This) {
10538 return This->lpVtbl->Release(This);
10539}
10540/*** IWMPacketSize methods ***/
10541static inline HRESULT IWMPacketSize2_GetMaxPacketSize(IWMPacketSize2* This,DWORD *size) {
10542 return This->lpVtbl->GetMaxPacketSize(This,size);
10543}
10544static inline HRESULT IWMPacketSize2_SetMaxPacketSize(IWMPacketSize2* This,DWORD size) {
10545 return This->lpVtbl->SetMaxPacketSize(This,size);
10546}
10547/*** IWMPacketSize2 methods ***/
10548static inline HRESULT IWMPacketSize2_GetMinPacketSize(IWMPacketSize2* This,DWORD *size) {
10549 return This->lpVtbl->GetMinPacketSize(This,size);
10550}
10551static inline HRESULT IWMPacketSize2_SetMinPacketSize(IWMPacketSize2* This,DWORD size) {
10552 return This->lpVtbl->SetMinPacketSize(This,size);
10553}
10554#endif
10555#endif
10556
10557#endif
10558
10559
10560#endif /* __IWMPacketSize2_INTERFACE_DEFINED__ */
10561
10562/*****************************************************************************
10563 * IWMDRMReader interface
10564 */
10565#ifndef __IWMDRMReader_INTERFACE_DEFINED__
10566#define __IWMDRMReader_INTERFACE_DEFINED__
10567
10568DEFINE_GUID(IID_IWMDRMReader, 0xd2827540, 0x3ee7, 0x432c, 0xb1,0x4c, 0xdc,0x17,0xf0,0x85,0xd3,0xb3);
10569#if defined(__cplusplus) && !defined(CINTERFACE)
10570MIDL_INTERFACE("d2827540-3ee7-432c-b14c-dc17f085d3b3")
10571IWMDRMReader : public IUnknown
10572{
10573 virtual HRESULT STDMETHODCALLTYPE AcquireLicense(
10574 DWORD flags) = 0;
10575
10576 virtual HRESULT STDMETHODCALLTYPE CancelLicenseAcquisition(
10577 ) = 0;
10578
10579 virtual HRESULT STDMETHODCALLTYPE Individualize(
10580 DWORD flags) = 0;
10581
10582 virtual HRESULT STDMETHODCALLTYPE CancelIndividualization(
10583 ) = 0;
10584
10585 virtual HRESULT STDMETHODCALLTYPE MonitorLicenseAcquisition(
10586 ) = 0;
10587
10588 virtual HRESULT STDMETHODCALLTYPE CancelMonitorLicenseAcquisition(
10589 ) = 0;
10590
10591 virtual HRESULT STDMETHODCALLTYPE SetDRMProperty(
10592 const WCHAR *name,
10593 WMT_ATTR_DATATYPE type,
10594 const BYTE *value,
10595 WORD length) = 0;
10596
10597 virtual HRESULT STDMETHODCALLTYPE GetDRMProperty(
10598 const WCHAR *name,
10599 WMT_ATTR_DATATYPE *type,
10600 BYTE *value,
10601 WORD *length) = 0;
10602
10603};
10604#ifdef __CRT_UUID_DECL
10605__CRT_UUID_DECL(IWMDRMReader, 0xd2827540, 0x3ee7, 0x432c, 0xb1,0x4c, 0xdc,0x17,0xf0,0x85,0xd3,0xb3)
10606#endif
10607#else
10608typedef struct IWMDRMReaderVtbl {
10609 BEGIN_INTERFACE
10610
10611 /*** IUnknown methods ***/
10612 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10613 IWMDRMReader *This,
10614 REFIID riid,
10615 void **ppvObject);
10616
10617 ULONG (STDMETHODCALLTYPE *AddRef)(
10618 IWMDRMReader *This);
10619
10620 ULONG (STDMETHODCALLTYPE *Release)(
10621 IWMDRMReader *This);
10622
10623 /*** IWMDRMReader methods ***/
10624 HRESULT (STDMETHODCALLTYPE *AcquireLicense)(
10625 IWMDRMReader *This,
10626 DWORD flags);
10627
10628 HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)(
10629 IWMDRMReader *This);
10630
10631 HRESULT (STDMETHODCALLTYPE *Individualize)(
10632 IWMDRMReader *This,
10633 DWORD flags);
10634
10635 HRESULT (STDMETHODCALLTYPE *CancelIndividualization)(
10636 IWMDRMReader *This);
10637
10638 HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)(
10639 IWMDRMReader *This);
10640
10641 HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)(
10642 IWMDRMReader *This);
10643
10644 HRESULT (STDMETHODCALLTYPE *SetDRMProperty)(
10645 IWMDRMReader *This,
10646 const WCHAR *name,
10647 WMT_ATTR_DATATYPE type,
10648 const BYTE *value,
10649 WORD length);
10650
10651 HRESULT (STDMETHODCALLTYPE *GetDRMProperty)(
10652 IWMDRMReader *This,
10653 const WCHAR *name,
10654 WMT_ATTR_DATATYPE *type,
10655 BYTE *value,
10656 WORD *length);
10657
10658 END_INTERFACE
10659} IWMDRMReaderVtbl;
10660
10661interface IWMDRMReader {
10662 CONST_VTBL IWMDRMReaderVtbl* lpVtbl;
10663};
10664
10665#ifdef COBJMACROS
10666#ifndef WIDL_C_INLINE_WRAPPERS
10667/*** IUnknown methods ***/
10668#define IWMDRMReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10669#define IWMDRMReader_AddRef(This) (This)->lpVtbl->AddRef(This)
10670#define IWMDRMReader_Release(This) (This)->lpVtbl->Release(This)
10671/*** IWMDRMReader methods ***/
10672#define IWMDRMReader_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags)
10673#define IWMDRMReader_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This)
10674#define IWMDRMReader_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags)
10675#define IWMDRMReader_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This)
10676#define IWMDRMReader_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This)
10677#define IWMDRMReader_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This)
10678#define IWMDRMReader_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length)
10679#define IWMDRMReader_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length)
10680#else
10681/*** IUnknown methods ***/
10682static inline HRESULT IWMDRMReader_QueryInterface(IWMDRMReader* This,REFIID riid,void **ppvObject) {
10683 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10684}
10685static inline ULONG IWMDRMReader_AddRef(IWMDRMReader* This) {
10686 return This->lpVtbl->AddRef(This);
10687}
10688static inline ULONG IWMDRMReader_Release(IWMDRMReader* This) {
10689 return This->lpVtbl->Release(This);
10690}
10691/*** IWMDRMReader methods ***/
10692static inline HRESULT IWMDRMReader_AcquireLicense(IWMDRMReader* This,DWORD flags) {
10693 return This->lpVtbl->AcquireLicense(This,flags);
10694}
10695static inline HRESULT IWMDRMReader_CancelLicenseAcquisition(IWMDRMReader* This) {
10696 return This->lpVtbl->CancelLicenseAcquisition(This);
10697}
10698static inline HRESULT IWMDRMReader_Individualize(IWMDRMReader* This,DWORD flags) {
10699 return This->lpVtbl->Individualize(This,flags);
10700}
10701static inline HRESULT IWMDRMReader_CancelIndividualization(IWMDRMReader* This) {
10702 return This->lpVtbl->CancelIndividualization(This);
10703}
10704static inline HRESULT IWMDRMReader_MonitorLicenseAcquisition(IWMDRMReader* This) {
10705 return This->lpVtbl->MonitorLicenseAcquisition(This);
10706}
10707static inline HRESULT IWMDRMReader_CancelMonitorLicenseAcquisition(IWMDRMReader* This) {
10708 return This->lpVtbl->CancelMonitorLicenseAcquisition(This);
10709}
10710static inline HRESULT IWMDRMReader_SetDRMProperty(IWMDRMReader* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
10711 return This->lpVtbl->SetDRMProperty(This,name,type,value,length);
10712}
10713static inline HRESULT IWMDRMReader_GetDRMProperty(IWMDRMReader* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
10714 return This->lpVtbl->GetDRMProperty(This,name,type,value,length);
10715}
10716#endif
10717#endif
10718
10719#endif
10720
10721
10722#endif /* __IWMDRMReader_INTERFACE_DEFINED__ */
10723
10724/*****************************************************************************
10725 * IWMDRMReader2 interface
10726 */
10727#ifndef __IWMDRMReader2_INTERFACE_DEFINED__
10728#define __IWMDRMReader2_INTERFACE_DEFINED__
10729
10730DEFINE_GUID(IID_IWMDRMReader2, 0xbefe7a75, 0x9f1d, 0x4075, 0xb9,0xd9, 0xa3,0xc3,0x7b,0xda,0x49,0xa0);
10731#if defined(__cplusplus) && !defined(CINTERFACE)
10732MIDL_INTERFACE("befe7a75-9f1d-4075-b9d9-a3c37bda49a0")
10733IWMDRMReader2 : public IWMDRMReader
10734{
10735 virtual HRESULT STDMETHODCALLTYPE SetEvaluateOutputLevelLicenses(
10736 WINBOOL evaluate) = 0;
10737
10738 virtual HRESULT STDMETHODCALLTYPE GetPlayOutputLevels(
10739 DRM_PLAY_OPL *play,
10740 DWORD *length,
10741 DWORD *level) = 0;
10742
10743 virtual HRESULT STDMETHODCALLTYPE GetCopyOutputLevels(
10744 DRM_COPY_OPL *copy,
10745 DWORD *length,
10746 DWORD *level) = 0;
10747
10748 virtual HRESULT STDMETHODCALLTYPE TryNextLicense(
10749 ) = 0;
10750
10751};
10752#ifdef __CRT_UUID_DECL
10753__CRT_UUID_DECL(IWMDRMReader2, 0xbefe7a75, 0x9f1d, 0x4075, 0xb9,0xd9, 0xa3,0xc3,0x7b,0xda,0x49,0xa0)
10754#endif
10755#else
10756typedef struct IWMDRMReader2Vtbl {
10757 BEGIN_INTERFACE
10758
10759 /*** IUnknown methods ***/
10760 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10761 IWMDRMReader2 *This,
10762 REFIID riid,
10763 void **ppvObject);
10764
10765 ULONG (STDMETHODCALLTYPE *AddRef)(
10766 IWMDRMReader2 *This);
10767
10768 ULONG (STDMETHODCALLTYPE *Release)(
10769 IWMDRMReader2 *This);
10770
10771 /*** IWMDRMReader methods ***/
10772 HRESULT (STDMETHODCALLTYPE *AcquireLicense)(
10773 IWMDRMReader2 *This,
10774 DWORD flags);
10775
10776 HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)(
10777 IWMDRMReader2 *This);
10778
10779 HRESULT (STDMETHODCALLTYPE *Individualize)(
10780 IWMDRMReader2 *This,
10781 DWORD flags);
10782
10783 HRESULT (STDMETHODCALLTYPE *CancelIndividualization)(
10784 IWMDRMReader2 *This);
10785
10786 HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)(
10787 IWMDRMReader2 *This);
10788
10789 HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)(
10790 IWMDRMReader2 *This);
10791
10792 HRESULT (STDMETHODCALLTYPE *SetDRMProperty)(
10793 IWMDRMReader2 *This,
10794 const WCHAR *name,
10795 WMT_ATTR_DATATYPE type,
10796 const BYTE *value,
10797 WORD length);
10798
10799 HRESULT (STDMETHODCALLTYPE *GetDRMProperty)(
10800 IWMDRMReader2 *This,
10801 const WCHAR *name,
10802 WMT_ATTR_DATATYPE *type,
10803 BYTE *value,
10804 WORD *length);
10805
10806 /*** IWMDRMReader2 methods ***/
10807 HRESULT (STDMETHODCALLTYPE *SetEvaluateOutputLevelLicenses)(
10808 IWMDRMReader2 *This,
10809 WINBOOL evaluate);
10810
10811 HRESULT (STDMETHODCALLTYPE *GetPlayOutputLevels)(
10812 IWMDRMReader2 *This,
10813 DRM_PLAY_OPL *play,
10814 DWORD *length,
10815 DWORD *level);
10816
10817 HRESULT (STDMETHODCALLTYPE *GetCopyOutputLevels)(
10818 IWMDRMReader2 *This,
10819 DRM_COPY_OPL *copy,
10820 DWORD *length,
10821 DWORD *level);
10822
10823 HRESULT (STDMETHODCALLTYPE *TryNextLicense)(
10824 IWMDRMReader2 *This);
10825
10826 END_INTERFACE
10827} IWMDRMReader2Vtbl;
10828
10829interface IWMDRMReader2 {
10830 CONST_VTBL IWMDRMReader2Vtbl* lpVtbl;
10831};
10832
10833#ifdef COBJMACROS
10834#ifndef WIDL_C_INLINE_WRAPPERS
10835/*** IUnknown methods ***/
10836#define IWMDRMReader2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10837#define IWMDRMReader2_AddRef(This) (This)->lpVtbl->AddRef(This)
10838#define IWMDRMReader2_Release(This) (This)->lpVtbl->Release(This)
10839/*** IWMDRMReader methods ***/
10840#define IWMDRMReader2_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags)
10841#define IWMDRMReader2_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This)
10842#define IWMDRMReader2_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags)
10843#define IWMDRMReader2_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This)
10844#define IWMDRMReader2_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This)
10845#define IWMDRMReader2_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This)
10846#define IWMDRMReader2_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length)
10847#define IWMDRMReader2_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length)
10848/*** IWMDRMReader2 methods ***/
10849#define IWMDRMReader2_SetEvaluateOutputLevelLicenses(This,evaluate) (This)->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate)
10850#define IWMDRMReader2_GetPlayOutputLevels(This,play,length,level) (This)->lpVtbl->GetPlayOutputLevels(This,play,length,level)
10851#define IWMDRMReader2_GetCopyOutputLevels(This,copy,length,level) (This)->lpVtbl->GetCopyOutputLevels(This,copy,length,level)
10852#define IWMDRMReader2_TryNextLicense(This) (This)->lpVtbl->TryNextLicense(This)
10853#else
10854/*** IUnknown methods ***/
10855static inline HRESULT IWMDRMReader2_QueryInterface(IWMDRMReader2* This,REFIID riid,void **ppvObject) {
10856 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10857}
10858static inline ULONG IWMDRMReader2_AddRef(IWMDRMReader2* This) {
10859 return This->lpVtbl->AddRef(This);
10860}
10861static inline ULONG IWMDRMReader2_Release(IWMDRMReader2* This) {
10862 return This->lpVtbl->Release(This);
10863}
10864/*** IWMDRMReader methods ***/
10865static inline HRESULT IWMDRMReader2_AcquireLicense(IWMDRMReader2* This,DWORD flags) {
10866 return This->lpVtbl->AcquireLicense(This,flags);
10867}
10868static inline HRESULT IWMDRMReader2_CancelLicenseAcquisition(IWMDRMReader2* This) {
10869 return This->lpVtbl->CancelLicenseAcquisition(This);
10870}
10871static inline HRESULT IWMDRMReader2_Individualize(IWMDRMReader2* This,DWORD flags) {
10872 return This->lpVtbl->Individualize(This,flags);
10873}
10874static inline HRESULT IWMDRMReader2_CancelIndividualization(IWMDRMReader2* This) {
10875 return This->lpVtbl->CancelIndividualization(This);
10876}
10877static inline HRESULT IWMDRMReader2_MonitorLicenseAcquisition(IWMDRMReader2* This) {
10878 return This->lpVtbl->MonitorLicenseAcquisition(This);
10879}
10880static inline HRESULT IWMDRMReader2_CancelMonitorLicenseAcquisition(IWMDRMReader2* This) {
10881 return This->lpVtbl->CancelMonitorLicenseAcquisition(This);
10882}
10883static inline HRESULT IWMDRMReader2_SetDRMProperty(IWMDRMReader2* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
10884 return This->lpVtbl->SetDRMProperty(This,name,type,value,length);
10885}
10886static inline HRESULT IWMDRMReader2_GetDRMProperty(IWMDRMReader2* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
10887 return This->lpVtbl->GetDRMProperty(This,name,type,value,length);
10888}
10889/*** IWMDRMReader2 methods ***/
10890static inline HRESULT IWMDRMReader2_SetEvaluateOutputLevelLicenses(IWMDRMReader2* This,WINBOOL evaluate) {
10891 return This->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate);
10892}
10893static inline HRESULT IWMDRMReader2_GetPlayOutputLevels(IWMDRMReader2* This,DRM_PLAY_OPL *play,DWORD *length,DWORD *level) {
10894 return This->lpVtbl->GetPlayOutputLevels(This,play,length,level);
10895}
10896static inline HRESULT IWMDRMReader2_GetCopyOutputLevels(IWMDRMReader2* This,DRM_COPY_OPL *copy,DWORD *length,DWORD *level) {
10897 return This->lpVtbl->GetCopyOutputLevels(This,copy,length,level);
10898}
10899static inline HRESULT IWMDRMReader2_TryNextLicense(IWMDRMReader2* This) {
10900 return This->lpVtbl->TryNextLicense(This);
10901}
10902#endif
10903#endif
10904
10905#endif
10906
10907
10908#endif /* __IWMDRMReader2_INTERFACE_DEFINED__ */
10909
10910/*****************************************************************************
10911 * IWMDRMReader3 interface
10912 */
10913#ifndef __IWMDRMReader3_INTERFACE_DEFINED__
10914#define __IWMDRMReader3_INTERFACE_DEFINED__
10915
10916DEFINE_GUID(IID_IWMDRMReader3, 0xe08672de, 0xf1e7, 0x4ff4, 0xa0,0xa3, 0xfc,0x4b,0x08,0xe4,0xca,0xf8);
10917#if defined(__cplusplus) && !defined(CINTERFACE)
10918MIDL_INTERFACE("e08672de-f1e7-4ff4-a0a3-fc4b08e4caf8")
10919IWMDRMReader3 : public IWMDRMReader2
10920{
10921 virtual HRESULT STDMETHODCALLTYPE GetInclusionList(
10922 GUID **guids,
10923 DWORD *count) = 0;
10924
10925};
10926#ifdef __CRT_UUID_DECL
10927__CRT_UUID_DECL(IWMDRMReader3, 0xe08672de, 0xf1e7, 0x4ff4, 0xa0,0xa3, 0xfc,0x4b,0x08,0xe4,0xca,0xf8)
10928#endif
10929#else
10930typedef struct IWMDRMReader3Vtbl {
10931 BEGIN_INTERFACE
10932
10933 /*** IUnknown methods ***/
10934 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10935 IWMDRMReader3 *This,
10936 REFIID riid,
10937 void **ppvObject);
10938
10939 ULONG (STDMETHODCALLTYPE *AddRef)(
10940 IWMDRMReader3 *This);
10941
10942 ULONG (STDMETHODCALLTYPE *Release)(
10943 IWMDRMReader3 *This);
10944
10945 /*** IWMDRMReader methods ***/
10946 HRESULT (STDMETHODCALLTYPE *AcquireLicense)(
10947 IWMDRMReader3 *This,
10948 DWORD flags);
10949
10950 HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)(
10951 IWMDRMReader3 *This);
10952
10953 HRESULT (STDMETHODCALLTYPE *Individualize)(
10954 IWMDRMReader3 *This,
10955 DWORD flags);
10956
10957 HRESULT (STDMETHODCALLTYPE *CancelIndividualization)(
10958 IWMDRMReader3 *This);
10959
10960 HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)(
10961 IWMDRMReader3 *This);
10962
10963 HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)(
10964 IWMDRMReader3 *This);
10965
10966 HRESULT (STDMETHODCALLTYPE *SetDRMProperty)(
10967 IWMDRMReader3 *This,
10968 const WCHAR *name,
10969 WMT_ATTR_DATATYPE type,
10970 const BYTE *value,
10971 WORD length);
10972
10973 HRESULT (STDMETHODCALLTYPE *GetDRMProperty)(
10974 IWMDRMReader3 *This,
10975 const WCHAR *name,
10976 WMT_ATTR_DATATYPE *type,
10977 BYTE *value,
10978 WORD *length);
10979
10980 /*** IWMDRMReader2 methods ***/
10981 HRESULT (STDMETHODCALLTYPE *SetEvaluateOutputLevelLicenses)(
10982 IWMDRMReader3 *This,
10983 WINBOOL evaluate);
10984
10985 HRESULT (STDMETHODCALLTYPE *GetPlayOutputLevels)(
10986 IWMDRMReader3 *This,
10987 DRM_PLAY_OPL *play,
10988 DWORD *length,
10989 DWORD *level);
10990
10991 HRESULT (STDMETHODCALLTYPE *GetCopyOutputLevels)(
10992 IWMDRMReader3 *This,
10993 DRM_COPY_OPL *copy,
10994 DWORD *length,
10995 DWORD *level);
10996
10997 HRESULT (STDMETHODCALLTYPE *TryNextLicense)(
10998 IWMDRMReader3 *This);
10999
11000 /*** IWMDRMReader3 methods ***/
11001 HRESULT (STDMETHODCALLTYPE *GetInclusionList)(
11002 IWMDRMReader3 *This,
11003 GUID **guids,
11004 DWORD *count);
11005
11006 END_INTERFACE
11007} IWMDRMReader3Vtbl;
11008
11009interface IWMDRMReader3 {
11010 CONST_VTBL IWMDRMReader3Vtbl* lpVtbl;
11011};
11012
11013#ifdef COBJMACROS
11014#ifndef WIDL_C_INLINE_WRAPPERS
11015/*** IUnknown methods ***/
11016#define IWMDRMReader3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11017#define IWMDRMReader3_AddRef(This) (This)->lpVtbl->AddRef(This)
11018#define IWMDRMReader3_Release(This) (This)->lpVtbl->Release(This)
11019/*** IWMDRMReader methods ***/
11020#define IWMDRMReader3_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags)
11021#define IWMDRMReader3_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This)
11022#define IWMDRMReader3_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags)
11023#define IWMDRMReader3_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This)
11024#define IWMDRMReader3_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This)
11025#define IWMDRMReader3_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This)
11026#define IWMDRMReader3_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length)
11027#define IWMDRMReader3_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length)
11028/*** IWMDRMReader2 methods ***/
11029#define IWMDRMReader3_SetEvaluateOutputLevelLicenses(This,evaluate) (This)->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate)
11030#define IWMDRMReader3_GetPlayOutputLevels(This,play,length,level) (This)->lpVtbl->GetPlayOutputLevels(This,play,length,level)
11031#define IWMDRMReader3_GetCopyOutputLevels(This,copy,length,level) (This)->lpVtbl->GetCopyOutputLevels(This,copy,length,level)
11032#define IWMDRMReader3_TryNextLicense(This) (This)->lpVtbl->TryNextLicense(This)
11033/*** IWMDRMReader3 methods ***/
11034#define IWMDRMReader3_GetInclusionList(This,guids,count) (This)->lpVtbl->GetInclusionList(This,guids,count)
11035#else
11036/*** IUnknown methods ***/
11037static inline HRESULT IWMDRMReader3_QueryInterface(IWMDRMReader3* This,REFIID riid,void **ppvObject) {
11038 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11039}
11040static inline ULONG IWMDRMReader3_AddRef(IWMDRMReader3* This) {
11041 return This->lpVtbl->AddRef(This);
11042}
11043static inline ULONG IWMDRMReader3_Release(IWMDRMReader3* This) {
11044 return This->lpVtbl->Release(This);
11045}
11046/*** IWMDRMReader methods ***/
11047static inline HRESULT IWMDRMReader3_AcquireLicense(IWMDRMReader3* This,DWORD flags) {
11048 return This->lpVtbl->AcquireLicense(This,flags);
11049}
11050static inline HRESULT IWMDRMReader3_CancelLicenseAcquisition(IWMDRMReader3* This) {
11051 return This->lpVtbl->CancelLicenseAcquisition(This);
11052}
11053static inline HRESULT IWMDRMReader3_Individualize(IWMDRMReader3* This,DWORD flags) {
11054 return This->lpVtbl->Individualize(This,flags);
11055}
11056static inline HRESULT IWMDRMReader3_CancelIndividualization(IWMDRMReader3* This) {
11057 return This->lpVtbl->CancelIndividualization(This);
11058}
11059static inline HRESULT IWMDRMReader3_MonitorLicenseAcquisition(IWMDRMReader3* This) {
11060 return This->lpVtbl->MonitorLicenseAcquisition(This);
11061}
11062static inline HRESULT IWMDRMReader3_CancelMonitorLicenseAcquisition(IWMDRMReader3* This) {
11063 return This->lpVtbl->CancelMonitorLicenseAcquisition(This);
11064}
11065static inline HRESULT IWMDRMReader3_SetDRMProperty(IWMDRMReader3* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
11066 return This->lpVtbl->SetDRMProperty(This,name,type,value,length);
11067}
11068static inline HRESULT IWMDRMReader3_GetDRMProperty(IWMDRMReader3* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
11069 return This->lpVtbl->GetDRMProperty(This,name,type,value,length);
11070}
11071/*** IWMDRMReader2 methods ***/
11072static inline HRESULT IWMDRMReader3_SetEvaluateOutputLevelLicenses(IWMDRMReader3* This,WINBOOL evaluate) {
11073 return This->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate);
11074}
11075static inline HRESULT IWMDRMReader3_GetPlayOutputLevels(IWMDRMReader3* This,DRM_PLAY_OPL *play,DWORD *length,DWORD *level) {
11076 return This->lpVtbl->GetPlayOutputLevels(This,play,length,level);
11077}
11078static inline HRESULT IWMDRMReader3_GetCopyOutputLevels(IWMDRMReader3* This,DRM_COPY_OPL *copy,DWORD *length,DWORD *level) {
11079 return This->lpVtbl->GetCopyOutputLevels(This,copy,length,level);
11080}
11081static inline HRESULT IWMDRMReader3_TryNextLicense(IWMDRMReader3* This) {
11082 return This->lpVtbl->TryNextLicense(This);
11083}
11084/*** IWMDRMReader3 methods ***/
11085static inline HRESULT IWMDRMReader3_GetInclusionList(IWMDRMReader3* This,GUID **guids,DWORD *count) {
11086 return This->lpVtbl->GetInclusionList(This,guids,count);
11087}
11088#endif
11089#endif
11090
11091#endif
11092
11093
11094#endif /* __IWMDRMReader3_INTERFACE_DEFINED__ */
11095
11096/*****************************************************************************
11097 * IWMReaderAccelerator interface
11098 */
11099#ifndef __IWMReaderAccelerator_INTERFACE_DEFINED__
11100#define __IWMReaderAccelerator_INTERFACE_DEFINED__
11101
11102DEFINE_GUID(IID_IWMReaderAccelerator, 0xbddc4d08, 0x944d, 0x4d52, 0xa6,0x12, 0x46,0xc3,0xfd,0xa0,0x7d,0xd4);
11103#if defined(__cplusplus) && !defined(CINTERFACE)
11104MIDL_INTERFACE("bddc4d08-944d-4d52-a612-46c3fda07dd4")
11105IWMReaderAccelerator : public IUnknown
11106{
11107 virtual HRESULT STDMETHODCALLTYPE GetCodecInterface(
11108 DWORD output,
11109 REFIID riid,
11110 void **codec) = 0;
11111
11112 virtual HRESULT STDMETHODCALLTYPE Notify(
11113 DWORD output,
11114 WM_MEDIA_TYPE *subtype) = 0;
11115
11116};
11117#ifdef __CRT_UUID_DECL
11118__CRT_UUID_DECL(IWMReaderAccelerator, 0xbddc4d08, 0x944d, 0x4d52, 0xa6,0x12, 0x46,0xc3,0xfd,0xa0,0x7d,0xd4)
11119#endif
11120#else
11121typedef struct IWMReaderAcceleratorVtbl {
11122 BEGIN_INTERFACE
11123
11124 /*** IUnknown methods ***/
11125 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11126 IWMReaderAccelerator *This,
11127 REFIID riid,
11128 void **ppvObject);
11129
11130 ULONG (STDMETHODCALLTYPE *AddRef)(
11131 IWMReaderAccelerator *This);
11132
11133 ULONG (STDMETHODCALLTYPE *Release)(
11134 IWMReaderAccelerator *This);
11135
11136 /*** IWMReaderAccelerator methods ***/
11137 HRESULT (STDMETHODCALLTYPE *GetCodecInterface)(
11138 IWMReaderAccelerator *This,
11139 DWORD output,
11140 REFIID riid,
11141 void **codec);
11142
11143 HRESULT (STDMETHODCALLTYPE *Notify)(
11144 IWMReaderAccelerator *This,
11145 DWORD output,
11146 WM_MEDIA_TYPE *subtype);
11147
11148 END_INTERFACE
11149} IWMReaderAcceleratorVtbl;
11150
11151interface IWMReaderAccelerator {
11152 CONST_VTBL IWMReaderAcceleratorVtbl* lpVtbl;
11153};
11154
11155#ifdef COBJMACROS
11156#ifndef WIDL_C_INLINE_WRAPPERS
11157/*** IUnknown methods ***/
11158#define IWMReaderAccelerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11159#define IWMReaderAccelerator_AddRef(This) (This)->lpVtbl->AddRef(This)
11160#define IWMReaderAccelerator_Release(This) (This)->lpVtbl->Release(This)
11161/*** IWMReaderAccelerator methods ***/
11162#define IWMReaderAccelerator_GetCodecInterface(This,output,riid,codec) (This)->lpVtbl->GetCodecInterface(This,output,riid,codec)
11163#define IWMReaderAccelerator_Notify(This,output,subtype) (This)->lpVtbl->Notify(This,output,subtype)
11164#else
11165/*** IUnknown methods ***/
11166static inline HRESULT IWMReaderAccelerator_QueryInterface(IWMReaderAccelerator* This,REFIID riid,void **ppvObject) {
11167 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11168}
11169static inline ULONG IWMReaderAccelerator_AddRef(IWMReaderAccelerator* This) {
11170 return This->lpVtbl->AddRef(This);
11171}
11172static inline ULONG IWMReaderAccelerator_Release(IWMReaderAccelerator* This) {
11173 return This->lpVtbl->Release(This);
11174}
11175/*** IWMReaderAccelerator methods ***/
11176static inline HRESULT IWMReaderAccelerator_GetCodecInterface(IWMReaderAccelerator* This,DWORD output,REFIID riid,void **codec) {
11177 return This->lpVtbl->GetCodecInterface(This,output,riid,codec);
11178}
11179static inline HRESULT IWMReaderAccelerator_Notify(IWMReaderAccelerator* This,DWORD output,WM_MEDIA_TYPE *subtype) {
11180 return This->lpVtbl->Notify(This,output,subtype);
11181}
11182#endif
11183#endif
11184
11185#endif
11186
11187
11188#endif /* __IWMReaderAccelerator_INTERFACE_DEFINED__ */
11189
11190/*****************************************************************************
11191 * IWMReaderTimecode interface
11192 */
11193#ifndef __IWMReaderTimecode_INTERFACE_DEFINED__
11194#define __IWMReaderTimecode_INTERFACE_DEFINED__
11195
11196DEFINE_GUID(IID_IWMReaderTimecode, 0xf369e2f0, 0xe081, 0x4fe6, 0x84,0x50, 0xb8,0x10,0xb2,0xf4,0x10,0xd1);
11197#if defined(__cplusplus) && !defined(CINTERFACE)
11198MIDL_INTERFACE("f369e2f0-e081-4fe6-8450-b810b2f410d1")
11199IWMReaderTimecode : public IUnknown
11200{
11201 virtual HRESULT STDMETHODCALLTYPE GetTimecodeRangeCount(
11202 WORD num,
11203 WORD *count) = 0;
11204
11205 virtual HRESULT STDMETHODCALLTYPE GetTimecodeRangeBounds(
11206 WORD stream,
11207 WORD range,
11208 DWORD *start_timecode,
11209 DWORD *end_timecode) = 0;
11210
11211};
11212#ifdef __CRT_UUID_DECL
11213__CRT_UUID_DECL(IWMReaderTimecode, 0xf369e2f0, 0xe081, 0x4fe6, 0x84,0x50, 0xb8,0x10,0xb2,0xf4,0x10,0xd1)
11214#endif
11215#else
11216typedef struct IWMReaderTimecodeVtbl {
11217 BEGIN_INTERFACE
11218
11219 /*** IUnknown methods ***/
11220 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11221 IWMReaderTimecode *This,
11222 REFIID riid,
11223 void **ppvObject);
11224
11225 ULONG (STDMETHODCALLTYPE *AddRef)(
11226 IWMReaderTimecode *This);
11227
11228 ULONG (STDMETHODCALLTYPE *Release)(
11229 IWMReaderTimecode *This);
11230
11231 /*** IWMReaderTimecode methods ***/
11232 HRESULT (STDMETHODCALLTYPE *GetTimecodeRangeCount)(
11233 IWMReaderTimecode *This,
11234 WORD num,
11235 WORD *count);
11236
11237 HRESULT (STDMETHODCALLTYPE *GetTimecodeRangeBounds)(
11238 IWMReaderTimecode *This,
11239 WORD stream,
11240 WORD range,
11241 DWORD *start_timecode,
11242 DWORD *end_timecode);
11243
11244 END_INTERFACE
11245} IWMReaderTimecodeVtbl;
11246
11247interface IWMReaderTimecode {
11248 CONST_VTBL IWMReaderTimecodeVtbl* lpVtbl;
11249};
11250
11251#ifdef COBJMACROS
11252#ifndef WIDL_C_INLINE_WRAPPERS
11253/*** IUnknown methods ***/
11254#define IWMReaderTimecode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11255#define IWMReaderTimecode_AddRef(This) (This)->lpVtbl->AddRef(This)
11256#define IWMReaderTimecode_Release(This) (This)->lpVtbl->Release(This)
11257/*** IWMReaderTimecode methods ***/
11258#define IWMReaderTimecode_GetTimecodeRangeCount(This,num,count) (This)->lpVtbl->GetTimecodeRangeCount(This,num,count)
11259#define IWMReaderTimecode_GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode) (This)->lpVtbl->GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode)
11260#else
11261/*** IUnknown methods ***/
11262static inline HRESULT IWMReaderTimecode_QueryInterface(IWMReaderTimecode* This,REFIID riid,void **ppvObject) {
11263 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11264}
11265static inline ULONG IWMReaderTimecode_AddRef(IWMReaderTimecode* This) {
11266 return This->lpVtbl->AddRef(This);
11267}
11268static inline ULONG IWMReaderTimecode_Release(IWMReaderTimecode* This) {
11269 return This->lpVtbl->Release(This);
11270}
11271/*** IWMReaderTimecode methods ***/
11272static inline HRESULT IWMReaderTimecode_GetTimecodeRangeCount(IWMReaderTimecode* This,WORD num,WORD *count) {
11273 return This->lpVtbl->GetTimecodeRangeCount(This,num,count);
11274}
11275static inline HRESULT IWMReaderTimecode_GetTimecodeRangeBounds(IWMReaderTimecode* This,WORD stream,WORD range,DWORD *start_timecode,DWORD *end_timecode) {
11276 return This->lpVtbl->GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode);
11277}
11278#endif
11279#endif
11280
11281#endif
11282
11283
11284#endif /* __IWMReaderTimecode_INTERFACE_DEFINED__ */
11285
11286/*****************************************************************************
11287 * IWMReaderTypeNegotiation interface
11288 */
11289#ifndef __IWMReaderTypeNegotiation_INTERFACE_DEFINED__
11290#define __IWMReaderTypeNegotiation_INTERFACE_DEFINED__
11291
11292DEFINE_GUID(IID_IWMReaderTypeNegotiation, 0xfdbe5592, 0x81a1, 0x41ea, 0x93,0xbd, 0x73,0x5c,0xad,0x1a,0xdc,0x05);
11293#if defined(__cplusplus) && !defined(CINTERFACE)
11294MIDL_INTERFACE("fdbe5592-81a1-41ea-93bd-735cad1adc05")
11295IWMReaderTypeNegotiation : public IUnknown
11296{
11297 virtual HRESULT STDMETHODCALLTYPE TryOutputProps(
11298 DWORD output,
11299 IWMOutputMediaProps *props) = 0;
11300
11301};
11302#ifdef __CRT_UUID_DECL
11303__CRT_UUID_DECL(IWMReaderTypeNegotiation, 0xfdbe5592, 0x81a1, 0x41ea, 0x93,0xbd, 0x73,0x5c,0xad,0x1a,0xdc,0x05)
11304#endif
11305#else
11306typedef struct IWMReaderTypeNegotiationVtbl {
11307 BEGIN_INTERFACE
11308
11309 /*** IUnknown methods ***/
11310 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11311 IWMReaderTypeNegotiation *This,
11312 REFIID riid,
11313 void **ppvObject);
11314
11315 ULONG (STDMETHODCALLTYPE *AddRef)(
11316 IWMReaderTypeNegotiation *This);
11317
11318 ULONG (STDMETHODCALLTYPE *Release)(
11319 IWMReaderTypeNegotiation *This);
11320
11321 /*** IWMReaderTypeNegotiation methods ***/
11322 HRESULT (STDMETHODCALLTYPE *TryOutputProps)(
11323 IWMReaderTypeNegotiation *This,
11324 DWORD output,
11325 IWMOutputMediaProps *props);
11326
11327 END_INTERFACE
11328} IWMReaderTypeNegotiationVtbl;
11329
11330interface IWMReaderTypeNegotiation {
11331 CONST_VTBL IWMReaderTypeNegotiationVtbl* lpVtbl;
11332};
11333
11334#ifdef COBJMACROS
11335#ifndef WIDL_C_INLINE_WRAPPERS
11336/*** IUnknown methods ***/
11337#define IWMReaderTypeNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11338#define IWMReaderTypeNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
11339#define IWMReaderTypeNegotiation_Release(This) (This)->lpVtbl->Release(This)
11340/*** IWMReaderTypeNegotiation methods ***/
11341#define IWMReaderTypeNegotiation_TryOutputProps(This,output,props) (This)->lpVtbl->TryOutputProps(This,output,props)
11342#else
11343/*** IUnknown methods ***/
11344static inline HRESULT IWMReaderTypeNegotiation_QueryInterface(IWMReaderTypeNegotiation* This,REFIID riid,void **ppvObject) {
11345 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11346}
11347static inline ULONG IWMReaderTypeNegotiation_AddRef(IWMReaderTypeNegotiation* This) {
11348 return This->lpVtbl->AddRef(This);
11349}
11350static inline ULONG IWMReaderTypeNegotiation_Release(IWMReaderTypeNegotiation* This) {
11351 return This->lpVtbl->Release(This);
11352}
11353/*** IWMReaderTypeNegotiation methods ***/
11354static inline HRESULT IWMReaderTypeNegotiation_TryOutputProps(IWMReaderTypeNegotiation* This,DWORD output,IWMOutputMediaProps *props) {
11355 return This->lpVtbl->TryOutputProps(This,output,props);
11356}
11357#endif
11358#endif
11359
11360#endif
11361
11362
11363#endif /* __IWMReaderTypeNegotiation_INTERFACE_DEFINED__ */
11364
11365/*****************************************************************************
11366 * IWMLanguageList interface
11367 */
11368#ifndef __IWMLanguageList_INTERFACE_DEFINED__
11369#define __IWMLanguageList_INTERFACE_DEFINED__
11370
11371DEFINE_GUID(IID_IWMLanguageList, 0xdf683f00, 0x2d49, 0x4d8e, 0x92,0xb7, 0xfb,0x19,0xf6,0xa0,0xdc,0x57);
11372#if defined(__cplusplus) && !defined(CINTERFACE)
11373MIDL_INTERFACE("df683f00-2d49-4d8e-92b7-fb19f6a0dc57")
11374IWMLanguageList : public IUnknown
11375{
11376 virtual HRESULT STDMETHODCALLTYPE GetLanguageCount(
11377 WORD *count) = 0;
11378
11379 virtual HRESULT STDMETHODCALLTYPE GetLanguageDetails(
11380 WORD index,
11381 WCHAR *language,
11382 WORD *length) = 0;
11383
11384 virtual HRESULT STDMETHODCALLTYPE AddLanguageByRFC1766String(
11385 LPCWSTR_WMSDK_TYPE_SAFE language,
11386 WORD *index) = 0;
11387
11388};
11389#ifdef __CRT_UUID_DECL
11390__CRT_UUID_DECL(IWMLanguageList, 0xdf683f00, 0x2d49, 0x4d8e, 0x92,0xb7, 0xfb,0x19,0xf6,0xa0,0xdc,0x57)
11391#endif
11392#else
11393typedef struct IWMLanguageListVtbl {
11394 BEGIN_INTERFACE
11395
11396 /*** IUnknown methods ***/
11397 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11398 IWMLanguageList *This,
11399 REFIID riid,
11400 void **ppvObject);
11401
11402 ULONG (STDMETHODCALLTYPE *AddRef)(
11403 IWMLanguageList *This);
11404
11405 ULONG (STDMETHODCALLTYPE *Release)(
11406 IWMLanguageList *This);
11407
11408 /*** IWMLanguageList methods ***/
11409 HRESULT (STDMETHODCALLTYPE *GetLanguageCount)(
11410 IWMLanguageList *This,
11411 WORD *count);
11412
11413 HRESULT (STDMETHODCALLTYPE *GetLanguageDetails)(
11414 IWMLanguageList *This,
11415 WORD index,
11416 WCHAR *language,
11417 WORD *length);
11418
11419 HRESULT (STDMETHODCALLTYPE *AddLanguageByRFC1766String)(
11420 IWMLanguageList *This,
11421 LPCWSTR_WMSDK_TYPE_SAFE language,
11422 WORD *index);
11423
11424 END_INTERFACE
11425} IWMLanguageListVtbl;
11426
11427interface IWMLanguageList {
11428 CONST_VTBL IWMLanguageListVtbl* lpVtbl;
11429};
11430
11431#ifdef COBJMACROS
11432#ifndef WIDL_C_INLINE_WRAPPERS
11433/*** IUnknown methods ***/
11434#define IWMLanguageList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11435#define IWMLanguageList_AddRef(This) (This)->lpVtbl->AddRef(This)
11436#define IWMLanguageList_Release(This) (This)->lpVtbl->Release(This)
11437/*** IWMLanguageList methods ***/
11438#define IWMLanguageList_GetLanguageCount(This,count) (This)->lpVtbl->GetLanguageCount(This,count)
11439#define IWMLanguageList_GetLanguageDetails(This,index,language,length) (This)->lpVtbl->GetLanguageDetails(This,index,language,length)
11440#define IWMLanguageList_AddLanguageByRFC1766String(This,language,index) (This)->lpVtbl->AddLanguageByRFC1766String(This,language,index)
11441#else
11442/*** IUnknown methods ***/
11443static inline HRESULT IWMLanguageList_QueryInterface(IWMLanguageList* This,REFIID riid,void **ppvObject) {
11444 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11445}
11446static inline ULONG IWMLanguageList_AddRef(IWMLanguageList* This) {
11447 return This->lpVtbl->AddRef(This);
11448}
11449static inline ULONG IWMLanguageList_Release(IWMLanguageList* This) {
11450 return This->lpVtbl->Release(This);
11451}
11452/*** IWMLanguageList methods ***/
11453static inline HRESULT IWMLanguageList_GetLanguageCount(IWMLanguageList* This,WORD *count) {
11454 return This->lpVtbl->GetLanguageCount(This,count);
11455}
11456static inline HRESULT IWMLanguageList_GetLanguageDetails(IWMLanguageList* This,WORD index,WCHAR *language,WORD *length) {
11457 return This->lpVtbl->GetLanguageDetails(This,index,language,length);
11458}
11459static inline HRESULT IWMLanguageList_AddLanguageByRFC1766String(IWMLanguageList* This,LPCWSTR_WMSDK_TYPE_SAFE language,WORD *index) {
11460 return This->lpVtbl->AddLanguageByRFC1766String(This,language,index);
11461}
11462#endif
11463#endif
11464
11465#endif
11466
11467
11468#endif /* __IWMLanguageList_INTERFACE_DEFINED__ */
11469
11470/*****************************************************************************
11471 * IWMReaderPlaylistBurn interface
11472 */
11473#ifndef __IWMReaderPlaylistBurn_INTERFACE_DEFINED__
11474#define __IWMReaderPlaylistBurn_INTERFACE_DEFINED__
11475
11476DEFINE_GUID(IID_IWMReaderPlaylistBurn, 0xf28c0300, 0x9baa, 0x4477, 0xa8,0x46, 0x17,0x44,0xd9,0xcb,0xf5,0x33);
11477#if defined(__cplusplus) && !defined(CINTERFACE)
11478MIDL_INTERFACE("f28c0300-9baa-4477-a846-1744d9cbf533")
11479IWMReaderPlaylistBurn : public IUnknown
11480{
11481 virtual HRESULT STDMETHODCALLTYPE InitPlaylistBurn(
11482 DWORD count,
11483 LPCWSTR_WMSDK_TYPE_SAFE *filenames,
11484 IWMStatusCallback *callback,
11485 void *context) = 0;
11486
11487 virtual HRESULT STDMETHODCALLTYPE GetInitResults(
11488 DWORD count,
11489 HRESULT *stat) = 0;
11490
11491 virtual HRESULT STDMETHODCALLTYPE Cancel(
11492 ) = 0;
11493
11494 virtual HRESULT STDMETHODCALLTYPE EndPlaylistBurn(
11495 HRESULT result) = 0;
11496
11497};
11498#ifdef __CRT_UUID_DECL
11499__CRT_UUID_DECL(IWMReaderPlaylistBurn, 0xf28c0300, 0x9baa, 0x4477, 0xa8,0x46, 0x17,0x44,0xd9,0xcb,0xf5,0x33)
11500#endif
11501#else
11502typedef struct IWMReaderPlaylistBurnVtbl {
11503 BEGIN_INTERFACE
11504
11505 /*** IUnknown methods ***/
11506 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11507 IWMReaderPlaylistBurn *This,
11508 REFIID riid,
11509 void **ppvObject);
11510
11511 ULONG (STDMETHODCALLTYPE *AddRef)(
11512 IWMReaderPlaylistBurn *This);
11513
11514 ULONG (STDMETHODCALLTYPE *Release)(
11515 IWMReaderPlaylistBurn *This);
11516
11517 /*** IWMReaderPlaylistBurn methods ***/
11518 HRESULT (STDMETHODCALLTYPE *InitPlaylistBurn)(
11519 IWMReaderPlaylistBurn *This,
11520 DWORD count,
11521 LPCWSTR_WMSDK_TYPE_SAFE *filenames,
11522 IWMStatusCallback *callback,
11523 void *context);
11524
11525 HRESULT (STDMETHODCALLTYPE *GetInitResults)(
11526 IWMReaderPlaylistBurn *This,
11527 DWORD count,
11528 HRESULT *stat);
11529
11530 HRESULT (STDMETHODCALLTYPE *Cancel)(
11531 IWMReaderPlaylistBurn *This);
11532
11533 HRESULT (STDMETHODCALLTYPE *EndPlaylistBurn)(
11534 IWMReaderPlaylistBurn *This,
11535 HRESULT result);
11536
11537 END_INTERFACE
11538} IWMReaderPlaylistBurnVtbl;
11539
11540interface IWMReaderPlaylistBurn {
11541 CONST_VTBL IWMReaderPlaylistBurnVtbl* lpVtbl;
11542};
11543
11544#ifdef COBJMACROS
11545#ifndef WIDL_C_INLINE_WRAPPERS
11546/*** IUnknown methods ***/
11547#define IWMReaderPlaylistBurn_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11548#define IWMReaderPlaylistBurn_AddRef(This) (This)->lpVtbl->AddRef(This)
11549#define IWMReaderPlaylistBurn_Release(This) (This)->lpVtbl->Release(This)
11550/*** IWMReaderPlaylistBurn methods ***/
11551#define IWMReaderPlaylistBurn_InitPlaylistBurn(This,count,filenames,callback,context) (This)->lpVtbl->InitPlaylistBurn(This,count,filenames,callback,context)
11552#define IWMReaderPlaylistBurn_GetInitResults(This,count,stat) (This)->lpVtbl->GetInitResults(This,count,stat)
11553#define IWMReaderPlaylistBurn_Cancel(This) (This)->lpVtbl->Cancel(This)
11554#define IWMReaderPlaylistBurn_EndPlaylistBurn(This,result) (This)->lpVtbl->EndPlaylistBurn(This,result)
11555#else
11556/*** IUnknown methods ***/
11557static inline HRESULT IWMReaderPlaylistBurn_QueryInterface(IWMReaderPlaylistBurn* This,REFIID riid,void **ppvObject) {
11558 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11559}
11560static inline ULONG IWMReaderPlaylistBurn_AddRef(IWMReaderPlaylistBurn* This) {
11561 return This->lpVtbl->AddRef(This);
11562}
11563static inline ULONG IWMReaderPlaylistBurn_Release(IWMReaderPlaylistBurn* This) {
11564 return This->lpVtbl->Release(This);
11565}
11566/*** IWMReaderPlaylistBurn methods ***/
11567static inline HRESULT IWMReaderPlaylistBurn_InitPlaylistBurn(IWMReaderPlaylistBurn* This,DWORD count,LPCWSTR_WMSDK_TYPE_SAFE *filenames,IWMStatusCallback *callback,void *context) {
11568 return This->lpVtbl->InitPlaylistBurn(This,count,filenames,callback,context);
11569}
11570static inline HRESULT IWMReaderPlaylistBurn_GetInitResults(IWMReaderPlaylistBurn* This,DWORD count,HRESULT *stat) {
11571 return This->lpVtbl->GetInitResults(This,count,stat);
11572}
11573static inline HRESULT IWMReaderPlaylistBurn_Cancel(IWMReaderPlaylistBurn* This) {
11574 return This->lpVtbl->Cancel(This);
11575}
11576static inline HRESULT IWMReaderPlaylistBurn_EndPlaylistBurn(IWMReaderPlaylistBurn* This,HRESULT result) {
11577 return This->lpVtbl->EndPlaylistBurn(This,result);
11578}
11579#endif
11580#endif
11581
11582#endif
11583
11584
11585#endif /* __IWMReaderPlaylistBurn_INTERFACE_DEFINED__ */
11586
11587/*****************************************************************************
11588 * IWMPropertyVault interface
11589 */
11590#ifndef __IWMPropertyVault_INTERFACE_DEFINED__
11591#define __IWMPropertyVault_INTERFACE_DEFINED__
11592
11593DEFINE_GUID(IID_IWMPropertyVault, 0x72995a79, 0x5090, 0x42a4, 0x9c,0x8c, 0xd9,0xd0,0xb6,0xd3,0x4b,0xe5);
11594#if defined(__cplusplus) && !defined(CINTERFACE)
11595MIDL_INTERFACE("72995a79-5090-42a4-9c8c-d9d0b6d34be5")
11596IWMPropertyVault : public IUnknown
11597{
11598 virtual HRESULT STDMETHODCALLTYPE GetPropertyCount(
11599 DWORD *count) = 0;
11600
11601 virtual HRESULT STDMETHODCALLTYPE GetPropertyByName(
11602 const WCHAR *name,
11603 WMT_ATTR_DATATYPE *type,
11604 BYTE *value,
11605 DWORD *size) = 0;
11606
11607 virtual HRESULT STDMETHODCALLTYPE SetProperty(
11608 const WCHAR *name,
11609 WMT_ATTR_DATATYPE type,
11610 BYTE *value,
11611 DWORD size) = 0;
11612
11613 virtual HRESULT STDMETHODCALLTYPE GetPropertyByIndex(
11614 DWORD index,
11615 WCHAR *name,
11616 DWORD *length,
11617 WMT_ATTR_DATATYPE *type,
11618 BYTE *value,
11619 DWORD *size) = 0;
11620
11621 virtual HRESULT STDMETHODCALLTYPE CopyPropertiesFrom(
11622 IWMPropertyVault *vault) = 0;
11623
11624 virtual HRESULT STDMETHODCALLTYPE Clear(
11625 ) = 0;
11626
11627};
11628#ifdef __CRT_UUID_DECL
11629__CRT_UUID_DECL(IWMPropertyVault, 0x72995a79, 0x5090, 0x42a4, 0x9c,0x8c, 0xd9,0xd0,0xb6,0xd3,0x4b,0xe5)
11630#endif
11631#else
11632typedef struct IWMPropertyVaultVtbl {
11633 BEGIN_INTERFACE
11634
11635 /*** IUnknown methods ***/
11636 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11637 IWMPropertyVault *This,
11638 REFIID riid,
11639 void **ppvObject);
11640
11641 ULONG (STDMETHODCALLTYPE *AddRef)(
11642 IWMPropertyVault *This);
11643
11644 ULONG (STDMETHODCALLTYPE *Release)(
11645 IWMPropertyVault *This);
11646
11647 /*** IWMPropertyVault methods ***/
11648 HRESULT (STDMETHODCALLTYPE *GetPropertyCount)(
11649 IWMPropertyVault *This,
11650 DWORD *count);
11651
11652 HRESULT (STDMETHODCALLTYPE *GetPropertyByName)(
11653 IWMPropertyVault *This,
11654 const WCHAR *name,
11655 WMT_ATTR_DATATYPE *type,
11656 BYTE *value,
11657 DWORD *size);
11658
11659 HRESULT (STDMETHODCALLTYPE *SetProperty)(
11660 IWMPropertyVault *This,
11661 const WCHAR *name,
11662 WMT_ATTR_DATATYPE type,
11663 BYTE *value,
11664 DWORD size);
11665
11666 HRESULT (STDMETHODCALLTYPE *GetPropertyByIndex)(
11667 IWMPropertyVault *This,
11668 DWORD index,
11669 WCHAR *name,
11670 DWORD *length,
11671 WMT_ATTR_DATATYPE *type,
11672 BYTE *value,
11673 DWORD *size);
11674
11675 HRESULT (STDMETHODCALLTYPE *CopyPropertiesFrom)(
11676 IWMPropertyVault *This,
11677 IWMPropertyVault *vault);
11678
11679 HRESULT (STDMETHODCALLTYPE *Clear)(
11680 IWMPropertyVault *This);
11681
11682 END_INTERFACE
11683} IWMPropertyVaultVtbl;
11684
11685interface IWMPropertyVault {
11686 CONST_VTBL IWMPropertyVaultVtbl* lpVtbl;
11687};
11688
11689#ifdef COBJMACROS
11690#ifndef WIDL_C_INLINE_WRAPPERS
11691/*** IUnknown methods ***/
11692#define IWMPropertyVault_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11693#define IWMPropertyVault_AddRef(This) (This)->lpVtbl->AddRef(This)
11694#define IWMPropertyVault_Release(This) (This)->lpVtbl->Release(This)
11695/*** IWMPropertyVault methods ***/
11696#define IWMPropertyVault_GetPropertyCount(This,count) (This)->lpVtbl->GetPropertyCount(This,count)
11697#define IWMPropertyVault_GetPropertyByName(This,name,type,value,size) (This)->lpVtbl->GetPropertyByName(This,name,type,value,size)
11698#define IWMPropertyVault_SetProperty(This,name,type,value,size) (This)->lpVtbl->SetProperty(This,name,type,value,size)
11699#define IWMPropertyVault_GetPropertyByIndex(This,index,name,length,type,value,size) (This)->lpVtbl->GetPropertyByIndex(This,index,name,length,type,value,size)
11700#define IWMPropertyVault_CopyPropertiesFrom(This,vault) (This)->lpVtbl->CopyPropertiesFrom(This,vault)
11701#define IWMPropertyVault_Clear(This) (This)->lpVtbl->Clear(This)
11702#else
11703/*** IUnknown methods ***/
11704static inline HRESULT IWMPropertyVault_QueryInterface(IWMPropertyVault* This,REFIID riid,void **ppvObject) {
11705 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11706}
11707static inline ULONG IWMPropertyVault_AddRef(IWMPropertyVault* This) {
11708 return This->lpVtbl->AddRef(This);
11709}
11710static inline ULONG IWMPropertyVault_Release(IWMPropertyVault* This) {
11711 return This->lpVtbl->Release(This);
11712}
11713/*** IWMPropertyVault methods ***/
11714static inline HRESULT IWMPropertyVault_GetPropertyCount(IWMPropertyVault* This,DWORD *count) {
11715 return This->lpVtbl->GetPropertyCount(This,count);
11716}
11717static inline HRESULT IWMPropertyVault_GetPropertyByName(IWMPropertyVault* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
11718 return This->lpVtbl->GetPropertyByName(This,name,type,value,size);
11719}
11720static inline HRESULT IWMPropertyVault_SetProperty(IWMPropertyVault* This,const WCHAR *name,WMT_ATTR_DATATYPE type,BYTE *value,DWORD size) {
11721 return This->lpVtbl->SetProperty(This,name,type,value,size);
11722}
11723static inline HRESULT IWMPropertyVault_GetPropertyByIndex(IWMPropertyVault* This,DWORD index,WCHAR *name,DWORD *length,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
11724 return This->lpVtbl->GetPropertyByIndex(This,index,name,length,type,value,size);
11725}
11726static inline HRESULT IWMPropertyVault_CopyPropertiesFrom(IWMPropertyVault* This,IWMPropertyVault *vault) {
11727 return This->lpVtbl->CopyPropertiesFrom(This,vault);
11728}
11729static inline HRESULT IWMPropertyVault_Clear(IWMPropertyVault* This) {
11730 return This->lpVtbl->Clear(This);
11731}
11732#endif
11733#endif
11734
11735#endif
11736
11737
11738#endif /* __IWMPropertyVault_INTERFACE_DEFINED__ */
11739
11740/*****************************************************************************
11741 * IWMWriterPreprocess interface
11742 */
11743#ifndef __IWMWriterPreprocess_INTERFACE_DEFINED__
11744#define __IWMWriterPreprocess_INTERFACE_DEFINED__
11745
11746DEFINE_GUID(IID_IWMWriterPreprocess, 0xfc54a285, 0x38c4, 0x45b5, 0xaa,0x23, 0x85,0xb9,0xf7,0xcb,0x42,0x4b);
11747#if defined(__cplusplus) && !defined(CINTERFACE)
11748MIDL_INTERFACE("fc54a285-38c4-45b5-aa23-85b9f7cb424b")
11749IWMWriterPreprocess : public IUnknown
11750{
11751 virtual HRESULT STDMETHODCALLTYPE GetMaxPreprocessingPasses(
11752 DWORD input,
11753 DWORD flags,
11754 DWORD *passes) = 0;
11755
11756 virtual HRESULT STDMETHODCALLTYPE SetNumPreprocessingPasses(
11757 DWORD input,
11758 DWORD flags,
11759 DWORD passes) = 0;
11760
11761 virtual HRESULT STDMETHODCALLTYPE BeginPreprocessingPass(
11762 DWORD input,
11763 DWORD flags) = 0;
11764
11765 virtual HRESULT STDMETHODCALLTYPE PreprocessSample(
11766 DWORD input,
11767 QWORD sample_time,
11768 DWORD flags,
11769 INSSBuffer *sample) = 0;
11770
11771 virtual HRESULT STDMETHODCALLTYPE EndPreprocessingPass(
11772 DWORD input,
11773 DWORD flags) = 0;
11774
11775};
11776#ifdef __CRT_UUID_DECL
11777__CRT_UUID_DECL(IWMWriterPreprocess, 0xfc54a285, 0x38c4, 0x45b5, 0xaa,0x23, 0x85,0xb9,0xf7,0xcb,0x42,0x4b)
11778#endif
11779#else
11780typedef struct IWMWriterPreprocessVtbl {
11781 BEGIN_INTERFACE
11782
11783 /*** IUnknown methods ***/
11784 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11785 IWMWriterPreprocess *This,
11786 REFIID riid,
11787 void **ppvObject);
11788
11789 ULONG (STDMETHODCALLTYPE *AddRef)(
11790 IWMWriterPreprocess *This);
11791
11792 ULONG (STDMETHODCALLTYPE *Release)(
11793 IWMWriterPreprocess *This);
11794
11795 /*** IWMWriterPreprocess methods ***/
11796 HRESULT (STDMETHODCALLTYPE *GetMaxPreprocessingPasses)(
11797 IWMWriterPreprocess *This,
11798 DWORD input,
11799 DWORD flags,
11800 DWORD *passes);
11801
11802 HRESULT (STDMETHODCALLTYPE *SetNumPreprocessingPasses)(
11803 IWMWriterPreprocess *This,
11804 DWORD input,
11805 DWORD flags,
11806 DWORD passes);
11807
11808 HRESULT (STDMETHODCALLTYPE *BeginPreprocessingPass)(
11809 IWMWriterPreprocess *This,
11810 DWORD input,
11811 DWORD flags);
11812
11813 HRESULT (STDMETHODCALLTYPE *PreprocessSample)(
11814 IWMWriterPreprocess *This,
11815 DWORD input,
11816 QWORD sample_time,
11817 DWORD flags,
11818 INSSBuffer *sample);
11819
11820 HRESULT (STDMETHODCALLTYPE *EndPreprocessingPass)(
11821 IWMWriterPreprocess *This,
11822 DWORD input,
11823 DWORD flags);
11824
11825 END_INTERFACE
11826} IWMWriterPreprocessVtbl;
11827
11828interface IWMWriterPreprocess {
11829 CONST_VTBL IWMWriterPreprocessVtbl* lpVtbl;
11830};
11831
11832#ifdef COBJMACROS
11833#ifndef WIDL_C_INLINE_WRAPPERS
11834/*** IUnknown methods ***/
11835#define IWMWriterPreprocess_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11836#define IWMWriterPreprocess_AddRef(This) (This)->lpVtbl->AddRef(This)
11837#define IWMWriterPreprocess_Release(This) (This)->lpVtbl->Release(This)
11838/*** IWMWriterPreprocess methods ***/
11839#define IWMWriterPreprocess_GetMaxPreprocessingPasses(This,input,flags,passes) (This)->lpVtbl->GetMaxPreprocessingPasses(This,input,flags,passes)
11840#define IWMWriterPreprocess_SetNumPreprocessingPasses(This,input,flags,passes) (This)->lpVtbl->SetNumPreprocessingPasses(This,input,flags,passes)
11841#define IWMWriterPreprocess_BeginPreprocessingPass(This,input,flags) (This)->lpVtbl->BeginPreprocessingPass(This,input,flags)
11842#define IWMWriterPreprocess_PreprocessSample(This,input,sample_time,flags,sample) (This)->lpVtbl->PreprocessSample(This,input,sample_time,flags,sample)
11843#define IWMWriterPreprocess_EndPreprocessingPass(This,input,flags) (This)->lpVtbl->EndPreprocessingPass(This,input,flags)
11844#else
11845/*** IUnknown methods ***/
11846static inline HRESULT IWMWriterPreprocess_QueryInterface(IWMWriterPreprocess* This,REFIID riid,void **ppvObject) {
11847 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11848}
11849static inline ULONG IWMWriterPreprocess_AddRef(IWMWriterPreprocess* This) {
11850 return This->lpVtbl->AddRef(This);
11851}
11852static inline ULONG IWMWriterPreprocess_Release(IWMWriterPreprocess* This) {
11853 return This->lpVtbl->Release(This);
11854}
11855/*** IWMWriterPreprocess methods ***/
11856static inline HRESULT IWMWriterPreprocess_GetMaxPreprocessingPasses(IWMWriterPreprocess* This,DWORD input,DWORD flags,DWORD *passes) {
11857 return This->lpVtbl->GetMaxPreprocessingPasses(This,input,flags,passes);
11858}
11859static inline HRESULT IWMWriterPreprocess_SetNumPreprocessingPasses(IWMWriterPreprocess* This,DWORD input,DWORD flags,DWORD passes) {
11860 return This->lpVtbl->SetNumPreprocessingPasses(This,input,flags,passes);
11861}
11862static inline HRESULT IWMWriterPreprocess_BeginPreprocessingPass(IWMWriterPreprocess* This,DWORD input,DWORD flags) {
11863 return This->lpVtbl->BeginPreprocessingPass(This,input,flags);
11864}
11865static inline HRESULT IWMWriterPreprocess_PreprocessSample(IWMWriterPreprocess* This,DWORD input,QWORD sample_time,DWORD flags,INSSBuffer *sample) {
11866 return This->lpVtbl->PreprocessSample(This,input,sample_time,flags,sample);
11867}
11868static inline HRESULT IWMWriterPreprocess_EndPreprocessingPass(IWMWriterPreprocess* This,DWORD input,DWORD flags) {
11869 return This->lpVtbl->EndPreprocessingPass(This,input,flags);
11870}
11871#endif
11872#endif
11873
11874#endif
11875
11876
11877#endif /* __IWMWriterPreprocess_INTERFACE_DEFINED__ */
11878
11879/*****************************************************************************
11880 * IWMLicenseBackup interface
11881 */
11882#ifndef __IWMLicenseBackup_INTERFACE_DEFINED__
11883#define __IWMLicenseBackup_INTERFACE_DEFINED__
11884
11885DEFINE_GUID(IID_IWMLicenseBackup, 0x05e5ac9f, 0x3fb6, 0x4508, 0xbb,0x43, 0xa4,0x06,0x7b,0xa1,0xeb,0xe8);
11886#if defined(__cplusplus) && !defined(CINTERFACE)
11887MIDL_INTERFACE("05e5ac9f-3fb6-4508-bb43-a4067ba1ebe8")
11888IWMLicenseBackup : public IUnknown
11889{
11890 virtual HRESULT STDMETHODCALLTYPE BackupLicenses(
11891 DWORD dwFlags,
11892 IWMStatusCallback *pCallback) = 0;
11893
11894 virtual HRESULT STDMETHODCALLTYPE CancelLicenseBackup(
11895 ) = 0;
11896
11897};
11898#ifdef __CRT_UUID_DECL
11899__CRT_UUID_DECL(IWMLicenseBackup, 0x05e5ac9f, 0x3fb6, 0x4508, 0xbb,0x43, 0xa4,0x06,0x7b,0xa1,0xeb,0xe8)
11900#endif
11901#else
11902typedef struct IWMLicenseBackupVtbl {
11903 BEGIN_INTERFACE
11904
11905 /*** IUnknown methods ***/
11906 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11907 IWMLicenseBackup *This,
11908 REFIID riid,
11909 void **ppvObject);
11910
11911 ULONG (STDMETHODCALLTYPE *AddRef)(
11912 IWMLicenseBackup *This);
11913
11914 ULONG (STDMETHODCALLTYPE *Release)(
11915 IWMLicenseBackup *This);
11916
11917 /*** IWMLicenseBackup methods ***/
11918 HRESULT (STDMETHODCALLTYPE *BackupLicenses)(
11919 IWMLicenseBackup *This,
11920 DWORD dwFlags,
11921 IWMStatusCallback *pCallback);
11922
11923 HRESULT (STDMETHODCALLTYPE *CancelLicenseBackup)(
11924 IWMLicenseBackup *This);
11925
11926 END_INTERFACE
11927} IWMLicenseBackupVtbl;
11928
11929interface IWMLicenseBackup {
11930 CONST_VTBL IWMLicenseBackupVtbl* lpVtbl;
11931};
11932
11933#ifdef COBJMACROS
11934#ifndef WIDL_C_INLINE_WRAPPERS
11935/*** IUnknown methods ***/
11936#define IWMLicenseBackup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11937#define IWMLicenseBackup_AddRef(This) (This)->lpVtbl->AddRef(This)
11938#define IWMLicenseBackup_Release(This) (This)->lpVtbl->Release(This)
11939/*** IWMLicenseBackup methods ***/
11940#define IWMLicenseBackup_BackupLicenses(This,dwFlags,pCallback) (This)->lpVtbl->BackupLicenses(This,dwFlags,pCallback)
11941#define IWMLicenseBackup_CancelLicenseBackup(This) (This)->lpVtbl->CancelLicenseBackup(This)
11942#else
11943/*** IUnknown methods ***/
11944static inline HRESULT IWMLicenseBackup_QueryInterface(IWMLicenseBackup* This,REFIID riid,void **ppvObject) {
11945 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11946}
11947static inline ULONG IWMLicenseBackup_AddRef(IWMLicenseBackup* This) {
11948 return This->lpVtbl->AddRef(This);
11949}
11950static inline ULONG IWMLicenseBackup_Release(IWMLicenseBackup* This) {
11951 return This->lpVtbl->Release(This);
11952}
11953/*** IWMLicenseBackup methods ***/
11954static inline HRESULT IWMLicenseBackup_BackupLicenses(IWMLicenseBackup* This,DWORD dwFlags,IWMStatusCallback *pCallback) {
11955 return This->lpVtbl->BackupLicenses(This,dwFlags,pCallback);
11956}
11957static inline HRESULT IWMLicenseBackup_CancelLicenseBackup(IWMLicenseBackup* This) {
11958 return This->lpVtbl->CancelLicenseBackup(This);
11959}
11960#endif
11961#endif
11962
11963#endif
11964
11965
11966#endif /* __IWMLicenseBackup_INTERFACE_DEFINED__ */
11967
11968/*****************************************************************************
11969 * IWMLicenseRestore interface
11970 */
11971#ifndef __IWMLicenseRestore_INTERFACE_DEFINED__
11972#define __IWMLicenseRestore_INTERFACE_DEFINED__
11973
11974DEFINE_GUID(IID_IWMLicenseRestore, 0xc70b6334, 0xa22e, 0x4efb, 0xa2,0x45, 0x15,0xe6,0x5a,0x00,0x4a,0x13);
11975#if defined(__cplusplus) && !defined(CINTERFACE)
11976MIDL_INTERFACE("c70b6334-a22e-4efb-a245-15e65a004a13")
11977IWMLicenseRestore : public IUnknown
11978{
11979 virtual HRESULT STDMETHODCALLTYPE RestoreLicenses(
11980 DWORD dwFlags,
11981 IWMStatusCallback *pCallback) = 0;
11982
11983 virtual HRESULT STDMETHODCALLTYPE CancelLicenseRestore(
11984 ) = 0;
11985
11986};
11987#ifdef __CRT_UUID_DECL
11988__CRT_UUID_DECL(IWMLicenseRestore, 0xc70b6334, 0xa22e, 0x4efb, 0xa2,0x45, 0x15,0xe6,0x5a,0x00,0x4a,0x13)
11989#endif
11990#else
11991typedef struct IWMLicenseRestoreVtbl {
11992 BEGIN_INTERFACE
11993
11994 /*** IUnknown methods ***/
11995 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11996 IWMLicenseRestore *This,
11997 REFIID riid,
11998 void **ppvObject);
11999
12000 ULONG (STDMETHODCALLTYPE *AddRef)(
12001 IWMLicenseRestore *This);
12002
12003 ULONG (STDMETHODCALLTYPE *Release)(
12004 IWMLicenseRestore *This);
12005
12006 /*** IWMLicenseRestore methods ***/
12007 HRESULT (STDMETHODCALLTYPE *RestoreLicenses)(
12008 IWMLicenseRestore *This,
12009 DWORD dwFlags,
12010 IWMStatusCallback *pCallback);
12011
12012 HRESULT (STDMETHODCALLTYPE *CancelLicenseRestore)(
12013 IWMLicenseRestore *This);
12014
12015 END_INTERFACE
12016} IWMLicenseRestoreVtbl;
12017
12018interface IWMLicenseRestore {
12019 CONST_VTBL IWMLicenseRestoreVtbl* lpVtbl;
12020};
12021
12022#ifdef COBJMACROS
12023#ifndef WIDL_C_INLINE_WRAPPERS
12024/*** IUnknown methods ***/
12025#define IWMLicenseRestore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12026#define IWMLicenseRestore_AddRef(This) (This)->lpVtbl->AddRef(This)
12027#define IWMLicenseRestore_Release(This) (This)->lpVtbl->Release(This)
12028/*** IWMLicenseRestore methods ***/
12029#define IWMLicenseRestore_RestoreLicenses(This,dwFlags,pCallback) (This)->lpVtbl->RestoreLicenses(This,dwFlags,pCallback)
12030#define IWMLicenseRestore_CancelLicenseRestore(This) (This)->lpVtbl->CancelLicenseRestore(This)
12031#else
12032/*** IUnknown methods ***/
12033static inline HRESULT IWMLicenseRestore_QueryInterface(IWMLicenseRestore* This,REFIID riid,void **ppvObject) {
12034 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12035}
12036static inline ULONG IWMLicenseRestore_AddRef(IWMLicenseRestore* This) {
12037 return This->lpVtbl->AddRef(This);
12038}
12039static inline ULONG IWMLicenseRestore_Release(IWMLicenseRestore* This) {
12040 return This->lpVtbl->Release(This);
12041}
12042/*** IWMLicenseRestore methods ***/
12043static inline HRESULT IWMLicenseRestore_RestoreLicenses(IWMLicenseRestore* This,DWORD dwFlags,IWMStatusCallback *pCallback) {
12044 return This->lpVtbl->RestoreLicenses(This,dwFlags,pCallback);
12045}
12046static inline HRESULT IWMLicenseRestore_CancelLicenseRestore(IWMLicenseRestore* This) {
12047 return This->lpVtbl->CancelLicenseRestore(This);
12048}
12049#endif
12050#endif
12051
12052#endif
12053
12054
12055#endif /* __IWMLicenseRestore_INTERFACE_DEFINED__ */
12056
12057/*****************************************************************************
12058 * IWMIStreamProps interface
12059 */
12060#ifndef __IWMIStreamProps_INTERFACE_DEFINED__
12061#define __IWMIStreamProps_INTERFACE_DEFINED__
12062
12063DEFINE_GUID(IID_IWMIStreamProps, 0x6816dad3, 0x2b4b, 0x4c8e, 0x81,0x49, 0x87,0x4c,0x34,0x83,0xa7,0x53);
12064#if defined(__cplusplus) && !defined(CINTERFACE)
12065MIDL_INTERFACE("6816dad3-2b4b-4c8e-8149-874c3483a753")
12066IWMIStreamProps : public IUnknown
12067{
12068 virtual HRESULT STDMETHODCALLTYPE GetProperty(
12069 const WCHAR *name,
12070 WMT_ATTR_DATATYPE *type,
12071 BYTE *value,
12072 DWORD *size) = 0;
12073
12074};
12075#ifdef __CRT_UUID_DECL
12076__CRT_UUID_DECL(IWMIStreamProps, 0x6816dad3, 0x2b4b, 0x4c8e, 0x81,0x49, 0x87,0x4c,0x34,0x83,0xa7,0x53)
12077#endif
12078#else
12079typedef struct IWMIStreamPropsVtbl {
12080 BEGIN_INTERFACE
12081
12082 /*** IUnknown methods ***/
12083 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12084 IWMIStreamProps *This,
12085 REFIID riid,
12086 void **ppvObject);
12087
12088 ULONG (STDMETHODCALLTYPE *AddRef)(
12089 IWMIStreamProps *This);
12090
12091 ULONG (STDMETHODCALLTYPE *Release)(
12092 IWMIStreamProps *This);
12093
12094 /*** IWMIStreamProps methods ***/
12095 HRESULT (STDMETHODCALLTYPE *GetProperty)(
12096 IWMIStreamProps *This,
12097 const WCHAR *name,
12098 WMT_ATTR_DATATYPE *type,
12099 BYTE *value,
12100 DWORD *size);
12101
12102 END_INTERFACE
12103} IWMIStreamPropsVtbl;
12104
12105interface IWMIStreamProps {
12106 CONST_VTBL IWMIStreamPropsVtbl* lpVtbl;
12107};
12108
12109#ifdef COBJMACROS
12110#ifndef WIDL_C_INLINE_WRAPPERS
12111/*** IUnknown methods ***/
12112#define IWMIStreamProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12113#define IWMIStreamProps_AddRef(This) (This)->lpVtbl->AddRef(This)
12114#define IWMIStreamProps_Release(This) (This)->lpVtbl->Release(This)
12115/*** IWMIStreamProps methods ***/
12116#define IWMIStreamProps_GetProperty(This,name,type,value,size) (This)->lpVtbl->GetProperty(This,name,type,value,size)
12117#else
12118/*** IUnknown methods ***/
12119static inline HRESULT IWMIStreamProps_QueryInterface(IWMIStreamProps* This,REFIID riid,void **ppvObject) {
12120 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12121}
12122static inline ULONG IWMIStreamProps_AddRef(IWMIStreamProps* This) {
12123 return This->lpVtbl->AddRef(This);
12124}
12125static inline ULONG IWMIStreamProps_Release(IWMIStreamProps* This) {
12126 return This->lpVtbl->Release(This);
12127}
12128/*** IWMIStreamProps methods ***/
12129static inline HRESULT IWMIStreamProps_GetProperty(IWMIStreamProps* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
12130 return This->lpVtbl->GetProperty(This,name,type,value,size);
12131}
12132#endif
12133#endif
12134
12135#endif
12136
12137
12138#endif /* __IWMIStreamProps_INTERFACE_DEFINED__ */
12139
12140/*****************************************************************************
12141 * IWMCredentialCallback interface
12142 */
12143#ifndef __IWMCredentialCallback_INTERFACE_DEFINED__
12144#define __IWMCredentialCallback_INTERFACE_DEFINED__
12145
12146DEFINE_GUID(IID_IWMCredentialCallback, 0x342e0eb7, 0xe651, 0x450c, 0x97,0x5b, 0x2a,0xce,0x2c,0x90,0xc4,0x8e);
12147#if defined(__cplusplus) && !defined(CINTERFACE)
12148MIDL_INTERFACE("342e0eb7-e651-450c-975b-2ace2c90c48e")
12149IWMCredentialCallback : public IUnknown
12150{
12151 virtual HRESULT STDMETHODCALLTYPE AcquireCredentials(
12152 WCHAR *realm,
12153 WCHAR *site,
12154 WCHAR *username,
12155 DWORD username_size,
12156 WCHAR *password,
12157 DWORD password_size,
12158 HRESULT hr,
12159 DWORD *flags) = 0;
12160
12161};
12162#ifdef __CRT_UUID_DECL
12163__CRT_UUID_DECL(IWMCredentialCallback, 0x342e0eb7, 0xe651, 0x450c, 0x97,0x5b, 0x2a,0xce,0x2c,0x90,0xc4,0x8e)
12164#endif
12165#else
12166typedef struct IWMCredentialCallbackVtbl {
12167 BEGIN_INTERFACE
12168
12169 /*** IUnknown methods ***/
12170 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12171 IWMCredentialCallback *This,
12172 REFIID riid,
12173 void **ppvObject);
12174
12175 ULONG (STDMETHODCALLTYPE *AddRef)(
12176 IWMCredentialCallback *This);
12177
12178 ULONG (STDMETHODCALLTYPE *Release)(
12179 IWMCredentialCallback *This);
12180
12181 /*** IWMCredentialCallback methods ***/
12182 HRESULT (STDMETHODCALLTYPE *AcquireCredentials)(
12183 IWMCredentialCallback *This,
12184 WCHAR *realm,
12185 WCHAR *site,
12186 WCHAR *username,
12187 DWORD username_size,
12188 WCHAR *password,
12189 DWORD password_size,
12190 HRESULT hr,
12191 DWORD *flags);
12192
12193 END_INTERFACE
12194} IWMCredentialCallbackVtbl;
12195
12196interface IWMCredentialCallback {
12197 CONST_VTBL IWMCredentialCallbackVtbl* lpVtbl;
12198};
12199
12200#ifdef COBJMACROS
12201#ifndef WIDL_C_INLINE_WRAPPERS
12202/*** IUnknown methods ***/
12203#define IWMCredentialCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12204#define IWMCredentialCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
12205#define IWMCredentialCallback_Release(This) (This)->lpVtbl->Release(This)
12206/*** IWMCredentialCallback methods ***/
12207#define IWMCredentialCallback_AcquireCredentials(This,realm,site,username,username_size,password,password_size,hr,flags) (This)->lpVtbl->AcquireCredentials(This,realm,site,username,username_size,password,password_size,hr,flags)
12208#else
12209/*** IUnknown methods ***/
12210static inline HRESULT IWMCredentialCallback_QueryInterface(IWMCredentialCallback* This,REFIID riid,void **ppvObject) {
12211 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12212}
12213static inline ULONG IWMCredentialCallback_AddRef(IWMCredentialCallback* This) {
12214 return This->lpVtbl->AddRef(This);
12215}
12216static inline ULONG IWMCredentialCallback_Release(IWMCredentialCallback* This) {
12217 return This->lpVtbl->Release(This);
12218}
12219/*** IWMCredentialCallback methods ***/
12220static inline HRESULT IWMCredentialCallback_AcquireCredentials(IWMCredentialCallback* This,WCHAR *realm,WCHAR *site,WCHAR *username,DWORD username_size,WCHAR *password,DWORD password_size,HRESULT hr,DWORD *flags) {
12221 return This->lpVtbl->AcquireCredentials(This,realm,site,username,username_size,password,password_size,hr,flags);
12222}
12223#endif
12224#endif
12225
12226#endif
12227
12228
12229#endif /* __IWMCredentialCallback_INTERFACE_DEFINED__ */
12230
12231HRESULT WINAPI WMCheckURLExtension(LPCWSTR);
12232HRESULT WINAPI WMCheckURLScheme(LPCWSTR);
12233HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**);
12234HRESULT WINAPI WMCreateReader(IUnknown*,DWORD,IWMReader**);
12235HRESULT WINAPI WMCreateSyncReader(IUnknown*,DWORD,IWMSyncReader**);
12236HRESULT WINAPI WMCreateEditor(IWMMetadataEditor**);
12237HRESULT WINAPI WMCreateBackupRestorer(IUnknown*,IWMLicenseBackup**);
12238HRESULT WINAPI WMCreateProfileManager(IWMProfileManager**);
12239HRESULT WINAPI WMIsContentProtected(const WCHAR*, WINBOOL*);
12240EXTERN_GUID(WMMEDIASUBTYPE_Base, 0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12241EXTERN_GUID(WMMEDIATYPE_Video, 0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12242EXTERN_GUID(WMMEDIASUBTYPE_RGB1, 0xe436eb78,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12243EXTERN_GUID(WMMEDIASUBTYPE_RGB4, 0xe436eb79,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12244EXTERN_GUID(WMMEDIASUBTYPE_RGB8, 0xe436eb7a,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12245EXTERN_GUID(WMMEDIASUBTYPE_RGB565, 0xe436eb7b,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12246EXTERN_GUID(WMMEDIASUBTYPE_RGB555, 0xe436eb7c,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12247EXTERN_GUID(WMMEDIASUBTYPE_RGB24, 0xe436eb7d,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12248EXTERN_GUID(WMMEDIASUBTYPE_RGB32, 0xe436eb7e,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12249EXTERN_GUID(WMMEDIASUBTYPE_I420, 0x30323449,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12250EXTERN_GUID(WMMEDIASUBTYPE_IYUV, 0x56555949,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12251EXTERN_GUID(WMMEDIASUBTYPE_YV12, 0x32315659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12252EXTERN_GUID(WMMEDIASUBTYPE_YUY2, 0x32595559,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12253EXTERN_GUID(WMMEDIASUBTYPE_P422, 0x32323450,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12254EXTERN_GUID(WMMEDIASUBTYPE_UYVY, 0x59565955,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12255EXTERN_GUID(WMMEDIASUBTYPE_YVYU, 0x55595659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12256EXTERN_GUID(WMMEDIASUBTYPE_YVU9, 0x39555659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12257EXTERN_GUID(WMMEDIASUBTYPE_VIDEOIMAGE, 0x1d4a45f2,0xe5f6,0x4b44,0x83,0x88,0xf0,0xae,0x5c,0x0e,0x0c,0x37);
12258EXTERN_GUID(WMMEDIASUBTYPE_MP43, 0x3334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12259EXTERN_GUID(WMMEDIASUBTYPE_MP4S, 0x5334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12260EXTERN_GUID(WMMEDIASUBTYPE_M4S2, 0x3253344d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12261EXTERN_GUID(WMMEDIASUBTYPE_WMV1, 0x31564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12262EXTERN_GUID(WMMEDIASUBTYPE_WMV2, 0x32564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12263EXTERN_GUID(WMMEDIASUBTYPE_MSS1, 0x3153534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12264EXTERN_GUID(WMMEDIASUBTYPE_MPEG2_VIDEO, 0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea);
12265EXTERN_GUID(WMMEDIATYPE_Audio, 0x73647561,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12266EXTERN_GUID(WMMEDIASUBTYPE_PCM, 0x00000001,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12267EXTERN_GUID(WMMEDIASUBTYPE_DRM, 0x00000009,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12268EXTERN_GUID(WMMEDIASUBTYPE_WMAudioV9, 0x00000162,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12269EXTERN_GUID(WMMEDIASUBTYPE_WMAudio_Lossless, 0x00000163,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12270EXTERN_GUID(WMMEDIASUBTYPE_MSS2, 0x3253534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12271EXTERN_GUID(WMMEDIASUBTYPE_WMSP1, 0x0000000a,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12272EXTERN_GUID(WMMEDIASUBTYPE_WMSP2, 0x0000000b,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12273EXTERN_GUID(WMMEDIASUBTYPE_WMV3, 0x33564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12274EXTERN_GUID(WMMEDIASUBTYPE_WMVP, 0x50564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12275EXTERN_GUID(WMMEDIASUBTYPE_WVP2, 0x32505657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12276EXTERN_GUID(WMMEDIASUBTYPE_WMVA, 0x41564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12277EXTERN_GUID(WMMEDIASUBTYPE_WVC1, 0x31435657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12278/* Begin additional prototypes for all interfaces */
12279
12280
12281/* End additional prototypes */
12282
12283#ifdef __cplusplus
12284}
12285#endif
12286
12287#endif /* __wmsdkidl_h__ */