source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/wmsdkidl.idl@ 1170

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

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

File size: 50.1 KB
Line 
1/*
2 * Copyright 2012 André Hentschel
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19import "oaidl.idl";
20import "wmsbuffer.idl";
21import "drmexternals.idl";
22
23typedef struct _WMMediaType
24{
25 GUID majortype;
26 GUID subtype;
27 BOOL bFixedSizeSamples;
28 BOOL bTemporalCompression;
29 ULONG lSampleSize;
30 GUID formattype;
31 IUnknown *pUnk;
32 ULONG cbFormat;
33 [size_is(cbFormat)] BYTE *pbFormat;
34} WM_MEDIA_TYPE;
35
36typedef struct _WMWriterStatistics
37{
38 QWORD qwSampleCount;
39 QWORD qwByteCount;
40 QWORD qwDroppedSampleCount;
41 QWORD qwDroppedByteCount;
42 DWORD dwCurrentBitrate;
43 DWORD dwAverageBitrate;
44 DWORD dwExpectedBitrate;
45 DWORD dwCurrentSampleRate;
46 DWORD dwAverageSampleRate;
47 DWORD dwExpectedSampleRate;
48} WM_WRITER_STATISTICS;
49
50typedef struct _WMWriterStatisticsEx
51{
52 DWORD dwBitratePlusOverhead;
53 DWORD dwCurrentSampleDropRateInQueue;
54 DWORD dwCurrentSampleDropRateInCodec;
55 DWORD dwCurrentSampleDropRateInMultiplexer;
56 DWORD dwTotalSampleDropsInQueue;
57 DWORD dwTotalSampleDropsInCodec;
58 DWORD dwTotalSampleDropsInMultiplexer;
59} WM_WRITER_STATISTICS_EX;
60
61typedef struct _WMReaderStatistics
62{
63 DWORD cbSize;
64 DWORD dwBandwidth;
65 DWORD cPacketsReceived;
66 DWORD cPacketsRecovered;
67 DWORD cPacketsLost;
68 WORD wQuality;
69} WM_READER_STATISTICS;
70
71typedef struct _WMReaderClientInfo
72{
73 DWORD cbSize;
74 WCHAR *wszLang;
75 WCHAR *wszBrowserUserAgent;
76 WCHAR *wszBrowserWebPage;
77 QWORD qwReserved;
78 LPARAM *pReserved;
79 WCHAR *wszHostExe;
80 QWORD qwHostVersion;
81 WCHAR *wszPlayerUserAgent;
82} WM_READER_CLIENTINFO;
83
84typedef enum WMT_ATTR_DATATYPE
85{
86 WMT_TYPE_DWORD = 0,
87 WMT_TYPE_STRING = 1,
88 WMT_TYPE_BINARY = 2,
89 WMT_TYPE_BOOL = 3,
90 WMT_TYPE_QWORD = 4,
91 WMT_TYPE_WORD = 5,
92 WMT_TYPE_GUID = 6,
93} WMT_ATTR_DATATYPE;
94
95typedef enum WMT_STATUS
96{
97 WMT_ERROR = 0,
98 WMT_OPENED = 1,
99 WMT_BUFFERING_START = 2,
100 WMT_BUFFERING_STOP = 3,
101 WMT_EOF = 4,
102 WMT_END_OF_FILE = 4,
103 WMT_END_OF_SEGMENT = 5,
104 WMT_END_OF_STREAMING = 6,
105 WMT_LOCATING = 7,
106 WMT_CONNECTING = 8,
107 WMT_NO_RIGHTS = 9,
108 WMT_MISSING_CODEC = 10,
109 WMT_STARTED = 11,
110 WMT_STOPPED = 12,
111 WMT_CLOSED = 13,
112 WMT_STRIDING = 14,
113 WMT_TIMER = 15,
114 WMT_INDEX_PROGRESS = 16,
115 WMT_SAVEAS_START = 17,
116 WMT_SAVEAS_STOP = 18,
117 WMT_NEW_SOURCEFLAGS = 19,
118 WMT_NEW_METADATA = 20,
119 WMT_BACKUPRESTORE_BEGIN = 21,
120 WMT_SOURCE_SWITCH = 22,
121 WMT_ACQUIRE_LICENSE = 23,
122 WMT_INDIVIDUALIZE = 24,
123 WMT_NEEDS_INDIVIDUALIZATION = 25,
124 WMT_NO_RIGHTS_EX = 26,
125 WMT_BACKUPRESTORE_END = 27,
126 WMT_BACKUPRESTORE_CONNECTING = 28,
127 WMT_BACKUPRESTORE_DISCONNECTING = 29,
128 WMT_ERROR_WITHURL = 30,
129 WMT_RESTRICTED_LICENSE = 31,
130 WMT_CLIENT_CONNECT = 32,
131 WMT_CLIENT_DISCONNECT = 33,
132 WMT_NATIVE_OUTPUT_PROPS_CHANGED = 34,
133 WMT_RECONNECT_START = 35,
134 WMT_RECONNECT_END = 36,
135 WMT_CLIENT_CONNECT_EX = 37,
136 WMT_CLIENT_DISCONNECT_EX = 38,
137 WMT_SET_FEC_SPAN = 39,
138 WMT_PREROLL_READY = 40,
139 WMT_PREROLL_COMPLETE = 41,
140 WMT_CLIENT_PROPERTIES = 42,
141 WMT_LICENSEURL_SIGNATURE_STATE = 43,
142 WMT_INIT_PLAYLIST_BURN = 44,
143 WMT_TRANSCRYPTOR_INIT = 45,
144 WMT_TRANSCRYPTOR_SEEKED = 46,
145 WMT_TRANSCRYPTOR_READ = 47,
146 WMT_TRANSCRYPTOR_CLOSED = 48,
147 WMT_PROXIMITY_RESULT = 49,
148 WMT_PROXIMITY_COMPLETED = 50,
149 WMT_CONTENT_ENABLER = 51
150} WMT_STATUS;
151
152typedef enum WMT_STREAM_SELECTION
153{
154 WMT_OFF = 0,
155 WMT_CLEANPOINT_ONLY = 1,
156 WMT_ON = 2,
157} WMT_STREAM_SELECTION;
158
159typedef enum WMT_VERSION
160{
161 WMT_VER_4_0 = 0x00040000,
162 WMT_VER_7_0 = 0x00070000,
163 WMT_VER_8_0 = 0x00080000,
164 WMT_VER_9_0 = 0x00090000
165} WMT_VERSION;
166
167typedef enum WMT_PLAY_MODE
168{
169 WMT_PLAY_MODE_AUTOSELECT,
170 WMT_PLAY_MODE_LOCAL,
171 WMT_PLAY_MODE_DOWNLOAD,
172 WMT_PLAY_MODE_STREAMING
173} WMT_PLAY_MODE;
174
175typedef enum tagWMT_OFFSET_FORMAT
176{
177 WMT_OFFSET_FORMAT_100NS,
178 WMT_OFFSET_FORMAT_FRAME_NUMBERS,
179 WMT_OFFSET_FORMAT_PLAYLIST_OFFSET,
180 WMT_OFFSET_FORMAT_TIMECODE,
181 WMT_OFFSET_FORMAT_100NS_APPROXIMATE
182} WMT_OFFSET_FORMAT;
183
184typedef enum WMT_CODEC_INFO_TYPE
185{
186 WMT_CODECINFO_AUDIO = 0,
187 WMT_CODECINFO_VIDEO = 1,
188 WMT_CODECINFO_UNKNOWN = 0xFFFFFFFF,
189} WMT_CODEC_INFO_TYPE;
190
191typedef enum WMT_PROXY_SETTINGS
192{
193 WMT_PROXY_SETTING_NONE = 0,
194 WMT_PROXY_SETTING_MANUAL = 1,
195 WMT_PROXY_SETTING_AUTO = 2,
196 WMT_PROXY_SETTING_BROWSER = 3,
197 WMT_PROXY_SETTING_MAX
198} WMT_PROXY_SETTINGS;
199
200typedef enum tagWMT_STORAGE_FORMAT
201{
202 WMT_Storage_Format_MP3 = 0,
203 WMT_Storage_Format_V1 = 1
204} WMT_STORAGE_FORMAT;
205
206#include <pshpack2.h>
207typedef struct _WMStreamPrioritizationRecord
208{
209 WORD wStreamNumber;
210 BOOL fMandatory;
211} WM_STREAM_PRIORITY_RECORD;
212
213typedef struct _WMT_TIMECODE_EXTENSION_DATA
214{
215 WORD wRange;
216 DWORD dwTimecode;
217 DWORD dwUserbits;
218 DWORD dwAmFlags;
219} WMT_TIMECODE_EXTENSION_DATA;
220#include <poppack.h>
221
222typedef struct _WM_PORT_NUMBER_RANGE
223{
224 WORD wPortBegin;
225 WORD wPortEnd;
226} WM_PORT_NUMBER_RANGE;
227
228typedef LPCWSTR LPCWSTR_WMSDK_TYPE_SAFE;
229
230[
231 object,
232 uuid(6d7cdc70-9888-11d3-8edc-00c04f6109cf),
233 pointer_default(unique),
234 local
235]
236interface IWMStatusCallback : IUnknown
237{
238 HRESULT OnStatus(
239 [in] WMT_STATUS Status,
240 [in] HRESULT hr,
241 [in] WMT_ATTR_DATATYPE dwType,
242 [in] BYTE *pValue,
243 [in] void *pvContext);
244}
245
246[
247 object,
248 uuid(96406bd8-2b2b-11d3-b36b-00c04f6108ff),
249 pointer_default(unique),
250 local
251]
252interface IWMReaderCallback : IWMStatusCallback
253{
254 HRESULT OnSample(
255 [in] DWORD dwOutputNum,
256 [in] QWORD cnsSampleTime,
257 [in] QWORD cnsSampleDuration,
258 [in] DWORD dwFlags,
259 [in] INSSBuffer *pSample,
260 [in] void *pvContext);
261}
262
263[
264 object,
265 uuid(96406Bdd-2b2b-11d3-b36b-00c04f6108ff),
266 pointer_default(unique),
267 local
268]
269interface IWMStreamList : IUnknown
270{
271 HRESULT GetStreams(
272 [out, size_is(*pcStreams)] WORD *pwStreamNumArray,
273 [in, out] WORD *pcStreams);
274
275 HRESULT AddStream([in] WORD wStreamNum);
276 HRESULT RemoveStream([in] WORD wStreamNum);
277}
278
279[
280 object,
281 uuid(96406Bde-2b2b-11d3-b36b-00c04f6108ff),
282 pointer_default(unique),
283 local
284]
285interface IWMMutualExclusion : IWMStreamList
286{
287 HRESULT GetType([out] GUID *pguidType);
288 HRESULT SetType([in] REFGUID guidType);
289}
290
291[
292 object,
293 uuid(ad694af1-f8d9-42f8-bc47-70311b0c4f9e),
294 pointer_default(unique),
295 local
296]
297interface IWMBandwidthSharing : IWMStreamList
298{
299 HRESULT GetType([out] GUID *guid);
300 HRESULT SetType([in] REFGUID guid);
301
302 HRESULT GetBandwidth(
303 [out] DWORD *bitrate,
304 [out] DWORD *buffer);
305
306 HRESULT SetBandwidth(
307 [in] DWORD bitrate,
308 [in] DWORD buffer);
309}
310
311[
312 object,
313 uuid(8c1c6090-f9a8-4748-8ec3-dd1108ba1e77),
314 pointer_default(unique),
315 local
316]
317interface IWMStreamPrioritization : IUnknown
318{
319 HRESULT GetPriorityRecords(
320 [out] WM_STREAM_PRIORITY_RECORD *array,
321 [in, out] WORD *records);
322
323 HRESULT SetPriorityRecords(
324 [in] WM_STREAM_PRIORITY_RECORD *array,
325 [in] WORD records);
326}
327
328[
329 object,
330 uuid(96406Bdc-2b2b-11d3-b36b-00c04f6108ff),
331 pointer_default(unique),
332 local
333]
334interface IWMStreamConfig : IUnknown
335{
336 HRESULT GetStreamType([out] GUID *pguidStreamType);
337 HRESULT GetStreamNumber([out] WORD *pwStreamNum);
338 HRESULT SetStreamNumber([in] WORD wStreamNum);
339
340 HRESULT GetStreamName(
341 [out, size_is(*pcchStreamName)] WCHAR *pwszStreamName,
342 [in, out] WORD *pcchStreamName);
343
344 HRESULT SetStreamName([in] LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName);
345
346 HRESULT GetConnectionName(
347 [out, size_is(*pcchInputName)] WCHAR *pwszInputName,
348 [in, out] WORD *pcchInputName);
349
350 HRESULT SetConnectionName([in] LPCWSTR_WMSDK_TYPE_SAFE pwszInputName);
351 HRESULT GetBitrate([out] DWORD *pdwBitrate);
352 HRESULT SetBitrate([in] DWORD pdwBitrate);
353 HRESULT GetBufferWindow([out] DWORD *pmsBufferWindow);
354 HRESULT SetBufferWindow([in] DWORD msBufferWindow);
355}
356
357[
358 object,
359 uuid(96406bdb-2b2b-11d3-b36b-00c04f6108ff),
360 pointer_default(unique),
361 local
362]
363interface IWMProfile : IUnknown
364{
365 HRESULT GetVersion(
366 [out] WMT_VERSION *pdwVersion);
367
368 HRESULT GetName(
369 [out, size_is(*pcchName)] WCHAR *pwszName,
370 [in, out] DWORD *pcchName);
371
372 HRESULT SetName(
373 [in] const WCHAR *pwszName);
374
375 HRESULT GetDescription(
376 [out, size_is(*pcchDescription)] WCHAR *pwszDescription,
377 [in, out] DWORD *pcchDescription);
378
379 HRESULT SetDescription(
380 [in] const WCHAR *pwszDescription);
381
382 HRESULT GetStreamCount(
383 [out] DWORD *pcStreams);
384
385 HRESULT GetStream(
386 [in] DWORD dwStreamIndex,
387 [out] IWMStreamConfig **ppConfig);
388
389 HRESULT GetStreamByNumber(
390 [in] WORD wStreamNum,
391 [out] IWMStreamConfig **ppConfig);
392
393 HRESULT RemoveStream(
394 [in] IWMStreamConfig *pConfig);
395
396 HRESULT RemoveStreamByNumber(
397 [in] WORD wStreamNum);
398
399 HRESULT AddStream(
400 [in] IWMStreamConfig *pConfig);
401
402 HRESULT ReconfigStream(
403 [in] IWMStreamConfig *pConfig);
404
405 HRESULT CreateNewStream(
406 [in] REFGUID guidStreamType,
407 [out] IWMStreamConfig **ppConfig);
408
409 HRESULT GetMutualExclusionCount(
410 [out] DWORD *pcME);
411
412 HRESULT GetMutualExclusion(
413 [in] DWORD dwMEIndex,
414 [out] IWMMutualExclusion **ppME);
415
416 HRESULT RemoveMutualExclusion(
417 [in] IWMMutualExclusion *pME);
418
419 HRESULT AddMutualExclusion(
420 [in] IWMMutualExclusion *pME);
421
422 HRESULT CreateNewMutualExclusion(
423 [out] IWMMutualExclusion **ppME);
424}
425
426[
427 object,
428 uuid(07e72d33-d94e-4be7-8843-60ae5ff7e5f5),
429 pointer_default(unique),
430 local
431]
432interface IWMProfile2 : IWMProfile
433{
434 HRESULT GetProfileID([out] GUID *guid);
435}
436
437[
438 object,
439 uuid(00ef96cc-a461-4546-8bcd-c9a28f0e06f5),
440 pointer_default(unique),
441 local
442]
443interface IWMProfile3 : IWMProfile2
444{
445 HRESULT GetStorageFormat([out] WMT_STORAGE_FORMAT *storage);
446 HRESULT SetStorageFormat([in] WMT_STORAGE_FORMAT storage);
447
448 HRESULT GetBandwidthSharingCount([out] DWORD *count);
449
450 HRESULT GetBandwidthSharing(
451 [in] DWORD index,
452 [out] IWMBandwidthSharing **bandwidth);
453
454 HRESULT RemoveBandwidthSharing([in] IWMBandwidthSharing *bandwidth);
455
456 HRESULT AddBandwidthSharing([in] IWMBandwidthSharing *bandwidth);
457
458 HRESULT CreateNewBandwidthSharing([out] IWMBandwidthSharing **bandwidth);
459
460 HRESULT GetStreamPrioritization([out] IWMStreamPrioritization **stream);
461
462 HRESULT SetStreamPrioritization([in] IWMStreamPrioritization *stream);
463
464 HRESULT RemoveStreamPrioritization();
465
466 HRESULT CreateNewStreamPrioritization([out] IWMStreamPrioritization **stream);
467
468 HRESULT GetExpectedPacketCount(
469 [in] QWORD duration,
470 [out] QWORD *packets);
471}
472
473[
474 object,
475 uuid(d16679f2-6ca0-472d-8d31-2f5d55aee155),
476 pointer_default(unique),
477 local
478]
479interface IWMProfileManager : IUnknown
480{
481 HRESULT CreateEmptyProfile(
482 [in] WMT_VERSION dwVersion,
483 [out] IWMProfile **ppProfile);
484
485 HRESULT LoadProfileByID(
486 [in] REFGUID guidProfile,
487 [out] IWMProfile **ppProfile);
488
489 HRESULT LoadProfileByData(
490 [in] const WCHAR *pwszProfile,
491 [out] IWMProfile **ppProfile);
492
493 HRESULT SaveProfile(
494 [in] IWMProfile *pIWMProfile,
495 [in] WCHAR *pwszProfile,
496 [in, out] DWORD *pdwLength);
497
498 HRESULT GetSystemProfileCount(
499 [out] DWORD *pcProfiles);
500
501 HRESULT LoadSystemProfile(
502 [in] DWORD dwProfileIndex,
503 [out] IWMProfile **ppProfile);
504}
505
506[
507 object,
508 uuid(7a924e51-73c1-494d-8019-23d37ed9b89a),
509 pointer_default(unique),
510 local
511]
512interface IWMProfileManager2 : IWMProfileManager
513{
514 HRESULT GetSystemProfileVersion(WMT_VERSION *version);
515 HRESULT SetSystemProfileVersion(WMT_VERSION version);
516};
517
518cpp_quote("HRESULT WINAPI WMCreateProfileManager(IWMProfileManager**);")
519
520[
521 object,
522 uuid(a970f41e-34de-4a98-b3ba-e4b3ca7528f0),
523 pointer_default(unique),
524 local
525]
526interface IWMCodecInfo : IUnknown
527{
528 HRESULT GetCodecInfoCount(
529 [in] REFGUID guid,
530 [out] DWORD *count);
531
532 HRESULT GetCodecFormatCount(
533 [in] REFGUID guid,
534 [in] DWORD codecindex,
535 [out] DWORD *formatcount);
536
537 HRESULT GetCodecFormat(
538 [in] REFGUID guid,
539 [in] DWORD codecindex,
540 [in] DWORD formatindex,
541 [out] IWMStreamConfig **streamconfig);
542}
543
544[
545 object,
546 uuid(aa65e273-b686-4056-91ec-dd768d4df710),
547 pointer_default(unique),
548 local
549]
550interface IWMCodecInfo2 : IWMCodecInfo
551{
552 HRESULT GetCodecName(
553 [in] REFGUID guid,
554 [in] DWORD codecindex,
555 [out, size_is(*namesize)] WCHAR *name,
556 [in, out] DWORD *namesize);
557
558 HRESULT GetCodecFormatDesc(
559 [in] REFGUID guid,
560 [in] DWORD codecindex,
561 [in] DWORD formatindex,
562 [out] IWMStreamConfig **streamconfig,
563 [out, size_is(*descrsize)] WCHAR *description,
564 [in, out] DWORD *descrsize);
565}
566
567[
568 object,
569 uuid(7e51f487-4d93-4f98-8ab4-27d0565adc51),
570 pointer_default(unique),
571 local
572]
573interface IWMCodecInfo3 : IWMCodecInfo2
574{
575 HRESULT GetCodecFormatProp(
576 [in] REFGUID guid,
577 [in] DWORD codecindex,
578 [in] DWORD formatindex,
579 [in] const WCHAR *name,
580 [out] WMT_ATTR_DATATYPE *type,
581 [out, size_is(*size)] BYTE *value,
582 [in, out] DWORD *size);
583
584 HRESULT GetCodecProp(
585 [in] REFGUID guid,
586 [in] DWORD codecindex,
587 [in] const WCHAR *name,
588 [out] WMT_ATTR_DATATYPE *type,
589 [out, size_is(*size)] BYTE *value,
590 [in, out] DWORD *size);
591
592 HRESULT SetCodecEnumerationSetting(
593 [in] REFGUID guid,
594 [in] DWORD codecindex,
595 [in] const WCHAR *name,
596 [in] WMT_ATTR_DATATYPE type,
597 [in, size_is(size)] const BYTE *value,
598 [in] DWORD size);
599
600 HRESULT GetCodecEnumerationSetting(
601 [in] REFGUID guid,
602 [in] DWORD codecindex,
603 [in] const WCHAR *name,
604 [out] WMT_ATTR_DATATYPE *type,
605 [out, size_is(*size)] BYTE *value,
606 [in, out] DWORD *size);
607}
608
609cpp_quote("static const WCHAR g_wszNumPasses[] = {'_','P','A','S','S','E','S','U','S','E','D',0};")
610cpp_quote("static const WCHAR g_wszVBREnabled[] = {'_','V','B','R','E','N','A','B','L','E','D',0};")
611
612[
613 object,
614 uuid(96406bce-2b2b-11d3-b36b-00c04f6108ff),
615 pointer_default(unique),
616 local
617]
618interface IWMMediaProps : IUnknown
619{
620 HRESULT GetType(
621 [out] GUID *pguidType);
622
623 HRESULT GetMediaType(
624 [out] WM_MEDIA_TYPE *pType,
625 [in, out] DWORD *pcbType);
626
627 HRESULT SetMediaType(
628 [in] WM_MEDIA_TYPE *pType);
629}
630
631[
632 object,
633 uuid(96406bd7-2b2b-11d3-b36b-00c04f6108ff),
634 pointer_default(unique),
635 local
636]
637interface IWMOutputMediaProps : IWMMediaProps
638{
639 HRESULT GetStreamGroupName(
640 [out, size_is(*pcchName)] WCHAR *pwszName,
641 [in, out] WORD *pcchName);
642
643 HRESULT GetConnectionName(
644 [out, size_is(*pcchName)] WCHAR *pwszName,
645 [in, out] WORD *pcchName);
646}
647
648[
649 object,
650 uuid(96406bd9-2b2b-11d3-b36b-00c04f6108ff),
651 pointer_default(unique),
652 local
653]
654interface IWMMetadataEditor : IUnknown
655{
656 HRESULT Open(
657 [in] const WCHAR *pwszFilename);
658
659 HRESULT Close();
660
661 HRESULT Flush();
662}
663
664[
665 object,
666 uuid(96406bd6-2b2b-11d3-b36b-00c04f6108ff),
667 pointer_default(unique),
668 local
669]
670interface IWMReader : IUnknown
671{
672 HRESULT Open(
673 [in] const WCHAR *pwszURL,
674 [in] IWMReaderCallback *pCallback,
675 [in] void *pvContext);
676
677 HRESULT Close();
678
679 HRESULT GetOutputCount(
680 [out] DWORD *pcOutputs);
681
682 HRESULT GetOutputProps(
683 [in] DWORD dwOutputNum,
684 [out] IWMOutputMediaProps **ppOutput);
685
686 HRESULT SetOutputProps(
687 [in] DWORD dwOutputNum,
688 [in] IWMOutputMediaProps *pOutput);
689
690 HRESULT GetOutputFormatCount(
691 [in] DWORD dwOutputNumber,
692 [out] DWORD *pcFormats);
693
694 HRESULT GetOutputFormat(
695 [in] DWORD dwOutputNumber,
696 [in] DWORD dwFormatNumber,
697 [out] IWMOutputMediaProps** ppProps);
698
699 HRESULT Start(
700 [in] QWORD cnsStart,
701 [in] QWORD cnsDuration,
702 [in] float fRate,
703 [in] void *pvContext);
704
705 HRESULT Stop();
706
707 HRESULT Pause();
708
709 HRESULT Resume();
710}
711
712[
713 object,
714 uuid(e5b7ca9a-0f1c-4f66-9002-74ec50d8b304),
715 pointer_default(unique),
716 local
717]
718interface IWMPlayerHook : IUnknown
719{
720 HRESULT PreDecode();
721}
722
723[
724 object,
725 uuid(96406bea-2b2b-11d3-b36b-00c04f6108ff),
726 pointer_default(unique),
727 local
728]
729interface IWMReaderAdvanced : IUnknown
730{
731 HRESULT SetUserProvidedClock(
732 [in] BOOL fUserClock);
733
734 HRESULT GetUserProvidedClock(
735 [out] BOOL *pfUserClock);
736
737 HRESULT DeliverTime(
738 [in] QWORD cnsTime);
739
740 HRESULT SetManualStreamSelection(
741 [in] BOOL fSelection);
742
743 HRESULT GetManualStreamSelection(
744 [out] BOOL *pfSelection);
745
746 HRESULT SetStreamsSelected(
747 [in] WORD cStreamCount,
748 [in] WORD *pwStreamNumbers,
749 [in] WMT_STREAM_SELECTION *pSelections);
750
751 HRESULT GetStreamSelected(
752 [in] WORD wStreamNum,
753 [out] WMT_STREAM_SELECTION *pSelection);
754
755 HRESULT SetReceiveSelectionCallbacks(
756 [in] BOOL fGetCallbacks);
757
758 HRESULT GetReceiveSelectionCallbacks(
759 [out] BOOL *pfGetCallbacks);
760
761 HRESULT SetReceiveStreamSamples(
762 [in] WORD wStreamNum,
763 [in] BOOL fReceiveStreamSamples);
764
765 HRESULT GetReceiveStreamSamples(
766 [in] WORD wStreamNum,
767 [out] BOOL *pfReceiveStreamSamples);
768
769 HRESULT SetAllocateForOutput(
770 [in] DWORD dwOutputNum,
771 [in] BOOL fAllocate);
772
773 HRESULT GetAllocateForOutput(
774 [in] DWORD dwOutputNum,
775 [out] BOOL *pfAllocate);
776
777 HRESULT SetAllocateForStream(
778 [in] WORD wStreamNum,
779 [in] BOOL fAllocate);
780
781 HRESULT GetAllocateForStream(
782 [in] WORD dwStreamNum,
783 [out] BOOL *pfAllocate);
784
785 HRESULT GetStatistics(
786 [in, out] WM_READER_STATISTICS *pStatistics);
787
788 HRESULT SetClientInfo(
789 [in] WM_READER_CLIENTINFO *pClientInfo);
790
791 HRESULT GetMaxOutputSampleSize(
792 [in] DWORD dwOutput,
793 [out] DWORD *pcbMax);
794
795 HRESULT GetMaxStreamSampleSize(
796 [in] WORD wStream,
797 [out] DWORD *pcbMax);
798
799 HRESULT NotifyLateDelivery(
800 QWORD cnsLateness);
801}
802
803[
804 object,
805 uuid(ae14a945-b90c-4d0d-9127-80d665f7d73e),
806 pointer_default(unique),
807 local
808]
809interface IWMReaderAdvanced2 : IWMReaderAdvanced
810{
811 HRESULT SetPlayMode(
812 [in] WMT_PLAY_MODE Mode);
813
814 HRESULT GetPlayMode(
815 [out] WMT_PLAY_MODE *pMode);
816
817 HRESULT GetBufferProgress(
818 [out] DWORD *pdwPercent,
819 [out] QWORD *pcnsBuffering);
820
821 HRESULT GetDownloadProgress(
822 [out] DWORD *pdwPercent,
823 [out] QWORD *pqwBytesDownloaded,
824 [out] QWORD *pcnsDownload);
825
826 HRESULT GetSaveAsProgress(
827 [out] DWORD *pdwPercent);
828
829 HRESULT SaveFileAs(
830 [in] const WCHAR *pwszFilename);
831
832 HRESULT GetProtocolName(
833 [out, size_is(*pcchProtocol)] WCHAR *pwszProtocol,
834 [in, out] DWORD *pcchProtocol);
835
836 HRESULT StartAtMarker(
837 [in] WORD wMarkerIndex,
838 [in] QWORD cnsDuration,
839 [in] float fRate,
840 [in] void *pvContext);
841
842 HRESULT GetOutputSetting(
843 [in] DWORD dwOutputNum,
844 [in] LPCWSTR pszName,
845 [out] WMT_ATTR_DATATYPE *pType,
846 [out, size_is(*pcbLength)] BYTE *pValue,
847 [in, out] WORD *pcbLength);
848
849 HRESULT SetOutputSetting(
850 [in] DWORD dwOutputNum,
851 [in] LPCWSTR pszName,
852 [in] WMT_ATTR_DATATYPE Type,
853 [in, size_is(cbLength)] const BYTE *pValue,
854 [in] WORD cbLength);
855
856 HRESULT Preroll(
857 [in] QWORD cnsStart,
858 [in] QWORD cnsDuration,
859 [in] float fRate);
860
861 HRESULT SetLogClientID(
862 [in] BOOL fLogClientID);
863
864 HRESULT GetLogClientID(
865 [out] BOOL *pfLogClientID);
866
867 HRESULT StopBuffering();
868
869 HRESULT OpenStream(
870 [in] IStream *pStream,
871 [in] IWMReaderCallback *pCallback,
872 [in] void *pvContext);
873}
874
875[
876 object,
877 uuid(5dc0674b-f04B-4a4e-9f2a-b1afde2c8100),
878 pointer_default(unique),
879 local
880]
881interface IWMReaderAdvanced3 : IWMReaderAdvanced2
882{
883 HRESULT StopNetStreaming();
884
885 HRESULT StartAtPosition(
886 [in] WORD wStreamNum,
887 [in] void *pvOffsetStart,
888 [in] void *pvDuration,
889 [in] WMT_OFFSET_FORMAT dwOffsetFormat,
890 [in] float fRate,
891 [in] void *pvContext);
892}
893
894[
895 object,
896 uuid(945a76a2-12ae-4d48-bd3c-cd1d90399b85),
897 pointer_default(unique),
898 local
899]
900interface IWMReaderAdvanced4 : IWMReaderAdvanced3
901{
902 HRESULT GetLanguageCount(
903 [in] DWORD dwOutputNum,
904 [out] WORD *pwLanguageCount);
905
906 HRESULT GetLanguage(
907 [in] DWORD dwOutputNum,
908 [in] WORD wLanguage,
909 [out, size_is(*pcchLanguageStringLength)] WCHAR *pwszLanguageString,
910 [in, out] WORD *pcchLanguageStringLength);
911
912 HRESULT GetMaxSpeedFactor(
913 [out] double *pdblFactor);
914
915 HRESULT IsUsingFastCache(
916 [out] BOOL *pfUsingFastCache);
917
918 HRESULT AddLogParam(
919 [in] LPCWSTR wszNameSpace,
920 [in] LPCWSTR wszName,
921 [in] LPCWSTR wszValue);
922
923 HRESULT SendLogParams();
924
925 HRESULT CanSaveFileAs(
926 [out] BOOL *pfCanSave);
927
928 HRESULT CancelSaveFileAs();
929
930 HRESULT GetURL(
931 [out, size_is(*pcchURL)] WCHAR *pwszURL,
932 [in, out] DWORD *pcchURL);
933}
934
935[
936 object,
937 uuid(24c44db0-55d1-49ae-a5cc-f13815e36363),
938 pointer_default(unique),
939 local
940]
941interface IWMReaderAdvanced5 : IWMReaderAdvanced4
942{
943 HRESULT SetPlayerHook(
944 [in] DWORD dwOutputNum,
945 [in] IWMPlayerHook *pHook);
946}
947
948[
949 object,
950 uuid(18a2e7f8-428f-4acd-8a00-e64639bc93de),
951 pointer_default(unique),
952 local
953]
954interface IWMReaderAdvanced6 : IWMReaderAdvanced5
955{
956 HRESULT SetProtectStreamSamples(
957 [in, size_is(cbCertificate)] BYTE *pbCertificate,
958 [in] DWORD cbCertificate,
959 [in] DWORD dwCertificateType,
960 [in] DWORD dwFlags,
961 [out, size_is(*pcbInitializationVector)] BYTE *pbInitializationVector,
962 [in, out] DWORD *pcbInitializationVector);
963}
964
965[
966 object,
967 uuid(9397f121-7705-4dc9-b049-98b698188414),
968 pointer_default( unique ),
969 local
970]
971interface IWMSyncReader : IUnknown
972{
973 HRESULT Open(
974 [in] const WCHAR *pwszFilename);
975
976 HRESULT Close();
977
978 HRESULT SetRange(
979 [in] QWORD cnsStartTime,
980 [in] LONGLONG cnsDuration);
981
982 HRESULT SetRangeByFrame(
983 [in] WORD wStreamNum,
984 [in] QWORD qwFrameNumber,
985 [in] LONGLONG cFramesToRead);
986
987 HRESULT GetNextSample(
988 [in] WORD wStreamNum,
989 [out] INSSBuffer **ppSample,
990 [out] QWORD *pcnsSampleTime,
991 [out] QWORD *pcnsDuration,
992 [out] DWORD *pdwFlags,
993 [out] DWORD *pdwOutputNum,
994 [out] WORD *pwStreamNum);
995
996 HRESULT SetStreamsSelected(
997 [in] WORD cStreamCount,
998 [in] WORD *pwStreamNumbers,
999 [in] WMT_STREAM_SELECTION *pSelections);
1000
1001 HRESULT GetStreamSelected(
1002 [in] WORD wStreamNum,
1003 [out] WMT_STREAM_SELECTION *pSelection);
1004
1005 HRESULT SetReadStreamSamples(
1006 [in] WORD wStreamNum,
1007 [in] BOOL fCompressed);
1008
1009 HRESULT GetReadStreamSamples(
1010 [in] WORD wStreamNum,
1011 [out] BOOL *pfCompressed);
1012
1013 HRESULT GetOutputSetting(
1014 [in] DWORD dwOutputNum,
1015 [in] LPCWSTR pszName,
1016 [out] WMT_ATTR_DATATYPE *pType,
1017 [out, size_is(*pcbLength)] BYTE *pValue,
1018 [in, out] WORD *pcbLength);
1019
1020 HRESULT SetOutputSetting(
1021 [in] DWORD dwOutputNum,
1022 [in] LPCWSTR pszName,
1023 [in] WMT_ATTR_DATATYPE Type,
1024 [in, size_is(cbLength)] const BYTE *pValue,
1025 [in] WORD cbLength);
1026
1027 HRESULT GetOutputCount(
1028 [out] DWORD *pcOutputs);
1029
1030 HRESULT GetOutputProps(
1031 [in] DWORD dwOutputNum,
1032 [out] IWMOutputMediaProps **ppOutput);
1033
1034 HRESULT SetOutputProps(
1035 [in] DWORD dwOutputNum,
1036 [in] IWMOutputMediaProps *pOutput);
1037
1038 HRESULT GetOutputFormatCount(
1039 [in] DWORD dwOutputNum,
1040 [out] DWORD *pcFormats);
1041
1042 HRESULT GetOutputFormat(
1043 [in] DWORD dwOutputNum,
1044 [in] DWORD dwFormatNum,
1045 [out] IWMOutputMediaProps **ppProps);
1046
1047 HRESULT GetOutputNumberForStream(
1048 [in] WORD wStreamNum,
1049 [out] DWORD *pdwOutputNum);
1050
1051 HRESULT GetStreamNumberForOutput(
1052 [in] DWORD dwOutputNum,
1053 [out] WORD *pwStreamNum);
1054
1055 HRESULT GetMaxOutputSampleSize(
1056 [in] DWORD dwOutput,
1057 [out] DWORD *pcbMax);
1058
1059 HRESULT GetMaxStreamSampleSize(
1060 [in] WORD wStream,
1061 [out] DWORD *pcbMax);
1062
1063 HRESULT OpenStream(
1064 [in] IStream *pStream);
1065}
1066
1067[
1068 object,
1069 uuid(9f762fa7-a22e-428d-93c9-ac82f3aafe5a),
1070 pointer_default( unique ),
1071 local
1072]
1073interface IWMReaderAllocatorEx : IUnknown
1074{
1075 HRESULT AllocateForStreamEx(
1076 [in] WORD wStreamNum,
1077 [in] DWORD cbBuffer,
1078 [out] INSSBuffer **ppBuffer,
1079 [in] DWORD dwFlags,
1080 [in] QWORD cnsSampleTime,
1081 [in] QWORD cnsSampleDuration,
1082 [in] void *pvContext);
1083
1084 HRESULT AllocateForOutputEx(
1085 [in] WORD wOutputNum,
1086 [in] DWORD cbBuffer,
1087 [out] INSSBuffer **ppBuffer,
1088 [in] DWORD dwFlags,
1089 [in] QWORD cnsSampleTime,
1090 [in] QWORD cnsSampleDuration,
1091 [in] void *pvContext);
1092}
1093
1094[
1095 object,
1096 uuid(faed3d21-1b6b-4af7-8cb6-3e189bbc187b),
1097 pointer_default( unique ),
1098 local
1099]
1100interface IWMSyncReader2 : IWMSyncReader
1101{
1102 HRESULT SetRangeByTimecode(
1103 [in] WORD wStreamNum,
1104 [in] WMT_TIMECODE_EXTENSION_DATA *pStart,
1105 [in] WMT_TIMECODE_EXTENSION_DATA *pEnd);
1106
1107 HRESULT SetRangeByFrameEx(
1108 [in] WORD wStreamNum,
1109 [in] QWORD qwFrameNumber,
1110 [in] LONGLONG cFramesToRead,
1111 [out] QWORD *pcnsStartTime);
1112
1113 HRESULT SetAllocateForOutput(
1114 [in] DWORD dwOutputNum,
1115 [in] IWMReaderAllocatorEx *pAllocator);
1116
1117 HRESULT GetAllocateForOutput(
1118 [in] DWORD dwOutputNum,
1119 [out] IWMReaderAllocatorEx **ppAllocator);
1120
1121 HRESULT SetAllocateForStream(
1122 [in] DWORD dwStreamNum,
1123 [in] IWMReaderAllocatorEx *pAllocator);
1124
1125 HRESULT GetAllocateForStream(
1126 [in] DWORD dwStreamNum,
1127 [out] IWMReaderAllocatorEx **ppAllocator);
1128}
1129
1130[
1131 object,
1132 uuid(96406bd5-2b2b-11d3-b36b-00c04f6108ff),
1133 pointer_default(unique),
1134 local
1135]
1136interface IWMInputMediaProps : IWMMediaProps
1137{
1138 HRESULT GetConnectionName(
1139 [out, size_is(*pcchName)] WCHAR *pwszName,
1140 [in, out] WORD *pcchName);
1141
1142 HRESULT GetGroupName(
1143 [out, size_is(*pcchName)] WCHAR *pwszName,
1144 [in, out] WORD *pcchName);
1145}
1146
1147[
1148 object,
1149 uuid(96406be4-2b2b-11d3-b36b-00c04f6108ff),
1150 pointer_default(unique),
1151 local
1152]
1153interface IWMWriterSink : IUnknown
1154{
1155 HRESULT OnHeader(
1156 [in] INSSBuffer *pHeader);
1157
1158 HRESULT IsRealTime(
1159 [out] BOOL *pfRealTime);
1160
1161 HRESULT AllocateDataUnit(
1162 [in] DWORD cbDataUnit,
1163 [out] INSSBuffer **ppDataUnit);
1164
1165 HRESULT OnDataUnit(
1166 [in] INSSBuffer *pDataUnit);
1167
1168 HRESULT OnEndWriting();
1169}
1170
1171[
1172 object,
1173 uuid(96406bd4-2b2b-11d3-b36b-00c04f6108ff),
1174 pointer_default(unique),
1175 local
1176]
1177interface IWMWriter : IUnknown
1178{
1179 HRESULT SetProfileByID(
1180 [in] REFGUID guidProfile);
1181
1182 HRESULT SetProfile(
1183 [in] IWMProfile *pProfile);
1184
1185 HRESULT SetOutputFilename(
1186 [in] const WCHAR *pwszFilename);
1187
1188 HRESULT GetInputCount(
1189 [out] DWORD *pcInputs);
1190
1191 HRESULT GetInputProps(
1192 [in] DWORD dwInputNum,
1193 [out] IWMInputMediaProps **ppInput);
1194
1195 HRESULT SetInputProps(
1196 [in] DWORD dwInputNum,
1197 [in] IWMInputMediaProps *pInput);
1198
1199 HRESULT GetInputFormatCount(
1200 [in] DWORD dwInputNumber,
1201 [out] DWORD *pcFormats);
1202
1203 HRESULT GetInputFormat(
1204 [in] DWORD dwInputNumber,
1205 [in] DWORD dwFormatNumber,
1206 [out] IWMInputMediaProps **pProps);
1207
1208 HRESULT BeginWriting();
1209
1210 HRESULT EndWriting();
1211
1212 HRESULT AllocateSample(
1213 [in] DWORD dwSampleSize,
1214 [out] INSSBuffer **ppSample);
1215
1216 HRESULT WriteSample(
1217 [in] DWORD dwInputNum,
1218 [in] QWORD cnsSampleTime,
1219 [in] DWORD dwFlags,
1220 [in] INSSBuffer *pSample);
1221
1222 HRESULT Flush();
1223}
1224
1225[
1226 object,
1227 uuid(96406be3-2b2b-11d3-b36b-00C04f6108ff),
1228 pointer_default(unique),
1229 local
1230]
1231interface IWMWriterAdvanced : IUnknown
1232{
1233 HRESULT GetSinkCount(
1234 [out] DWORD *pcSinks);
1235
1236 HRESULT GetSink(
1237 [in] DWORD dwSinkNum,
1238 [out] IWMWriterSink **ppSink);
1239
1240 HRESULT AddSink(
1241 [in] IWMWriterSink *pSink);
1242
1243 HRESULT RemoveSink(
1244 [in] IWMWriterSink *pSink);
1245
1246 HRESULT WriteStreamSample(
1247 [in] WORD wStreamNum,
1248 [in] QWORD cnsSampleTime,
1249 [in] DWORD msSampleSendTime,
1250 [in] QWORD cnsSampleDuration,
1251 [in] DWORD dwFlags,
1252 [in] INSSBuffer *pSample);
1253
1254 HRESULT SetLiveSource(
1255 BOOL fIsLiveSource);
1256
1257 HRESULT IsRealTime(
1258 [out] BOOL *pfRealTime);
1259
1260 HRESULT GetWriterTime(
1261 [out] QWORD *pCurrentTime);
1262
1263 HRESULT GetStatistics(
1264 [in] WORD wStreamNum,
1265 [out] WM_WRITER_STATISTICS *pStats);
1266
1267 HRESULT SetSyncTolerance(
1268 [in] DWORD msWindow);
1269
1270 HRESULT GetSyncTolerance(
1271 [out] DWORD *pmsWindow);
1272}
1273
1274[
1275 object,
1276 uuid(962dc1ec-c046-4db8-9cc7-26ceae500817),
1277 pointer_default(unique),
1278 local
1279]
1280interface IWMWriterAdvanced2 : IWMWriterAdvanced
1281{
1282 HRESULT GetInputSetting(
1283 [in] DWORD dwInputNum,
1284 [in] LPCWSTR pszName,
1285 [out] WMT_ATTR_DATATYPE *pType,
1286 [out, size_is(*pcbLength)] BYTE *pValue,
1287 [in, out] WORD *pcbLength);
1288
1289 HRESULT SetInputSetting(
1290 [in] DWORD dwInputNum,
1291 [in] LPCWSTR pszName,
1292 [in] WMT_ATTR_DATATYPE Type,
1293 [in, size_is(cbLength)] const BYTE *pValue,
1294 [in] WORD cbLength);
1295}
1296
1297[
1298 object,
1299 uuid(2cd6492d-7c37-4e76-9d3b-59261183a22e),
1300 pointer_default(unique),
1301 local
1302]
1303interface IWMWriterAdvanced3 : IWMWriterAdvanced2
1304{
1305 HRESULT GetStatisticsEx(
1306 [in] WORD wStreamNum,
1307 [out] WM_WRITER_STATISTICS_EX *pStats);
1308
1309 HRESULT SetNonBlocking();
1310}
1311
1312[
1313 object,
1314 uuid(96406bda-2b2b-11d3-b36b-00c04f6108ff),
1315 pointer_default(unique),
1316 local
1317]
1318interface IWMHeaderInfo : IUnknown
1319{
1320 HRESULT GetAttributeCount(
1321 [in] WORD stream_num,
1322 [out] WORD *attributes );
1323
1324 HRESULT GetAttributeByIndex(
1325 [in] WORD index,
1326 [in, out] WORD *stream_num,
1327 [out, size_is( *name_len )] WCHAR *name,
1328 [in, out] WORD *name_len,
1329 [out] WMT_ATTR_DATATYPE *type,
1330 [out, size_is( *length )] BYTE *value,
1331 [in, out] WORD *length );
1332
1333 HRESULT GetAttributeByName(
1334 [in, out] WORD *stream_num,
1335 [in] LPCWSTR name,
1336 [out] WMT_ATTR_DATATYPE *type,
1337 [out, size_is( *length )] BYTE *value,
1338 [in, out] WORD *length );
1339
1340 HRESULT SetAttribute(
1341 [in] WORD stream_num,
1342 [in] LPCWSTR name,
1343 [in] WMT_ATTR_DATATYPE type,
1344 [in, size_is( length )] const BYTE *value,
1345 [in] WORD length );
1346
1347 HRESULT GetMarkerCount(
1348 [out] WORD *markers );
1349
1350 HRESULT GetMarker(
1351 [in] WORD index,
1352 [out, size_is( *marker_len )] WCHAR *marker_name,
1353 [in, out] WORD *marker_len,
1354 [out] QWORD *marker_time );
1355
1356 HRESULT AddMarker(
1357 [in] LPCWSTR_WMSDK_TYPE_SAFE marker_name,
1358 [in] QWORD marker_time );
1359
1360 HRESULT RemoveMarker(
1361 [in] WORD index );
1362
1363 HRESULT GetScriptCount(
1364 [out] WORD *scripts );
1365
1366 HRESULT GetScript(
1367 [in] WORD index,
1368 [out, size_is( *type_len )] WCHAR *type,
1369 [in, out] WORD *type_len,
1370 [out, size_is( *command_len )] WCHAR *command,
1371 [in, out] WORD *command_len,
1372 [out] QWORD *script_time );
1373
1374 HRESULT AddScript(
1375 [in] LPCWSTR_WMSDK_TYPE_SAFE type,
1376 [in] LPCWSTR_WMSDK_TYPE_SAFE command,
1377 [in] QWORD script_time );
1378
1379 HRESULT RemoveScript(
1380 [in] WORD index );
1381}
1382
1383[
1384 object,
1385 uuid(15cf9781-454e-482e-b393-85fae487a810),
1386 pointer_default(unique),
1387 local
1388]
1389interface IWMHeaderInfo2 : IWMHeaderInfo
1390{
1391 HRESULT GetCodecInfoCount(
1392 [out] DWORD *codec_infos );
1393
1394 HRESULT GetCodecInfo(
1395 [in] DWORD index,
1396 [in, out] WORD *name_len,
1397 [out, size_is( *name_len )] WCHAR *name,
1398 [in, out] WORD *description_len,
1399 [out, size_is( *description_len )] WCHAR *description,
1400 [out] WMT_CODEC_INFO_TYPE *codec_type,
1401 [in, out] WORD *codec_info_cnt,
1402 [out, size_is( *codec_info_cnt )] BYTE *codec_info );
1403}
1404
1405[
1406 object,
1407 uuid(15cc68e3-27cc-4ecd-b222-3f5d02d80bd5),
1408 pointer_default(unique),
1409 local
1410]
1411interface IWMHeaderInfo3 : IWMHeaderInfo2
1412{
1413 HRESULT GetAttributeCountEx(
1414 [in] WORD stream_num,
1415 [out] WORD *attributes );
1416
1417 HRESULT GetAttributeIndices(
1418 [in] WORD stream_num,
1419 [in] LPCWSTR name,
1420 [in] WORD *lang_index,
1421 [out, size_is( *count )] WORD *indices,
1422 [in, out] WORD *count );
1423
1424 HRESULT GetAttributeByIndexEx(
1425 [in] WORD stream_num,
1426 [in] WORD index,
1427 [out, size_is( *name_len )] LPWSTR name,
1428 [in, out] WORD *name_len,
1429 [out] WMT_ATTR_DATATYPE *type,
1430 [out] WORD *lang_index,
1431 [out, size_is( *data_len )] BYTE *value,
1432 [in, out] DWORD *data_len );
1433
1434 HRESULT ModifyAttribute(
1435 [in] WORD stream_num,
1436 [in] WORD index,
1437 [in] WMT_ATTR_DATATYPE type,
1438 [in] WORD lang_index,
1439 [in, size_is( length )] const BYTE *value,
1440 [in] DWORD length );
1441
1442 HRESULT AddAttribute(
1443 [in] WORD stream_num,
1444 [in] LPCWSTR name,
1445 [out] WORD *index,
1446 [in] WMT_ATTR_DATATYPE type,
1447 [in] WORD lang_index,
1448 [in, size_is( length )] const BYTE *value,
1449 [in] DWORD length );
1450
1451 HRESULT DeleteAttribute(
1452 [in] WORD stream_num,
1453 [in] WORD index );
1454
1455 HRESULT AddCodecInfo(
1456 [in] LPCWSTR_WMSDK_TYPE_SAFE name,
1457 [in] LPCWSTR_WMSDK_TYPE_SAFE description,
1458 [in] WMT_CODEC_INFO_TYPE codec_type,
1459 [in] WORD codec_info_cnt,
1460 [in, size_is( codec_info_cnt )] BYTE *codec_info );
1461}
1462
1463[
1464 object,
1465 uuid(96406bec-2b2b-11d3-b36b-00c04f6108ff),
1466 pointer_default(unique),
1467 local
1468]
1469interface IWMReaderNetworkConfig : IUnknown
1470{
1471 HRESULT GetBufferingTime([out] QWORD *buffering_time);
1472 HRESULT SetBufferingTime([in] QWORD buffering_time);
1473
1474 HRESULT GetUDPPortRanges(
1475 [out, size_is( *ranges )] WM_PORT_NUMBER_RANGE *array,
1476 [in, out] DWORD *ranges);
1477
1478 HRESULT SetUDPPortRanges(
1479 [in, size_is( ranges )] WM_PORT_NUMBER_RANGE *array,
1480 [in] DWORD ranges);
1481
1482 HRESULT GetProxySettings(
1483 [in] const WCHAR *protocol,
1484 [out] WMT_PROXY_SETTINGS *proxy);
1485
1486 HRESULT SetProxySettings(
1487 [in] LPCWSTR protocol,
1488 [in] WMT_PROXY_SETTINGS proxy);
1489
1490 HRESULT GetProxyHostName(
1491 [in] const WCHAR *protocol,
1492 [out, size_is( *size )] WCHAR *hostname,
1493 [in, out] DWORD *size);
1494
1495 HRESULT SetProxyHostName(
1496 [in] const WCHAR *protocol,
1497 [in] const WCHAR *hostname);
1498
1499 HRESULT GetProxyPort(
1500 [in] const WCHAR *protocol,
1501 [out] DWORD *port);
1502
1503 HRESULT SetProxyPort(
1504 [in] const WCHAR *protocol,
1505 [in] DWORD port);
1506
1507 HRESULT GetProxyExceptionList(
1508 [in] const WCHAR *protocol,
1509 [out, size_is( *count )] WCHAR *exceptions,
1510 [in, out] DWORD *count);
1511
1512 HRESULT SetProxyExceptionList(
1513 [in] const WCHAR *protocol,
1514 [in] const WCHAR *exceptions);
1515
1516 HRESULT GetProxyBypassForLocal(
1517 [in] const WCHAR *protocol,
1518 [out] BOOL *bypass);
1519
1520 HRESULT SetProxyBypassForLocal(
1521 [in] const WCHAR *protocol,
1522 [in] BOOL bypass);
1523
1524 HRESULT GetForceRerunAutoProxyDetection([out] BOOL *detection);
1525 HRESULT SetForceRerunAutoProxyDetection([in] BOOL detection);
1526
1527 HRESULT GetEnableMulticast([out] BOOL *multicast);
1528 HRESULT SetEnableMulticast([in] BOOL multicast);
1529
1530 HRESULT GetEnableHTTP([out] BOOL *enable);
1531 HRESULT SetEnableHTTP([in] BOOL enable);
1532
1533 HRESULT GetEnableUDP([out] BOOL *enable);
1534 HRESULT SetEnableUDP([in] BOOL enable);
1535
1536 HRESULT GetEnableTCP([out] BOOL *enable);
1537 HRESULT SetEnableTCP([in] BOOL enable);
1538
1539 HRESULT ResetProtocolRollover();
1540
1541 HRESULT GetConnectionBandwidth([out] DWORD *bandwidth);
1542 HRESULT SetConnectionBandwidth([in] DWORD bandwidth);
1543
1544 HRESULT GetNumProtocolsSupported([out] DWORD *protocols);
1545
1546 HRESULT GetSupportedProtocolName(
1547 [in] DWORD protocol_num,
1548 [out, size_is( *size )] WCHAR *protocol,
1549 [in, out] DWORD *size);
1550
1551 HRESULT AddLoggingUrl([in] const WCHAR *url);
1552
1553 HRESULT GetLoggingUrl(
1554 [in] DWORD index,
1555 [out, size_is( *size )] WCHAR *url,
1556 [in, out] DWORD *size);
1557
1558 HRESULT GetLoggingUrlCount([out] DWORD *count);
1559
1560 HRESULT ResetLoggingUrlList();
1561}
1562
1563[
1564 object,
1565 uuid(d979a853-042b-4050-8387-c939db22013f),
1566 pointer_default(unique),
1567 local
1568]
1569interface IWMReaderNetworkConfig2 : IWMReaderNetworkConfig
1570{
1571 HRESULT GetEnableContentCaching([out] BOOL *enable);
1572 HRESULT SetEnableContentCaching([in] BOOL enable);
1573
1574 HRESULT GetEnableFastCache([out] BOOL *enable);
1575 HRESULT SetEnableFastCache([in] BOOL enable);
1576
1577 HRESULT GetAcceleratedStreamingDuration([out] QWORD *duration);
1578 HRESULT SetAcceleratedStreamingDuration([in] QWORD duration);
1579
1580 HRESULT GetAutoReconnectLimit([out] DWORD *limit);
1581 HRESULT SetAutoReconnectLimit([in] DWORD limit);
1582
1583 HRESULT GetEnableResends([out] BOOL *enable);
1584 HRESULT SetEnableResends([in] BOOL enable);
1585
1586 HRESULT GetEnableThinning([out] BOOL *enable);
1587 HRESULT SetEnableThinning([in] BOOL enable);
1588
1589 HRESULT GetMaxNetPacketSize([out] DWORD *packet_size);
1590}
1591
1592[
1593 object,
1594 uuid(96406bed-2b2b-11d3-b36b-00c04f6108ff),
1595 pointer_default(unique),
1596 local
1597]
1598
1599interface IWMReaderStreamClock : IUnknown
1600{
1601 HRESULT GetTime([in] QWORD *now);
1602
1603 HRESULT SetTimer([in] QWORD when,
1604 [in] void *param,
1605 [out] DWORD *id);
1606
1607 HRESULT KillTimer([in] DWORD id);
1608}
1609
1610[
1611 object,
1612 uuid(cdfb97ab-188f-40b3-b643-5b7903975c59),
1613 pointer_default(unique),
1614 local
1615]
1616interface IWMPacketSize : IUnknown
1617{
1618 HRESULT GetMaxPacketSize([out] DWORD *size);
1619 HRESULT SetMaxPacketSize([in] DWORD size);
1620}
1621
1622[
1623 object,
1624 uuid(8bfc2b9e-b646-4233-a877-1c6a079669dc),
1625 pointer_default(unique),
1626 local
1627]
1628interface IWMPacketSize2 : IWMPacketSize
1629{
1630 HRESULT GetMinPacketSize([out] DWORD *size);
1631 HRESULT SetMinPacketSize([in] DWORD size);
1632}
1633
1634[
1635 object,
1636 uuid(d2827540-3ee7-432c-b14c-dc17f085d3b3),
1637 pointer_default(unique),
1638 local
1639]
1640interface IWMDRMReader : IUnknown
1641{
1642 HRESULT AcquireLicense([in] DWORD flags);
1643 HRESULT CancelLicenseAcquisition();
1644
1645 HRESULT Individualize([in] DWORD flags);
1646 HRESULT CancelIndividualization();
1647
1648 HRESULT MonitorLicenseAcquisition();
1649 HRESULT CancelMonitorLicenseAcquisition();
1650
1651 HRESULT SetDRMProperty(
1652 [in] const WCHAR *name,
1653 [in] WMT_ATTR_DATATYPE type,
1654 [in, size_is( length )] const BYTE *value,
1655 [in] WORD length);
1656
1657 HRESULT GetDRMProperty(
1658 [in] const WCHAR *name,
1659 [out] WMT_ATTR_DATATYPE *type,
1660 [out, size_is( *length )] BYTE *value,
1661 [in, out] WORD *length);
1662}
1663
1664[
1665 object,
1666 uuid(befe7a75-9f1d-4075-b9d9-a3c37bda49a0),
1667 pointer_default(unique),
1668 local
1669]
1670interface IWMDRMReader2 : IWMDRMReader
1671{
1672 HRESULT SetEvaluateOutputLevelLicenses([in] BOOL evaluate);
1673 HRESULT GetPlayOutputLevels(
1674 [out, size_is( *length )] DRM_PLAY_OPL *play,
1675 [in, out] DWORD *length,
1676 [out] DWORD *level);
1677
1678 HRESULT GetCopyOutputLevels(
1679 [out, size_is( *length )] DRM_COPY_OPL *copy,
1680 [in, out] DWORD *length,
1681 [out] DWORD *level);
1682
1683 HRESULT TryNextLicense();
1684}
1685
1686[
1687 object,
1688 uuid(e08672de-f1e7-4ff4-a0a3-fc4b08e4caf8),
1689 pointer_default(unique),
1690 local
1691]
1692interface IWMDRMReader3 : IWMDRMReader2
1693{
1694 HRESULT GetInclusionList(
1695 [out] GUID **guids,
1696 [out] DWORD *count);
1697}
1698
1699[
1700 object,
1701 uuid(bddc4d08-944d-4d52-a612-46c3fda07dd4),
1702 pointer_default( unique ),
1703 local
1704]
1705interface IWMReaderAccelerator : IUnknown
1706{
1707 HRESULT GetCodecInterface(
1708 [in] DWORD output,
1709 [in] REFIID riid,
1710 [out] void **codec);
1711
1712 HRESULT Notify(
1713 [in] DWORD output,
1714 [in] WM_MEDIA_TYPE *subtype);
1715}
1716
1717[
1718 object,
1719 uuid(f369e2f0-e081-4fe6-8450-b810b2f410d1),
1720 pointer_default(unique),
1721 local
1722]
1723interface IWMReaderTimecode : IUnknown
1724{
1725 HRESULT GetTimecodeRangeCount(
1726 [in] WORD num,
1727 [out] WORD *count);
1728
1729 HRESULT GetTimecodeRangeBounds(
1730 [in] WORD stream,
1731 [in] WORD range,
1732 [out] DWORD *start_timecode,
1733 [out] DWORD *end_timecode);
1734}
1735
1736[
1737 object,
1738 uuid(fdbe5592-81a1-41ea-93bd-735cad1adc05),
1739 pointer_default(unique),
1740 local
1741]
1742interface IWMReaderTypeNegotiation : IUnknown
1743{
1744 HRESULT TryOutputProps(
1745 [in] DWORD output,
1746 [in] IWMOutputMediaProps *props);
1747}
1748
1749[
1750 object,
1751 uuid(df683f00-2d49-4d8e-92b7-fb19f6a0dc57),
1752 pointer_default(unique),
1753 local
1754]
1755interface IWMLanguageList : IUnknown
1756{
1757 HRESULT GetLanguageCount(
1758 [out] WORD *count);
1759
1760 HRESULT GetLanguageDetails(
1761 [in] WORD index,
1762 [out, size_is( *length )] WCHAR *language,
1763 [in, out] WORD *length);
1764
1765 HRESULT AddLanguageByRFC1766String(
1766 [in] LPCWSTR_WMSDK_TYPE_SAFE language,
1767 [out] WORD *index);
1768}
1769
1770[
1771 object,
1772 uuid(f28c0300-9baa-4477-a846-1744d9cbf533),
1773 pointer_default(unique),
1774 local
1775]
1776interface IWMReaderPlaylistBurn : IUnknown
1777{
1778 HRESULT InitPlaylistBurn(
1779 [in] DWORD count,
1780 [in] LPCWSTR_WMSDK_TYPE_SAFE *filenames,
1781 [in] IWMStatusCallback *callback,
1782 [in] void *context);
1783
1784 HRESULT GetInitResults(
1785 [in] DWORD count,
1786 [out] HRESULT *stat);
1787
1788 HRESULT Cancel();
1789
1790 HRESULT EndPlaylistBurn([in] HRESULT result);
1791}
1792
1793[
1794 object,
1795 uuid(72995a79-5090-42a4-9c8c-d9d0b6d34be5),
1796 pointer_default(unique),
1797 local
1798]
1799interface IWMPropertyVault : IUnknown
1800{
1801 HRESULT GetPropertyCount([in] DWORD *count);
1802
1803 HRESULT GetPropertyByName(
1804 [in] const WCHAR *name,
1805 [out] WMT_ATTR_DATATYPE *type,
1806 [out, size_is( *size )] BYTE *value,
1807 [in, out] DWORD *size);
1808
1809 HRESULT SetProperty(
1810 [in] const WCHAR *name,
1811 [in] WMT_ATTR_DATATYPE type,
1812 [in] BYTE *value,
1813 [in] DWORD size);
1814
1815 HRESULT GetPropertyByIndex(
1816 [in] DWORD index,
1817 [out, size_is( *pdwNameLen )] WCHAR *name,
1818 [in, out] DWORD *length,
1819 [out] WMT_ATTR_DATATYPE *type,
1820 [out, size_is( *size )] BYTE *value,
1821 [in, out] DWORD *size);
1822
1823 HRESULT CopyPropertiesFrom([in] IWMPropertyVault *vault);
1824
1825 HRESULT Clear();
1826};
1827
1828[
1829 object,
1830 uuid(fc54a285-38c4-45b5-aa23-85b9f7cb424b),
1831 pointer_default(unique),
1832 local
1833]
1834interface IWMWriterPreprocess : IUnknown
1835{
1836 HRESULT GetMaxPreprocessingPasses(
1837 [in] DWORD input,
1838 [in] DWORD flags,
1839 [out] DWORD *passes);
1840
1841 HRESULT SetNumPreprocessingPasses(
1842 [in] DWORD input,
1843 [in] DWORD flags,
1844 [in] DWORD passes);
1845
1846 HRESULT BeginPreprocessingPass(
1847 [in] DWORD input,
1848 [in] DWORD flags);
1849
1850 HRESULT PreprocessSample(
1851 [in] DWORD input,
1852 [in] QWORD sample_time,
1853 [in] DWORD flags,
1854 [in] INSSBuffer *sample);
1855
1856 HRESULT EndPreprocessingPass(
1857 [in] DWORD input,
1858 [in] DWORD flags);
1859};
1860
1861[
1862 object,
1863 uuid(05e5ac9f-3fb6-4508-bb43-a4067ba1ebe8),
1864 pointer_default(unique),
1865 local
1866]
1867interface IWMLicenseBackup : IUnknown
1868{
1869 HRESULT BackupLicenses(
1870 [in] DWORD dwFlags,
1871 [in] IWMStatusCallback *pCallback);
1872
1873 HRESULT CancelLicenseBackup();
1874}
1875
1876[
1877 object,
1878 uuid(c70b6334-a22e-4efb-a245-15e65a004a13),
1879 pointer_default(unique),
1880 local
1881]
1882interface IWMLicenseRestore : IUnknown
1883{
1884 HRESULT RestoreLicenses(
1885 [in] DWORD dwFlags,
1886 [in] IWMStatusCallback *pCallback);
1887
1888 HRESULT CancelLicenseRestore();
1889}
1890
1891cpp_quote("HRESULT WINAPI WMCheckURLExtension(LPCWSTR);")
1892cpp_quote("HRESULT WINAPI WMCheckURLScheme(LPCWSTR);")
1893cpp_quote("HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**);")
1894cpp_quote("HRESULT WINAPI WMCreateReader(IUnknown*,DWORD,IWMReader**);")
1895cpp_quote("HRESULT WINAPI WMCreateSyncReader(IUnknown*,DWORD,IWMSyncReader**);")
1896cpp_quote("HRESULT WINAPI WMCreateEditor(IWMMetadataEditor**);")
1897cpp_quote("HRESULT WINAPI WMCreateBackupRestorer(IUnknown*,IWMLicenseBackup**);")
1898cpp_quote("HRESULT WINAPI WMCreateProfileManager(IWMProfileManager**);")
1899cpp_quote("HRESULT WINAPI WMIsContentProtected(const WCHAR*, WINBOOL*);")
1900
1901
1902cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_Base, 0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1903cpp_quote("EXTERN_GUID(WMMEDIATYPE_Video, 0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1904cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB1, 0xe436eb78,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1905cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB4, 0xe436eb79,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1906cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB8, 0xe436eb7a,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1907cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB565, 0xe436eb7b,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1908cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB555, 0xe436eb7c,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1909cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB24, 0xe436eb7d,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1910cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB32, 0xe436eb7e,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1911cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_I420, 0x30323449,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1912cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_IYUV, 0x56555949,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1913cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YV12, 0x32315659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1914cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YUY2, 0x32595559,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1915cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_P422, 0x32323450,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1916cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_UYVY, 0x59565955,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1917cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YVYU, 0x55595659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1918cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YVU9, 0x39555659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1919cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_VIDEOIMAGE, 0x1d4a45f2,0xe5f6,0x4b44,0x83,0x88,0xf0,0xae,0x5c,0x0e,0x0c,0x37);")
1920cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MP43, 0x3334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1921cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MP4S, 0x5334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1922cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_M4S2, 0x3253344d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1923cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMV1, 0x31564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1924cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMV2, 0x32564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1925cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MSS1, 0x3153534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1926cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MPEG2_VIDEO, 0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea);")
1927cpp_quote("EXTERN_GUID(WMMEDIATYPE_Audio, 0x73647561,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1928cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_PCM, 0x00000001,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1929cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_DRM, 0x00000009,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1930cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMAudioV9, 0x00000162,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1931cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMAudio_Lossless, 0x00000163,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1932cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MSS2, 0x3253534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1933cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMSP1, 0x0000000a,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1934cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMSP2, 0x0000000b,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1935cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMV3, 0x33564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1936cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMVP, 0x50564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1937cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WVP2, 0x32505657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1938cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMVA, 0x41564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1939cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WVC1, 0x31435657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
Note: See TracBrowser for help on using the repository browser.