ReactOS  0.4.15-dev-1033-gd7d716a
wmsdkidl.idl
Go to the documentation of this file.
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 
19 import "oaidl.idl";
20 import "wmsbuffer.idl";
21 import "drmexternals.idl";
22 
23 typedef struct _WMMediaType
24 {
33  [size_is(cbFormat)] BYTE *pbFormat;
35 
36 typedef struct _WMWriterStatistics
37 {
49 
50 typedef struct _WMWriterStatisticsEx
51 {
60 
61 typedef struct _WMReaderStatistics
62 {
70 
71 typedef struct _WMReaderClientInfo
72 {
83 
84 typedef enum WMT_ATTR_DATATYPE
85 {
94 
95 typedef enum WMT_STATUS
96 {
97  WMT_ERROR = 0,
101  WMT_EOF = 4,
113  WMT_TIMER = 15,
150 } WMT_STATUS;
151 
153 {
154  WMT_OFF = 0,
156  WMT_ON = 2,
158 
159 typedef 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 
167 typedef enum WMT_PLAY_MODE
168 {
173 } WMT_PLAY_MODE;
174 
176 {
183 
185 {
188  WMT_CODECINFO_UNKNOWN = 0xFFFFFFFF,
190 
191 typedef enum WMT_PROXY_SETTINGS
192 {
199 
201 {
205 
206 #include <pshpack2.h>
208 {
212 
214 {
220 #include <poppack.h>
221 
222 typedef struct _WM_PORT_NUMBER_RANGE
223 {
227 
229 
230 [
231  object,
232  uuid(6d7cdc70-9888-11d3-8edc-00c04f6109cf),
234  local
235 ]
237 {
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),
250  local
251 ]
253 {
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),
267  local
268 ]
270 {
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),
283  local
284 ]
286 {
287  HRESULT GetType([out] GUID *pguidType);
289 }
290 
291 [
292  object,
293  uuid(ad694af1-f8d9-42f8-bc47-70311b0c4f9e),
295  local
296 ]
298 {
301 
303  [out] DWORD *bitrate,
304  [out] DWORD *buffer);
305 
307  [in] DWORD bitrate,
308  [in] DWORD buffer);
309 }
310 
311 [
312  object,
313  uuid(8c1c6090-f9a8-4748-8ec3-dd1108ba1e77),
315  local
316 ]
318 {
321  [in, out] WORD *records);
322 
325  [in] WORD records);
326 }
327 
328 [
329  object,
330  uuid(96406Bdc-2b2b-11d3-b36b-00c04f6108ff),
332  local
333 ]
335 {
336  HRESULT GetStreamType([out] GUID *pguidStreamType);
337  HRESULT GetStreamNumber([out] WORD *pwStreamNum);
338  HRESULT SetStreamNumber([in] WORD wStreamNum);
339 
341  [out, size_is(*pcchStreamName)] WCHAR *pwszStreamName,
342  [in, out] WORD *pcchStreamName);
343 
345 
347  [out, size_is(*pcchInputName)] WCHAR *pwszInputName,
348  [in, out] WORD *pcchInputName);
349 
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),
361  local
362 ]
363 interface IWMProfile : IUnknown
364 {
366  [out] WMT_VERSION *pdwVersion);
367 
369  [out, size_is(*pcchName)] WCHAR *pwszName,
370  [in, out] DWORD *pcchName);
371 
373  [in] const WCHAR *pwszName);
374 
376  [out, size_is(*pcchDescription)] WCHAR *pwszDescription,
377  [in, out] DWORD *pcchDescription);
378 
380  [in] const WCHAR *pwszDescription);
381 
383  [out] DWORD *pcStreams);
384 
386  [in] DWORD dwStreamIndex,
387  [out] IWMStreamConfig **ppConfig);
388 
390  [in] WORD wStreamNum,
391  [out] IWMStreamConfig **ppConfig);
392 
394  [in] IWMStreamConfig *pConfig);
395 
397  [in] WORD wStreamNum);
398 
400  [in] IWMStreamConfig *pConfig);
401 
403  [in] IWMStreamConfig *pConfig);
404 
406  [in] REFGUID guidStreamType,
407  [out] IWMStreamConfig **ppConfig);
408 
410  [out] DWORD *pcME);
411 
413  [in] DWORD dwMEIndex,
414  [out] IWMMutualExclusion **ppME);
415 
417  [in] IWMMutualExclusion *pME);
418 
420  [in] IWMMutualExclusion *pME);
421 
423  [out] IWMMutualExclusion **ppME);
424 }
425 
426 [
427  object,
428  uuid(07e72d33-d94e-4be7-8843-60ae5ff7e5f5),
430  local
431 ]
433 {
435 }
436 
437 [
438  object,
439  uuid(00ef96cc-a461-4546-8bcd-c9a28f0e06f5),
441  local
442 ]
444 {
447 
449 
451  [in] DWORD index,
452  [out] IWMBandwidthSharing **bandwidth);
453 
455 
457 
459 
461 
463 
465 
467 
469  [in] QWORD duration,
470  [out] QWORD *packets);
471 }
472 
473 [
474  object,
475  uuid(d16679f2-6ca0-472d-8d31-2f5d55aee155),
477  local
478 ]
480 {
482  [in] WMT_VERSION dwVersion,
483  [out] IWMProfile **ppProfile);
484 
487  [out] IWMProfile **ppProfile);
488 
490  [in] const WCHAR *pwszProfile,
491  [out] IWMProfile **ppProfile);
492 
494  [in] IWMProfile *pIWMProfile,
495  [in] WCHAR *pwszProfile,
496  [in, out] DWORD *pdwLength);
497 
499  [out] DWORD *pcProfiles);
500 
502  [in] DWORD dwProfileIndex,
503  [out] IWMProfile **ppProfile);
504 }
505 
506 [
507  object,
508  uuid(7a924e51-73c1-494d-8019-23d37ed9b89a),
510  local
511 ]
513 {
516 };
517 
518 cpp_quote("HRESULT WINAPI WMCreateProfileManager(IWMProfileManager**);")
519 
520 [
521  object,
522  uuid(a970f41e-34de-4a98-b3ba-e4b3ca7528f0),
524  local
525 ]
527 {
529  [in] REFGUID guid,
530  [out] DWORD *count);
531 
533  [in] REFGUID guid,
534  [in] DWORD codecindex,
535  [out] DWORD *formatcount);
536 
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),
548  local
549 ]
551 {
553  [in] REFGUID guid,
554  [in] DWORD codecindex,
555  [out, size_is(*namesize)] WCHAR *name,
556  [in, out] DWORD *namesize);
557 
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),
571  local
572 ]
574 {
576  [in] REFGUID guid,
577  [in] DWORD codecindex,
578  [in] DWORD formatindex,
579  [in] const WCHAR *name,
581  [out, size_is(*size)] BYTE *value,
582  [in, out] DWORD *size);
583 
585  [in] REFGUID guid,
586  [in] DWORD codecindex,
587  [in] const WCHAR *name,
589  [out, size_is(*size)] BYTE *value,
590  [in, out] DWORD *size);
591 
593  [in] REFGUID guid,
594  [in] DWORD codecindex,
595  [in] const WCHAR *name,
597  [in, size_is(size)] const BYTE *value,
598  [in] DWORD size);
599 
601  [in] REFGUID guid,
602  [in] DWORD codecindex,
603  [in] const WCHAR *name,
605  [out, size_is(*size)] BYTE *value,
606  [in, out] DWORD *size);
607 }
608 
609 cpp_quote("static const WCHAR g_wszNumPasses[] = {'_','P','A','S','S','E','S','U','S','E','D',0};")
610 cpp_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 ]
618 interface 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 ]
637 interface 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 ]
654 interface 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 ]
670 interface 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 ]
718 interface 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 ]
729 interface 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 ]
809 interface 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 ]
881 interface 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 ]
900 interface 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 ]
941 interface 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 ]
954 interface 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 ]
971 interface 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 ]
1073 interface 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-8bc6-3e189bbc187b),
1097  pointer_default( unique ),
1098  local
1099 ]
1100 interface 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 ]
1136 interface 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 ]
1153 interface 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 ]
1177 interface 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 ]
1231 interface 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 ]
1280 interface 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 ]
1303 interface 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 ]
1318 interface 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 ]
1389 interface 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 ]
1411 interface 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 ]
1469 interface 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 ]
1569 interface 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 
1599 interface 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 ]
1616 interface 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 ]
1628 interface 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 ]
1640 interface 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 ]
1670 interface 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 ]
1692 interface 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 ]
1705 interface 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 ]
1723 interface 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 ]
1742 interface 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 ]
1755 interface 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 ]
1776 interface 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 ]
1799 interface 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 ]
1834 interface 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 ]
1867 interface 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 ]
1882 interface IWMLicenseRestore : IUnknown
1883 {
1884  HRESULT RestoreLicenses(
1885  [in] DWORD dwFlags,
1886  [in] IWMStatusCallback *pCallback);
1887 
1888  HRESULT CancelLicenseRestore();
1889 }
1890 
1892 cpp_quote("HRESULT WINAPI WMCheckURLScheme(LPCWSTR);")
1899 
1900 
1901 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_Base, 0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1902 cpp_quote("EXTERN_GUID(WMMEDIATYPE_Video, 0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1903 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB1, 0xe436eb78,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1904 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB4, 0xe436eb79,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1905 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB8, 0xe436eb7a,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1906 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB565, 0xe436eb7b,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1907 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB555, 0xe436eb7c,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1908 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB24, 0xe436eb7d,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1909 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB32, 0xe436eb7e,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);")
1910 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_I420, 0x30323449,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1911 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_IYUV, 0x56555949,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1912 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YV12, 0x32315659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1913 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YUY2, 0x32595559,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1914 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_P422, 0x32323450,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1915 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_UYVY, 0x59565955,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1916 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YVYU, 0x55595659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1917 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YVU9, 0x39555659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1918 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_VIDEOIMAGE, 0x1d4a45f2,0xe5f6,0x4b44,0x83,0x88,0xf0,0xae,0x5c,0x0e,0x0c,0x37);")
1919 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MP43, 0x3334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1920 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MP4S, 0x5334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1921 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_M4S2, 0x3253344d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1922 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMV1, 0x31564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1923 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMV2, 0x32564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1924 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MSS1, 0x3153534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1925 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MPEG2_VIDEO, 0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea);")
1926 cpp_quote("EXTERN_GUID(WMMEDIATYPE_Audio, 0x73647561,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1927 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_PCM, 0x00000001,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1928 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_DRM, 0x00000009,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1929 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMAudioV9, 0x00000162,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1930 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMAudio_Lossless, 0x00000163,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1931 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MSS2, 0x3253534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1932 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMSP1, 0x0000000a,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1933 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMSP2, 0x0000000b,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1934 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMV3, 0x33564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1935 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMVP, 0x50564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1936 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WVP2, 0x32505657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1937 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMVA, 0x41564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
1938 cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WVC1, 0x31435657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
HRESULT RemoveStreamByNumber([in] WORD wStreamNum)
HRESULT SetSystemProfileVersion(WMT_VERSION version)
HRESULT GetConnectionName([out, size_is(*pcchInputName)] WCHAR *pwszInputName, [in, out] WORD *pcchInputName)
struct _WMReaderStatistics WM_READER_STATISTICS
HRESULT SetBitrate([in] DWORD pdwBitrate)
HRESULT GetSystemProfileVersion(WMT_VERSION *version)
GUID majortype
Definition: wmsdkidl.idl:25
HRESULT GetMutualExclusionCount([out] DWORD *pcME)
QWORD qwDroppedSampleCount
Definition: wmsdkidl.idl:40
HRESULT GetStream([in] DWORD dwStreamIndex, [out] IWMStreamConfig **ppConfig)
DWORD dwExpectedSampleRate
Definition: wmsdkidl.idl:47
HRESULT hr
Definition: shlfolder.c:183
HRESULT RemoveStream([in] WORD wStreamNum)
HRESULT GetExpectedPacketCount([in] QWORD duration, [out] QWORD *packets)
Definition: scsiwmi.h:51
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
HRESULT GetCodecFormat([in] REFGUID guid, [in] DWORD codecindex, [in] DWORD formatindex, [out] IWMStreamConfig **streamconfig)
WMT_PROXY_SETTINGS
Definition: wmsdkidl.idl:191
ULONG lSampleSize
Definition: wmsdkidl.idl:29
HRESULT SetType([in] REFGUID guid)
HRESULT GetStreamCount([out] DWORD *pcStreams)
HRESULT GetCodecName([in] REFGUID guid, [in] DWORD codecindex, [out, size_is(*namesize)] WCHAR *name, [in, out] DWORD *namesize)
struct _WMWriterStatisticsEx WM_WRITER_STATISTICS_EX
HRESULT SetPriorityRecords([in] WM_STREAM_PRIORITY_RECORD *array, [in] WORD records)
HRESULT AddStream([in] WORD wStreamNum)
HRESULT SetBandwidth([in] DWORD bitrate, [in] DWORD buffer)
GLuint GLuint GLsizei count
Definition: gl.h:1545
HRESULT SetStreamName([in] LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName)
HRESULT RemoveBandwidthSharing([in] IWMBandwidthSharing *bandwidth)
HRESULT GetCodecFormatDesc([in] REFGUID guid, [in] DWORD codecindex, [in] DWORD formatindex, [out] IWMStreamConfig **streamconfig, [out, size_is(*descrsize)] WCHAR *description, [in, out] DWORD *descrsize)
HRESULT GetCodecFormatProp([in] REFGUID guid, [in] DWORD codecindex, [in] DWORD formatindex, [in] const WCHAR *name, [out] WMT_ATTR_DATATYPE *type, [out, size_is(*size)] BYTE *value, [in, out] DWORD *size)
HRESULT GetCodecInfoCount([in] REFGUID guid, [out] DWORD *count)
WMT_CODEC_INFO_TYPE
Definition: wmsdkidl.idl:184
DWORD dwCurrentSampleDropRateInMultiplexer
Definition: wmsdkidl.idl:55
HRESULT GetName([out, size_is(*pcchName)] WCHAR *pwszName, [in, out] DWORD *pcchName)
WMT_VERSION
Definition: wmsdkidl.idl:159
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint buffer
Definition: glext.h:5915
tagWMT_OFFSET_FORMAT
Definition: wmsdkidl.idl:175
HRESULT CreateNewStream([in] REFGUID guidStreamType, [out] IWMStreamConfig **ppConfig)
const char * description
Definition: directx.c:2497
HRESULT GetSystemProfileCount([out] DWORD *pcProfiles)
HRESULT AddStream([in] IWMStreamConfig *pConfig)
HRESULT ReconfigStream([in] IWMStreamConfig *pConfig)
HRESULT GetType([out] GUID *guid)
HRESULT GetCodecFormatCount([in] REFGUID guid, [in] DWORD codecindex, [out] DWORD *formatcount)
static const WCHAR g_wszVBREnabled[]
Definition: wmsdkidl.idl:610
tagWMT_STORAGE_FORMAT
Definition: wmsdkidl.idl:200
DWORD dwTotalSampleDropsInMultiplexer
Definition: wmsdkidl.idl:58
HRESULT WINAPI WMCheckURLScheme(LPCWSTR)
coclass AMMultiMediaStream cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") cpp_quote("DEFINE_GUID(CLSID_AMAudioStream
DWORD dwCurrentSampleDropRateInCodec
Definition: wmsdkidl.idl:54
GUID subtype
Definition: wmsdkidl.idl:26
HRESULT GetStreamNumber([out] WORD *pwStreamNum)
struct _WMStreamPrioritizationRecord WM_STREAM_PRIORITY_RECORD
HRESULT SetBufferWindow([in] DWORD msBufferWindow)
HRESULT RemoveMutualExclusion([in] IWMMutualExclusion *pME)
const GUID * guid
HRESULT WINAPI WMCreateWriter(IUnknown *, IWMWriter **)
Definition: writer.c:356
HRESULT GetStreamPrioritization([out] IWMStreamPrioritization **stream)
WMT_STATUS
Definition: wmsdkidl.idl:95
HRESULT GetStreams([out, size_is(*pcStreams)] WORD *pwStreamNumArray, [in, out] WORD *pcStreams)
unsigned int BOOL
Definition: ntddk_ex.h:94
QWORD qwDroppedByteCount
Definition: wmsdkidl.idl:41
GUID formattype
Definition: wmsdkidl.idl:30
struct _WMReaderClientInfo WM_READER_CLIENTINFO
HRESULT SetType([in] REFGUID guidType)
HRESULT GetStreamName([out, size_is(*pcchStreamName)] WCHAR *pwszStreamName, [in, out] WORD *pcchStreamName)
static const WCHAR version[]
Definition: asmname.c:66
static const BYTE guidType[]
Definition: shellpath.c:105
HRESULT GetMutualExclusion([in] DWORD dwMEIndex, [out] IWMMutualExclusion **ppME)
LONG_PTR LPARAM
Definition: windef.h:208
HRESULT GetType([out] GUID *pguidType)
HRESULT SetName([in] const WCHAR *pwszName)
HRESULT LoadProfileByID([in] REFGUID guidProfile, [out] IWMProfile **ppProfile)
GLuint index
Definition: glext.h:6031
HRESULT OnSample([in] DWORD dwOutputNum, [in] QWORD cnsSampleTime, [in] QWORD cnsSampleDuration, [in] DWORD dwFlags, [in] INSSBuffer *pSample, [in] void *pvContext)
DWORD dwTotalSampleDropsInQueue
Definition: wmsdkidl.idl:56
HRESULT SetStorageFormat([in] WMT_STORAGE_FORMAT storage)
HRESULT WINAPI WMCreateEditor(IWMMetadataEditor **)
Definition: wmvcore_main.c:68
HRESULT CreateEmptyProfile([in] WMT_VERSION dwVersion, [out] IWMProfile **ppProfile)
BOOL bTemporalCompression
Definition: wmsdkidl.idl:28
HRESULT SetStreamPrioritization([in] IWMStreamPrioritization *stream)
HRESULT LoadSystemProfile([in] DWORD dwProfileIndex, [out] IWMProfile **ppProfile)
GLsizeiptr size
Definition: glext.h:5919
#define d
Definition: ke_i.h:81
HRESULT AddBandwidthSharing([in] IWMBandwidthSharing *bandwidth)
__wchar_t WCHAR
Definition: xmlstorage.h:180
HRESULT SetConnectionName([in] LPCWSTR_WMSDK_TYPE_SAFE pwszInputName)
LONG HRESULT
Definition: typedefs.h:79
HRESULT SetDescription([in] const WCHAR *pwszDescription)
enum tagWMT_STORAGE_FORMAT WMT_STORAGE_FORMAT
WCHAR * wszBrowserUserAgent
Definition: wmsdkidl.idl:75
UINT64 QWORD
Definition: shimdbg.c:104
WCHAR * wszPlayerUserAgent
Definition: wmsdkidl.idl:81
struct _WMT_TIMECODE_EXTENSION_DATA WMT_TIMECODE_EXTENSION_DATA
GUID guidProfile
Definition: msctf.idl:607
HRESULT RemoveStream([in] IWMStreamConfig *pConfig)
#define WINAPI
Definition: msvc.h:6
HRESULT GetCodecEnumerationSetting([in] REFGUID guid, [in] DWORD codecindex, [in] const WCHAR *name, [out] WMT_ATTR_DATATYPE *type, [out, size_is(*size)] BYTE *value, [in, out] DWORD *size)
unsigned short WORD
Definition: ntddk_ex.h:93
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
HRESULT GetBandwidth([out] DWORD *bitrate, [out] DWORD *buffer)
DWORD dwCurrentSampleDropRateInQueue
Definition: wmsdkidl.idl:53
HRESULT SetStreamNumber([in] WORD wStreamNum)
BOOL bFixedSizeSamples
Definition: wmsdkidl.idl:27
struct _WM_PORT_NUMBER_RANGE WM_PORT_NUMBER_RANGE
Status
Definition: gdiplustypes.h:24
DWORD dwAverageSampleRate
Definition: wmsdkidl.idl:46
HRESULT CreateNewStreamPrioritization([out] IWMStreamPrioritization **stream)
HRESULT LoadProfileByData([in] const WCHAR *pwszProfile, [out] IWMProfile **ppProfile)
Definition: parse.h:22
HRESULT GetBufferWindow([out] DWORD *pmsBufferWindow)
HRESULT CreateNewMutualExclusion([out] IWMMutualExclusion **ppME)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
HRESULT OnStatus([in] WMT_STATUS Status, [in] HRESULT hr, [in] WMT_ATTR_DATATYPE dwType, [in] BYTE *pValue, [in] void *pvContext)
HRESULT GetPriorityRecords([out] WM_STREAM_PRIORITY_RECORD *array, [in, out] WORD *records)
HRESULT GetBitrate([out] DWORD *pdwBitrate)
unsigned char BYTE
Definition: xxhash.c:193
IUnknown * pUnk
Definition: wmsdkidl.idl:31
WMT_STREAM_SELECTION
Definition: wmsdkidl.idl:152
HRESULT WINAPI WMCreateReader(IUnknown *, DWORD, IWMReader **)
Definition: reader.c:2032
#define local
Definition: zutil.h:30
BYTE * pbFormat
Definition: wmsdkidl.idl:33
HRESULT GetProfileID([out] GUID *guid)
DWORD dwTotalSampleDropsInCodec
Definition: wmsdkidl.idl:57
GLuint in
Definition: glext.h:9616
static unsigned char pointer_default
Definition: parser.tab.c:114
enum tagWMT_OFFSET_FORMAT WMT_OFFSET_FORMAT
HRESULT GetDescription([out, size_is(*pcchDescription)] WCHAR *pwszDescription, [in, out] DWORD *pcchDescription)
struct _WMWriterStatistics WM_WRITER_STATISTICS
HRESULT RemoveStreamPrioritization()
HRESULT WINAPI WMCheckURLExtension(LPCWSTR)
WMT_ATTR_DATATYPE
Definition: wmsdkidl.idl:84
HRESULT GetStorageFormat([out] WMT_STORAGE_FORMAT *storage)
ULONG cbFormat
Definition: wmsdkidl.idl:32
HRESULT GetStreamByNumber([in] WORD wStreamNum, [out] IWMStreamConfig **ppConfig)
WMT_PLAY_MODE
Definition: wmsdkidl.idl:167
HRESULT GetBandwidthSharing([in] DWORD index, [out] IWMBandwidthSharing **bandwidth)
HRESULT WINAPI WMCreateBackupRestorer(IUnknown *, IWMLicenseBackup **)
Definition: wmvcore_main.c:77
HRESULT WINAPI WMCreateSyncReader(IUnknown *, DWORD, IWMSyncReader **)
Definition: reader.c:2300
HRESULT SetCodecEnumerationSetting([in] REFGUID guid, [in] DWORD codecindex, [in] const WCHAR *name, [in] WMT_ATTR_DATATYPE type, [in, size_is(size)] const BYTE *value, [in] DWORD size)
Definition: name.c:38
LPARAM * pReserved
Definition: wmsdkidl.idl:78
unsigned int ULONG
Definition: retypes.h:1
#define const
Definition: zconf.h:230
HRESULT GetStreamType([out] GUID *pguidStreamType)
WCHAR * wszBrowserWebPage
Definition: wmsdkidl.idl:76
LPCWSTR LPCWSTR_WMSDK_TYPE_SAFE
Definition: wmsdkidl.idl:228
HRESULT SaveProfile([in] IWMProfile *pIWMProfile, [in] WCHAR *pwszProfile, [in, out] DWORD *pdwLength)
HRESULT GetBandwidthSharingCount([out] DWORD *count)
DWORD dwCurrentSampleRate
Definition: wmsdkidl.idl:45
HRESULT GetCodecProp([in] REFGUID guid, [in] DWORD codecindex, [in] const WCHAR *name, [out] WMT_ATTR_DATATYPE *type, [out, size_is(*size)] BYTE *value, [in, out] DWORD *size)
HRESULT CreateNewBandwidthSharing([out] IWMBandwidthSharing **bandwidth)
void * object
Definition: jmemsys.h:48
HRESULT AddMutualExclusion([in] IWMMutualExclusion *pME)
struct _WMMediaType WM_MEDIA_TYPE
EXTERN_GUID(WMMEDIASUBTYPE_Base, 0x00000000, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71)
HRESULT GetVersion([out] WMT_VERSION *pdwVersion)
HRESULT WINAPI WMCreateProfileManager(IWMProfileManager **)
Definition: wmvcore_main.c:215