master
    1/*** Autogenerated by WIDL 10.4 from include/wmsdkidl.idl - Do not edit ***/
    2
    3#ifdef _WIN32
    4#ifndef __REQUIRED_RPCNDR_H_VERSION__
    5#define __REQUIRED_RPCNDR_H_VERSION__ 475
    6#endif
    7#include <rpc.h>
    8#include <rpcndr.h>
    9#endif
   10
   11#ifndef COM_NO_WINDOWS_H
   12#include <windows.h>
   13#include <ole2.h>
   14#endif
   15
   16#ifndef __wmsdkidl_h__
   17#define __wmsdkidl_h__
   18
   19/* Forward declarations */
   20
   21#ifndef __IWMStatusCallback_FWD_DEFINED__
   22#define __IWMStatusCallback_FWD_DEFINED__
   23typedef interface IWMStatusCallback IWMStatusCallback;
   24#ifdef __cplusplus
   25interface IWMStatusCallback;
   26#endif /* __cplusplus */
   27#endif
   28
   29#ifndef __IWMReaderCallback_FWD_DEFINED__
   30#define __IWMReaderCallback_FWD_DEFINED__
   31typedef interface IWMReaderCallback IWMReaderCallback;
   32#ifdef __cplusplus
   33interface IWMReaderCallback;
   34#endif /* __cplusplus */
   35#endif
   36
   37#ifndef __IWMReaderCallbackAdvanced_FWD_DEFINED__
   38#define __IWMReaderCallbackAdvanced_FWD_DEFINED__
   39typedef interface IWMReaderCallbackAdvanced IWMReaderCallbackAdvanced;
   40#ifdef __cplusplus
   41interface IWMReaderCallbackAdvanced;
   42#endif /* __cplusplus */
   43#endif
   44
   45#ifndef __IWMStreamList_FWD_DEFINED__
   46#define __IWMStreamList_FWD_DEFINED__
   47typedef interface IWMStreamList IWMStreamList;
   48#ifdef __cplusplus
   49interface IWMStreamList;
   50#endif /* __cplusplus */
   51#endif
   52
   53#ifndef __IWMMutualExclusion_FWD_DEFINED__
   54#define __IWMMutualExclusion_FWD_DEFINED__
   55typedef interface IWMMutualExclusion IWMMutualExclusion;
   56#ifdef __cplusplus
   57interface IWMMutualExclusion;
   58#endif /* __cplusplus */
   59#endif
   60
   61#ifndef __IWMBandwidthSharing_FWD_DEFINED__
   62#define __IWMBandwidthSharing_FWD_DEFINED__
   63typedef interface IWMBandwidthSharing IWMBandwidthSharing;
   64#ifdef __cplusplus
   65interface IWMBandwidthSharing;
   66#endif /* __cplusplus */
   67#endif
   68
   69#ifndef __IWMStreamPrioritization_FWD_DEFINED__
   70#define __IWMStreamPrioritization_FWD_DEFINED__
   71typedef interface IWMStreamPrioritization IWMStreamPrioritization;
   72#ifdef __cplusplus
   73interface IWMStreamPrioritization;
   74#endif /* __cplusplus */
   75#endif
   76
   77#ifndef __IWMStreamConfig_FWD_DEFINED__
   78#define __IWMStreamConfig_FWD_DEFINED__
   79typedef interface IWMStreamConfig IWMStreamConfig;
   80#ifdef __cplusplus
   81interface IWMStreamConfig;
   82#endif /* __cplusplus */
   83#endif
   84
   85#ifndef __IWMProfile_FWD_DEFINED__
   86#define __IWMProfile_FWD_DEFINED__
   87typedef interface IWMProfile IWMProfile;
   88#ifdef __cplusplus
   89interface IWMProfile;
   90#endif /* __cplusplus */
   91#endif
   92
   93#ifndef __IWMProfile2_FWD_DEFINED__
   94#define __IWMProfile2_FWD_DEFINED__
   95typedef interface IWMProfile2 IWMProfile2;
   96#ifdef __cplusplus
   97interface IWMProfile2;
   98#endif /* __cplusplus */
   99#endif
  100
  101#ifndef __IWMProfile3_FWD_DEFINED__
  102#define __IWMProfile3_FWD_DEFINED__
  103typedef interface IWMProfile3 IWMProfile3;
  104#ifdef __cplusplus
  105interface IWMProfile3;
  106#endif /* __cplusplus */
  107#endif
  108
  109#ifndef __IWMProfileManager_FWD_DEFINED__
  110#define __IWMProfileManager_FWD_DEFINED__
  111typedef interface IWMProfileManager IWMProfileManager;
  112#ifdef __cplusplus
  113interface IWMProfileManager;
  114#endif /* __cplusplus */
  115#endif
  116
  117#ifndef __IWMProfileManager2_FWD_DEFINED__
  118#define __IWMProfileManager2_FWD_DEFINED__
  119typedef interface IWMProfileManager2 IWMProfileManager2;
  120#ifdef __cplusplus
  121interface IWMProfileManager2;
  122#endif /* __cplusplus */
  123#endif
  124
  125#ifndef __IWMCodecInfo_FWD_DEFINED__
  126#define __IWMCodecInfo_FWD_DEFINED__
  127typedef interface IWMCodecInfo IWMCodecInfo;
  128#ifdef __cplusplus
  129interface IWMCodecInfo;
  130#endif /* __cplusplus */
  131#endif
  132
  133#ifndef __IWMCodecInfo2_FWD_DEFINED__
  134#define __IWMCodecInfo2_FWD_DEFINED__
  135typedef interface IWMCodecInfo2 IWMCodecInfo2;
  136#ifdef __cplusplus
  137interface IWMCodecInfo2;
  138#endif /* __cplusplus */
  139#endif
  140
  141#ifndef __IWMCodecInfo3_FWD_DEFINED__
  142#define __IWMCodecInfo3_FWD_DEFINED__
  143typedef interface IWMCodecInfo3 IWMCodecInfo3;
  144#ifdef __cplusplus
  145interface IWMCodecInfo3;
  146#endif /* __cplusplus */
  147#endif
  148
  149#ifndef __IWMMediaProps_FWD_DEFINED__
  150#define __IWMMediaProps_FWD_DEFINED__
  151typedef interface IWMMediaProps IWMMediaProps;
  152#ifdef __cplusplus
  153interface IWMMediaProps;
  154#endif /* __cplusplus */
  155#endif
  156
  157#ifndef __IWMOutputMediaProps_FWD_DEFINED__
  158#define __IWMOutputMediaProps_FWD_DEFINED__
  159typedef interface IWMOutputMediaProps IWMOutputMediaProps;
  160#ifdef __cplusplus
  161interface IWMOutputMediaProps;
  162#endif /* __cplusplus */
  163#endif
  164
  165#ifndef __IWMMetadataEditor_FWD_DEFINED__
  166#define __IWMMetadataEditor_FWD_DEFINED__
  167typedef interface IWMMetadataEditor IWMMetadataEditor;
  168#ifdef __cplusplus
  169interface IWMMetadataEditor;
  170#endif /* __cplusplus */
  171#endif
  172
  173#ifndef __IWMReader_FWD_DEFINED__
  174#define __IWMReader_FWD_DEFINED__
  175typedef interface IWMReader IWMReader;
  176#ifdef __cplusplus
  177interface IWMReader;
  178#endif /* __cplusplus */
  179#endif
  180
  181#ifndef __IWMPlayerHook_FWD_DEFINED__
  182#define __IWMPlayerHook_FWD_DEFINED__
  183typedef interface IWMPlayerHook IWMPlayerHook;
  184#ifdef __cplusplus
  185interface IWMPlayerHook;
  186#endif /* __cplusplus */
  187#endif
  188
  189#ifndef __IWMReaderAdvanced_FWD_DEFINED__
  190#define __IWMReaderAdvanced_FWD_DEFINED__
  191typedef interface IWMReaderAdvanced IWMReaderAdvanced;
  192#ifdef __cplusplus
  193interface IWMReaderAdvanced;
  194#endif /* __cplusplus */
  195#endif
  196
  197#ifndef __IWMReaderAdvanced2_FWD_DEFINED__
  198#define __IWMReaderAdvanced2_FWD_DEFINED__
  199typedef interface IWMReaderAdvanced2 IWMReaderAdvanced2;
  200#ifdef __cplusplus
  201interface IWMReaderAdvanced2;
  202#endif /* __cplusplus */
  203#endif
  204
  205#ifndef __IWMReaderAdvanced3_FWD_DEFINED__
  206#define __IWMReaderAdvanced3_FWD_DEFINED__
  207typedef interface IWMReaderAdvanced3 IWMReaderAdvanced3;
  208#ifdef __cplusplus
  209interface IWMReaderAdvanced3;
  210#endif /* __cplusplus */
  211#endif
  212
  213#ifndef __IWMReaderAdvanced4_FWD_DEFINED__
  214#define __IWMReaderAdvanced4_FWD_DEFINED__
  215typedef interface IWMReaderAdvanced4 IWMReaderAdvanced4;
  216#ifdef __cplusplus
  217interface IWMReaderAdvanced4;
  218#endif /* __cplusplus */
  219#endif
  220
  221#ifndef __IWMReaderAdvanced5_FWD_DEFINED__
  222#define __IWMReaderAdvanced5_FWD_DEFINED__
  223typedef interface IWMReaderAdvanced5 IWMReaderAdvanced5;
  224#ifdef __cplusplus
  225interface IWMReaderAdvanced5;
  226#endif /* __cplusplus */
  227#endif
  228
  229#ifndef __IWMReaderAdvanced6_FWD_DEFINED__
  230#define __IWMReaderAdvanced6_FWD_DEFINED__
  231typedef interface IWMReaderAdvanced6 IWMReaderAdvanced6;
  232#ifdef __cplusplus
  233interface IWMReaderAdvanced6;
  234#endif /* __cplusplus */
  235#endif
  236
  237#ifndef __IWMSyncReader_FWD_DEFINED__
  238#define __IWMSyncReader_FWD_DEFINED__
  239typedef interface IWMSyncReader IWMSyncReader;
  240#ifdef __cplusplus
  241interface IWMSyncReader;
  242#endif /* __cplusplus */
  243#endif
  244
  245#ifndef __IWMReaderAllocatorEx_FWD_DEFINED__
  246#define __IWMReaderAllocatorEx_FWD_DEFINED__
  247typedef interface IWMReaderAllocatorEx IWMReaderAllocatorEx;
  248#ifdef __cplusplus
  249interface IWMReaderAllocatorEx;
  250#endif /* __cplusplus */
  251#endif
  252
  253#ifndef __IWMSyncReader2_FWD_DEFINED__
  254#define __IWMSyncReader2_FWD_DEFINED__
  255typedef interface IWMSyncReader2 IWMSyncReader2;
  256#ifdef __cplusplus
  257interface IWMSyncReader2;
  258#endif /* __cplusplus */
  259#endif
  260
  261#ifndef __IWMInputMediaProps_FWD_DEFINED__
  262#define __IWMInputMediaProps_FWD_DEFINED__
  263typedef interface IWMInputMediaProps IWMInputMediaProps;
  264#ifdef __cplusplus
  265interface IWMInputMediaProps;
  266#endif /* __cplusplus */
  267#endif
  268
  269#ifndef __IWMWriterSink_FWD_DEFINED__
  270#define __IWMWriterSink_FWD_DEFINED__
  271typedef interface IWMWriterSink IWMWriterSink;
  272#ifdef __cplusplus
  273interface IWMWriterSink;
  274#endif /* __cplusplus */
  275#endif
  276
  277#ifndef __IWMWriter_FWD_DEFINED__
  278#define __IWMWriter_FWD_DEFINED__
  279typedef interface IWMWriter IWMWriter;
  280#ifdef __cplusplus
  281interface IWMWriter;
  282#endif /* __cplusplus */
  283#endif
  284
  285#ifndef __IWMWriterAdvanced_FWD_DEFINED__
  286#define __IWMWriterAdvanced_FWD_DEFINED__
  287typedef interface IWMWriterAdvanced IWMWriterAdvanced;
  288#ifdef __cplusplus
  289interface IWMWriterAdvanced;
  290#endif /* __cplusplus */
  291#endif
  292
  293#ifndef __IWMWriterAdvanced2_FWD_DEFINED__
  294#define __IWMWriterAdvanced2_FWD_DEFINED__
  295typedef interface IWMWriterAdvanced2 IWMWriterAdvanced2;
  296#ifdef __cplusplus
  297interface IWMWriterAdvanced2;
  298#endif /* __cplusplus */
  299#endif
  300
  301#ifndef __IWMWriterAdvanced3_FWD_DEFINED__
  302#define __IWMWriterAdvanced3_FWD_DEFINED__
  303typedef interface IWMWriterAdvanced3 IWMWriterAdvanced3;
  304#ifdef __cplusplus
  305interface IWMWriterAdvanced3;
  306#endif /* __cplusplus */
  307#endif
  308
  309#ifndef __IWMHeaderInfo_FWD_DEFINED__
  310#define __IWMHeaderInfo_FWD_DEFINED__
  311typedef interface IWMHeaderInfo IWMHeaderInfo;
  312#ifdef __cplusplus
  313interface IWMHeaderInfo;
  314#endif /* __cplusplus */
  315#endif
  316
  317#ifndef __IWMHeaderInfo2_FWD_DEFINED__
  318#define __IWMHeaderInfo2_FWD_DEFINED__
  319typedef interface IWMHeaderInfo2 IWMHeaderInfo2;
  320#ifdef __cplusplus
  321interface IWMHeaderInfo2;
  322#endif /* __cplusplus */
  323#endif
  324
  325#ifndef __IWMHeaderInfo3_FWD_DEFINED__
  326#define __IWMHeaderInfo3_FWD_DEFINED__
  327typedef interface IWMHeaderInfo3 IWMHeaderInfo3;
  328#ifdef __cplusplus
  329interface IWMHeaderInfo3;
  330#endif /* __cplusplus */
  331#endif
  332
  333#ifndef __IWMReaderNetworkConfig_FWD_DEFINED__
  334#define __IWMReaderNetworkConfig_FWD_DEFINED__
  335typedef interface IWMReaderNetworkConfig IWMReaderNetworkConfig;
  336#ifdef __cplusplus
  337interface IWMReaderNetworkConfig;
  338#endif /* __cplusplus */
  339#endif
  340
  341#ifndef __IWMReaderNetworkConfig2_FWD_DEFINED__
  342#define __IWMReaderNetworkConfig2_FWD_DEFINED__
  343typedef interface IWMReaderNetworkConfig2 IWMReaderNetworkConfig2;
  344#ifdef __cplusplus
  345interface IWMReaderNetworkConfig2;
  346#endif /* __cplusplus */
  347#endif
  348
  349#ifndef __IWMReaderStreamClock_FWD_DEFINED__
  350#define __IWMReaderStreamClock_FWD_DEFINED__
  351typedef interface IWMReaderStreamClock IWMReaderStreamClock;
  352#ifdef __cplusplus
  353interface IWMReaderStreamClock;
  354#endif /* __cplusplus */
  355#endif
  356
  357#ifndef __IWMPacketSize_FWD_DEFINED__
  358#define __IWMPacketSize_FWD_DEFINED__
  359typedef interface IWMPacketSize IWMPacketSize;
  360#ifdef __cplusplus
  361interface IWMPacketSize;
  362#endif /* __cplusplus */
  363#endif
  364
  365#ifndef __IWMPacketSize2_FWD_DEFINED__
  366#define __IWMPacketSize2_FWD_DEFINED__
  367typedef interface IWMPacketSize2 IWMPacketSize2;
  368#ifdef __cplusplus
  369interface IWMPacketSize2;
  370#endif /* __cplusplus */
  371#endif
  372
  373#ifndef __IWMDRMReader_FWD_DEFINED__
  374#define __IWMDRMReader_FWD_DEFINED__
  375typedef interface IWMDRMReader IWMDRMReader;
  376#ifdef __cplusplus
  377interface IWMDRMReader;
  378#endif /* __cplusplus */
  379#endif
  380
  381#ifndef __IWMDRMReader2_FWD_DEFINED__
  382#define __IWMDRMReader2_FWD_DEFINED__
  383typedef interface IWMDRMReader2 IWMDRMReader2;
  384#ifdef __cplusplus
  385interface IWMDRMReader2;
  386#endif /* __cplusplus */
  387#endif
  388
  389#ifndef __IWMDRMReader3_FWD_DEFINED__
  390#define __IWMDRMReader3_FWD_DEFINED__
  391typedef interface IWMDRMReader3 IWMDRMReader3;
  392#ifdef __cplusplus
  393interface IWMDRMReader3;
  394#endif /* __cplusplus */
  395#endif
  396
  397#ifndef __IWMReaderAccelerator_FWD_DEFINED__
  398#define __IWMReaderAccelerator_FWD_DEFINED__
  399typedef interface IWMReaderAccelerator IWMReaderAccelerator;
  400#ifdef __cplusplus
  401interface IWMReaderAccelerator;
  402#endif /* __cplusplus */
  403#endif
  404
  405#ifndef __IWMReaderTimecode_FWD_DEFINED__
  406#define __IWMReaderTimecode_FWD_DEFINED__
  407typedef interface IWMReaderTimecode IWMReaderTimecode;
  408#ifdef __cplusplus
  409interface IWMReaderTimecode;
  410#endif /* __cplusplus */
  411#endif
  412
  413#ifndef __IWMReaderTypeNegotiation_FWD_DEFINED__
  414#define __IWMReaderTypeNegotiation_FWD_DEFINED__
  415typedef interface IWMReaderTypeNegotiation IWMReaderTypeNegotiation;
  416#ifdef __cplusplus
  417interface IWMReaderTypeNegotiation;
  418#endif /* __cplusplus */
  419#endif
  420
  421#ifndef __IWMLanguageList_FWD_DEFINED__
  422#define __IWMLanguageList_FWD_DEFINED__
  423typedef interface IWMLanguageList IWMLanguageList;
  424#ifdef __cplusplus
  425interface IWMLanguageList;
  426#endif /* __cplusplus */
  427#endif
  428
  429#ifndef __IWMReaderPlaylistBurn_FWD_DEFINED__
  430#define __IWMReaderPlaylistBurn_FWD_DEFINED__
  431typedef interface IWMReaderPlaylistBurn IWMReaderPlaylistBurn;
  432#ifdef __cplusplus
  433interface IWMReaderPlaylistBurn;
  434#endif /* __cplusplus */
  435#endif
  436
  437#ifndef __IWMPropertyVault_FWD_DEFINED__
  438#define __IWMPropertyVault_FWD_DEFINED__
  439typedef interface IWMPropertyVault IWMPropertyVault;
  440#ifdef __cplusplus
  441interface IWMPropertyVault;
  442#endif /* __cplusplus */
  443#endif
  444
  445#ifndef __IWMWriterPreprocess_FWD_DEFINED__
  446#define __IWMWriterPreprocess_FWD_DEFINED__
  447typedef interface IWMWriterPreprocess IWMWriterPreprocess;
  448#ifdef __cplusplus
  449interface IWMWriterPreprocess;
  450#endif /* __cplusplus */
  451#endif
  452
  453#ifndef __IWMLicenseBackup_FWD_DEFINED__
  454#define __IWMLicenseBackup_FWD_DEFINED__
  455typedef interface IWMLicenseBackup IWMLicenseBackup;
  456#ifdef __cplusplus
  457interface IWMLicenseBackup;
  458#endif /* __cplusplus */
  459#endif
  460
  461#ifndef __IWMLicenseRestore_FWD_DEFINED__
  462#define __IWMLicenseRestore_FWD_DEFINED__
  463typedef interface IWMLicenseRestore IWMLicenseRestore;
  464#ifdef __cplusplus
  465interface IWMLicenseRestore;
  466#endif /* __cplusplus */
  467#endif
  468
  469#ifndef __IWMIStreamProps_FWD_DEFINED__
  470#define __IWMIStreamProps_FWD_DEFINED__
  471typedef interface IWMIStreamProps IWMIStreamProps;
  472#ifdef __cplusplus
  473interface IWMIStreamProps;
  474#endif /* __cplusplus */
  475#endif
  476
  477#ifndef __IWMCredentialCallback_FWD_DEFINED__
  478#define __IWMCredentialCallback_FWD_DEFINED__
  479typedef interface IWMCredentialCallback IWMCredentialCallback;
  480#ifdef __cplusplus
  481interface IWMCredentialCallback;
  482#endif /* __cplusplus */
  483#endif
  484
  485/* Headers for imported files */
  486
  487#include <oaidl.h>
  488#include <wmsbuffer.h>
  489#include <drmexternals.h>
  490
  491#ifdef __cplusplus
  492extern "C" {
  493#endif
  494
  495typedef struct _WMMediaType {
  496    GUID majortype;
  497    GUID subtype;
  498    WINBOOL bFixedSizeSamples;
  499    WINBOOL bTemporalCompression;
  500    ULONG lSampleSize;
  501    GUID formattype;
  502    IUnknown *pUnk;
  503    ULONG cbFormat;
  504    BYTE *pbFormat;
  505} WM_MEDIA_TYPE;
  506typedef struct _WMWriterStatistics {
  507    QWORD qwSampleCount;
  508    QWORD qwByteCount;
  509    QWORD qwDroppedSampleCount;
  510    QWORD qwDroppedByteCount;
  511    DWORD dwCurrentBitrate;
  512    DWORD dwAverageBitrate;
  513    DWORD dwExpectedBitrate;
  514    DWORD dwCurrentSampleRate;
  515    DWORD dwAverageSampleRate;
  516    DWORD dwExpectedSampleRate;
  517} WM_WRITER_STATISTICS;
  518typedef struct _WMWriterStatisticsEx {
  519    DWORD dwBitratePlusOverhead;
  520    DWORD dwCurrentSampleDropRateInQueue;
  521    DWORD dwCurrentSampleDropRateInCodec;
  522    DWORD dwCurrentSampleDropRateInMultiplexer;
  523    DWORD dwTotalSampleDropsInQueue;
  524    DWORD dwTotalSampleDropsInCodec;
  525    DWORD dwTotalSampleDropsInMultiplexer;
  526} WM_WRITER_STATISTICS_EX;
  527typedef struct _WMReaderStatistics {
  528    DWORD cbSize;
  529    DWORD dwBandwidth;
  530    DWORD cPacketsReceived;
  531    DWORD cPacketsRecovered;
  532    DWORD cPacketsLost;
  533    WORD wQuality;
  534} WM_READER_STATISTICS;
  535typedef struct _WMReaderClientInfo {
  536    DWORD cbSize;
  537    WCHAR *wszLang;
  538    WCHAR *wszBrowserUserAgent;
  539    WCHAR *wszBrowserWebPage;
  540    QWORD qwReserved;
  541    LPARAM *pReserved;
  542    WCHAR *wszHostExe;
  543    QWORD qwHostVersion;
  544    WCHAR *wszPlayerUserAgent;
  545} WM_READER_CLIENTINFO;
  546enum {
  547    WM_SF_CLEANPOINT = 0x1,
  548    WM_SF_DISCONTINUITY = 0x2,
  549    WM_SF_DATALOSS = 0x4
  550};
  551typedef enum WMT_ATTR_DATATYPE {
  552    WMT_TYPE_DWORD = 0,
  553    WMT_TYPE_STRING = 1,
  554    WMT_TYPE_BINARY = 2,
  555    WMT_TYPE_BOOL = 3,
  556    WMT_TYPE_QWORD = 4,
  557    WMT_TYPE_WORD = 5,
  558    WMT_TYPE_GUID = 6
  559} WMT_ATTR_DATATYPE;
  560typedef enum WMT_STATUS {
  561    WMT_ERROR = 0,
  562    WMT_OPENED = 1,
  563    WMT_BUFFERING_START = 2,
  564    WMT_BUFFERING_STOP = 3,
  565    WMT_EOF = 4,
  566    WMT_END_OF_FILE = 4,
  567    WMT_END_OF_SEGMENT = 5,
  568    WMT_END_OF_STREAMING = 6,
  569    WMT_LOCATING = 7,
  570    WMT_CONNECTING = 8,
  571    WMT_NO_RIGHTS = 9,
  572    WMT_MISSING_CODEC = 10,
  573    WMT_STARTED = 11,
  574    WMT_STOPPED = 12,
  575    WMT_CLOSED = 13,
  576    WMT_STRIDING = 14,
  577    WMT_TIMER = 15,
  578    WMT_INDEX_PROGRESS = 16,
  579    WMT_SAVEAS_START = 17,
  580    WMT_SAVEAS_STOP = 18,
  581    WMT_NEW_SOURCEFLAGS = 19,
  582    WMT_NEW_METADATA = 20,
  583    WMT_BACKUPRESTORE_BEGIN = 21,
  584    WMT_SOURCE_SWITCH = 22,
  585    WMT_ACQUIRE_LICENSE = 23,
  586    WMT_INDIVIDUALIZE = 24,
  587    WMT_NEEDS_INDIVIDUALIZATION = 25,
  588    WMT_NO_RIGHTS_EX = 26,
  589    WMT_BACKUPRESTORE_END = 27,
  590    WMT_BACKUPRESTORE_CONNECTING = 28,
  591    WMT_BACKUPRESTORE_DISCONNECTING = 29,
  592    WMT_ERROR_WITHURL = 30,
  593    WMT_RESTRICTED_LICENSE = 31,
  594    WMT_CLIENT_CONNECT = 32,
  595    WMT_CLIENT_DISCONNECT = 33,
  596    WMT_NATIVE_OUTPUT_PROPS_CHANGED = 34,
  597    WMT_RECONNECT_START = 35,
  598    WMT_RECONNECT_END = 36,
  599    WMT_CLIENT_CONNECT_EX = 37,
  600    WMT_CLIENT_DISCONNECT_EX = 38,
  601    WMT_SET_FEC_SPAN = 39,
  602    WMT_PREROLL_READY = 40,
  603    WMT_PREROLL_COMPLETE = 41,
  604    WMT_CLIENT_PROPERTIES = 42,
  605    WMT_LICENSEURL_SIGNATURE_STATE = 43,
  606    WMT_INIT_PLAYLIST_BURN = 44,
  607    WMT_TRANSCRYPTOR_INIT = 45,
  608    WMT_TRANSCRYPTOR_SEEKED = 46,
  609    WMT_TRANSCRYPTOR_READ = 47,
  610    WMT_TRANSCRYPTOR_CLOSED = 48,
  611    WMT_PROXIMITY_RESULT = 49,
  612    WMT_PROXIMITY_COMPLETED = 50,
  613    WMT_CONTENT_ENABLER = 51
  614} WMT_STATUS;
  615typedef enum WMT_STREAM_SELECTION {
  616    WMT_OFF = 0,
  617    WMT_CLEANPOINT_ONLY = 1,
  618    WMT_ON = 2
  619} WMT_STREAM_SELECTION;
  620typedef enum WMT_VERSION {
  621    WMT_VER_4_0 = 0x40000,
  622    WMT_VER_7_0 = 0x70000,
  623    WMT_VER_8_0 = 0x80000,
  624    WMT_VER_9_0 = 0x90000
  625} WMT_VERSION;
  626typedef enum WMT_PLAY_MODE {
  627    WMT_PLAY_MODE_AUTOSELECT = 0,
  628    WMT_PLAY_MODE_LOCAL = 1,
  629    WMT_PLAY_MODE_DOWNLOAD = 2,
  630    WMT_PLAY_MODE_STREAMING = 3
  631} WMT_PLAY_MODE;
  632typedef enum tagWMT_OFFSET_FORMAT {
  633    WMT_OFFSET_FORMAT_100NS = 0,
  634    WMT_OFFSET_FORMAT_FRAME_NUMBERS = 1,
  635    WMT_OFFSET_FORMAT_PLAYLIST_OFFSET = 2,
  636    WMT_OFFSET_FORMAT_TIMECODE = 3,
  637    WMT_OFFSET_FORMAT_100NS_APPROXIMATE = 4
  638} WMT_OFFSET_FORMAT;
  639typedef enum WMT_CODEC_INFO_TYPE {
  640    WMT_CODECINFO_AUDIO = 0,
  641    WMT_CODECINFO_VIDEO = 1,
  642    WMT_CODECINFO_UNKNOWN = 0xffffffff
  643} WMT_CODEC_INFO_TYPE;
  644typedef enum WMT_PROXY_SETTINGS {
  645    WMT_PROXY_SETTING_NONE = 0,
  646    WMT_PROXY_SETTING_MANUAL = 1,
  647    WMT_PROXY_SETTING_AUTO = 2,
  648    WMT_PROXY_SETTING_BROWSER = 3,
  649    WMT_PROXY_SETTING_MAX = 4
  650} WMT_PROXY_SETTINGS;
  651typedef enum tagWMT_STORAGE_FORMAT {
  652    WMT_Storage_Format_MP3 = 0,
  653    WMT_Storage_Format_V1 = 1
  654} WMT_STORAGE_FORMAT;
  655#pragma pack(push,2)
  656typedef struct _WMStreamPrioritizationRecord {
  657    WORD wStreamNumber;
  658    WINBOOL fMandatory;
  659} WM_STREAM_PRIORITY_RECORD;
  660typedef struct _WMT_TIMECODE_EXTENSION_DATA {
  661    WORD wRange;
  662    DWORD dwTimecode;
  663    DWORD dwUserbits;
  664    DWORD dwAmFlags;
  665} WMT_TIMECODE_EXTENSION_DATA;
  666#pragma pack(pop)
  667typedef struct _WM_PORT_NUMBER_RANGE {
  668    WORD wPortBegin;
  669    WORD wPortEnd;
  670} WM_PORT_NUMBER_RANGE;
  671typedef LPCWSTR LPCWSTR_WMSDK_TYPE_SAFE;
  672/*****************************************************************************
  673 * IWMStatusCallback interface
  674 */
  675#ifndef __IWMStatusCallback_INTERFACE_DEFINED__
  676#define __IWMStatusCallback_INTERFACE_DEFINED__
  677
  678DEFINE_GUID(IID_IWMStatusCallback, 0x6d7cdc70, 0x9888, 0x11d3, 0x8e,0xdc, 0x00,0xc0,0x4f,0x61,0x09,0xcf);
  679#if defined(__cplusplus) && !defined(CINTERFACE)
  680MIDL_INTERFACE("6d7cdc70-9888-11d3-8edc-00c04f6109cf")
  681IWMStatusCallback : public IUnknown
  682{
  683    virtual HRESULT STDMETHODCALLTYPE OnStatus(
  684        WMT_STATUS Status,
  685        HRESULT hr,
  686        WMT_ATTR_DATATYPE dwType,
  687        BYTE *pValue,
  688        void *pvContext) = 0;
  689
  690};
  691#ifdef __CRT_UUID_DECL
  692__CRT_UUID_DECL(IWMStatusCallback, 0x6d7cdc70, 0x9888, 0x11d3, 0x8e,0xdc, 0x00,0xc0,0x4f,0x61,0x09,0xcf)
  693#endif
  694#else
  695typedef struct IWMStatusCallbackVtbl {
  696    BEGIN_INTERFACE
  697
  698    /*** IUnknown methods ***/
  699    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  700        IWMStatusCallback *This,
  701        REFIID riid,
  702        void **ppvObject);
  703
  704    ULONG (STDMETHODCALLTYPE *AddRef)(
  705        IWMStatusCallback *This);
  706
  707    ULONG (STDMETHODCALLTYPE *Release)(
  708        IWMStatusCallback *This);
  709
  710    /*** IWMStatusCallback methods ***/
  711    HRESULT (STDMETHODCALLTYPE *OnStatus)(
  712        IWMStatusCallback *This,
  713        WMT_STATUS Status,
  714        HRESULT hr,
  715        WMT_ATTR_DATATYPE dwType,
  716        BYTE *pValue,
  717        void *pvContext);
  718
  719    END_INTERFACE
  720} IWMStatusCallbackVtbl;
  721
  722interface IWMStatusCallback {
  723    CONST_VTBL IWMStatusCallbackVtbl* lpVtbl;
  724};
  725
  726#ifdef COBJMACROS
  727#ifndef WIDL_C_INLINE_WRAPPERS
  728/*** IUnknown methods ***/
  729#define IWMStatusCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  730#define IWMStatusCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
  731#define IWMStatusCallback_Release(This) (This)->lpVtbl->Release(This)
  732/*** IWMStatusCallback methods ***/
  733#define IWMStatusCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext) (This)->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext)
  734#else
  735/*** IUnknown methods ***/
  736static inline HRESULT IWMStatusCallback_QueryInterface(IWMStatusCallback* This,REFIID riid,void **ppvObject) {
  737    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  738}
  739static inline ULONG IWMStatusCallback_AddRef(IWMStatusCallback* This) {
  740    return This->lpVtbl->AddRef(This);
  741}
  742static inline ULONG IWMStatusCallback_Release(IWMStatusCallback* This) {
  743    return This->lpVtbl->Release(This);
  744}
  745/*** IWMStatusCallback methods ***/
  746static inline HRESULT IWMStatusCallback_OnStatus(IWMStatusCallback* This,WMT_STATUS Status,HRESULT hr,WMT_ATTR_DATATYPE dwType,BYTE *pValue,void *pvContext) {
  747    return This->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext);
  748}
  749#endif
  750#endif
  751
  752#endif
  753
  754
  755#endif  /* __IWMStatusCallback_INTERFACE_DEFINED__ */
  756
  757/*****************************************************************************
  758 * IWMReaderCallback interface
  759 */
  760#ifndef __IWMReaderCallback_INTERFACE_DEFINED__
  761#define __IWMReaderCallback_INTERFACE_DEFINED__
  762
  763DEFINE_GUID(IID_IWMReaderCallback, 0x96406bd8, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
  764#if defined(__cplusplus) && !defined(CINTERFACE)
  765MIDL_INTERFACE("96406bd8-2b2b-11d3-b36b-00c04f6108ff")
  766IWMReaderCallback : public IWMStatusCallback
  767{
  768    virtual HRESULT STDMETHODCALLTYPE OnSample(
  769        DWORD dwOutputNum,
  770        QWORD cnsSampleTime,
  771        QWORD cnsSampleDuration,
  772        DWORD dwFlags,
  773        INSSBuffer *pSample,
  774        void *pvContext) = 0;
  775
  776};
  777#ifdef __CRT_UUID_DECL
  778__CRT_UUID_DECL(IWMReaderCallback, 0x96406bd8, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
  779#endif
  780#else
  781typedef struct IWMReaderCallbackVtbl {
  782    BEGIN_INTERFACE
  783
  784    /*** IUnknown methods ***/
  785    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  786        IWMReaderCallback *This,
  787        REFIID riid,
  788        void **ppvObject);
  789
  790    ULONG (STDMETHODCALLTYPE *AddRef)(
  791        IWMReaderCallback *This);
  792
  793    ULONG (STDMETHODCALLTYPE *Release)(
  794        IWMReaderCallback *This);
  795
  796    /*** IWMStatusCallback methods ***/
  797    HRESULT (STDMETHODCALLTYPE *OnStatus)(
  798        IWMReaderCallback *This,
  799        WMT_STATUS Status,
  800        HRESULT hr,
  801        WMT_ATTR_DATATYPE dwType,
  802        BYTE *pValue,
  803        void *pvContext);
  804
  805    /*** IWMReaderCallback methods ***/
  806    HRESULT (STDMETHODCALLTYPE *OnSample)(
  807        IWMReaderCallback *This,
  808        DWORD dwOutputNum,
  809        QWORD cnsSampleTime,
  810        QWORD cnsSampleDuration,
  811        DWORD dwFlags,
  812        INSSBuffer *pSample,
  813        void *pvContext);
  814
  815    END_INTERFACE
  816} IWMReaderCallbackVtbl;
  817
  818interface IWMReaderCallback {
  819    CONST_VTBL IWMReaderCallbackVtbl* lpVtbl;
  820};
  821
  822#ifdef COBJMACROS
  823#ifndef WIDL_C_INLINE_WRAPPERS
  824/*** IUnknown methods ***/
  825#define IWMReaderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  826#define IWMReaderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
  827#define IWMReaderCallback_Release(This) (This)->lpVtbl->Release(This)
  828/*** IWMStatusCallback methods ***/
  829#define IWMReaderCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext) (This)->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext)
  830/*** IWMReaderCallback methods ***/
  831#define IWMReaderCallback_OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext) (This)->lpVtbl->OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext)
  832#else
  833/*** IUnknown methods ***/
  834static inline HRESULT IWMReaderCallback_QueryInterface(IWMReaderCallback* This,REFIID riid,void **ppvObject) {
  835    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  836}
  837static inline ULONG IWMReaderCallback_AddRef(IWMReaderCallback* This) {
  838    return This->lpVtbl->AddRef(This);
  839}
  840static inline ULONG IWMReaderCallback_Release(IWMReaderCallback* This) {
  841    return This->lpVtbl->Release(This);
  842}
  843/*** IWMStatusCallback methods ***/
  844static inline HRESULT IWMReaderCallback_OnStatus(IWMReaderCallback* This,WMT_STATUS Status,HRESULT hr,WMT_ATTR_DATATYPE dwType,BYTE *pValue,void *pvContext) {
  845    return This->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext);
  846}
  847/*** IWMReaderCallback methods ***/
  848static inline HRESULT IWMReaderCallback_OnSample(IWMReaderCallback* This,DWORD dwOutputNum,QWORD cnsSampleTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample,void *pvContext) {
  849    return This->lpVtbl->OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext);
  850}
  851#endif
  852#endif
  853
  854#endif
  855
  856
  857#endif  /* __IWMReaderCallback_INTERFACE_DEFINED__ */
  858
  859/*****************************************************************************
  860 * IWMReaderCallbackAdvanced interface
  861 */
  862#ifndef __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__
  863#define __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__
  864
  865DEFINE_GUID(IID_IWMReaderCallbackAdvanced, 0x96406beb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
  866#if defined(__cplusplus) && !defined(CINTERFACE)
  867MIDL_INTERFACE("96406beb-2b2b-11d3-b36b-00c04f6108ff")
  868IWMReaderCallbackAdvanced : public IUnknown
  869{
  870    virtual HRESULT STDMETHODCALLTYPE OnStreamSample(
  871        WORD stream_number,
  872        QWORD pts,
  873        QWORD duration,
  874        DWORD flags,
  875        INSSBuffer *sample,
  876        void *context) = 0;
  877
  878    virtual HRESULT STDMETHODCALLTYPE OnTime(
  879        QWORD time,
  880        void *context) = 0;
  881
  882    virtual HRESULT STDMETHODCALLTYPE OnStreamSelection(
  883        WORD count,
  884        WORD *stream_numbers,
  885        WMT_STREAM_SELECTION *selections,
  886        void *context) = 0;
  887
  888    virtual HRESULT STDMETHODCALLTYPE OnOutputPropsChanged(
  889        DWORD output_number,
  890        WM_MEDIA_TYPE *mt,
  891        void *context) = 0;
  892
  893    virtual HRESULT STDMETHODCALLTYPE AllocateForStream(
  894        WORD stream_number,
  895        DWORD size,
  896        INSSBuffer **sample,
  897        void *context) = 0;
  898
  899    virtual HRESULT STDMETHODCALLTYPE AllocateForOutput(
  900        DWORD output_number,
  901        DWORD size,
  902        INSSBuffer **sample,
  903        void *context) = 0;
  904
  905};
  906#ifdef __CRT_UUID_DECL
  907__CRT_UUID_DECL(IWMReaderCallbackAdvanced, 0x96406beb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
  908#endif
  909#else
  910typedef struct IWMReaderCallbackAdvancedVtbl {
  911    BEGIN_INTERFACE
  912
  913    /*** IUnknown methods ***/
  914    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  915        IWMReaderCallbackAdvanced *This,
  916        REFIID riid,
  917        void **ppvObject);
  918
  919    ULONG (STDMETHODCALLTYPE *AddRef)(
  920        IWMReaderCallbackAdvanced *This);
  921
  922    ULONG (STDMETHODCALLTYPE *Release)(
  923        IWMReaderCallbackAdvanced *This);
  924
  925    /*** IWMReaderCallbackAdvanced methods ***/
  926    HRESULT (STDMETHODCALLTYPE *OnStreamSample)(
  927        IWMReaderCallbackAdvanced *This,
  928        WORD stream_number,
  929        QWORD pts,
  930        QWORD duration,
  931        DWORD flags,
  932        INSSBuffer *sample,
  933        void *context);
  934
  935    HRESULT (STDMETHODCALLTYPE *OnTime)(
  936        IWMReaderCallbackAdvanced *This,
  937        QWORD time,
  938        void *context);
  939
  940    HRESULT (STDMETHODCALLTYPE *OnStreamSelection)(
  941        IWMReaderCallbackAdvanced *This,
  942        WORD count,
  943        WORD *stream_numbers,
  944        WMT_STREAM_SELECTION *selections,
  945        void *context);
  946
  947    HRESULT (STDMETHODCALLTYPE *OnOutputPropsChanged)(
  948        IWMReaderCallbackAdvanced *This,
  949        DWORD output_number,
  950        WM_MEDIA_TYPE *mt,
  951        void *context);
  952
  953    HRESULT (STDMETHODCALLTYPE *AllocateForStream)(
  954        IWMReaderCallbackAdvanced *This,
  955        WORD stream_number,
  956        DWORD size,
  957        INSSBuffer **sample,
  958        void *context);
  959
  960    HRESULT (STDMETHODCALLTYPE *AllocateForOutput)(
  961        IWMReaderCallbackAdvanced *This,
  962        DWORD output_number,
  963        DWORD size,
  964        INSSBuffer **sample,
  965        void *context);
  966
  967    END_INTERFACE
  968} IWMReaderCallbackAdvancedVtbl;
  969
  970interface IWMReaderCallbackAdvanced {
  971    CONST_VTBL IWMReaderCallbackAdvancedVtbl* lpVtbl;
  972};
  973
  974#ifdef COBJMACROS
  975#ifndef WIDL_C_INLINE_WRAPPERS
  976/*** IUnknown methods ***/
  977#define IWMReaderCallbackAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  978#define IWMReaderCallbackAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This)
  979#define IWMReaderCallbackAdvanced_Release(This) (This)->lpVtbl->Release(This)
  980/*** IWMReaderCallbackAdvanced methods ***/
  981#define IWMReaderCallbackAdvanced_OnStreamSample(This,stream_number,pts,duration,flags,sample,context) (This)->lpVtbl->OnStreamSample(This,stream_number,pts,duration,flags,sample,context)
  982#define IWMReaderCallbackAdvanced_OnTime(This,time,context) (This)->lpVtbl->OnTime(This,time,context)
  983#define IWMReaderCallbackAdvanced_OnStreamSelection(This,count,stream_numbers,selections,context) (This)->lpVtbl->OnStreamSelection(This,count,stream_numbers,selections,context)
  984#define IWMReaderCallbackAdvanced_OnOutputPropsChanged(This,output_number,mt,context) (This)->lpVtbl->OnOutputPropsChanged(This,output_number,mt,context)
  985#define IWMReaderCallbackAdvanced_AllocateForStream(This,stream_number,size,sample,context) (This)->lpVtbl->AllocateForStream(This,stream_number,size,sample,context)
  986#define IWMReaderCallbackAdvanced_AllocateForOutput(This,output_number,size,sample,context) (This)->lpVtbl->AllocateForOutput(This,output_number,size,sample,context)
  987#else
  988/*** IUnknown methods ***/
  989static inline HRESULT IWMReaderCallbackAdvanced_QueryInterface(IWMReaderCallbackAdvanced* This,REFIID riid,void **ppvObject) {
  990    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  991}
  992static inline ULONG IWMReaderCallbackAdvanced_AddRef(IWMReaderCallbackAdvanced* This) {
  993    return This->lpVtbl->AddRef(This);
  994}
  995static inline ULONG IWMReaderCallbackAdvanced_Release(IWMReaderCallbackAdvanced* This) {
  996    return This->lpVtbl->Release(This);
  997}
  998/*** IWMReaderCallbackAdvanced methods ***/
  999static inline HRESULT IWMReaderCallbackAdvanced_OnStreamSample(IWMReaderCallbackAdvanced* This,WORD stream_number,QWORD pts,QWORD duration,DWORD flags,INSSBuffer *sample,void *context) {
 1000    return This->lpVtbl->OnStreamSample(This,stream_number,pts,duration,flags,sample,context);
 1001}
 1002static inline HRESULT IWMReaderCallbackAdvanced_OnTime(IWMReaderCallbackAdvanced* This,QWORD time,void *context) {
 1003    return This->lpVtbl->OnTime(This,time,context);
 1004}
 1005static inline HRESULT IWMReaderCallbackAdvanced_OnStreamSelection(IWMReaderCallbackAdvanced* This,WORD count,WORD *stream_numbers,WMT_STREAM_SELECTION *selections,void *context) {
 1006    return This->lpVtbl->OnStreamSelection(This,count,stream_numbers,selections,context);
 1007}
 1008static inline HRESULT IWMReaderCallbackAdvanced_OnOutputPropsChanged(IWMReaderCallbackAdvanced* This,DWORD output_number,WM_MEDIA_TYPE *mt,void *context) {
 1009    return This->lpVtbl->OnOutputPropsChanged(This,output_number,mt,context);
 1010}
 1011static inline HRESULT IWMReaderCallbackAdvanced_AllocateForStream(IWMReaderCallbackAdvanced* This,WORD stream_number,DWORD size,INSSBuffer **sample,void *context) {
 1012    return This->lpVtbl->AllocateForStream(This,stream_number,size,sample,context);
 1013}
 1014static inline HRESULT IWMReaderCallbackAdvanced_AllocateForOutput(IWMReaderCallbackAdvanced* This,DWORD output_number,DWORD size,INSSBuffer **sample,void *context) {
 1015    return This->lpVtbl->AllocateForOutput(This,output_number,size,sample,context);
 1016}
 1017#endif
 1018#endif
 1019
 1020#endif
 1021
 1022
 1023#endif  /* __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__ */
 1024
 1025/*****************************************************************************
 1026 * IWMStreamList interface
 1027 */
 1028#ifndef __IWMStreamList_INTERFACE_DEFINED__
 1029#define __IWMStreamList_INTERFACE_DEFINED__
 1030
 1031DEFINE_GUID(IID_IWMStreamList, 0x96406bdd, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 1032#if defined(__cplusplus) && !defined(CINTERFACE)
 1033MIDL_INTERFACE("96406bdd-2b2b-11d3-b36b-00c04f6108ff")
 1034IWMStreamList : public IUnknown
 1035{
 1036    virtual HRESULT STDMETHODCALLTYPE GetStreams(
 1037        WORD *pwStreamNumArray,
 1038        WORD *pcStreams) = 0;
 1039
 1040    virtual HRESULT STDMETHODCALLTYPE AddStream(
 1041        WORD wStreamNum) = 0;
 1042
 1043    virtual HRESULT STDMETHODCALLTYPE RemoveStream(
 1044        WORD wStreamNum) = 0;
 1045
 1046};
 1047#ifdef __CRT_UUID_DECL
 1048__CRT_UUID_DECL(IWMStreamList, 0x96406bdd, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 1049#endif
 1050#else
 1051typedef struct IWMStreamListVtbl {
 1052    BEGIN_INTERFACE
 1053
 1054    /*** IUnknown methods ***/
 1055    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1056        IWMStreamList *This,
 1057        REFIID riid,
 1058        void **ppvObject);
 1059
 1060    ULONG (STDMETHODCALLTYPE *AddRef)(
 1061        IWMStreamList *This);
 1062
 1063    ULONG (STDMETHODCALLTYPE *Release)(
 1064        IWMStreamList *This);
 1065
 1066    /*** IWMStreamList methods ***/
 1067    HRESULT (STDMETHODCALLTYPE *GetStreams)(
 1068        IWMStreamList *This,
 1069        WORD *pwStreamNumArray,
 1070        WORD *pcStreams);
 1071
 1072    HRESULT (STDMETHODCALLTYPE *AddStream)(
 1073        IWMStreamList *This,
 1074        WORD wStreamNum);
 1075
 1076    HRESULT (STDMETHODCALLTYPE *RemoveStream)(
 1077        IWMStreamList *This,
 1078        WORD wStreamNum);
 1079
 1080    END_INTERFACE
 1081} IWMStreamListVtbl;
 1082
 1083interface IWMStreamList {
 1084    CONST_VTBL IWMStreamListVtbl* lpVtbl;
 1085};
 1086
 1087#ifdef COBJMACROS
 1088#ifndef WIDL_C_INLINE_WRAPPERS
 1089/*** IUnknown methods ***/
 1090#define IWMStreamList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1091#define IWMStreamList_AddRef(This) (This)->lpVtbl->AddRef(This)
 1092#define IWMStreamList_Release(This) (This)->lpVtbl->Release(This)
 1093/*** IWMStreamList methods ***/
 1094#define IWMStreamList_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams)
 1095#define IWMStreamList_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum)
 1096#define IWMStreamList_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum)
 1097#else
 1098/*** IUnknown methods ***/
 1099static inline HRESULT IWMStreamList_QueryInterface(IWMStreamList* This,REFIID riid,void **ppvObject) {
 1100    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1101}
 1102static inline ULONG IWMStreamList_AddRef(IWMStreamList* This) {
 1103    return This->lpVtbl->AddRef(This);
 1104}
 1105static inline ULONG IWMStreamList_Release(IWMStreamList* This) {
 1106    return This->lpVtbl->Release(This);
 1107}
 1108/*** IWMStreamList methods ***/
 1109static inline HRESULT IWMStreamList_GetStreams(IWMStreamList* This,WORD *pwStreamNumArray,WORD *pcStreams) {
 1110    return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams);
 1111}
 1112static inline HRESULT IWMStreamList_AddStream(IWMStreamList* This,WORD wStreamNum) {
 1113    return This->lpVtbl->AddStream(This,wStreamNum);
 1114}
 1115static inline HRESULT IWMStreamList_RemoveStream(IWMStreamList* This,WORD wStreamNum) {
 1116    return This->lpVtbl->RemoveStream(This,wStreamNum);
 1117}
 1118#endif
 1119#endif
 1120
 1121#endif
 1122
 1123
 1124#endif  /* __IWMStreamList_INTERFACE_DEFINED__ */
 1125
 1126/*****************************************************************************
 1127 * IWMMutualExclusion interface
 1128 */
 1129#ifndef __IWMMutualExclusion_INTERFACE_DEFINED__
 1130#define __IWMMutualExclusion_INTERFACE_DEFINED__
 1131
 1132DEFINE_GUID(IID_IWMMutualExclusion, 0x96406bde, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 1133#if defined(__cplusplus) && !defined(CINTERFACE)
 1134MIDL_INTERFACE("96406bde-2b2b-11d3-b36b-00c04f6108ff")
 1135IWMMutualExclusion : public IWMStreamList
 1136{
 1137    virtual HRESULT STDMETHODCALLTYPE GetType(
 1138        GUID *pguidType) = 0;
 1139
 1140    virtual HRESULT STDMETHODCALLTYPE SetType(
 1141        REFGUID guidType) = 0;
 1142
 1143};
 1144#ifdef __CRT_UUID_DECL
 1145__CRT_UUID_DECL(IWMMutualExclusion, 0x96406bde, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 1146#endif
 1147#else
 1148typedef struct IWMMutualExclusionVtbl {
 1149    BEGIN_INTERFACE
 1150
 1151    /*** IUnknown methods ***/
 1152    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1153        IWMMutualExclusion *This,
 1154        REFIID riid,
 1155        void **ppvObject);
 1156
 1157    ULONG (STDMETHODCALLTYPE *AddRef)(
 1158        IWMMutualExclusion *This);
 1159
 1160    ULONG (STDMETHODCALLTYPE *Release)(
 1161        IWMMutualExclusion *This);
 1162
 1163    /*** IWMStreamList methods ***/
 1164    HRESULT (STDMETHODCALLTYPE *GetStreams)(
 1165        IWMMutualExclusion *This,
 1166        WORD *pwStreamNumArray,
 1167        WORD *pcStreams);
 1168
 1169    HRESULT (STDMETHODCALLTYPE *AddStream)(
 1170        IWMMutualExclusion *This,
 1171        WORD wStreamNum);
 1172
 1173    HRESULT (STDMETHODCALLTYPE *RemoveStream)(
 1174        IWMMutualExclusion *This,
 1175        WORD wStreamNum);
 1176
 1177    /*** IWMMutualExclusion methods ***/
 1178    HRESULT (STDMETHODCALLTYPE *GetType)(
 1179        IWMMutualExclusion *This,
 1180        GUID *pguidType);
 1181
 1182    HRESULT (STDMETHODCALLTYPE *SetType)(
 1183        IWMMutualExclusion *This,
 1184        REFGUID guidType);
 1185
 1186    END_INTERFACE
 1187} IWMMutualExclusionVtbl;
 1188
 1189interface IWMMutualExclusion {
 1190    CONST_VTBL IWMMutualExclusionVtbl* lpVtbl;
 1191};
 1192
 1193#ifdef COBJMACROS
 1194#ifndef WIDL_C_INLINE_WRAPPERS
 1195/*** IUnknown methods ***/
 1196#define IWMMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1197#define IWMMutualExclusion_AddRef(This) (This)->lpVtbl->AddRef(This)
 1198#define IWMMutualExclusion_Release(This) (This)->lpVtbl->Release(This)
 1199/*** IWMStreamList methods ***/
 1200#define IWMMutualExclusion_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams)
 1201#define IWMMutualExclusion_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum)
 1202#define IWMMutualExclusion_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum)
 1203/*** IWMMutualExclusion methods ***/
 1204#define IWMMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
 1205#define IWMMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType)
 1206#else
 1207/*** IUnknown methods ***/
 1208static inline HRESULT IWMMutualExclusion_QueryInterface(IWMMutualExclusion* This,REFIID riid,void **ppvObject) {
 1209    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1210}
 1211static inline ULONG IWMMutualExclusion_AddRef(IWMMutualExclusion* This) {
 1212    return This->lpVtbl->AddRef(This);
 1213}
 1214static inline ULONG IWMMutualExclusion_Release(IWMMutualExclusion* This) {
 1215    return This->lpVtbl->Release(This);
 1216}
 1217/*** IWMStreamList methods ***/
 1218static inline HRESULT IWMMutualExclusion_GetStreams(IWMMutualExclusion* This,WORD *pwStreamNumArray,WORD *pcStreams) {
 1219    return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams);
 1220}
 1221static inline HRESULT IWMMutualExclusion_AddStream(IWMMutualExclusion* This,WORD wStreamNum) {
 1222    return This->lpVtbl->AddStream(This,wStreamNum);
 1223}
 1224static inline HRESULT IWMMutualExclusion_RemoveStream(IWMMutualExclusion* This,WORD wStreamNum) {
 1225    return This->lpVtbl->RemoveStream(This,wStreamNum);
 1226}
 1227/*** IWMMutualExclusion methods ***/
 1228static inline HRESULT IWMMutualExclusion_GetType(IWMMutualExclusion* This,GUID *pguidType) {
 1229    return This->lpVtbl->GetType(This,pguidType);
 1230}
 1231static inline HRESULT IWMMutualExclusion_SetType(IWMMutualExclusion* This,REFGUID guidType) {
 1232    return This->lpVtbl->SetType(This,guidType);
 1233}
 1234#endif
 1235#endif
 1236
 1237#endif
 1238
 1239
 1240#endif  /* __IWMMutualExclusion_INTERFACE_DEFINED__ */
 1241
 1242/*****************************************************************************
 1243 * IWMBandwidthSharing interface
 1244 */
 1245#ifndef __IWMBandwidthSharing_INTERFACE_DEFINED__
 1246#define __IWMBandwidthSharing_INTERFACE_DEFINED__
 1247
 1248DEFINE_GUID(IID_IWMBandwidthSharing, 0xad694af1, 0xf8d9, 0x42f8, 0xbc,0x47, 0x70,0x31,0x1b,0x0c,0x4f,0x9e);
 1249#if defined(__cplusplus) && !defined(CINTERFACE)
 1250MIDL_INTERFACE("ad694af1-f8d9-42f8-bc47-70311b0c4f9e")
 1251IWMBandwidthSharing : public IWMStreamList
 1252{
 1253    virtual HRESULT STDMETHODCALLTYPE GetType(
 1254        GUID *guid) = 0;
 1255
 1256    virtual HRESULT STDMETHODCALLTYPE SetType(
 1257        REFGUID guid) = 0;
 1258
 1259    virtual HRESULT STDMETHODCALLTYPE GetBandwidth(
 1260        DWORD *bitrate,
 1261        DWORD *buffer) = 0;
 1262
 1263    virtual HRESULT STDMETHODCALLTYPE SetBandwidth(
 1264        DWORD bitrate,
 1265        DWORD buffer) = 0;
 1266
 1267};
 1268#ifdef __CRT_UUID_DECL
 1269__CRT_UUID_DECL(IWMBandwidthSharing, 0xad694af1, 0xf8d9, 0x42f8, 0xbc,0x47, 0x70,0x31,0x1b,0x0c,0x4f,0x9e)
 1270#endif
 1271#else
 1272typedef struct IWMBandwidthSharingVtbl {
 1273    BEGIN_INTERFACE
 1274
 1275    /*** IUnknown methods ***/
 1276    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1277        IWMBandwidthSharing *This,
 1278        REFIID riid,
 1279        void **ppvObject);
 1280
 1281    ULONG (STDMETHODCALLTYPE *AddRef)(
 1282        IWMBandwidthSharing *This);
 1283
 1284    ULONG (STDMETHODCALLTYPE *Release)(
 1285        IWMBandwidthSharing *This);
 1286
 1287    /*** IWMStreamList methods ***/
 1288    HRESULT (STDMETHODCALLTYPE *GetStreams)(
 1289        IWMBandwidthSharing *This,
 1290        WORD *pwStreamNumArray,
 1291        WORD *pcStreams);
 1292
 1293    HRESULT (STDMETHODCALLTYPE *AddStream)(
 1294        IWMBandwidthSharing *This,
 1295        WORD wStreamNum);
 1296
 1297    HRESULT (STDMETHODCALLTYPE *RemoveStream)(
 1298        IWMBandwidthSharing *This,
 1299        WORD wStreamNum);
 1300
 1301    /*** IWMBandwidthSharing methods ***/
 1302    HRESULT (STDMETHODCALLTYPE *GetType)(
 1303        IWMBandwidthSharing *This,
 1304        GUID *guid);
 1305
 1306    HRESULT (STDMETHODCALLTYPE *SetType)(
 1307        IWMBandwidthSharing *This,
 1308        REFGUID guid);
 1309
 1310    HRESULT (STDMETHODCALLTYPE *GetBandwidth)(
 1311        IWMBandwidthSharing *This,
 1312        DWORD *bitrate,
 1313        DWORD *buffer);
 1314
 1315    HRESULT (STDMETHODCALLTYPE *SetBandwidth)(
 1316        IWMBandwidthSharing *This,
 1317        DWORD bitrate,
 1318        DWORD buffer);
 1319
 1320    END_INTERFACE
 1321} IWMBandwidthSharingVtbl;
 1322
 1323interface IWMBandwidthSharing {
 1324    CONST_VTBL IWMBandwidthSharingVtbl* lpVtbl;
 1325};
 1326
 1327#ifdef COBJMACROS
 1328#ifndef WIDL_C_INLINE_WRAPPERS
 1329/*** IUnknown methods ***/
 1330#define IWMBandwidthSharing_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1331#define IWMBandwidthSharing_AddRef(This) (This)->lpVtbl->AddRef(This)
 1332#define IWMBandwidthSharing_Release(This) (This)->lpVtbl->Release(This)
 1333/*** IWMStreamList methods ***/
 1334#define IWMBandwidthSharing_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams)
 1335#define IWMBandwidthSharing_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum)
 1336#define IWMBandwidthSharing_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum)
 1337/*** IWMBandwidthSharing methods ***/
 1338#define IWMBandwidthSharing_GetType(This,guid) (This)->lpVtbl->GetType(This,guid)
 1339#define IWMBandwidthSharing_SetType(This,guid) (This)->lpVtbl->SetType(This,guid)
 1340#define IWMBandwidthSharing_GetBandwidth(This,bitrate,buffer) (This)->lpVtbl->GetBandwidth(This,bitrate,buffer)
 1341#define IWMBandwidthSharing_SetBandwidth(This,bitrate,buffer) (This)->lpVtbl->SetBandwidth(This,bitrate,buffer)
 1342#else
 1343/*** IUnknown methods ***/
 1344static inline HRESULT IWMBandwidthSharing_QueryInterface(IWMBandwidthSharing* This,REFIID riid,void **ppvObject) {
 1345    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1346}
 1347static inline ULONG IWMBandwidthSharing_AddRef(IWMBandwidthSharing* This) {
 1348    return This->lpVtbl->AddRef(This);
 1349}
 1350static inline ULONG IWMBandwidthSharing_Release(IWMBandwidthSharing* This) {
 1351    return This->lpVtbl->Release(This);
 1352}
 1353/*** IWMStreamList methods ***/
 1354static inline HRESULT IWMBandwidthSharing_GetStreams(IWMBandwidthSharing* This,WORD *pwStreamNumArray,WORD *pcStreams) {
 1355    return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams);
 1356}
 1357static inline HRESULT IWMBandwidthSharing_AddStream(IWMBandwidthSharing* This,WORD wStreamNum) {
 1358    return This->lpVtbl->AddStream(This,wStreamNum);
 1359}
 1360static inline HRESULT IWMBandwidthSharing_RemoveStream(IWMBandwidthSharing* This,WORD wStreamNum) {
 1361    return This->lpVtbl->RemoveStream(This,wStreamNum);
 1362}
 1363/*** IWMBandwidthSharing methods ***/
 1364static inline HRESULT IWMBandwidthSharing_GetType(IWMBandwidthSharing* This,GUID *guid) {
 1365    return This->lpVtbl->GetType(This,guid);
 1366}
 1367static inline HRESULT IWMBandwidthSharing_SetType(IWMBandwidthSharing* This,REFGUID guid) {
 1368    return This->lpVtbl->SetType(This,guid);
 1369}
 1370static inline HRESULT IWMBandwidthSharing_GetBandwidth(IWMBandwidthSharing* This,DWORD *bitrate,DWORD *buffer) {
 1371    return This->lpVtbl->GetBandwidth(This,bitrate,buffer);
 1372}
 1373static inline HRESULT IWMBandwidthSharing_SetBandwidth(IWMBandwidthSharing* This,DWORD bitrate,DWORD buffer) {
 1374    return This->lpVtbl->SetBandwidth(This,bitrate,buffer);
 1375}
 1376#endif
 1377#endif
 1378
 1379#endif
 1380
 1381
 1382#endif  /* __IWMBandwidthSharing_INTERFACE_DEFINED__ */
 1383
 1384/*****************************************************************************
 1385 * IWMStreamPrioritization interface
 1386 */
 1387#ifndef __IWMStreamPrioritization_INTERFACE_DEFINED__
 1388#define __IWMStreamPrioritization_INTERFACE_DEFINED__
 1389
 1390DEFINE_GUID(IID_IWMStreamPrioritization, 0x8c1c6090, 0xf9a8, 0x4748, 0x8e,0xc3, 0xdd,0x11,0x08,0xba,0x1e,0x77);
 1391#if defined(__cplusplus) && !defined(CINTERFACE)
 1392MIDL_INTERFACE("8c1c6090-f9a8-4748-8ec3-dd1108ba1e77")
 1393IWMStreamPrioritization : public IUnknown
 1394{
 1395    virtual HRESULT STDMETHODCALLTYPE GetPriorityRecords(
 1396        WM_STREAM_PRIORITY_RECORD *array,
 1397        WORD *records) = 0;
 1398
 1399    virtual HRESULT STDMETHODCALLTYPE SetPriorityRecords(
 1400        WM_STREAM_PRIORITY_RECORD *array,
 1401        WORD records) = 0;
 1402
 1403};
 1404#ifdef __CRT_UUID_DECL
 1405__CRT_UUID_DECL(IWMStreamPrioritization, 0x8c1c6090, 0xf9a8, 0x4748, 0x8e,0xc3, 0xdd,0x11,0x08,0xba,0x1e,0x77)
 1406#endif
 1407#else
 1408typedef struct IWMStreamPrioritizationVtbl {
 1409    BEGIN_INTERFACE
 1410
 1411    /*** IUnknown methods ***/
 1412    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1413        IWMStreamPrioritization *This,
 1414        REFIID riid,
 1415        void **ppvObject);
 1416
 1417    ULONG (STDMETHODCALLTYPE *AddRef)(
 1418        IWMStreamPrioritization *This);
 1419
 1420    ULONG (STDMETHODCALLTYPE *Release)(
 1421        IWMStreamPrioritization *This);
 1422
 1423    /*** IWMStreamPrioritization methods ***/
 1424    HRESULT (STDMETHODCALLTYPE *GetPriorityRecords)(
 1425        IWMStreamPrioritization *This,
 1426        WM_STREAM_PRIORITY_RECORD *array,
 1427        WORD *records);
 1428
 1429    HRESULT (STDMETHODCALLTYPE *SetPriorityRecords)(
 1430        IWMStreamPrioritization *This,
 1431        WM_STREAM_PRIORITY_RECORD *array,
 1432        WORD records);
 1433
 1434    END_INTERFACE
 1435} IWMStreamPrioritizationVtbl;
 1436
 1437interface IWMStreamPrioritization {
 1438    CONST_VTBL IWMStreamPrioritizationVtbl* lpVtbl;
 1439};
 1440
 1441#ifdef COBJMACROS
 1442#ifndef WIDL_C_INLINE_WRAPPERS
 1443/*** IUnknown methods ***/
 1444#define IWMStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1445#define IWMStreamPrioritization_AddRef(This) (This)->lpVtbl->AddRef(This)
 1446#define IWMStreamPrioritization_Release(This) (This)->lpVtbl->Release(This)
 1447/*** IWMStreamPrioritization methods ***/
 1448#define IWMStreamPrioritization_GetPriorityRecords(This,array,records) (This)->lpVtbl->GetPriorityRecords(This,array,records)
 1449#define IWMStreamPrioritization_SetPriorityRecords(This,array,records) (This)->lpVtbl->SetPriorityRecords(This,array,records)
 1450#else
 1451/*** IUnknown methods ***/
 1452static inline HRESULT IWMStreamPrioritization_QueryInterface(IWMStreamPrioritization* This,REFIID riid,void **ppvObject) {
 1453    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1454}
 1455static inline ULONG IWMStreamPrioritization_AddRef(IWMStreamPrioritization* This) {
 1456    return This->lpVtbl->AddRef(This);
 1457}
 1458static inline ULONG IWMStreamPrioritization_Release(IWMStreamPrioritization* This) {
 1459    return This->lpVtbl->Release(This);
 1460}
 1461/*** IWMStreamPrioritization methods ***/
 1462static inline HRESULT IWMStreamPrioritization_GetPriorityRecords(IWMStreamPrioritization* This,WM_STREAM_PRIORITY_RECORD *array,WORD *records) {
 1463    return This->lpVtbl->GetPriorityRecords(This,array,records);
 1464}
 1465static inline HRESULT IWMStreamPrioritization_SetPriorityRecords(IWMStreamPrioritization* This,WM_STREAM_PRIORITY_RECORD *array,WORD records) {
 1466    return This->lpVtbl->SetPriorityRecords(This,array,records);
 1467}
 1468#endif
 1469#endif
 1470
 1471#endif
 1472
 1473
 1474#endif  /* __IWMStreamPrioritization_INTERFACE_DEFINED__ */
 1475
 1476/*****************************************************************************
 1477 * IWMStreamConfig interface
 1478 */
 1479#ifndef __IWMStreamConfig_INTERFACE_DEFINED__
 1480#define __IWMStreamConfig_INTERFACE_DEFINED__
 1481
 1482DEFINE_GUID(IID_IWMStreamConfig, 0x96406bdc, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 1483#if defined(__cplusplus) && !defined(CINTERFACE)
 1484MIDL_INTERFACE("96406bdc-2b2b-11d3-b36b-00c04f6108ff")
 1485IWMStreamConfig : public IUnknown
 1486{
 1487    virtual HRESULT STDMETHODCALLTYPE GetStreamType(
 1488        GUID *pguidStreamType) = 0;
 1489
 1490    virtual HRESULT STDMETHODCALLTYPE GetStreamNumber(
 1491        WORD *pwStreamNum) = 0;
 1492
 1493    virtual HRESULT STDMETHODCALLTYPE SetStreamNumber(
 1494        WORD wStreamNum) = 0;
 1495
 1496    virtual HRESULT STDMETHODCALLTYPE GetStreamName(
 1497        WCHAR *pwszStreamName,
 1498        WORD *pcchStreamName) = 0;
 1499
 1500    virtual HRESULT STDMETHODCALLTYPE SetStreamName(
 1501        LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName) = 0;
 1502
 1503    virtual HRESULT STDMETHODCALLTYPE GetConnectionName(
 1504        WCHAR *pwszInputName,
 1505        WORD *pcchInputName) = 0;
 1506
 1507    virtual HRESULT STDMETHODCALLTYPE SetConnectionName(
 1508        LPCWSTR_WMSDK_TYPE_SAFE pwszInputName) = 0;
 1509
 1510    virtual HRESULT STDMETHODCALLTYPE GetBitrate(
 1511        DWORD *pdwBitrate) = 0;
 1512
 1513    virtual HRESULT STDMETHODCALLTYPE SetBitrate(
 1514        DWORD pdwBitrate) = 0;
 1515
 1516    virtual HRESULT STDMETHODCALLTYPE GetBufferWindow(
 1517        DWORD *pmsBufferWindow) = 0;
 1518
 1519    virtual HRESULT STDMETHODCALLTYPE SetBufferWindow(
 1520        DWORD msBufferWindow) = 0;
 1521
 1522};
 1523#ifdef __CRT_UUID_DECL
 1524__CRT_UUID_DECL(IWMStreamConfig, 0x96406bdc, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 1525#endif
 1526#else
 1527typedef struct IWMStreamConfigVtbl {
 1528    BEGIN_INTERFACE
 1529
 1530    /*** IUnknown methods ***/
 1531    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1532        IWMStreamConfig *This,
 1533        REFIID riid,
 1534        void **ppvObject);
 1535
 1536    ULONG (STDMETHODCALLTYPE *AddRef)(
 1537        IWMStreamConfig *This);
 1538
 1539    ULONG (STDMETHODCALLTYPE *Release)(
 1540        IWMStreamConfig *This);
 1541
 1542    /*** IWMStreamConfig methods ***/
 1543    HRESULT (STDMETHODCALLTYPE *GetStreamType)(
 1544        IWMStreamConfig *This,
 1545        GUID *pguidStreamType);
 1546
 1547    HRESULT (STDMETHODCALLTYPE *GetStreamNumber)(
 1548        IWMStreamConfig *This,
 1549        WORD *pwStreamNum);
 1550
 1551    HRESULT (STDMETHODCALLTYPE *SetStreamNumber)(
 1552        IWMStreamConfig *This,
 1553        WORD wStreamNum);
 1554
 1555    HRESULT (STDMETHODCALLTYPE *GetStreamName)(
 1556        IWMStreamConfig *This,
 1557        WCHAR *pwszStreamName,
 1558        WORD *pcchStreamName);
 1559
 1560    HRESULT (STDMETHODCALLTYPE *SetStreamName)(
 1561        IWMStreamConfig *This,
 1562        LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName);
 1563
 1564    HRESULT (STDMETHODCALLTYPE *GetConnectionName)(
 1565        IWMStreamConfig *This,
 1566        WCHAR *pwszInputName,
 1567        WORD *pcchInputName);
 1568
 1569    HRESULT (STDMETHODCALLTYPE *SetConnectionName)(
 1570        IWMStreamConfig *This,
 1571        LPCWSTR_WMSDK_TYPE_SAFE pwszInputName);
 1572
 1573    HRESULT (STDMETHODCALLTYPE *GetBitrate)(
 1574        IWMStreamConfig *This,
 1575        DWORD *pdwBitrate);
 1576
 1577    HRESULT (STDMETHODCALLTYPE *SetBitrate)(
 1578        IWMStreamConfig *This,
 1579        DWORD pdwBitrate);
 1580
 1581    HRESULT (STDMETHODCALLTYPE *GetBufferWindow)(
 1582        IWMStreamConfig *This,
 1583        DWORD *pmsBufferWindow);
 1584
 1585    HRESULT (STDMETHODCALLTYPE *SetBufferWindow)(
 1586        IWMStreamConfig *This,
 1587        DWORD msBufferWindow);
 1588
 1589    END_INTERFACE
 1590} IWMStreamConfigVtbl;
 1591
 1592interface IWMStreamConfig {
 1593    CONST_VTBL IWMStreamConfigVtbl* lpVtbl;
 1594};
 1595
 1596#ifdef COBJMACROS
 1597#ifndef WIDL_C_INLINE_WRAPPERS
 1598/*** IUnknown methods ***/
 1599#define IWMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1600#define IWMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
 1601#define IWMStreamConfig_Release(This) (This)->lpVtbl->Release(This)
 1602/*** IWMStreamConfig methods ***/
 1603#define IWMStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType)
 1604#define IWMStreamConfig_GetStreamNumber(This,pwStreamNum) (This)->lpVtbl->GetStreamNumber(This,pwStreamNum)
 1605#define IWMStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum)
 1606#define IWMStreamConfig_GetStreamName(This,pwszStreamName,pcchStreamName) (This)->lpVtbl->GetStreamName(This,pwszStreamName,pcchStreamName)
 1607#define IWMStreamConfig_SetStreamName(This,pwszStreamName) (This)->lpVtbl->SetStreamName(This,pwszStreamName)
 1608#define IWMStreamConfig_GetConnectionName(This,pwszInputName,pcchInputName) (This)->lpVtbl->GetConnectionName(This,pwszInputName,pcchInputName)
 1609#define IWMStreamConfig_SetConnectionName(This,pwszInputName) (This)->lpVtbl->SetConnectionName(This,pwszInputName)
 1610#define IWMStreamConfig_GetBitrate(This,pdwBitrate) (This)->lpVtbl->GetBitrate(This,pdwBitrate)
 1611#define IWMStreamConfig_SetBitrate(This,pdwBitrate) (This)->lpVtbl->SetBitrate(This,pdwBitrate)
 1612#define IWMStreamConfig_GetBufferWindow(This,pmsBufferWindow) (This)->lpVtbl->GetBufferWindow(This,pmsBufferWindow)
 1613#define IWMStreamConfig_SetBufferWindow(This,msBufferWindow) (This)->lpVtbl->SetBufferWindow(This,msBufferWindow)
 1614#else
 1615/*** IUnknown methods ***/
 1616static inline HRESULT IWMStreamConfig_QueryInterface(IWMStreamConfig* This,REFIID riid,void **ppvObject) {
 1617    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1618}
 1619static inline ULONG IWMStreamConfig_AddRef(IWMStreamConfig* This) {
 1620    return This->lpVtbl->AddRef(This);
 1621}
 1622static inline ULONG IWMStreamConfig_Release(IWMStreamConfig* This) {
 1623    return This->lpVtbl->Release(This);
 1624}
 1625/*** IWMStreamConfig methods ***/
 1626static inline HRESULT IWMStreamConfig_GetStreamType(IWMStreamConfig* This,GUID *pguidStreamType) {
 1627    return This->lpVtbl->GetStreamType(This,pguidStreamType);
 1628}
 1629static inline HRESULT IWMStreamConfig_GetStreamNumber(IWMStreamConfig* This,WORD *pwStreamNum) {
 1630    return This->lpVtbl->GetStreamNumber(This,pwStreamNum);
 1631}
 1632static inline HRESULT IWMStreamConfig_SetStreamNumber(IWMStreamConfig* This,WORD wStreamNum) {
 1633    return This->lpVtbl->SetStreamNumber(This,wStreamNum);
 1634}
 1635static inline HRESULT IWMStreamConfig_GetStreamName(IWMStreamConfig* This,WCHAR *pwszStreamName,WORD *pcchStreamName) {
 1636    return This->lpVtbl->GetStreamName(This,pwszStreamName,pcchStreamName);
 1637}
 1638static inline HRESULT IWMStreamConfig_SetStreamName(IWMStreamConfig* This,LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName) {
 1639    return This->lpVtbl->SetStreamName(This,pwszStreamName);
 1640}
 1641static inline HRESULT IWMStreamConfig_GetConnectionName(IWMStreamConfig* This,WCHAR *pwszInputName,WORD *pcchInputName) {
 1642    return This->lpVtbl->GetConnectionName(This,pwszInputName,pcchInputName);
 1643}
 1644static inline HRESULT IWMStreamConfig_SetConnectionName(IWMStreamConfig* This,LPCWSTR_WMSDK_TYPE_SAFE pwszInputName) {
 1645    return This->lpVtbl->SetConnectionName(This,pwszInputName);
 1646}
 1647static inline HRESULT IWMStreamConfig_GetBitrate(IWMStreamConfig* This,DWORD *pdwBitrate) {
 1648    return This->lpVtbl->GetBitrate(This,pdwBitrate);
 1649}
 1650static inline HRESULT IWMStreamConfig_SetBitrate(IWMStreamConfig* This,DWORD pdwBitrate) {
 1651    return This->lpVtbl->SetBitrate(This,pdwBitrate);
 1652}
 1653static inline HRESULT IWMStreamConfig_GetBufferWindow(IWMStreamConfig* This,DWORD *pmsBufferWindow) {
 1654    return This->lpVtbl->GetBufferWindow(This,pmsBufferWindow);
 1655}
 1656static inline HRESULT IWMStreamConfig_SetBufferWindow(IWMStreamConfig* This,DWORD msBufferWindow) {
 1657    return This->lpVtbl->SetBufferWindow(This,msBufferWindow);
 1658}
 1659#endif
 1660#endif
 1661
 1662#endif
 1663
 1664
 1665#endif  /* __IWMStreamConfig_INTERFACE_DEFINED__ */
 1666
 1667/*****************************************************************************
 1668 * IWMProfile interface
 1669 */
 1670#ifndef __IWMProfile_INTERFACE_DEFINED__
 1671#define __IWMProfile_INTERFACE_DEFINED__
 1672
 1673DEFINE_GUID(IID_IWMProfile, 0x96406bdb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 1674#if defined(__cplusplus) && !defined(CINTERFACE)
 1675MIDL_INTERFACE("96406bdb-2b2b-11d3-b36b-00c04f6108ff")
 1676IWMProfile : public IUnknown
 1677{
 1678    virtual HRESULT STDMETHODCALLTYPE GetVersion(
 1679        WMT_VERSION *pdwVersion) = 0;
 1680
 1681    virtual HRESULT STDMETHODCALLTYPE GetName(
 1682        WCHAR *pwszName,
 1683        DWORD *pcchName) = 0;
 1684
 1685    virtual HRESULT STDMETHODCALLTYPE SetName(
 1686        const WCHAR *pwszName) = 0;
 1687
 1688    virtual HRESULT STDMETHODCALLTYPE GetDescription(
 1689        WCHAR *pwszDescription,
 1690        DWORD *pcchDescription) = 0;
 1691
 1692    virtual HRESULT STDMETHODCALLTYPE SetDescription(
 1693        const WCHAR *pwszDescription) = 0;
 1694
 1695    virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
 1696        DWORD *pcStreams) = 0;
 1697
 1698    virtual HRESULT STDMETHODCALLTYPE GetStream(
 1699        DWORD dwStreamIndex,
 1700        IWMStreamConfig **ppConfig) = 0;
 1701
 1702    virtual HRESULT STDMETHODCALLTYPE GetStreamByNumber(
 1703        WORD wStreamNum,
 1704        IWMStreamConfig **ppConfig) = 0;
 1705
 1706    virtual HRESULT STDMETHODCALLTYPE RemoveStream(
 1707        IWMStreamConfig *pConfig) = 0;
 1708
 1709    virtual HRESULT STDMETHODCALLTYPE RemoveStreamByNumber(
 1710        WORD wStreamNum) = 0;
 1711
 1712    virtual HRESULT STDMETHODCALLTYPE AddStream(
 1713        IWMStreamConfig *pConfig) = 0;
 1714
 1715    virtual HRESULT STDMETHODCALLTYPE ReconfigStream(
 1716        IWMStreamConfig *pConfig) = 0;
 1717
 1718    virtual HRESULT STDMETHODCALLTYPE CreateNewStream(
 1719        REFGUID guidStreamType,
 1720        IWMStreamConfig **ppConfig) = 0;
 1721
 1722    virtual HRESULT STDMETHODCALLTYPE GetMutualExclusionCount(
 1723        DWORD *pcME) = 0;
 1724
 1725    virtual HRESULT STDMETHODCALLTYPE GetMutualExclusion(
 1726        DWORD dwMEIndex,
 1727        IWMMutualExclusion **ppME) = 0;
 1728
 1729    virtual HRESULT STDMETHODCALLTYPE RemoveMutualExclusion(
 1730        IWMMutualExclusion *pME) = 0;
 1731
 1732    virtual HRESULT STDMETHODCALLTYPE AddMutualExclusion(
 1733        IWMMutualExclusion *pME) = 0;
 1734
 1735    virtual HRESULT STDMETHODCALLTYPE CreateNewMutualExclusion(
 1736        IWMMutualExclusion **ppME) = 0;
 1737
 1738};
 1739#ifdef __CRT_UUID_DECL
 1740__CRT_UUID_DECL(IWMProfile, 0x96406bdb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 1741#endif
 1742#else
 1743typedef struct IWMProfileVtbl {
 1744    BEGIN_INTERFACE
 1745
 1746    /*** IUnknown methods ***/
 1747    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1748        IWMProfile *This,
 1749        REFIID riid,
 1750        void **ppvObject);
 1751
 1752    ULONG (STDMETHODCALLTYPE *AddRef)(
 1753        IWMProfile *This);
 1754
 1755    ULONG (STDMETHODCALLTYPE *Release)(
 1756        IWMProfile *This);
 1757
 1758    /*** IWMProfile methods ***/
 1759    HRESULT (STDMETHODCALLTYPE *GetVersion)(
 1760        IWMProfile *This,
 1761        WMT_VERSION *pdwVersion);
 1762
 1763    HRESULT (STDMETHODCALLTYPE *GetName)(
 1764        IWMProfile *This,
 1765        WCHAR *pwszName,
 1766        DWORD *pcchName);
 1767
 1768    HRESULT (STDMETHODCALLTYPE *SetName)(
 1769        IWMProfile *This,
 1770        const WCHAR *pwszName);
 1771
 1772    HRESULT (STDMETHODCALLTYPE *GetDescription)(
 1773        IWMProfile *This,
 1774        WCHAR *pwszDescription,
 1775        DWORD *pcchDescription);
 1776
 1777    HRESULT (STDMETHODCALLTYPE *SetDescription)(
 1778        IWMProfile *This,
 1779        const WCHAR *pwszDescription);
 1780
 1781    HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
 1782        IWMProfile *This,
 1783        DWORD *pcStreams);
 1784
 1785    HRESULT (STDMETHODCALLTYPE *GetStream)(
 1786        IWMProfile *This,
 1787        DWORD dwStreamIndex,
 1788        IWMStreamConfig **ppConfig);
 1789
 1790    HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)(
 1791        IWMProfile *This,
 1792        WORD wStreamNum,
 1793        IWMStreamConfig **ppConfig);
 1794
 1795    HRESULT (STDMETHODCALLTYPE *RemoveStream)(
 1796        IWMProfile *This,
 1797        IWMStreamConfig *pConfig);
 1798
 1799    HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)(
 1800        IWMProfile *This,
 1801        WORD wStreamNum);
 1802
 1803    HRESULT (STDMETHODCALLTYPE *AddStream)(
 1804        IWMProfile *This,
 1805        IWMStreamConfig *pConfig);
 1806
 1807    HRESULT (STDMETHODCALLTYPE *ReconfigStream)(
 1808        IWMProfile *This,
 1809        IWMStreamConfig *pConfig);
 1810
 1811    HRESULT (STDMETHODCALLTYPE *CreateNewStream)(
 1812        IWMProfile *This,
 1813        REFGUID guidStreamType,
 1814        IWMStreamConfig **ppConfig);
 1815
 1816    HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)(
 1817        IWMProfile *This,
 1818        DWORD *pcME);
 1819
 1820    HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)(
 1821        IWMProfile *This,
 1822        DWORD dwMEIndex,
 1823        IWMMutualExclusion **ppME);
 1824
 1825    HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)(
 1826        IWMProfile *This,
 1827        IWMMutualExclusion *pME);
 1828
 1829    HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)(
 1830        IWMProfile *This,
 1831        IWMMutualExclusion *pME);
 1832
 1833    HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)(
 1834        IWMProfile *This,
 1835        IWMMutualExclusion **ppME);
 1836
 1837    END_INTERFACE
 1838} IWMProfileVtbl;
 1839
 1840interface IWMProfile {
 1841    CONST_VTBL IWMProfileVtbl* lpVtbl;
 1842};
 1843
 1844#ifdef COBJMACROS
 1845#ifndef WIDL_C_INLINE_WRAPPERS
 1846/*** IUnknown methods ***/
 1847#define IWMProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1848#define IWMProfile_AddRef(This) (This)->lpVtbl->AddRef(This)
 1849#define IWMProfile_Release(This) (This)->lpVtbl->Release(This)
 1850/*** IWMProfile methods ***/
 1851#define IWMProfile_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion)
 1852#define IWMProfile_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName)
 1853#define IWMProfile_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName)
 1854#define IWMProfile_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription)
 1855#define IWMProfile_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription)
 1856#define IWMProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams)
 1857#define IWMProfile_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig)
 1858#define IWMProfile_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig)
 1859#define IWMProfile_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig)
 1860#define IWMProfile_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum)
 1861#define IWMProfile_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig)
 1862#define IWMProfile_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig)
 1863#define IWMProfile_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig)
 1864#define IWMProfile_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME)
 1865#define IWMProfile_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME)
 1866#define IWMProfile_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME)
 1867#define IWMProfile_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME)
 1868#define IWMProfile_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME)
 1869#else
 1870/*** IUnknown methods ***/
 1871static inline HRESULT IWMProfile_QueryInterface(IWMProfile* This,REFIID riid,void **ppvObject) {
 1872    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1873}
 1874static inline ULONG IWMProfile_AddRef(IWMProfile* This) {
 1875    return This->lpVtbl->AddRef(This);
 1876}
 1877static inline ULONG IWMProfile_Release(IWMProfile* This) {
 1878    return This->lpVtbl->Release(This);
 1879}
 1880/*** IWMProfile methods ***/
 1881static inline HRESULT IWMProfile_GetVersion(IWMProfile* This,WMT_VERSION *pdwVersion) {
 1882    return This->lpVtbl->GetVersion(This,pdwVersion);
 1883}
 1884static inline HRESULT IWMProfile_GetName(IWMProfile* This,WCHAR *pwszName,DWORD *pcchName) {
 1885    return This->lpVtbl->GetName(This,pwszName,pcchName);
 1886}
 1887static inline HRESULT IWMProfile_SetName(IWMProfile* This,const WCHAR *pwszName) {
 1888    return This->lpVtbl->SetName(This,pwszName);
 1889}
 1890static inline HRESULT IWMProfile_GetDescription(IWMProfile* This,WCHAR *pwszDescription,DWORD *pcchDescription) {
 1891    return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription);
 1892}
 1893static inline HRESULT IWMProfile_SetDescription(IWMProfile* This,const WCHAR *pwszDescription) {
 1894    return This->lpVtbl->SetDescription(This,pwszDescription);
 1895}
 1896static inline HRESULT IWMProfile_GetStreamCount(IWMProfile* This,DWORD *pcStreams) {
 1897    return This->lpVtbl->GetStreamCount(This,pcStreams);
 1898}
 1899static inline HRESULT IWMProfile_GetStream(IWMProfile* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) {
 1900    return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig);
 1901}
 1902static inline HRESULT IWMProfile_GetStreamByNumber(IWMProfile* This,WORD wStreamNum,IWMStreamConfig **ppConfig) {
 1903    return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig);
 1904}
 1905static inline HRESULT IWMProfile_RemoveStream(IWMProfile* This,IWMStreamConfig *pConfig) {
 1906    return This->lpVtbl->RemoveStream(This,pConfig);
 1907}
 1908static inline HRESULT IWMProfile_RemoveStreamByNumber(IWMProfile* This,WORD wStreamNum) {
 1909    return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum);
 1910}
 1911static inline HRESULT IWMProfile_AddStream(IWMProfile* This,IWMStreamConfig *pConfig) {
 1912    return This->lpVtbl->AddStream(This,pConfig);
 1913}
 1914static inline HRESULT IWMProfile_ReconfigStream(IWMProfile* This,IWMStreamConfig *pConfig) {
 1915    return This->lpVtbl->ReconfigStream(This,pConfig);
 1916}
 1917static inline HRESULT IWMProfile_CreateNewStream(IWMProfile* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) {
 1918    return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig);
 1919}
 1920static inline HRESULT IWMProfile_GetMutualExclusionCount(IWMProfile* This,DWORD *pcME) {
 1921    return This->lpVtbl->GetMutualExclusionCount(This,pcME);
 1922}
 1923static inline HRESULT IWMProfile_GetMutualExclusion(IWMProfile* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) {
 1924    return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME);
 1925}
 1926static inline HRESULT IWMProfile_RemoveMutualExclusion(IWMProfile* This,IWMMutualExclusion *pME) {
 1927    return This->lpVtbl->RemoveMutualExclusion(This,pME);
 1928}
 1929static inline HRESULT IWMProfile_AddMutualExclusion(IWMProfile* This,IWMMutualExclusion *pME) {
 1930    return This->lpVtbl->AddMutualExclusion(This,pME);
 1931}
 1932static inline HRESULT IWMProfile_CreateNewMutualExclusion(IWMProfile* This,IWMMutualExclusion **ppME) {
 1933    return This->lpVtbl->CreateNewMutualExclusion(This,ppME);
 1934}
 1935#endif
 1936#endif
 1937
 1938#endif
 1939
 1940
 1941#endif  /* __IWMProfile_INTERFACE_DEFINED__ */
 1942
 1943/*****************************************************************************
 1944 * IWMProfile2 interface
 1945 */
 1946#ifndef __IWMProfile2_INTERFACE_DEFINED__
 1947#define __IWMProfile2_INTERFACE_DEFINED__
 1948
 1949DEFINE_GUID(IID_IWMProfile2, 0x07e72d33, 0xd94e, 0x4be7, 0x88,0x43, 0x60,0xae,0x5f,0xf7,0xe5,0xf5);
 1950#if defined(__cplusplus) && !defined(CINTERFACE)
 1951MIDL_INTERFACE("07e72d33-d94e-4be7-8843-60ae5ff7e5f5")
 1952IWMProfile2 : public IWMProfile
 1953{
 1954    virtual HRESULT STDMETHODCALLTYPE GetProfileID(
 1955        GUID *guid) = 0;
 1956
 1957};
 1958#ifdef __CRT_UUID_DECL
 1959__CRT_UUID_DECL(IWMProfile2, 0x07e72d33, 0xd94e, 0x4be7, 0x88,0x43, 0x60,0xae,0x5f,0xf7,0xe5,0xf5)
 1960#endif
 1961#else
 1962typedef struct IWMProfile2Vtbl {
 1963    BEGIN_INTERFACE
 1964
 1965    /*** IUnknown methods ***/
 1966    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1967        IWMProfile2 *This,
 1968        REFIID riid,
 1969        void **ppvObject);
 1970
 1971    ULONG (STDMETHODCALLTYPE *AddRef)(
 1972        IWMProfile2 *This);
 1973
 1974    ULONG (STDMETHODCALLTYPE *Release)(
 1975        IWMProfile2 *This);
 1976
 1977    /*** IWMProfile methods ***/
 1978    HRESULT (STDMETHODCALLTYPE *GetVersion)(
 1979        IWMProfile2 *This,
 1980        WMT_VERSION *pdwVersion);
 1981
 1982    HRESULT (STDMETHODCALLTYPE *GetName)(
 1983        IWMProfile2 *This,
 1984        WCHAR *pwszName,
 1985        DWORD *pcchName);
 1986
 1987    HRESULT (STDMETHODCALLTYPE *SetName)(
 1988        IWMProfile2 *This,
 1989        const WCHAR *pwszName);
 1990
 1991    HRESULT (STDMETHODCALLTYPE *GetDescription)(
 1992        IWMProfile2 *This,
 1993        WCHAR *pwszDescription,
 1994        DWORD *pcchDescription);
 1995
 1996    HRESULT (STDMETHODCALLTYPE *SetDescription)(
 1997        IWMProfile2 *This,
 1998        const WCHAR *pwszDescription);
 1999
 2000    HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
 2001        IWMProfile2 *This,
 2002        DWORD *pcStreams);
 2003
 2004    HRESULT (STDMETHODCALLTYPE *GetStream)(
 2005        IWMProfile2 *This,
 2006        DWORD dwStreamIndex,
 2007        IWMStreamConfig **ppConfig);
 2008
 2009    HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)(
 2010        IWMProfile2 *This,
 2011        WORD wStreamNum,
 2012        IWMStreamConfig **ppConfig);
 2013
 2014    HRESULT (STDMETHODCALLTYPE *RemoveStream)(
 2015        IWMProfile2 *This,
 2016        IWMStreamConfig *pConfig);
 2017
 2018    HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)(
 2019        IWMProfile2 *This,
 2020        WORD wStreamNum);
 2021
 2022    HRESULT (STDMETHODCALLTYPE *AddStream)(
 2023        IWMProfile2 *This,
 2024        IWMStreamConfig *pConfig);
 2025
 2026    HRESULT (STDMETHODCALLTYPE *ReconfigStream)(
 2027        IWMProfile2 *This,
 2028        IWMStreamConfig *pConfig);
 2029
 2030    HRESULT (STDMETHODCALLTYPE *CreateNewStream)(
 2031        IWMProfile2 *This,
 2032        REFGUID guidStreamType,
 2033        IWMStreamConfig **ppConfig);
 2034
 2035    HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)(
 2036        IWMProfile2 *This,
 2037        DWORD *pcME);
 2038
 2039    HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)(
 2040        IWMProfile2 *This,
 2041        DWORD dwMEIndex,
 2042        IWMMutualExclusion **ppME);
 2043
 2044    HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)(
 2045        IWMProfile2 *This,
 2046        IWMMutualExclusion *pME);
 2047
 2048    HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)(
 2049        IWMProfile2 *This,
 2050        IWMMutualExclusion *pME);
 2051
 2052    HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)(
 2053        IWMProfile2 *This,
 2054        IWMMutualExclusion **ppME);
 2055
 2056    /*** IWMProfile2 methods ***/
 2057    HRESULT (STDMETHODCALLTYPE *GetProfileID)(
 2058        IWMProfile2 *This,
 2059        GUID *guid);
 2060
 2061    END_INTERFACE
 2062} IWMProfile2Vtbl;
 2063
 2064interface IWMProfile2 {
 2065    CONST_VTBL IWMProfile2Vtbl* lpVtbl;
 2066};
 2067
 2068#ifdef COBJMACROS
 2069#ifndef WIDL_C_INLINE_WRAPPERS
 2070/*** IUnknown methods ***/
 2071#define IWMProfile2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2072#define IWMProfile2_AddRef(This) (This)->lpVtbl->AddRef(This)
 2073#define IWMProfile2_Release(This) (This)->lpVtbl->Release(This)
 2074/*** IWMProfile methods ***/
 2075#define IWMProfile2_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion)
 2076#define IWMProfile2_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName)
 2077#define IWMProfile2_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName)
 2078#define IWMProfile2_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription)
 2079#define IWMProfile2_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription)
 2080#define IWMProfile2_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams)
 2081#define IWMProfile2_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig)
 2082#define IWMProfile2_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig)
 2083#define IWMProfile2_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig)
 2084#define IWMProfile2_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum)
 2085#define IWMProfile2_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig)
 2086#define IWMProfile2_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig)
 2087#define IWMProfile2_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig)
 2088#define IWMProfile2_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME)
 2089#define IWMProfile2_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME)
 2090#define IWMProfile2_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME)
 2091#define IWMProfile2_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME)
 2092#define IWMProfile2_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME)
 2093/*** IWMProfile2 methods ***/
 2094#define IWMProfile2_GetProfileID(This,guid) (This)->lpVtbl->GetProfileID(This,guid)
 2095#else
 2096/*** IUnknown methods ***/
 2097static inline HRESULT IWMProfile2_QueryInterface(IWMProfile2* This,REFIID riid,void **ppvObject) {
 2098    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2099}
 2100static inline ULONG IWMProfile2_AddRef(IWMProfile2* This) {
 2101    return This->lpVtbl->AddRef(This);
 2102}
 2103static inline ULONG IWMProfile2_Release(IWMProfile2* This) {
 2104    return This->lpVtbl->Release(This);
 2105}
 2106/*** IWMProfile methods ***/
 2107static inline HRESULT IWMProfile2_GetVersion(IWMProfile2* This,WMT_VERSION *pdwVersion) {
 2108    return This->lpVtbl->GetVersion(This,pdwVersion);
 2109}
 2110static inline HRESULT IWMProfile2_GetName(IWMProfile2* This,WCHAR *pwszName,DWORD *pcchName) {
 2111    return This->lpVtbl->GetName(This,pwszName,pcchName);
 2112}
 2113static inline HRESULT IWMProfile2_SetName(IWMProfile2* This,const WCHAR *pwszName) {
 2114    return This->lpVtbl->SetName(This,pwszName);
 2115}
 2116static inline HRESULT IWMProfile2_GetDescription(IWMProfile2* This,WCHAR *pwszDescription,DWORD *pcchDescription) {
 2117    return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription);
 2118}
 2119static inline HRESULT IWMProfile2_SetDescription(IWMProfile2* This,const WCHAR *pwszDescription) {
 2120    return This->lpVtbl->SetDescription(This,pwszDescription);
 2121}
 2122static inline HRESULT IWMProfile2_GetStreamCount(IWMProfile2* This,DWORD *pcStreams) {
 2123    return This->lpVtbl->GetStreamCount(This,pcStreams);
 2124}
 2125static inline HRESULT IWMProfile2_GetStream(IWMProfile2* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) {
 2126    return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig);
 2127}
 2128static inline HRESULT IWMProfile2_GetStreamByNumber(IWMProfile2* This,WORD wStreamNum,IWMStreamConfig **ppConfig) {
 2129    return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig);
 2130}
 2131static inline HRESULT IWMProfile2_RemoveStream(IWMProfile2* This,IWMStreamConfig *pConfig) {
 2132    return This->lpVtbl->RemoveStream(This,pConfig);
 2133}
 2134static inline HRESULT IWMProfile2_RemoveStreamByNumber(IWMProfile2* This,WORD wStreamNum) {
 2135    return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum);
 2136}
 2137static inline HRESULT IWMProfile2_AddStream(IWMProfile2* This,IWMStreamConfig *pConfig) {
 2138    return This->lpVtbl->AddStream(This,pConfig);
 2139}
 2140static inline HRESULT IWMProfile2_ReconfigStream(IWMProfile2* This,IWMStreamConfig *pConfig) {
 2141    return This->lpVtbl->ReconfigStream(This,pConfig);
 2142}
 2143static inline HRESULT IWMProfile2_CreateNewStream(IWMProfile2* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) {
 2144    return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig);
 2145}
 2146static inline HRESULT IWMProfile2_GetMutualExclusionCount(IWMProfile2* This,DWORD *pcME) {
 2147    return This->lpVtbl->GetMutualExclusionCount(This,pcME);
 2148}
 2149static inline HRESULT IWMProfile2_GetMutualExclusion(IWMProfile2* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) {
 2150    return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME);
 2151}
 2152static inline HRESULT IWMProfile2_RemoveMutualExclusion(IWMProfile2* This,IWMMutualExclusion *pME) {
 2153    return This->lpVtbl->RemoveMutualExclusion(This,pME);
 2154}
 2155static inline HRESULT IWMProfile2_AddMutualExclusion(IWMProfile2* This,IWMMutualExclusion *pME) {
 2156    return This->lpVtbl->AddMutualExclusion(This,pME);
 2157}
 2158static inline HRESULT IWMProfile2_CreateNewMutualExclusion(IWMProfile2* This,IWMMutualExclusion **ppME) {
 2159    return This->lpVtbl->CreateNewMutualExclusion(This,ppME);
 2160}
 2161/*** IWMProfile2 methods ***/
 2162static inline HRESULT IWMProfile2_GetProfileID(IWMProfile2* This,GUID *guid) {
 2163    return This->lpVtbl->GetProfileID(This,guid);
 2164}
 2165#endif
 2166#endif
 2167
 2168#endif
 2169
 2170
 2171#endif  /* __IWMProfile2_INTERFACE_DEFINED__ */
 2172
 2173/*****************************************************************************
 2174 * IWMProfile3 interface
 2175 */
 2176#ifndef __IWMProfile3_INTERFACE_DEFINED__
 2177#define __IWMProfile3_INTERFACE_DEFINED__
 2178
 2179DEFINE_GUID(IID_IWMProfile3, 0x00ef96cc, 0xa461, 0x4546, 0x8b,0xcd, 0xc9,0xa2,0x8f,0x0e,0x06,0xf5);
 2180#if defined(__cplusplus) && !defined(CINTERFACE)
 2181MIDL_INTERFACE("00ef96cc-a461-4546-8bcd-c9a28f0e06f5")
 2182IWMProfile3 : public IWMProfile2
 2183{
 2184    virtual HRESULT STDMETHODCALLTYPE GetStorageFormat(
 2185        WMT_STORAGE_FORMAT *storage) = 0;
 2186
 2187    virtual HRESULT STDMETHODCALLTYPE SetStorageFormat(
 2188        WMT_STORAGE_FORMAT storage) = 0;
 2189
 2190    virtual HRESULT STDMETHODCALLTYPE GetBandwidthSharingCount(
 2191        DWORD *count) = 0;
 2192
 2193    virtual HRESULT STDMETHODCALLTYPE GetBandwidthSharing(
 2194        DWORD index,
 2195        IWMBandwidthSharing **bandwidth) = 0;
 2196
 2197    virtual HRESULT STDMETHODCALLTYPE RemoveBandwidthSharing(
 2198        IWMBandwidthSharing *bandwidth) = 0;
 2199
 2200    virtual HRESULT STDMETHODCALLTYPE AddBandwidthSharing(
 2201        IWMBandwidthSharing *bandwidth) = 0;
 2202
 2203    virtual HRESULT STDMETHODCALLTYPE CreateNewBandwidthSharing(
 2204        IWMBandwidthSharing **bandwidth) = 0;
 2205
 2206    virtual HRESULT STDMETHODCALLTYPE GetStreamPrioritization(
 2207        IWMStreamPrioritization **stream) = 0;
 2208
 2209    virtual HRESULT STDMETHODCALLTYPE SetStreamPrioritization(
 2210        IWMStreamPrioritization *stream) = 0;
 2211
 2212    virtual HRESULT STDMETHODCALLTYPE RemoveStreamPrioritization(
 2213        ) = 0;
 2214
 2215    virtual HRESULT STDMETHODCALLTYPE CreateNewStreamPrioritization(
 2216        IWMStreamPrioritization **stream) = 0;
 2217
 2218    virtual HRESULT STDMETHODCALLTYPE GetExpectedPacketCount(
 2219        QWORD duration,
 2220        QWORD *packets) = 0;
 2221
 2222};
 2223#ifdef __CRT_UUID_DECL
 2224__CRT_UUID_DECL(IWMProfile3, 0x00ef96cc, 0xa461, 0x4546, 0x8b,0xcd, 0xc9,0xa2,0x8f,0x0e,0x06,0xf5)
 2225#endif
 2226#else
 2227typedef struct IWMProfile3Vtbl {
 2228    BEGIN_INTERFACE
 2229
 2230    /*** IUnknown methods ***/
 2231    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2232        IWMProfile3 *This,
 2233        REFIID riid,
 2234        void **ppvObject);
 2235
 2236    ULONG (STDMETHODCALLTYPE *AddRef)(
 2237        IWMProfile3 *This);
 2238
 2239    ULONG (STDMETHODCALLTYPE *Release)(
 2240        IWMProfile3 *This);
 2241
 2242    /*** IWMProfile methods ***/
 2243    HRESULT (STDMETHODCALLTYPE *GetVersion)(
 2244        IWMProfile3 *This,
 2245        WMT_VERSION *pdwVersion);
 2246
 2247    HRESULT (STDMETHODCALLTYPE *GetName)(
 2248        IWMProfile3 *This,
 2249        WCHAR *pwszName,
 2250        DWORD *pcchName);
 2251
 2252    HRESULT (STDMETHODCALLTYPE *SetName)(
 2253        IWMProfile3 *This,
 2254        const WCHAR *pwszName);
 2255
 2256    HRESULT (STDMETHODCALLTYPE *GetDescription)(
 2257        IWMProfile3 *This,
 2258        WCHAR *pwszDescription,
 2259        DWORD *pcchDescription);
 2260
 2261    HRESULT (STDMETHODCALLTYPE *SetDescription)(
 2262        IWMProfile3 *This,
 2263        const WCHAR *pwszDescription);
 2264
 2265    HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
 2266        IWMProfile3 *This,
 2267        DWORD *pcStreams);
 2268
 2269    HRESULT (STDMETHODCALLTYPE *GetStream)(
 2270        IWMProfile3 *This,
 2271        DWORD dwStreamIndex,
 2272        IWMStreamConfig **ppConfig);
 2273
 2274    HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)(
 2275        IWMProfile3 *This,
 2276        WORD wStreamNum,
 2277        IWMStreamConfig **ppConfig);
 2278
 2279    HRESULT (STDMETHODCALLTYPE *RemoveStream)(
 2280        IWMProfile3 *This,
 2281        IWMStreamConfig *pConfig);
 2282
 2283    HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)(
 2284        IWMProfile3 *This,
 2285        WORD wStreamNum);
 2286
 2287    HRESULT (STDMETHODCALLTYPE *AddStream)(
 2288        IWMProfile3 *This,
 2289        IWMStreamConfig *pConfig);
 2290
 2291    HRESULT (STDMETHODCALLTYPE *ReconfigStream)(
 2292        IWMProfile3 *This,
 2293        IWMStreamConfig *pConfig);
 2294
 2295    HRESULT (STDMETHODCALLTYPE *CreateNewStream)(
 2296        IWMProfile3 *This,
 2297        REFGUID guidStreamType,
 2298        IWMStreamConfig **ppConfig);
 2299
 2300    HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)(
 2301        IWMProfile3 *This,
 2302        DWORD *pcME);
 2303
 2304    HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)(
 2305        IWMProfile3 *This,
 2306        DWORD dwMEIndex,
 2307        IWMMutualExclusion **ppME);
 2308
 2309    HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)(
 2310        IWMProfile3 *This,
 2311        IWMMutualExclusion *pME);
 2312
 2313    HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)(
 2314        IWMProfile3 *This,
 2315        IWMMutualExclusion *pME);
 2316
 2317    HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)(
 2318        IWMProfile3 *This,
 2319        IWMMutualExclusion **ppME);
 2320
 2321    /*** IWMProfile2 methods ***/
 2322    HRESULT (STDMETHODCALLTYPE *GetProfileID)(
 2323        IWMProfile3 *This,
 2324        GUID *guid);
 2325
 2326    /*** IWMProfile3 methods ***/
 2327    HRESULT (STDMETHODCALLTYPE *GetStorageFormat)(
 2328        IWMProfile3 *This,
 2329        WMT_STORAGE_FORMAT *storage);
 2330
 2331    HRESULT (STDMETHODCALLTYPE *SetStorageFormat)(
 2332        IWMProfile3 *This,
 2333        WMT_STORAGE_FORMAT storage);
 2334
 2335    HRESULT (STDMETHODCALLTYPE *GetBandwidthSharingCount)(
 2336        IWMProfile3 *This,
 2337        DWORD *count);
 2338
 2339    HRESULT (STDMETHODCALLTYPE *GetBandwidthSharing)(
 2340        IWMProfile3 *This,
 2341        DWORD index,
 2342        IWMBandwidthSharing **bandwidth);
 2343
 2344    HRESULT (STDMETHODCALLTYPE *RemoveBandwidthSharing)(
 2345        IWMProfile3 *This,
 2346        IWMBandwidthSharing *bandwidth);
 2347
 2348    HRESULT (STDMETHODCALLTYPE *AddBandwidthSharing)(
 2349        IWMProfile3 *This,
 2350        IWMBandwidthSharing *bandwidth);
 2351
 2352    HRESULT (STDMETHODCALLTYPE *CreateNewBandwidthSharing)(
 2353        IWMProfile3 *This,
 2354        IWMBandwidthSharing **bandwidth);
 2355
 2356    HRESULT (STDMETHODCALLTYPE *GetStreamPrioritization)(
 2357        IWMProfile3 *This,
 2358        IWMStreamPrioritization **stream);
 2359
 2360    HRESULT (STDMETHODCALLTYPE *SetStreamPrioritization)(
 2361        IWMProfile3 *This,
 2362        IWMStreamPrioritization *stream);
 2363
 2364    HRESULT (STDMETHODCALLTYPE *RemoveStreamPrioritization)(
 2365        IWMProfile3 *This);
 2366
 2367    HRESULT (STDMETHODCALLTYPE *CreateNewStreamPrioritization)(
 2368        IWMProfile3 *This,
 2369        IWMStreamPrioritization **stream);
 2370
 2371    HRESULT (STDMETHODCALLTYPE *GetExpectedPacketCount)(
 2372        IWMProfile3 *This,
 2373        QWORD duration,
 2374        QWORD *packets);
 2375
 2376    END_INTERFACE
 2377} IWMProfile3Vtbl;
 2378
 2379interface IWMProfile3 {
 2380    CONST_VTBL IWMProfile3Vtbl* lpVtbl;
 2381};
 2382
 2383#ifdef COBJMACROS
 2384#ifndef WIDL_C_INLINE_WRAPPERS
 2385/*** IUnknown methods ***/
 2386#define IWMProfile3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2387#define IWMProfile3_AddRef(This) (This)->lpVtbl->AddRef(This)
 2388#define IWMProfile3_Release(This) (This)->lpVtbl->Release(This)
 2389/*** IWMProfile methods ***/
 2390#define IWMProfile3_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion)
 2391#define IWMProfile3_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName)
 2392#define IWMProfile3_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName)
 2393#define IWMProfile3_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription)
 2394#define IWMProfile3_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription)
 2395#define IWMProfile3_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams)
 2396#define IWMProfile3_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig)
 2397#define IWMProfile3_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig)
 2398#define IWMProfile3_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig)
 2399#define IWMProfile3_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum)
 2400#define IWMProfile3_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig)
 2401#define IWMProfile3_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig)
 2402#define IWMProfile3_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig)
 2403#define IWMProfile3_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME)
 2404#define IWMProfile3_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME)
 2405#define IWMProfile3_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME)
 2406#define IWMProfile3_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME)
 2407#define IWMProfile3_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME)
 2408/*** IWMProfile2 methods ***/
 2409#define IWMProfile3_GetProfileID(This,guid) (This)->lpVtbl->GetProfileID(This,guid)
 2410/*** IWMProfile3 methods ***/
 2411#define IWMProfile3_GetStorageFormat(This,storage) (This)->lpVtbl->GetStorageFormat(This,storage)
 2412#define IWMProfile3_SetStorageFormat(This,storage) (This)->lpVtbl->SetStorageFormat(This,storage)
 2413#define IWMProfile3_GetBandwidthSharingCount(This,count) (This)->lpVtbl->GetBandwidthSharingCount(This,count)
 2414#define IWMProfile3_GetBandwidthSharing(This,index,bandwidth) (This)->lpVtbl->GetBandwidthSharing(This,index,bandwidth)
 2415#define IWMProfile3_RemoveBandwidthSharing(This,bandwidth) (This)->lpVtbl->RemoveBandwidthSharing(This,bandwidth)
 2416#define IWMProfile3_AddBandwidthSharing(This,bandwidth) (This)->lpVtbl->AddBandwidthSharing(This,bandwidth)
 2417#define IWMProfile3_CreateNewBandwidthSharing(This,bandwidth) (This)->lpVtbl->CreateNewBandwidthSharing(This,bandwidth)
 2418#define IWMProfile3_GetStreamPrioritization(This,stream) (This)->lpVtbl->GetStreamPrioritization(This,stream)
 2419#define IWMProfile3_SetStreamPrioritization(This,stream) (This)->lpVtbl->SetStreamPrioritization(This,stream)
 2420#define IWMProfile3_RemoveStreamPrioritization(This) (This)->lpVtbl->RemoveStreamPrioritization(This)
 2421#define IWMProfile3_CreateNewStreamPrioritization(This,stream) (This)->lpVtbl->CreateNewStreamPrioritization(This,stream)
 2422#define IWMProfile3_GetExpectedPacketCount(This,duration,packets) (This)->lpVtbl->GetExpectedPacketCount(This,duration,packets)
 2423#else
 2424/*** IUnknown methods ***/
 2425static inline HRESULT IWMProfile3_QueryInterface(IWMProfile3* This,REFIID riid,void **ppvObject) {
 2426    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2427}
 2428static inline ULONG IWMProfile3_AddRef(IWMProfile3* This) {
 2429    return This->lpVtbl->AddRef(This);
 2430}
 2431static inline ULONG IWMProfile3_Release(IWMProfile3* This) {
 2432    return This->lpVtbl->Release(This);
 2433}
 2434/*** IWMProfile methods ***/
 2435static inline HRESULT IWMProfile3_GetVersion(IWMProfile3* This,WMT_VERSION *pdwVersion) {
 2436    return This->lpVtbl->GetVersion(This,pdwVersion);
 2437}
 2438static inline HRESULT IWMProfile3_GetName(IWMProfile3* This,WCHAR *pwszName,DWORD *pcchName) {
 2439    return This->lpVtbl->GetName(This,pwszName,pcchName);
 2440}
 2441static inline HRESULT IWMProfile3_SetName(IWMProfile3* This,const WCHAR *pwszName) {
 2442    return This->lpVtbl->SetName(This,pwszName);
 2443}
 2444static inline HRESULT IWMProfile3_GetDescription(IWMProfile3* This,WCHAR *pwszDescription,DWORD *pcchDescription) {
 2445    return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription);
 2446}
 2447static inline HRESULT IWMProfile3_SetDescription(IWMProfile3* This,const WCHAR *pwszDescription) {
 2448    return This->lpVtbl->SetDescription(This,pwszDescription);
 2449}
 2450static inline HRESULT IWMProfile3_GetStreamCount(IWMProfile3* This,DWORD *pcStreams) {
 2451    return This->lpVtbl->GetStreamCount(This,pcStreams);
 2452}
 2453static inline HRESULT IWMProfile3_GetStream(IWMProfile3* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) {
 2454    return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig);
 2455}
 2456static inline HRESULT IWMProfile3_GetStreamByNumber(IWMProfile3* This,WORD wStreamNum,IWMStreamConfig **ppConfig) {
 2457    return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig);
 2458}
 2459static inline HRESULT IWMProfile3_RemoveStream(IWMProfile3* This,IWMStreamConfig *pConfig) {
 2460    return This->lpVtbl->RemoveStream(This,pConfig);
 2461}
 2462static inline HRESULT IWMProfile3_RemoveStreamByNumber(IWMProfile3* This,WORD wStreamNum) {
 2463    return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum);
 2464}
 2465static inline HRESULT IWMProfile3_AddStream(IWMProfile3* This,IWMStreamConfig *pConfig) {
 2466    return This->lpVtbl->AddStream(This,pConfig);
 2467}
 2468static inline HRESULT IWMProfile3_ReconfigStream(IWMProfile3* This,IWMStreamConfig *pConfig) {
 2469    return This->lpVtbl->ReconfigStream(This,pConfig);
 2470}
 2471static inline HRESULT IWMProfile3_CreateNewStream(IWMProfile3* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) {
 2472    return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig);
 2473}
 2474static inline HRESULT IWMProfile3_GetMutualExclusionCount(IWMProfile3* This,DWORD *pcME) {
 2475    return This->lpVtbl->GetMutualExclusionCount(This,pcME);
 2476}
 2477static inline HRESULT IWMProfile3_GetMutualExclusion(IWMProfile3* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) {
 2478    return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME);
 2479}
 2480static inline HRESULT IWMProfile3_RemoveMutualExclusion(IWMProfile3* This,IWMMutualExclusion *pME) {
 2481    return This->lpVtbl->RemoveMutualExclusion(This,pME);
 2482}
 2483static inline HRESULT IWMProfile3_AddMutualExclusion(IWMProfile3* This,IWMMutualExclusion *pME) {
 2484    return This->lpVtbl->AddMutualExclusion(This,pME);
 2485}
 2486static inline HRESULT IWMProfile3_CreateNewMutualExclusion(IWMProfile3* This,IWMMutualExclusion **ppME) {
 2487    return This->lpVtbl->CreateNewMutualExclusion(This,ppME);
 2488}
 2489/*** IWMProfile2 methods ***/
 2490static inline HRESULT IWMProfile3_GetProfileID(IWMProfile3* This,GUID *guid) {
 2491    return This->lpVtbl->GetProfileID(This,guid);
 2492}
 2493/*** IWMProfile3 methods ***/
 2494static inline HRESULT IWMProfile3_GetStorageFormat(IWMProfile3* This,WMT_STORAGE_FORMAT *storage) {
 2495    return This->lpVtbl->GetStorageFormat(This,storage);
 2496}
 2497static inline HRESULT IWMProfile3_SetStorageFormat(IWMProfile3* This,WMT_STORAGE_FORMAT storage) {
 2498    return This->lpVtbl->SetStorageFormat(This,storage);
 2499}
 2500static inline HRESULT IWMProfile3_GetBandwidthSharingCount(IWMProfile3* This,DWORD *count) {
 2501    return This->lpVtbl->GetBandwidthSharingCount(This,count);
 2502}
 2503static inline HRESULT IWMProfile3_GetBandwidthSharing(IWMProfile3* This,DWORD index,IWMBandwidthSharing **bandwidth) {
 2504    return This->lpVtbl->GetBandwidthSharing(This,index,bandwidth);
 2505}
 2506static inline HRESULT IWMProfile3_RemoveBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing *bandwidth) {
 2507    return This->lpVtbl->RemoveBandwidthSharing(This,bandwidth);
 2508}
 2509static inline HRESULT IWMProfile3_AddBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing *bandwidth) {
 2510    return This->lpVtbl->AddBandwidthSharing(This,bandwidth);
 2511}
 2512static inline HRESULT IWMProfile3_CreateNewBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing **bandwidth) {
 2513    return This->lpVtbl->CreateNewBandwidthSharing(This,bandwidth);
 2514}
 2515static inline HRESULT IWMProfile3_GetStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization **stream) {
 2516    return This->lpVtbl->GetStreamPrioritization(This,stream);
 2517}
 2518static inline HRESULT IWMProfile3_SetStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization *stream) {
 2519    return This->lpVtbl->SetStreamPrioritization(This,stream);
 2520}
 2521static inline HRESULT IWMProfile3_RemoveStreamPrioritization(IWMProfile3* This) {
 2522    return This->lpVtbl->RemoveStreamPrioritization(This);
 2523}
 2524static inline HRESULT IWMProfile3_CreateNewStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization **stream) {
 2525    return This->lpVtbl->CreateNewStreamPrioritization(This,stream);
 2526}
 2527static inline HRESULT IWMProfile3_GetExpectedPacketCount(IWMProfile3* This,QWORD duration,QWORD *packets) {
 2528    return This->lpVtbl->GetExpectedPacketCount(This,duration,packets);
 2529}
 2530#endif
 2531#endif
 2532
 2533#endif
 2534
 2535
 2536#endif  /* __IWMProfile3_INTERFACE_DEFINED__ */
 2537
 2538/*****************************************************************************
 2539 * IWMProfileManager interface
 2540 */
 2541#ifndef __IWMProfileManager_INTERFACE_DEFINED__
 2542#define __IWMProfileManager_INTERFACE_DEFINED__
 2543
 2544DEFINE_GUID(IID_IWMProfileManager, 0xd16679f2, 0x6ca0, 0x472d, 0x8d,0x31, 0x2f,0x5d,0x55,0xae,0xe1,0x55);
 2545#if defined(__cplusplus) && !defined(CINTERFACE)
 2546MIDL_INTERFACE("d16679f2-6ca0-472d-8d31-2f5d55aee155")
 2547IWMProfileManager : public IUnknown
 2548{
 2549    virtual HRESULT STDMETHODCALLTYPE CreateEmptyProfile(
 2550        WMT_VERSION dwVersion,
 2551        IWMProfile **ppProfile) = 0;
 2552
 2553    virtual HRESULT STDMETHODCALLTYPE LoadProfileByID(
 2554        REFGUID guidProfile,
 2555        IWMProfile **ppProfile) = 0;
 2556
 2557    virtual HRESULT STDMETHODCALLTYPE LoadProfileByData(
 2558        const WCHAR *pwszProfile,
 2559        IWMProfile **ppProfile) = 0;
 2560
 2561    virtual HRESULT STDMETHODCALLTYPE SaveProfile(
 2562        IWMProfile *pIWMProfile,
 2563        WCHAR *pwszProfile,
 2564        DWORD *pdwLength) = 0;
 2565
 2566    virtual HRESULT STDMETHODCALLTYPE GetSystemProfileCount(
 2567        DWORD *pcProfiles) = 0;
 2568
 2569    virtual HRESULT STDMETHODCALLTYPE LoadSystemProfile(
 2570        DWORD dwProfileIndex,
 2571        IWMProfile **ppProfile) = 0;
 2572
 2573};
 2574#ifdef __CRT_UUID_DECL
 2575__CRT_UUID_DECL(IWMProfileManager, 0xd16679f2, 0x6ca0, 0x472d, 0x8d,0x31, 0x2f,0x5d,0x55,0xae,0xe1,0x55)
 2576#endif
 2577#else
 2578typedef struct IWMProfileManagerVtbl {
 2579    BEGIN_INTERFACE
 2580
 2581    /*** IUnknown methods ***/
 2582    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2583        IWMProfileManager *This,
 2584        REFIID riid,
 2585        void **ppvObject);
 2586
 2587    ULONG (STDMETHODCALLTYPE *AddRef)(
 2588        IWMProfileManager *This);
 2589
 2590    ULONG (STDMETHODCALLTYPE *Release)(
 2591        IWMProfileManager *This);
 2592
 2593    /*** IWMProfileManager methods ***/
 2594    HRESULT (STDMETHODCALLTYPE *CreateEmptyProfile)(
 2595        IWMProfileManager *This,
 2596        WMT_VERSION dwVersion,
 2597        IWMProfile **ppProfile);
 2598
 2599    HRESULT (STDMETHODCALLTYPE *LoadProfileByID)(
 2600        IWMProfileManager *This,
 2601        REFGUID guidProfile,
 2602        IWMProfile **ppProfile);
 2603
 2604    HRESULT (STDMETHODCALLTYPE *LoadProfileByData)(
 2605        IWMProfileManager *This,
 2606        const WCHAR *pwszProfile,
 2607        IWMProfile **ppProfile);
 2608
 2609    HRESULT (STDMETHODCALLTYPE *SaveProfile)(
 2610        IWMProfileManager *This,
 2611        IWMProfile *pIWMProfile,
 2612        WCHAR *pwszProfile,
 2613        DWORD *pdwLength);
 2614
 2615    HRESULT (STDMETHODCALLTYPE *GetSystemProfileCount)(
 2616        IWMProfileManager *This,
 2617        DWORD *pcProfiles);
 2618
 2619    HRESULT (STDMETHODCALLTYPE *LoadSystemProfile)(
 2620        IWMProfileManager *This,
 2621        DWORD dwProfileIndex,
 2622        IWMProfile **ppProfile);
 2623
 2624    END_INTERFACE
 2625} IWMProfileManagerVtbl;
 2626
 2627interface IWMProfileManager {
 2628    CONST_VTBL IWMProfileManagerVtbl* lpVtbl;
 2629};
 2630
 2631#ifdef COBJMACROS
 2632#ifndef WIDL_C_INLINE_WRAPPERS
 2633/*** IUnknown methods ***/
 2634#define IWMProfileManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2635#define IWMProfileManager_AddRef(This) (This)->lpVtbl->AddRef(This)
 2636#define IWMProfileManager_Release(This) (This)->lpVtbl->Release(This)
 2637/*** IWMProfileManager methods ***/
 2638#define IWMProfileManager_CreateEmptyProfile(This,dwVersion,ppProfile) (This)->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile)
 2639#define IWMProfileManager_LoadProfileByID(This,guidProfile,ppProfile) (This)->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile)
 2640#define IWMProfileManager_LoadProfileByData(This,pwszProfile,ppProfile) (This)->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile)
 2641#define IWMProfileManager_SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) (This)->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength)
 2642#define IWMProfileManager_GetSystemProfileCount(This,pcProfiles) (This)->lpVtbl->GetSystemProfileCount(This,pcProfiles)
 2643#define IWMProfileManager_LoadSystemProfile(This,dwProfileIndex,ppProfile) (This)->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile)
 2644#else
 2645/*** IUnknown methods ***/
 2646static inline HRESULT IWMProfileManager_QueryInterface(IWMProfileManager* This,REFIID riid,void **ppvObject) {
 2647    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2648}
 2649static inline ULONG IWMProfileManager_AddRef(IWMProfileManager* This) {
 2650    return This->lpVtbl->AddRef(This);
 2651}
 2652static inline ULONG IWMProfileManager_Release(IWMProfileManager* This) {
 2653    return This->lpVtbl->Release(This);
 2654}
 2655/*** IWMProfileManager methods ***/
 2656static inline HRESULT IWMProfileManager_CreateEmptyProfile(IWMProfileManager* This,WMT_VERSION dwVersion,IWMProfile **ppProfile) {
 2657    return This->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile);
 2658}
 2659static inline HRESULT IWMProfileManager_LoadProfileByID(IWMProfileManager* This,REFGUID guidProfile,IWMProfile **ppProfile) {
 2660    return This->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile);
 2661}
 2662static inline HRESULT IWMProfileManager_LoadProfileByData(IWMProfileManager* This,const WCHAR *pwszProfile,IWMProfile **ppProfile) {
 2663    return This->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile);
 2664}
 2665static inline HRESULT IWMProfileManager_SaveProfile(IWMProfileManager* This,IWMProfile *pIWMProfile,WCHAR *pwszProfile,DWORD *pdwLength) {
 2666    return This->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength);
 2667}
 2668static inline HRESULT IWMProfileManager_GetSystemProfileCount(IWMProfileManager* This,DWORD *pcProfiles) {
 2669    return This->lpVtbl->GetSystemProfileCount(This,pcProfiles);
 2670}
 2671static inline HRESULT IWMProfileManager_LoadSystemProfile(IWMProfileManager* This,DWORD dwProfileIndex,IWMProfile **ppProfile) {
 2672    return This->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile);
 2673}
 2674#endif
 2675#endif
 2676
 2677#endif
 2678
 2679
 2680#endif  /* __IWMProfileManager_INTERFACE_DEFINED__ */
 2681
 2682/*****************************************************************************
 2683 * IWMProfileManager2 interface
 2684 */
 2685#ifndef __IWMProfileManager2_INTERFACE_DEFINED__
 2686#define __IWMProfileManager2_INTERFACE_DEFINED__
 2687
 2688DEFINE_GUID(IID_IWMProfileManager2, 0x7a924e51, 0x73c1, 0x494d, 0x80,0x19, 0x23,0xd3,0x7e,0xd9,0xb8,0x9a);
 2689#if defined(__cplusplus) && !defined(CINTERFACE)
 2690MIDL_INTERFACE("7a924e51-73c1-494d-8019-23d37ed9b89a")
 2691IWMProfileManager2 : public IWMProfileManager
 2692{
 2693    virtual HRESULT STDMETHODCALLTYPE GetSystemProfileVersion(
 2694        WMT_VERSION *version) = 0;
 2695
 2696    virtual HRESULT STDMETHODCALLTYPE SetSystemProfileVersion(
 2697        WMT_VERSION version) = 0;
 2698
 2699};
 2700#ifdef __CRT_UUID_DECL
 2701__CRT_UUID_DECL(IWMProfileManager2, 0x7a924e51, 0x73c1, 0x494d, 0x80,0x19, 0x23,0xd3,0x7e,0xd9,0xb8,0x9a)
 2702#endif
 2703#else
 2704typedef struct IWMProfileManager2Vtbl {
 2705    BEGIN_INTERFACE
 2706
 2707    /*** IUnknown methods ***/
 2708    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2709        IWMProfileManager2 *This,
 2710        REFIID riid,
 2711        void **ppvObject);
 2712
 2713    ULONG (STDMETHODCALLTYPE *AddRef)(
 2714        IWMProfileManager2 *This);
 2715
 2716    ULONG (STDMETHODCALLTYPE *Release)(
 2717        IWMProfileManager2 *This);
 2718
 2719    /*** IWMProfileManager methods ***/
 2720    HRESULT (STDMETHODCALLTYPE *CreateEmptyProfile)(
 2721        IWMProfileManager2 *This,
 2722        WMT_VERSION dwVersion,
 2723        IWMProfile **ppProfile);
 2724
 2725    HRESULT (STDMETHODCALLTYPE *LoadProfileByID)(
 2726        IWMProfileManager2 *This,
 2727        REFGUID guidProfile,
 2728        IWMProfile **ppProfile);
 2729
 2730    HRESULT (STDMETHODCALLTYPE *LoadProfileByData)(
 2731        IWMProfileManager2 *This,
 2732        const WCHAR *pwszProfile,
 2733        IWMProfile **ppProfile);
 2734
 2735    HRESULT (STDMETHODCALLTYPE *SaveProfile)(
 2736        IWMProfileManager2 *This,
 2737        IWMProfile *pIWMProfile,
 2738        WCHAR *pwszProfile,
 2739        DWORD *pdwLength);
 2740
 2741    HRESULT (STDMETHODCALLTYPE *GetSystemProfileCount)(
 2742        IWMProfileManager2 *This,
 2743        DWORD *pcProfiles);
 2744
 2745    HRESULT (STDMETHODCALLTYPE *LoadSystemProfile)(
 2746        IWMProfileManager2 *This,
 2747        DWORD dwProfileIndex,
 2748        IWMProfile **ppProfile);
 2749
 2750    /*** IWMProfileManager2 methods ***/
 2751    HRESULT (STDMETHODCALLTYPE *GetSystemProfileVersion)(
 2752        IWMProfileManager2 *This,
 2753        WMT_VERSION *version);
 2754
 2755    HRESULT (STDMETHODCALLTYPE *SetSystemProfileVersion)(
 2756        IWMProfileManager2 *This,
 2757        WMT_VERSION version);
 2758
 2759    END_INTERFACE
 2760} IWMProfileManager2Vtbl;
 2761
 2762interface IWMProfileManager2 {
 2763    CONST_VTBL IWMProfileManager2Vtbl* lpVtbl;
 2764};
 2765
 2766#ifdef COBJMACROS
 2767#ifndef WIDL_C_INLINE_WRAPPERS
 2768/*** IUnknown methods ***/
 2769#define IWMProfileManager2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2770#define IWMProfileManager2_AddRef(This) (This)->lpVtbl->AddRef(This)
 2771#define IWMProfileManager2_Release(This) (This)->lpVtbl->Release(This)
 2772/*** IWMProfileManager methods ***/
 2773#define IWMProfileManager2_CreateEmptyProfile(This,dwVersion,ppProfile) (This)->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile)
 2774#define IWMProfileManager2_LoadProfileByID(This,guidProfile,ppProfile) (This)->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile)
 2775#define IWMProfileManager2_LoadProfileByData(This,pwszProfile,ppProfile) (This)->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile)
 2776#define IWMProfileManager2_SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) (This)->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength)
 2777#define IWMProfileManager2_GetSystemProfileCount(This,pcProfiles) (This)->lpVtbl->GetSystemProfileCount(This,pcProfiles)
 2778#define IWMProfileManager2_LoadSystemProfile(This,dwProfileIndex,ppProfile) (This)->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile)
 2779/*** IWMProfileManager2 methods ***/
 2780#define IWMProfileManager2_GetSystemProfileVersion(This,version) (This)->lpVtbl->GetSystemProfileVersion(This,version)
 2781#define IWMProfileManager2_SetSystemProfileVersion(This,version) (This)->lpVtbl->SetSystemProfileVersion(This,version)
 2782#else
 2783/*** IUnknown methods ***/
 2784static inline HRESULT IWMProfileManager2_QueryInterface(IWMProfileManager2* This,REFIID riid,void **ppvObject) {
 2785    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2786}
 2787static inline ULONG IWMProfileManager2_AddRef(IWMProfileManager2* This) {
 2788    return This->lpVtbl->AddRef(This);
 2789}
 2790static inline ULONG IWMProfileManager2_Release(IWMProfileManager2* This) {
 2791    return This->lpVtbl->Release(This);
 2792}
 2793/*** IWMProfileManager methods ***/
 2794static inline HRESULT IWMProfileManager2_CreateEmptyProfile(IWMProfileManager2* This,WMT_VERSION dwVersion,IWMProfile **ppProfile) {
 2795    return This->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile);
 2796}
 2797static inline HRESULT IWMProfileManager2_LoadProfileByID(IWMProfileManager2* This,REFGUID guidProfile,IWMProfile **ppProfile) {
 2798    return This->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile);
 2799}
 2800static inline HRESULT IWMProfileManager2_LoadProfileByData(IWMProfileManager2* This,const WCHAR *pwszProfile,IWMProfile **ppProfile) {
 2801    return This->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile);
 2802}
 2803static inline HRESULT IWMProfileManager2_SaveProfile(IWMProfileManager2* This,IWMProfile *pIWMProfile,WCHAR *pwszProfile,DWORD *pdwLength) {
 2804    return This->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength);
 2805}
 2806static inline HRESULT IWMProfileManager2_GetSystemProfileCount(IWMProfileManager2* This,DWORD *pcProfiles) {
 2807    return This->lpVtbl->GetSystemProfileCount(This,pcProfiles);
 2808}
 2809static inline HRESULT IWMProfileManager2_LoadSystemProfile(IWMProfileManager2* This,DWORD dwProfileIndex,IWMProfile **ppProfile) {
 2810    return This->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile);
 2811}
 2812/*** IWMProfileManager2 methods ***/
 2813static inline HRESULT IWMProfileManager2_GetSystemProfileVersion(IWMProfileManager2* This,WMT_VERSION *version) {
 2814    return This->lpVtbl->GetSystemProfileVersion(This,version);
 2815}
 2816static inline HRESULT IWMProfileManager2_SetSystemProfileVersion(IWMProfileManager2* This,WMT_VERSION version) {
 2817    return This->lpVtbl->SetSystemProfileVersion(This,version);
 2818}
 2819#endif
 2820#endif
 2821
 2822#endif
 2823
 2824
 2825#endif  /* __IWMProfileManager2_INTERFACE_DEFINED__ */
 2826
 2827HRESULT WINAPI WMCreateProfileManager(IWMProfileManager**);
 2828/*****************************************************************************
 2829 * IWMCodecInfo interface
 2830 */
 2831#ifndef __IWMCodecInfo_INTERFACE_DEFINED__
 2832#define __IWMCodecInfo_INTERFACE_DEFINED__
 2833
 2834DEFINE_GUID(IID_IWMCodecInfo, 0xa970f41e, 0x34de, 0x4a98, 0xb3,0xba, 0xe4,0xb3,0xca,0x75,0x28,0xf0);
 2835#if defined(__cplusplus) && !defined(CINTERFACE)
 2836MIDL_INTERFACE("a970f41e-34de-4a98-b3ba-e4b3ca7528f0")
 2837IWMCodecInfo : public IUnknown
 2838{
 2839    virtual HRESULT STDMETHODCALLTYPE GetCodecInfoCount(
 2840        REFGUID guid,
 2841        DWORD *count) = 0;
 2842
 2843    virtual HRESULT STDMETHODCALLTYPE GetCodecFormatCount(
 2844        REFGUID guid,
 2845        DWORD codecindex,
 2846        DWORD *formatcount) = 0;
 2847
 2848    virtual HRESULT STDMETHODCALLTYPE GetCodecFormat(
 2849        REFGUID guid,
 2850        DWORD codecindex,
 2851        DWORD formatindex,
 2852        IWMStreamConfig **streamconfig) = 0;
 2853
 2854};
 2855#ifdef __CRT_UUID_DECL
 2856__CRT_UUID_DECL(IWMCodecInfo, 0xa970f41e, 0x34de, 0x4a98, 0xb3,0xba, 0xe4,0xb3,0xca,0x75,0x28,0xf0)
 2857#endif
 2858#else
 2859typedef struct IWMCodecInfoVtbl {
 2860    BEGIN_INTERFACE
 2861
 2862    /*** IUnknown methods ***/
 2863    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2864        IWMCodecInfo *This,
 2865        REFIID riid,
 2866        void **ppvObject);
 2867
 2868    ULONG (STDMETHODCALLTYPE *AddRef)(
 2869        IWMCodecInfo *This);
 2870
 2871    ULONG (STDMETHODCALLTYPE *Release)(
 2872        IWMCodecInfo *This);
 2873
 2874    /*** IWMCodecInfo methods ***/
 2875    HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)(
 2876        IWMCodecInfo *This,
 2877        REFGUID guid,
 2878        DWORD *count);
 2879
 2880    HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)(
 2881        IWMCodecInfo *This,
 2882        REFGUID guid,
 2883        DWORD codecindex,
 2884        DWORD *formatcount);
 2885
 2886    HRESULT (STDMETHODCALLTYPE *GetCodecFormat)(
 2887        IWMCodecInfo *This,
 2888        REFGUID guid,
 2889        DWORD codecindex,
 2890        DWORD formatindex,
 2891        IWMStreamConfig **streamconfig);
 2892
 2893    END_INTERFACE
 2894} IWMCodecInfoVtbl;
 2895
 2896interface IWMCodecInfo {
 2897    CONST_VTBL IWMCodecInfoVtbl* lpVtbl;
 2898};
 2899
 2900#ifdef COBJMACROS
 2901#ifndef WIDL_C_INLINE_WRAPPERS
 2902/*** IUnknown methods ***/
 2903#define IWMCodecInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2904#define IWMCodecInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
 2905#define IWMCodecInfo_Release(This) (This)->lpVtbl->Release(This)
 2906/*** IWMCodecInfo methods ***/
 2907#define IWMCodecInfo_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count)
 2908#define IWMCodecInfo_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount)
 2909#define IWMCodecInfo_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig)
 2910#else
 2911/*** IUnknown methods ***/
 2912static inline HRESULT IWMCodecInfo_QueryInterface(IWMCodecInfo* This,REFIID riid,void **ppvObject) {
 2913    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2914}
 2915static inline ULONG IWMCodecInfo_AddRef(IWMCodecInfo* This) {
 2916    return This->lpVtbl->AddRef(This);
 2917}
 2918static inline ULONG IWMCodecInfo_Release(IWMCodecInfo* This) {
 2919    return This->lpVtbl->Release(This);
 2920}
 2921/*** IWMCodecInfo methods ***/
 2922static inline HRESULT IWMCodecInfo_GetCodecInfoCount(IWMCodecInfo* This,REFGUID guid,DWORD *count) {
 2923    return This->lpVtbl->GetCodecInfoCount(This,guid,count);
 2924}
 2925static inline HRESULT IWMCodecInfo_GetCodecFormatCount(IWMCodecInfo* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) {
 2926    return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount);
 2927}
 2928static inline HRESULT IWMCodecInfo_GetCodecFormat(IWMCodecInfo* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) {
 2929    return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig);
 2930}
 2931#endif
 2932#endif
 2933
 2934#endif
 2935
 2936
 2937#endif  /* __IWMCodecInfo_INTERFACE_DEFINED__ */
 2938
 2939/*****************************************************************************
 2940 * IWMCodecInfo2 interface
 2941 */
 2942#ifndef __IWMCodecInfo2_INTERFACE_DEFINED__
 2943#define __IWMCodecInfo2_INTERFACE_DEFINED__
 2944
 2945DEFINE_GUID(IID_IWMCodecInfo2, 0xaa65e273, 0xb686, 0x4056, 0x91,0xec, 0xdd,0x76,0x8d,0x4d,0xf7,0x10);
 2946#if defined(__cplusplus) && !defined(CINTERFACE)
 2947MIDL_INTERFACE("aa65e273-b686-4056-91ec-dd768d4df710")
 2948IWMCodecInfo2 : public IWMCodecInfo
 2949{
 2950    virtual HRESULT STDMETHODCALLTYPE GetCodecName(
 2951        REFGUID guid,
 2952        DWORD codecindex,
 2953        WCHAR *name,
 2954        DWORD *namesize) = 0;
 2955
 2956    virtual HRESULT STDMETHODCALLTYPE GetCodecFormatDesc(
 2957        REFGUID guid,
 2958        DWORD codecindex,
 2959        DWORD formatindex,
 2960        IWMStreamConfig **streamconfig,
 2961        WCHAR *description,
 2962        DWORD *descrsize) = 0;
 2963
 2964};
 2965#ifdef __CRT_UUID_DECL
 2966__CRT_UUID_DECL(IWMCodecInfo2, 0xaa65e273, 0xb686, 0x4056, 0x91,0xec, 0xdd,0x76,0x8d,0x4d,0xf7,0x10)
 2967#endif
 2968#else
 2969typedef struct IWMCodecInfo2Vtbl {
 2970    BEGIN_INTERFACE
 2971
 2972    /*** IUnknown methods ***/
 2973    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2974        IWMCodecInfo2 *This,
 2975        REFIID riid,
 2976        void **ppvObject);
 2977
 2978    ULONG (STDMETHODCALLTYPE *AddRef)(
 2979        IWMCodecInfo2 *This);
 2980
 2981    ULONG (STDMETHODCALLTYPE *Release)(
 2982        IWMCodecInfo2 *This);
 2983
 2984    /*** IWMCodecInfo methods ***/
 2985    HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)(
 2986        IWMCodecInfo2 *This,
 2987        REFGUID guid,
 2988        DWORD *count);
 2989
 2990    HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)(
 2991        IWMCodecInfo2 *This,
 2992        REFGUID guid,
 2993        DWORD codecindex,
 2994        DWORD *formatcount);
 2995
 2996    HRESULT (STDMETHODCALLTYPE *GetCodecFormat)(
 2997        IWMCodecInfo2 *This,
 2998        REFGUID guid,
 2999        DWORD codecindex,
 3000        DWORD formatindex,
 3001        IWMStreamConfig **streamconfig);
 3002
 3003    /*** IWMCodecInfo2 methods ***/
 3004    HRESULT (STDMETHODCALLTYPE *GetCodecName)(
 3005        IWMCodecInfo2 *This,
 3006        REFGUID guid,
 3007        DWORD codecindex,
 3008        WCHAR *name,
 3009        DWORD *namesize);
 3010
 3011    HRESULT (STDMETHODCALLTYPE *GetCodecFormatDesc)(
 3012        IWMCodecInfo2 *This,
 3013        REFGUID guid,
 3014        DWORD codecindex,
 3015        DWORD formatindex,
 3016        IWMStreamConfig **streamconfig,
 3017        WCHAR *description,
 3018        DWORD *descrsize);
 3019
 3020    END_INTERFACE
 3021} IWMCodecInfo2Vtbl;
 3022
 3023interface IWMCodecInfo2 {
 3024    CONST_VTBL IWMCodecInfo2Vtbl* lpVtbl;
 3025};
 3026
 3027#ifdef COBJMACROS
 3028#ifndef WIDL_C_INLINE_WRAPPERS
 3029/*** IUnknown methods ***/
 3030#define IWMCodecInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3031#define IWMCodecInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
 3032#define IWMCodecInfo2_Release(This) (This)->lpVtbl->Release(This)
 3033/*** IWMCodecInfo methods ***/
 3034#define IWMCodecInfo2_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count)
 3035#define IWMCodecInfo2_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount)
 3036#define IWMCodecInfo2_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig)
 3037/*** IWMCodecInfo2 methods ***/
 3038#define IWMCodecInfo2_GetCodecName(This,guid,codecindex,name,namesize) (This)->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize)
 3039#define IWMCodecInfo2_GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) (This)->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize)
 3040#else
 3041/*** IUnknown methods ***/
 3042static inline HRESULT IWMCodecInfo2_QueryInterface(IWMCodecInfo2* This,REFIID riid,void **ppvObject) {
 3043    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3044}
 3045static inline ULONG IWMCodecInfo2_AddRef(IWMCodecInfo2* This) {
 3046    return This->lpVtbl->AddRef(This);
 3047}
 3048static inline ULONG IWMCodecInfo2_Release(IWMCodecInfo2* This) {
 3049    return This->lpVtbl->Release(This);
 3050}
 3051/*** IWMCodecInfo methods ***/
 3052static inline HRESULT IWMCodecInfo2_GetCodecInfoCount(IWMCodecInfo2* This,REFGUID guid,DWORD *count) {
 3053    return This->lpVtbl->GetCodecInfoCount(This,guid,count);
 3054}
 3055static inline HRESULT IWMCodecInfo2_GetCodecFormatCount(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) {
 3056    return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount);
 3057}
 3058static inline HRESULT IWMCodecInfo2_GetCodecFormat(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) {
 3059    return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig);
 3060}
 3061/*** IWMCodecInfo2 methods ***/
 3062static inline HRESULT IWMCodecInfo2_GetCodecName(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,WCHAR *name,DWORD *namesize) {
 3063    return This->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize);
 3064}
 3065static inline HRESULT IWMCodecInfo2_GetCodecFormatDesc(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig,WCHAR *description,DWORD *descrsize) {
 3066    return This->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize);
 3067}
 3068#endif
 3069#endif
 3070
 3071#endif
 3072
 3073
 3074#endif  /* __IWMCodecInfo2_INTERFACE_DEFINED__ */
 3075
 3076/*****************************************************************************
 3077 * IWMCodecInfo3 interface
 3078 */
 3079#ifndef __IWMCodecInfo3_INTERFACE_DEFINED__
 3080#define __IWMCodecInfo3_INTERFACE_DEFINED__
 3081
 3082DEFINE_GUID(IID_IWMCodecInfo3, 0x7e51f487, 0x4d93, 0x4f98, 0x8a,0xb4, 0x27,0xd0,0x56,0x5a,0xdc,0x51);
 3083#if defined(__cplusplus) && !defined(CINTERFACE)
 3084MIDL_INTERFACE("7e51f487-4d93-4f98-8ab4-27d0565adc51")
 3085IWMCodecInfo3 : public IWMCodecInfo2
 3086{
 3087    virtual HRESULT STDMETHODCALLTYPE GetCodecFormatProp(
 3088        REFGUID guid,
 3089        DWORD codecindex,
 3090        DWORD formatindex,
 3091        const WCHAR *name,
 3092        WMT_ATTR_DATATYPE *type,
 3093        BYTE *value,
 3094        DWORD *size) = 0;
 3095
 3096    virtual HRESULT STDMETHODCALLTYPE GetCodecProp(
 3097        REFGUID guid,
 3098        DWORD codecindex,
 3099        const WCHAR *name,
 3100        WMT_ATTR_DATATYPE *type,
 3101        BYTE *value,
 3102        DWORD *size) = 0;
 3103
 3104    virtual HRESULT STDMETHODCALLTYPE SetCodecEnumerationSetting(
 3105        REFGUID guid,
 3106        DWORD codecindex,
 3107        const WCHAR *name,
 3108        WMT_ATTR_DATATYPE type,
 3109        const BYTE *value,
 3110        DWORD size) = 0;
 3111
 3112    virtual HRESULT STDMETHODCALLTYPE GetCodecEnumerationSetting(
 3113        REFGUID guid,
 3114        DWORD codecindex,
 3115        const WCHAR *name,
 3116        WMT_ATTR_DATATYPE *type,
 3117        BYTE *value,
 3118        DWORD *size) = 0;
 3119
 3120};
 3121#ifdef __CRT_UUID_DECL
 3122__CRT_UUID_DECL(IWMCodecInfo3, 0x7e51f487, 0x4d93, 0x4f98, 0x8a,0xb4, 0x27,0xd0,0x56,0x5a,0xdc,0x51)
 3123#endif
 3124#else
 3125typedef struct IWMCodecInfo3Vtbl {
 3126    BEGIN_INTERFACE
 3127
 3128    /*** IUnknown methods ***/
 3129    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3130        IWMCodecInfo3 *This,
 3131        REFIID riid,
 3132        void **ppvObject);
 3133
 3134    ULONG (STDMETHODCALLTYPE *AddRef)(
 3135        IWMCodecInfo3 *This);
 3136
 3137    ULONG (STDMETHODCALLTYPE *Release)(
 3138        IWMCodecInfo3 *This);
 3139
 3140    /*** IWMCodecInfo methods ***/
 3141    HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)(
 3142        IWMCodecInfo3 *This,
 3143        REFGUID guid,
 3144        DWORD *count);
 3145
 3146    HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)(
 3147        IWMCodecInfo3 *This,
 3148        REFGUID guid,
 3149        DWORD codecindex,
 3150        DWORD *formatcount);
 3151
 3152    HRESULT (STDMETHODCALLTYPE *GetCodecFormat)(
 3153        IWMCodecInfo3 *This,
 3154        REFGUID guid,
 3155        DWORD codecindex,
 3156        DWORD formatindex,
 3157        IWMStreamConfig **streamconfig);
 3158
 3159    /*** IWMCodecInfo2 methods ***/
 3160    HRESULT (STDMETHODCALLTYPE *GetCodecName)(
 3161        IWMCodecInfo3 *This,
 3162        REFGUID guid,
 3163        DWORD codecindex,
 3164        WCHAR *name,
 3165        DWORD *namesize);
 3166
 3167    HRESULT (STDMETHODCALLTYPE *GetCodecFormatDesc)(
 3168        IWMCodecInfo3 *This,
 3169        REFGUID guid,
 3170        DWORD codecindex,
 3171        DWORD formatindex,
 3172        IWMStreamConfig **streamconfig,
 3173        WCHAR *description,
 3174        DWORD *descrsize);
 3175
 3176    /*** IWMCodecInfo3 methods ***/
 3177    HRESULT (STDMETHODCALLTYPE *GetCodecFormatProp)(
 3178        IWMCodecInfo3 *This,
 3179        REFGUID guid,
 3180        DWORD codecindex,
 3181        DWORD formatindex,
 3182        const WCHAR *name,
 3183        WMT_ATTR_DATATYPE *type,
 3184        BYTE *value,
 3185        DWORD *size);
 3186
 3187    HRESULT (STDMETHODCALLTYPE *GetCodecProp)(
 3188        IWMCodecInfo3 *This,
 3189        REFGUID guid,
 3190        DWORD codecindex,
 3191        const WCHAR *name,
 3192        WMT_ATTR_DATATYPE *type,
 3193        BYTE *value,
 3194        DWORD *size);
 3195
 3196    HRESULT (STDMETHODCALLTYPE *SetCodecEnumerationSetting)(
 3197        IWMCodecInfo3 *This,
 3198        REFGUID guid,
 3199        DWORD codecindex,
 3200        const WCHAR *name,
 3201        WMT_ATTR_DATATYPE type,
 3202        const BYTE *value,
 3203        DWORD size);
 3204
 3205    HRESULT (STDMETHODCALLTYPE *GetCodecEnumerationSetting)(
 3206        IWMCodecInfo3 *This,
 3207        REFGUID guid,
 3208        DWORD codecindex,
 3209        const WCHAR *name,
 3210        WMT_ATTR_DATATYPE *type,
 3211        BYTE *value,
 3212        DWORD *size);
 3213
 3214    END_INTERFACE
 3215} IWMCodecInfo3Vtbl;
 3216
 3217interface IWMCodecInfo3 {
 3218    CONST_VTBL IWMCodecInfo3Vtbl* lpVtbl;
 3219};
 3220
 3221#ifdef COBJMACROS
 3222#ifndef WIDL_C_INLINE_WRAPPERS
 3223/*** IUnknown methods ***/
 3224#define IWMCodecInfo3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3225#define IWMCodecInfo3_AddRef(This) (This)->lpVtbl->AddRef(This)
 3226#define IWMCodecInfo3_Release(This) (This)->lpVtbl->Release(This)
 3227/*** IWMCodecInfo methods ***/
 3228#define IWMCodecInfo3_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count)
 3229#define IWMCodecInfo3_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount)
 3230#define IWMCodecInfo3_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig)
 3231/*** IWMCodecInfo2 methods ***/
 3232#define IWMCodecInfo3_GetCodecName(This,guid,codecindex,name,namesize) (This)->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize)
 3233#define IWMCodecInfo3_GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) (This)->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize)
 3234/*** IWMCodecInfo3 methods ***/
 3235#define IWMCodecInfo3_GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size) (This)->lpVtbl->GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size)
 3236#define IWMCodecInfo3_GetCodecProp(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->GetCodecProp(This,guid,codecindex,name,type,value,size)
 3237#define IWMCodecInfo3_SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size)
 3238#define IWMCodecInfo3_GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size)
 3239#else
 3240/*** IUnknown methods ***/
 3241static inline HRESULT IWMCodecInfo3_QueryInterface(IWMCodecInfo3* This,REFIID riid,void **ppvObject) {
 3242    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3243}
 3244static inline ULONG IWMCodecInfo3_AddRef(IWMCodecInfo3* This) {
 3245    return This->lpVtbl->AddRef(This);
 3246}
 3247static inline ULONG IWMCodecInfo3_Release(IWMCodecInfo3* This) {
 3248    return This->lpVtbl->Release(This);
 3249}
 3250/*** IWMCodecInfo methods ***/
 3251static inline HRESULT IWMCodecInfo3_GetCodecInfoCount(IWMCodecInfo3* This,REFGUID guid,DWORD *count) {
 3252    return This->lpVtbl->GetCodecInfoCount(This,guid,count);
 3253}
 3254static inline HRESULT IWMCodecInfo3_GetCodecFormatCount(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) {
 3255    return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount);
 3256}
 3257static inline HRESULT IWMCodecInfo3_GetCodecFormat(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) {
 3258    return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig);
 3259}
 3260/*** IWMCodecInfo2 methods ***/
 3261static inline HRESULT IWMCodecInfo3_GetCodecName(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,WCHAR *name,DWORD *namesize) {
 3262    return This->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize);
 3263}
 3264static inline HRESULT IWMCodecInfo3_GetCodecFormatDesc(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig,WCHAR *description,DWORD *descrsize) {
 3265    return This->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize);
 3266}
 3267/*** IWMCodecInfo3 methods ***/
 3268static inline HRESULT IWMCodecInfo3_GetCodecFormatProp(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
 3269    return This->lpVtbl->GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size);
 3270}
 3271static inline HRESULT IWMCodecInfo3_GetCodecProp(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
 3272    return This->lpVtbl->GetCodecProp(This,guid,codecindex,name,type,value,size);
 3273}
 3274static inline HRESULT IWMCodecInfo3_SetCodecEnumerationSetting(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,DWORD size) {
 3275    return This->lpVtbl->SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size);
 3276}
 3277static inline HRESULT IWMCodecInfo3_GetCodecEnumerationSetting(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
 3278    return This->lpVtbl->GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size);
 3279}
 3280#endif
 3281#endif
 3282
 3283#endif
 3284
 3285
 3286#endif  /* __IWMCodecInfo3_INTERFACE_DEFINED__ */
 3287
 3288static const WCHAR g_wszNumPasses[] = {'_','P','A','S','S','E','S','U','S','E','D',0};
 3289static const WCHAR g_wszVBREnabled[] = {'_','V','B','R','E','N','A','B','L','E','D',0};
 3290/*****************************************************************************
 3291 * IWMMediaProps interface
 3292 */
 3293#ifndef __IWMMediaProps_INTERFACE_DEFINED__
 3294#define __IWMMediaProps_INTERFACE_DEFINED__
 3295
 3296DEFINE_GUID(IID_IWMMediaProps, 0x96406bce, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 3297#if defined(__cplusplus) && !defined(CINTERFACE)
 3298MIDL_INTERFACE("96406bce-2b2b-11d3-b36b-00c04f6108ff")
 3299IWMMediaProps : public IUnknown
 3300{
 3301    virtual HRESULT STDMETHODCALLTYPE GetType(
 3302        GUID *pguidType) = 0;
 3303
 3304    virtual HRESULT STDMETHODCALLTYPE GetMediaType(
 3305        WM_MEDIA_TYPE *pType,
 3306        DWORD *pcbType) = 0;
 3307
 3308    virtual HRESULT STDMETHODCALLTYPE SetMediaType(
 3309        WM_MEDIA_TYPE *pType) = 0;
 3310
 3311};
 3312#ifdef __CRT_UUID_DECL
 3313__CRT_UUID_DECL(IWMMediaProps, 0x96406bce, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 3314#endif
 3315#else
 3316typedef struct IWMMediaPropsVtbl {
 3317    BEGIN_INTERFACE
 3318
 3319    /*** IUnknown methods ***/
 3320    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3321        IWMMediaProps *This,
 3322        REFIID riid,
 3323        void **ppvObject);
 3324
 3325    ULONG (STDMETHODCALLTYPE *AddRef)(
 3326        IWMMediaProps *This);
 3327
 3328    ULONG (STDMETHODCALLTYPE *Release)(
 3329        IWMMediaProps *This);
 3330
 3331    /*** IWMMediaProps methods ***/
 3332    HRESULT (STDMETHODCALLTYPE *GetType)(
 3333        IWMMediaProps *This,
 3334        GUID *pguidType);
 3335
 3336    HRESULT (STDMETHODCALLTYPE *GetMediaType)(
 3337        IWMMediaProps *This,
 3338        WM_MEDIA_TYPE *pType,
 3339        DWORD *pcbType);
 3340
 3341    HRESULT (STDMETHODCALLTYPE *SetMediaType)(
 3342        IWMMediaProps *This,
 3343        WM_MEDIA_TYPE *pType);
 3344
 3345    END_INTERFACE
 3346} IWMMediaPropsVtbl;
 3347
 3348interface IWMMediaProps {
 3349    CONST_VTBL IWMMediaPropsVtbl* lpVtbl;
 3350};
 3351
 3352#ifdef COBJMACROS
 3353#ifndef WIDL_C_INLINE_WRAPPERS
 3354/*** IUnknown methods ***/
 3355#define IWMMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3356#define IWMMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This)
 3357#define IWMMediaProps_Release(This) (This)->lpVtbl->Release(This)
 3358/*** IWMMediaProps methods ***/
 3359#define IWMMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
 3360#define IWMMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType)
 3361#define IWMMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType)
 3362#else
 3363/*** IUnknown methods ***/
 3364static inline HRESULT IWMMediaProps_QueryInterface(IWMMediaProps* This,REFIID riid,void **ppvObject) {
 3365    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3366}
 3367static inline ULONG IWMMediaProps_AddRef(IWMMediaProps* This) {
 3368    return This->lpVtbl->AddRef(This);
 3369}
 3370static inline ULONG IWMMediaProps_Release(IWMMediaProps* This) {
 3371    return This->lpVtbl->Release(This);
 3372}
 3373/*** IWMMediaProps methods ***/
 3374static inline HRESULT IWMMediaProps_GetType(IWMMediaProps* This,GUID *pguidType) {
 3375    return This->lpVtbl->GetType(This,pguidType);
 3376}
 3377static inline HRESULT IWMMediaProps_GetMediaType(IWMMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) {
 3378    return This->lpVtbl->GetMediaType(This,pType,pcbType);
 3379}
 3380static inline HRESULT IWMMediaProps_SetMediaType(IWMMediaProps* This,WM_MEDIA_TYPE *pType) {
 3381    return This->lpVtbl->SetMediaType(This,pType);
 3382}
 3383#endif
 3384#endif
 3385
 3386#endif
 3387
 3388
 3389#endif  /* __IWMMediaProps_INTERFACE_DEFINED__ */
 3390
 3391/*****************************************************************************
 3392 * IWMOutputMediaProps interface
 3393 */
 3394#ifndef __IWMOutputMediaProps_INTERFACE_DEFINED__
 3395#define __IWMOutputMediaProps_INTERFACE_DEFINED__
 3396
 3397DEFINE_GUID(IID_IWMOutputMediaProps, 0x96406bd7, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 3398#if defined(__cplusplus) && !defined(CINTERFACE)
 3399MIDL_INTERFACE("96406bd7-2b2b-11d3-b36b-00c04f6108ff")
 3400IWMOutputMediaProps : public IWMMediaProps
 3401{
 3402    virtual HRESULT STDMETHODCALLTYPE GetStreamGroupName(
 3403        WCHAR *pwszName,
 3404        WORD *pcchName) = 0;
 3405
 3406    virtual HRESULT STDMETHODCALLTYPE GetConnectionName(
 3407        WCHAR *pwszName,
 3408        WORD *pcchName) = 0;
 3409
 3410};
 3411#ifdef __CRT_UUID_DECL
 3412__CRT_UUID_DECL(IWMOutputMediaProps, 0x96406bd7, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 3413#endif
 3414#else
 3415typedef struct IWMOutputMediaPropsVtbl {
 3416    BEGIN_INTERFACE
 3417
 3418    /*** IUnknown methods ***/
 3419    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3420        IWMOutputMediaProps *This,
 3421        REFIID riid,
 3422        void **ppvObject);
 3423
 3424    ULONG (STDMETHODCALLTYPE *AddRef)(
 3425        IWMOutputMediaProps *This);
 3426
 3427    ULONG (STDMETHODCALLTYPE *Release)(
 3428        IWMOutputMediaProps *This);
 3429
 3430    /*** IWMMediaProps methods ***/
 3431    HRESULT (STDMETHODCALLTYPE *GetType)(
 3432        IWMOutputMediaProps *This,
 3433        GUID *pguidType);
 3434
 3435    HRESULT (STDMETHODCALLTYPE *GetMediaType)(
 3436        IWMOutputMediaProps *This,
 3437        WM_MEDIA_TYPE *pType,
 3438        DWORD *pcbType);
 3439
 3440    HRESULT (STDMETHODCALLTYPE *SetMediaType)(
 3441        IWMOutputMediaProps *This,
 3442        WM_MEDIA_TYPE *pType);
 3443
 3444    /*** IWMOutputMediaProps methods ***/
 3445    HRESULT (STDMETHODCALLTYPE *GetStreamGroupName)(
 3446        IWMOutputMediaProps *This,
 3447        WCHAR *pwszName,
 3448        WORD *pcchName);
 3449
 3450    HRESULT (STDMETHODCALLTYPE *GetConnectionName)(
 3451        IWMOutputMediaProps *This,
 3452        WCHAR *pwszName,
 3453        WORD *pcchName);
 3454
 3455    END_INTERFACE
 3456} IWMOutputMediaPropsVtbl;
 3457
 3458interface IWMOutputMediaProps {
 3459    CONST_VTBL IWMOutputMediaPropsVtbl* lpVtbl;
 3460};
 3461
 3462#ifdef COBJMACROS
 3463#ifndef WIDL_C_INLINE_WRAPPERS
 3464/*** IUnknown methods ***/
 3465#define IWMOutputMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3466#define IWMOutputMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This)
 3467#define IWMOutputMediaProps_Release(This) (This)->lpVtbl->Release(This)
 3468/*** IWMMediaProps methods ***/
 3469#define IWMOutputMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
 3470#define IWMOutputMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType)
 3471#define IWMOutputMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType)
 3472/*** IWMOutputMediaProps methods ***/
 3473#define IWMOutputMediaProps_GetStreamGroupName(This,pwszName,pcchName) (This)->lpVtbl->GetStreamGroupName(This,pwszName,pcchName)
 3474#define IWMOutputMediaProps_GetConnectionName(This,pwszName,pcchName) (This)->lpVtbl->GetConnectionName(This,pwszName,pcchName)
 3475#else
 3476/*** IUnknown methods ***/
 3477static inline HRESULT IWMOutputMediaProps_QueryInterface(IWMOutputMediaProps* This,REFIID riid,void **ppvObject) {
 3478    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3479}
 3480static inline ULONG IWMOutputMediaProps_AddRef(IWMOutputMediaProps* This) {
 3481    return This->lpVtbl->AddRef(This);
 3482}
 3483static inline ULONG IWMOutputMediaProps_Release(IWMOutputMediaProps* This) {
 3484    return This->lpVtbl->Release(This);
 3485}
 3486/*** IWMMediaProps methods ***/
 3487static inline HRESULT IWMOutputMediaProps_GetType(IWMOutputMediaProps* This,GUID *pguidType) {
 3488    return This->lpVtbl->GetType(This,pguidType);
 3489}
 3490static inline HRESULT IWMOutputMediaProps_GetMediaType(IWMOutputMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) {
 3491    return This->lpVtbl->GetMediaType(This,pType,pcbType);
 3492}
 3493static inline HRESULT IWMOutputMediaProps_SetMediaType(IWMOutputMediaProps* This,WM_MEDIA_TYPE *pType) {
 3494    return This->lpVtbl->SetMediaType(This,pType);
 3495}
 3496/*** IWMOutputMediaProps methods ***/
 3497static inline HRESULT IWMOutputMediaProps_GetStreamGroupName(IWMOutputMediaProps* This,WCHAR *pwszName,WORD *pcchName) {
 3498    return This->lpVtbl->GetStreamGroupName(This,pwszName,pcchName);
 3499}
 3500static inline HRESULT IWMOutputMediaProps_GetConnectionName(IWMOutputMediaProps* This,WCHAR *pwszName,WORD *pcchName) {
 3501    return This->lpVtbl->GetConnectionName(This,pwszName,pcchName);
 3502}
 3503#endif
 3504#endif
 3505
 3506#endif
 3507
 3508
 3509#endif  /* __IWMOutputMediaProps_INTERFACE_DEFINED__ */
 3510
 3511/*****************************************************************************
 3512 * IWMMetadataEditor interface
 3513 */
 3514#ifndef __IWMMetadataEditor_INTERFACE_DEFINED__
 3515#define __IWMMetadataEditor_INTERFACE_DEFINED__
 3516
 3517DEFINE_GUID(IID_IWMMetadataEditor, 0x96406bd9, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 3518#if defined(__cplusplus) && !defined(CINTERFACE)
 3519MIDL_INTERFACE("96406bd9-2b2b-11d3-b36b-00c04f6108ff")
 3520IWMMetadataEditor : public IUnknown
 3521{
 3522    virtual HRESULT STDMETHODCALLTYPE Open(
 3523        const WCHAR *pwszFilename) = 0;
 3524
 3525    virtual HRESULT STDMETHODCALLTYPE Close(
 3526        ) = 0;
 3527
 3528    virtual HRESULT STDMETHODCALLTYPE Flush(
 3529        ) = 0;
 3530
 3531};
 3532#ifdef __CRT_UUID_DECL
 3533__CRT_UUID_DECL(IWMMetadataEditor, 0x96406bd9, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 3534#endif
 3535#else
 3536typedef struct IWMMetadataEditorVtbl {
 3537    BEGIN_INTERFACE
 3538
 3539    /*** IUnknown methods ***/
 3540    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3541        IWMMetadataEditor *This,
 3542        REFIID riid,
 3543        void **ppvObject);
 3544
 3545    ULONG (STDMETHODCALLTYPE *AddRef)(
 3546        IWMMetadataEditor *This);
 3547
 3548    ULONG (STDMETHODCALLTYPE *Release)(
 3549        IWMMetadataEditor *This);
 3550
 3551    /*** IWMMetadataEditor methods ***/
 3552    HRESULT (STDMETHODCALLTYPE *Open)(
 3553        IWMMetadataEditor *This,
 3554        const WCHAR *pwszFilename);
 3555
 3556    HRESULT (STDMETHODCALLTYPE *Close)(
 3557        IWMMetadataEditor *This);
 3558
 3559    HRESULT (STDMETHODCALLTYPE *Flush)(
 3560        IWMMetadataEditor *This);
 3561
 3562    END_INTERFACE
 3563} IWMMetadataEditorVtbl;
 3564
 3565interface IWMMetadataEditor {
 3566    CONST_VTBL IWMMetadataEditorVtbl* lpVtbl;
 3567};
 3568
 3569#ifdef COBJMACROS
 3570#ifndef WIDL_C_INLINE_WRAPPERS
 3571/*** IUnknown methods ***/
 3572#define IWMMetadataEditor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3573#define IWMMetadataEditor_AddRef(This) (This)->lpVtbl->AddRef(This)
 3574#define IWMMetadataEditor_Release(This) (This)->lpVtbl->Release(This)
 3575/*** IWMMetadataEditor methods ***/
 3576#define IWMMetadataEditor_Open(This,pwszFilename) (This)->lpVtbl->Open(This,pwszFilename)
 3577#define IWMMetadataEditor_Close(This) (This)->lpVtbl->Close(This)
 3578#define IWMMetadataEditor_Flush(This) (This)->lpVtbl->Flush(This)
 3579#else
 3580/*** IUnknown methods ***/
 3581static inline HRESULT IWMMetadataEditor_QueryInterface(IWMMetadataEditor* This,REFIID riid,void **ppvObject) {
 3582    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3583}
 3584static inline ULONG IWMMetadataEditor_AddRef(IWMMetadataEditor* This) {
 3585    return This->lpVtbl->AddRef(This);
 3586}
 3587static inline ULONG IWMMetadataEditor_Release(IWMMetadataEditor* This) {
 3588    return This->lpVtbl->Release(This);
 3589}
 3590/*** IWMMetadataEditor methods ***/
 3591static inline HRESULT IWMMetadataEditor_Open(IWMMetadataEditor* This,const WCHAR *pwszFilename) {
 3592    return This->lpVtbl->Open(This,pwszFilename);
 3593}
 3594static inline HRESULT IWMMetadataEditor_Close(IWMMetadataEditor* This) {
 3595    return This->lpVtbl->Close(This);
 3596}
 3597static inline HRESULT IWMMetadataEditor_Flush(IWMMetadataEditor* This) {
 3598    return This->lpVtbl->Flush(This);
 3599}
 3600#endif
 3601#endif
 3602
 3603#endif
 3604
 3605
 3606#endif  /* __IWMMetadataEditor_INTERFACE_DEFINED__ */
 3607
 3608/*****************************************************************************
 3609 * IWMReader interface
 3610 */
 3611#ifndef __IWMReader_INTERFACE_DEFINED__
 3612#define __IWMReader_INTERFACE_DEFINED__
 3613
 3614DEFINE_GUID(IID_IWMReader, 0x96406bd6, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 3615#if defined(__cplusplus) && !defined(CINTERFACE)
 3616MIDL_INTERFACE("96406bd6-2b2b-11d3-b36b-00c04f6108ff")
 3617IWMReader : public IUnknown
 3618{
 3619    virtual HRESULT STDMETHODCALLTYPE Open(
 3620        const WCHAR *pwszURL,
 3621        IWMReaderCallback *pCallback,
 3622        void *pvContext) = 0;
 3623
 3624    virtual HRESULT STDMETHODCALLTYPE Close(
 3625        ) = 0;
 3626
 3627    virtual HRESULT STDMETHODCALLTYPE GetOutputCount(
 3628        DWORD *pcOutputs) = 0;
 3629
 3630    virtual HRESULT STDMETHODCALLTYPE GetOutputProps(
 3631        DWORD dwOutputNum,
 3632        IWMOutputMediaProps **ppOutput) = 0;
 3633
 3634    virtual HRESULT STDMETHODCALLTYPE SetOutputProps(
 3635        DWORD dwOutputNum,
 3636        IWMOutputMediaProps *pOutput) = 0;
 3637
 3638    virtual HRESULT STDMETHODCALLTYPE GetOutputFormatCount(
 3639        DWORD dwOutputNumber,
 3640        DWORD *pcFormats) = 0;
 3641
 3642    virtual HRESULT STDMETHODCALLTYPE GetOutputFormat(
 3643        DWORD dwOutputNumber,
 3644        DWORD dwFormatNumber,
 3645        IWMOutputMediaProps **ppProps) = 0;
 3646
 3647    virtual HRESULT STDMETHODCALLTYPE Start(
 3648        QWORD cnsStart,
 3649        QWORD cnsDuration,
 3650        float fRate,
 3651        void *pvContext) = 0;
 3652
 3653    virtual HRESULT STDMETHODCALLTYPE Stop(
 3654        ) = 0;
 3655
 3656    virtual HRESULT STDMETHODCALLTYPE Pause(
 3657        ) = 0;
 3658
 3659    virtual HRESULT STDMETHODCALLTYPE Resume(
 3660        ) = 0;
 3661
 3662};
 3663#ifdef __CRT_UUID_DECL
 3664__CRT_UUID_DECL(IWMReader, 0x96406bd6, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 3665#endif
 3666#else
 3667typedef struct IWMReaderVtbl {
 3668    BEGIN_INTERFACE
 3669
 3670    /*** IUnknown methods ***/
 3671    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3672        IWMReader *This,
 3673        REFIID riid,
 3674        void **ppvObject);
 3675
 3676    ULONG (STDMETHODCALLTYPE *AddRef)(
 3677        IWMReader *This);
 3678
 3679    ULONG (STDMETHODCALLTYPE *Release)(
 3680        IWMReader *This);
 3681
 3682    /*** IWMReader methods ***/
 3683    HRESULT (STDMETHODCALLTYPE *Open)(
 3684        IWMReader *This,
 3685        const WCHAR *pwszURL,
 3686        IWMReaderCallback *pCallback,
 3687        void *pvContext);
 3688
 3689    HRESULT (STDMETHODCALLTYPE *Close)(
 3690        IWMReader *This);
 3691
 3692    HRESULT (STDMETHODCALLTYPE *GetOutputCount)(
 3693        IWMReader *This,
 3694        DWORD *pcOutputs);
 3695
 3696    HRESULT (STDMETHODCALLTYPE *GetOutputProps)(
 3697        IWMReader *This,
 3698        DWORD dwOutputNum,
 3699        IWMOutputMediaProps **ppOutput);
 3700
 3701    HRESULT (STDMETHODCALLTYPE *SetOutputProps)(
 3702        IWMReader *This,
 3703        DWORD dwOutputNum,
 3704        IWMOutputMediaProps *pOutput);
 3705
 3706    HRESULT (STDMETHODCALLTYPE *GetOutputFormatCount)(
 3707        IWMReader *This,
 3708        DWORD dwOutputNumber,
 3709        DWORD *pcFormats);
 3710
 3711    HRESULT (STDMETHODCALLTYPE *GetOutputFormat)(
 3712        IWMReader *This,
 3713        DWORD dwOutputNumber,
 3714        DWORD dwFormatNumber,
 3715        IWMOutputMediaProps **ppProps);
 3716
 3717    HRESULT (STDMETHODCALLTYPE *Start)(
 3718        IWMReader *This,
 3719        QWORD cnsStart,
 3720        QWORD cnsDuration,
 3721        float fRate,
 3722        void *pvContext);
 3723
 3724    HRESULT (STDMETHODCALLTYPE *Stop)(
 3725        IWMReader *This);
 3726
 3727    HRESULT (STDMETHODCALLTYPE *Pause)(
 3728        IWMReader *This);
 3729
 3730    HRESULT (STDMETHODCALLTYPE *Resume)(
 3731        IWMReader *This);
 3732
 3733    END_INTERFACE
 3734} IWMReaderVtbl;
 3735
 3736interface IWMReader {
 3737    CONST_VTBL IWMReaderVtbl* lpVtbl;
 3738};
 3739
 3740#ifdef COBJMACROS
 3741#ifndef WIDL_C_INLINE_WRAPPERS
 3742/*** IUnknown methods ***/
 3743#define IWMReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3744#define IWMReader_AddRef(This) (This)->lpVtbl->AddRef(This)
 3745#define IWMReader_Release(This) (This)->lpVtbl->Release(This)
 3746/*** IWMReader methods ***/
 3747#define IWMReader_Open(This,pwszURL,pCallback,pvContext) (This)->lpVtbl->Open(This,pwszURL,pCallback,pvContext)
 3748#define IWMReader_Close(This) (This)->lpVtbl->Close(This)
 3749#define IWMReader_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs)
 3750#define IWMReader_GetOutputProps(This,dwOutputNum,ppOutput) (This)->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput)
 3751#define IWMReader_SetOutputProps(This,dwOutputNum,pOutput) (This)->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput)
 3752#define IWMReader_GetOutputFormatCount(This,dwOutputNumber,pcFormats) (This)->lpVtbl->GetOutputFormatCount(This,dwOutputNumber,pcFormats)
 3753#define IWMReader_GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps) (This)->lpVtbl->GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps)
 3754#define IWMReader_Start(This,cnsStart,cnsDuration,fRate,pvContext) (This)->lpVtbl->Start(This,cnsStart,cnsDuration,fRate,pvContext)
 3755#define IWMReader_Stop(This) (This)->lpVtbl->Stop(This)
 3756#define IWMReader_Pause(This) (This)->lpVtbl->Pause(This)
 3757#define IWMReader_Resume(This) (This)->lpVtbl->Resume(This)
 3758#else
 3759/*** IUnknown methods ***/
 3760static inline HRESULT IWMReader_QueryInterface(IWMReader* This,REFIID riid,void **ppvObject) {
 3761    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3762}
 3763static inline ULONG IWMReader_AddRef(IWMReader* This) {
 3764    return This->lpVtbl->AddRef(This);
 3765}
 3766static inline ULONG IWMReader_Release(IWMReader* This) {
 3767    return This->lpVtbl->Release(This);
 3768}
 3769/*** IWMReader methods ***/
 3770static inline HRESULT IWMReader_Open(IWMReader* This,const WCHAR *pwszURL,IWMReaderCallback *pCallback,void *pvContext) {
 3771    return This->lpVtbl->Open(This,pwszURL,pCallback,pvContext);
 3772}
 3773static inline HRESULT IWMReader_Close(IWMReader* This) {
 3774    return This->lpVtbl->Close(This);
 3775}
 3776static inline HRESULT IWMReader_GetOutputCount(IWMReader* This,DWORD *pcOutputs) {
 3777    return This->lpVtbl->GetOutputCount(This,pcOutputs);
 3778}
 3779static inline HRESULT IWMReader_GetOutputProps(IWMReader* This,DWORD dwOutputNum,IWMOutputMediaProps **ppOutput) {
 3780    return This->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput);
 3781}
 3782static inline HRESULT IWMReader_SetOutputProps(IWMReader* This,DWORD dwOutputNum,IWMOutputMediaProps *pOutput) {
 3783    return This->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput);
 3784}
 3785static inline HRESULT IWMReader_GetOutputFormatCount(IWMReader* This,DWORD dwOutputNumber,DWORD *pcFormats) {
 3786    return This->lpVtbl->GetOutputFormatCount(This,dwOutputNumber,pcFormats);
 3787}
 3788static inline HRESULT IWMReader_GetOutputFormat(IWMReader* This,DWORD dwOutputNumber,DWORD dwFormatNumber,IWMOutputMediaProps **ppProps) {
 3789    return This->lpVtbl->GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps);
 3790}
 3791static inline HRESULT IWMReader_Start(IWMReader* This,QWORD cnsStart,QWORD cnsDuration,float fRate,void *pvContext) {
 3792    return This->lpVtbl->Start(This,cnsStart,cnsDuration,fRate,pvContext);
 3793}
 3794static inline HRESULT IWMReader_Stop(IWMReader* This) {
 3795    return This->lpVtbl->Stop(This);
 3796}
 3797static inline HRESULT IWMReader_Pause(IWMReader* This) {
 3798    return This->lpVtbl->Pause(This);
 3799}
 3800static inline HRESULT IWMReader_Resume(IWMReader* This) {
 3801    return This->lpVtbl->Resume(This);
 3802}
 3803#endif
 3804#endif
 3805
 3806#endif
 3807
 3808
 3809#endif  /* __IWMReader_INTERFACE_DEFINED__ */
 3810
 3811/*****************************************************************************
 3812 * IWMPlayerHook interface
 3813 */
 3814#ifndef __IWMPlayerHook_INTERFACE_DEFINED__
 3815#define __IWMPlayerHook_INTERFACE_DEFINED__
 3816
 3817DEFINE_GUID(IID_IWMPlayerHook, 0xe5b7ca9a, 0x0f1c, 0x4f66, 0x90,0x02, 0x74,0xec,0x50,0xd8,0xb3,0x04);
 3818#if defined(__cplusplus) && !defined(CINTERFACE)
 3819MIDL_INTERFACE("e5b7ca9a-0f1c-4f66-9002-74ec50d8b304")
 3820IWMPlayerHook : public IUnknown
 3821{
 3822    virtual HRESULT STDMETHODCALLTYPE PreDecode(
 3823        ) = 0;
 3824
 3825};
 3826#ifdef __CRT_UUID_DECL
 3827__CRT_UUID_DECL(IWMPlayerHook, 0xe5b7ca9a, 0x0f1c, 0x4f66, 0x90,0x02, 0x74,0xec,0x50,0xd8,0xb3,0x04)
 3828#endif
 3829#else
 3830typedef struct IWMPlayerHookVtbl {
 3831    BEGIN_INTERFACE
 3832
 3833    /*** IUnknown methods ***/
 3834    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3835        IWMPlayerHook *This,
 3836        REFIID riid,
 3837        void **ppvObject);
 3838
 3839    ULONG (STDMETHODCALLTYPE *AddRef)(
 3840        IWMPlayerHook *This);
 3841
 3842    ULONG (STDMETHODCALLTYPE *Release)(
 3843        IWMPlayerHook *This);
 3844
 3845    /*** IWMPlayerHook methods ***/
 3846    HRESULT (STDMETHODCALLTYPE *PreDecode)(
 3847        IWMPlayerHook *This);
 3848
 3849    END_INTERFACE
 3850} IWMPlayerHookVtbl;
 3851
 3852interface IWMPlayerHook {
 3853    CONST_VTBL IWMPlayerHookVtbl* lpVtbl;
 3854};
 3855
 3856#ifdef COBJMACROS
 3857#ifndef WIDL_C_INLINE_WRAPPERS
 3858/*** IUnknown methods ***/
 3859#define IWMPlayerHook_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3860#define IWMPlayerHook_AddRef(This) (This)->lpVtbl->AddRef(This)
 3861#define IWMPlayerHook_Release(This) (This)->lpVtbl->Release(This)
 3862/*** IWMPlayerHook methods ***/
 3863#define IWMPlayerHook_PreDecode(This) (This)->lpVtbl->PreDecode(This)
 3864#else
 3865/*** IUnknown methods ***/
 3866static inline HRESULT IWMPlayerHook_QueryInterface(IWMPlayerHook* This,REFIID riid,void **ppvObject) {
 3867    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3868}
 3869static inline ULONG IWMPlayerHook_AddRef(IWMPlayerHook* This) {
 3870    return This->lpVtbl->AddRef(This);
 3871}
 3872static inline ULONG IWMPlayerHook_Release(IWMPlayerHook* This) {
 3873    return This->lpVtbl->Release(This);
 3874}
 3875/*** IWMPlayerHook methods ***/
 3876static inline HRESULT IWMPlayerHook_PreDecode(IWMPlayerHook* This) {
 3877    return This->lpVtbl->PreDecode(This);
 3878}
 3879#endif
 3880#endif
 3881
 3882#endif
 3883
 3884
 3885#endif  /* __IWMPlayerHook_INTERFACE_DEFINED__ */
 3886
 3887/*****************************************************************************
 3888 * IWMReaderAdvanced interface
 3889 */
 3890#ifndef __IWMReaderAdvanced_INTERFACE_DEFINED__
 3891#define __IWMReaderAdvanced_INTERFACE_DEFINED__
 3892
 3893DEFINE_GUID(IID_IWMReaderAdvanced, 0x96406bea, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 3894#if defined(__cplusplus) && !defined(CINTERFACE)
 3895MIDL_INTERFACE("96406bea-2b2b-11d3-b36b-00c04f6108ff")
 3896IWMReaderAdvanced : public IUnknown
 3897{
 3898    virtual HRESULT STDMETHODCALLTYPE SetUserProvidedClock(
 3899        WINBOOL fUserClock) = 0;
 3900
 3901    virtual HRESULT STDMETHODCALLTYPE GetUserProvidedClock(
 3902        WINBOOL *pfUserClock) = 0;
 3903
 3904    virtual HRESULT STDMETHODCALLTYPE DeliverTime(
 3905        QWORD cnsTime) = 0;
 3906
 3907    virtual HRESULT STDMETHODCALLTYPE SetManualStreamSelection(
 3908        WINBOOL fSelection) = 0;
 3909
 3910    virtual HRESULT STDMETHODCALLTYPE GetManualStreamSelection(
 3911        WINBOOL *pfSelection) = 0;
 3912
 3913    virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected(
 3914        WORD cStreamCount,
 3915        WORD *pwStreamNumbers,
 3916        WMT_STREAM_SELECTION *pSelections) = 0;
 3917
 3918    virtual HRESULT STDMETHODCALLTYPE GetStreamSelected(
 3919        WORD wStreamNum,
 3920        WMT_STREAM_SELECTION *pSelection) = 0;
 3921
 3922    virtual HRESULT STDMETHODCALLTYPE SetReceiveSelectionCallbacks(
 3923        WINBOOL fGetCallbacks) = 0;
 3924
 3925    virtual HRESULT STDMETHODCALLTYPE GetReceiveSelectionCallbacks(
 3926        WINBOOL *pfGetCallbacks) = 0;
 3927
 3928    virtual HRESULT STDMETHODCALLTYPE SetReceiveStreamSamples(
 3929        WORD wStreamNum,
 3930        WINBOOL fReceiveStreamSamples) = 0;
 3931
 3932    virtual HRESULT STDMETHODCALLTYPE GetReceiveStreamSamples(
 3933        WORD wStreamNum,
 3934        WINBOOL *pfReceiveStreamSamples) = 0;
 3935
 3936    virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput(
 3937        DWORD dwOutputNum,
 3938        WINBOOL fAllocate) = 0;
 3939
 3940    virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput(
 3941        DWORD dwOutputNum,
 3942        WINBOOL *pfAllocate) = 0;
 3943
 3944    virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream(
 3945        WORD wStreamNum,
 3946        WINBOOL fAllocate) = 0;
 3947
 3948    virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream(
 3949        WORD dwStreamNum,
 3950        WINBOOL *pfAllocate) = 0;
 3951
 3952    virtual HRESULT STDMETHODCALLTYPE GetStatistics(
 3953        WM_READER_STATISTICS *pStatistics) = 0;
 3954
 3955    virtual HRESULT STDMETHODCALLTYPE SetClientInfo(
 3956        WM_READER_CLIENTINFO *pClientInfo) = 0;
 3957
 3958    virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize(
 3959        DWORD dwOutput,
 3960        DWORD *pcbMax) = 0;
 3961
 3962    virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize(
 3963        WORD wStream,
 3964        DWORD *pcbMax) = 0;
 3965
 3966    virtual HRESULT STDMETHODCALLTYPE NotifyLateDelivery(
 3967        QWORD cnsLateness) = 0;
 3968
 3969};
 3970#ifdef __CRT_UUID_DECL
 3971__CRT_UUID_DECL(IWMReaderAdvanced, 0x96406bea, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 3972#endif
 3973#else
 3974typedef struct IWMReaderAdvancedVtbl {
 3975    BEGIN_INTERFACE
 3976
 3977    /*** IUnknown methods ***/
 3978    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3979        IWMReaderAdvanced *This,
 3980        REFIID riid,
 3981        void **ppvObject);
 3982
 3983    ULONG (STDMETHODCALLTYPE *AddRef)(
 3984        IWMReaderAdvanced *This);
 3985
 3986    ULONG (STDMETHODCALLTYPE *Release)(
 3987        IWMReaderAdvanced *This);
 3988
 3989    /*** IWMReaderAdvanced methods ***/
 3990    HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
 3991        IWMReaderAdvanced *This,
 3992        WINBOOL fUserClock);
 3993
 3994    HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
 3995        IWMReaderAdvanced *This,
 3996        WINBOOL *pfUserClock);
 3997
 3998    HRESULT (STDMETHODCALLTYPE *DeliverTime)(
 3999        IWMReaderAdvanced *This,
 4000        QWORD cnsTime);
 4001
 4002    HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
 4003        IWMReaderAdvanced *This,
 4004        WINBOOL fSelection);
 4005
 4006    HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
 4007        IWMReaderAdvanced *This,
 4008        WINBOOL *pfSelection);
 4009
 4010    HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
 4011        IWMReaderAdvanced *This,
 4012        WORD cStreamCount,
 4013        WORD *pwStreamNumbers,
 4014        WMT_STREAM_SELECTION *pSelections);
 4015
 4016    HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
 4017        IWMReaderAdvanced *This,
 4018        WORD wStreamNum,
 4019        WMT_STREAM_SELECTION *pSelection);
 4020
 4021    HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
 4022        IWMReaderAdvanced *This,
 4023        WINBOOL fGetCallbacks);
 4024
 4025    HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
 4026        IWMReaderAdvanced *This,
 4027        WINBOOL *pfGetCallbacks);
 4028
 4029    HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
 4030        IWMReaderAdvanced *This,
 4031        WORD wStreamNum,
 4032        WINBOOL fReceiveStreamSamples);
 4033
 4034    HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
 4035        IWMReaderAdvanced *This,
 4036        WORD wStreamNum,
 4037        WINBOOL *pfReceiveStreamSamples);
 4038
 4039    HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
 4040        IWMReaderAdvanced *This,
 4041        DWORD dwOutputNum,
 4042        WINBOOL fAllocate);
 4043
 4044    HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
 4045        IWMReaderAdvanced *This,
 4046        DWORD dwOutputNum,
 4047        WINBOOL *pfAllocate);
 4048
 4049    HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
 4050        IWMReaderAdvanced *This,
 4051        WORD wStreamNum,
 4052        WINBOOL fAllocate);
 4053
 4054    HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
 4055        IWMReaderAdvanced *This,
 4056        WORD dwStreamNum,
 4057        WINBOOL *pfAllocate);
 4058
 4059    HRESULT (STDMETHODCALLTYPE *GetStatistics)(
 4060        IWMReaderAdvanced *This,
 4061        WM_READER_STATISTICS *pStatistics);
 4062
 4063    HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
 4064        IWMReaderAdvanced *This,
 4065        WM_READER_CLIENTINFO *pClientInfo);
 4066
 4067    HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
 4068        IWMReaderAdvanced *This,
 4069        DWORD dwOutput,
 4070        DWORD *pcbMax);
 4071
 4072    HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
 4073        IWMReaderAdvanced *This,
 4074        WORD wStream,
 4075        DWORD *pcbMax);
 4076
 4077    HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
 4078        IWMReaderAdvanced *This,
 4079        QWORD cnsLateness);
 4080
 4081    END_INTERFACE
 4082} IWMReaderAdvancedVtbl;
 4083
 4084interface IWMReaderAdvanced {
 4085    CONST_VTBL IWMReaderAdvancedVtbl* lpVtbl;
 4086};
 4087
 4088#ifdef COBJMACROS
 4089#ifndef WIDL_C_INLINE_WRAPPERS
 4090/*** IUnknown methods ***/
 4091#define IWMReaderAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4092#define IWMReaderAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This)
 4093#define IWMReaderAdvanced_Release(This) (This)->lpVtbl->Release(This)
 4094/*** IWMReaderAdvanced methods ***/
 4095#define IWMReaderAdvanced_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
 4096#define IWMReaderAdvanced_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
 4097#define IWMReaderAdvanced_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
 4098#define IWMReaderAdvanced_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
 4099#define IWMReaderAdvanced_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
 4100#define IWMReaderAdvanced_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
 4101#define IWMReaderAdvanced_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
 4102#define IWMReaderAdvanced_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
 4103#define IWMReaderAdvanced_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
 4104#define IWMReaderAdvanced_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
 4105#define IWMReaderAdvanced_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
 4106#define IWMReaderAdvanced_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
 4107#define IWMReaderAdvanced_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
 4108#define IWMReaderAdvanced_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
 4109#define IWMReaderAdvanced_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
 4110#define IWMReaderAdvanced_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
 4111#define IWMReaderAdvanced_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
 4112#define IWMReaderAdvanced_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
 4113#define IWMReaderAdvanced_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
 4114#define IWMReaderAdvanced_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
 4115#else
 4116/*** IUnknown methods ***/
 4117static inline HRESULT IWMReaderAdvanced_QueryInterface(IWMReaderAdvanced* This,REFIID riid,void **ppvObject) {
 4118    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4119}
 4120static inline ULONG IWMReaderAdvanced_AddRef(IWMReaderAdvanced* This) {
 4121    return This->lpVtbl->AddRef(This);
 4122}
 4123static inline ULONG IWMReaderAdvanced_Release(IWMReaderAdvanced* This) {
 4124    return This->lpVtbl->Release(This);
 4125}
 4126/*** IWMReaderAdvanced methods ***/
 4127static inline HRESULT IWMReaderAdvanced_SetUserProvidedClock(IWMReaderAdvanced* This,WINBOOL fUserClock) {
 4128    return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
 4129}
 4130static inline HRESULT IWMReaderAdvanced_GetUserProvidedClock(IWMReaderAdvanced* This,WINBOOL *pfUserClock) {
 4131    return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
 4132}
 4133static inline HRESULT IWMReaderAdvanced_DeliverTime(IWMReaderAdvanced* This,QWORD cnsTime) {
 4134    return This->lpVtbl->DeliverTime(This,cnsTime);
 4135}
 4136static inline HRESULT IWMReaderAdvanced_SetManualStreamSelection(IWMReaderAdvanced* This,WINBOOL fSelection) {
 4137    return This->lpVtbl->SetManualStreamSelection(This,fSelection);
 4138}
 4139static inline HRESULT IWMReaderAdvanced_GetManualStreamSelection(IWMReaderAdvanced* This,WINBOOL *pfSelection) {
 4140    return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
 4141}
 4142static inline HRESULT IWMReaderAdvanced_SetStreamsSelected(IWMReaderAdvanced* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
 4143    return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
 4144}
 4145static inline HRESULT IWMReaderAdvanced_GetStreamSelected(IWMReaderAdvanced* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
 4146    return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
 4147}
 4148static inline HRESULT IWMReaderAdvanced_SetReceiveSelectionCallbacks(IWMReaderAdvanced* This,WINBOOL fGetCallbacks) {
 4149    return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
 4150}
 4151static inline HRESULT IWMReaderAdvanced_GetReceiveSelectionCallbacks(IWMReaderAdvanced* This,WINBOOL *pfGetCallbacks) {
 4152    return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
 4153}
 4154static inline HRESULT IWMReaderAdvanced_SetReceiveStreamSamples(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
 4155    return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
 4156}
 4157static inline HRESULT IWMReaderAdvanced_GetReceiveStreamSamples(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
 4158    return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
 4159}
 4160static inline HRESULT IWMReaderAdvanced_SetAllocateForOutput(IWMReaderAdvanced* This,DWORD dwOutputNum,WINBOOL fAllocate) {
 4161    return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
 4162}
 4163static inline HRESULT IWMReaderAdvanced_GetAllocateForOutput(IWMReaderAdvanced* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
 4164    return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
 4165}
 4166static inline HRESULT IWMReaderAdvanced_SetAllocateForStream(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL fAllocate) {
 4167    return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
 4168}
 4169static inline HRESULT IWMReaderAdvanced_GetAllocateForStream(IWMReaderAdvanced* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
 4170    return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
 4171}
 4172static inline HRESULT IWMReaderAdvanced_GetStatistics(IWMReaderAdvanced* This,WM_READER_STATISTICS *pStatistics) {
 4173    return This->lpVtbl->GetStatistics(This,pStatistics);
 4174}
 4175static inline HRESULT IWMReaderAdvanced_SetClientInfo(IWMReaderAdvanced* This,WM_READER_CLIENTINFO *pClientInfo) {
 4176    return This->lpVtbl->SetClientInfo(This,pClientInfo);
 4177}
 4178static inline HRESULT IWMReaderAdvanced_GetMaxOutputSampleSize(IWMReaderAdvanced* This,DWORD dwOutput,DWORD *pcbMax) {
 4179    return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
 4180}
 4181static inline HRESULT IWMReaderAdvanced_GetMaxStreamSampleSize(IWMReaderAdvanced* This,WORD wStream,DWORD *pcbMax) {
 4182    return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
 4183}
 4184static inline HRESULT IWMReaderAdvanced_NotifyLateDelivery(IWMReaderAdvanced* This,QWORD cnsLateness) {
 4185    return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
 4186}
 4187#endif
 4188#endif
 4189
 4190#endif
 4191
 4192
 4193#endif  /* __IWMReaderAdvanced_INTERFACE_DEFINED__ */
 4194
 4195/*****************************************************************************
 4196 * IWMReaderAdvanced2 interface
 4197 */
 4198#ifndef __IWMReaderAdvanced2_INTERFACE_DEFINED__
 4199#define __IWMReaderAdvanced2_INTERFACE_DEFINED__
 4200
 4201DEFINE_GUID(IID_IWMReaderAdvanced2, 0xae14a945, 0xb90c, 0x4d0d, 0x91,0x27, 0x80,0xd6,0x65,0xf7,0xd7,0x3e);
 4202#if defined(__cplusplus) && !defined(CINTERFACE)
 4203MIDL_INTERFACE("ae14a945-b90c-4d0d-9127-80d665f7d73e")
 4204IWMReaderAdvanced2 : public IWMReaderAdvanced
 4205{
 4206    virtual HRESULT STDMETHODCALLTYPE SetPlayMode(
 4207        WMT_PLAY_MODE Mode) = 0;
 4208
 4209    virtual HRESULT STDMETHODCALLTYPE GetPlayMode(
 4210        WMT_PLAY_MODE *pMode) = 0;
 4211
 4212    virtual HRESULT STDMETHODCALLTYPE GetBufferProgress(
 4213        DWORD *pdwPercent,
 4214        QWORD *pcnsBuffering) = 0;
 4215
 4216    virtual HRESULT STDMETHODCALLTYPE GetDownloadProgress(
 4217        DWORD *pdwPercent,
 4218        QWORD *pqwBytesDownloaded,
 4219        QWORD *pcnsDownload) = 0;
 4220
 4221    virtual HRESULT STDMETHODCALLTYPE GetSaveAsProgress(
 4222        DWORD *pdwPercent) = 0;
 4223
 4224    virtual HRESULT STDMETHODCALLTYPE SaveFileAs(
 4225        const WCHAR *pwszFilename) = 0;
 4226
 4227    virtual HRESULT STDMETHODCALLTYPE GetProtocolName(
 4228        WCHAR *pwszProtocol,
 4229        DWORD *pcchProtocol) = 0;
 4230
 4231    virtual HRESULT STDMETHODCALLTYPE StartAtMarker(
 4232        WORD wMarkerIndex,
 4233        QWORD cnsDuration,
 4234        float fRate,
 4235        void *pvContext) = 0;
 4236
 4237    virtual HRESULT STDMETHODCALLTYPE GetOutputSetting(
 4238        DWORD dwOutputNum,
 4239        LPCWSTR pszName,
 4240        WMT_ATTR_DATATYPE *pType,
 4241        BYTE *pValue,
 4242        WORD *pcbLength) = 0;
 4243
 4244    virtual HRESULT STDMETHODCALLTYPE SetOutputSetting(
 4245        DWORD dwOutputNum,
 4246        LPCWSTR pszName,
 4247        WMT_ATTR_DATATYPE Type,
 4248        const BYTE *pValue,
 4249        WORD cbLength) = 0;
 4250
 4251    virtual HRESULT STDMETHODCALLTYPE Preroll(
 4252        QWORD cnsStart,
 4253        QWORD cnsDuration,
 4254        float fRate) = 0;
 4255
 4256    virtual HRESULT STDMETHODCALLTYPE SetLogClientID(
 4257        WINBOOL fLogClientID) = 0;
 4258
 4259    virtual HRESULT STDMETHODCALLTYPE GetLogClientID(
 4260        WINBOOL *pfLogClientID) = 0;
 4261
 4262    virtual HRESULT STDMETHODCALLTYPE StopBuffering(
 4263        ) = 0;
 4264
 4265    virtual HRESULT STDMETHODCALLTYPE OpenStream(
 4266        IStream *pStream,
 4267        IWMReaderCallback *pCallback,
 4268        void *pvContext) = 0;
 4269
 4270};
 4271#ifdef __CRT_UUID_DECL
 4272__CRT_UUID_DECL(IWMReaderAdvanced2, 0xae14a945, 0xb90c, 0x4d0d, 0x91,0x27, 0x80,0xd6,0x65,0xf7,0xd7,0x3e)
 4273#endif
 4274#else
 4275typedef struct IWMReaderAdvanced2Vtbl {
 4276    BEGIN_INTERFACE
 4277
 4278    /*** IUnknown methods ***/
 4279    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4280        IWMReaderAdvanced2 *This,
 4281        REFIID riid,
 4282        void **ppvObject);
 4283
 4284    ULONG (STDMETHODCALLTYPE *AddRef)(
 4285        IWMReaderAdvanced2 *This);
 4286
 4287    ULONG (STDMETHODCALLTYPE *Release)(
 4288        IWMReaderAdvanced2 *This);
 4289
 4290    /*** IWMReaderAdvanced methods ***/
 4291    HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
 4292        IWMReaderAdvanced2 *This,
 4293        WINBOOL fUserClock);
 4294
 4295    HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
 4296        IWMReaderAdvanced2 *This,
 4297        WINBOOL *pfUserClock);
 4298
 4299    HRESULT (STDMETHODCALLTYPE *DeliverTime)(
 4300        IWMReaderAdvanced2 *This,
 4301        QWORD cnsTime);
 4302
 4303    HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
 4304        IWMReaderAdvanced2 *This,
 4305        WINBOOL fSelection);
 4306
 4307    HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
 4308        IWMReaderAdvanced2 *This,
 4309        WINBOOL *pfSelection);
 4310
 4311    HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
 4312        IWMReaderAdvanced2 *This,
 4313        WORD cStreamCount,
 4314        WORD *pwStreamNumbers,
 4315        WMT_STREAM_SELECTION *pSelections);
 4316
 4317    HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
 4318        IWMReaderAdvanced2 *This,
 4319        WORD wStreamNum,
 4320        WMT_STREAM_SELECTION *pSelection);
 4321
 4322    HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
 4323        IWMReaderAdvanced2 *This,
 4324        WINBOOL fGetCallbacks);
 4325
 4326    HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
 4327        IWMReaderAdvanced2 *This,
 4328        WINBOOL *pfGetCallbacks);
 4329
 4330    HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
 4331        IWMReaderAdvanced2 *This,
 4332        WORD wStreamNum,
 4333        WINBOOL fReceiveStreamSamples);
 4334
 4335    HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
 4336        IWMReaderAdvanced2 *This,
 4337        WORD wStreamNum,
 4338        WINBOOL *pfReceiveStreamSamples);
 4339
 4340    HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
 4341        IWMReaderAdvanced2 *This,
 4342        DWORD dwOutputNum,
 4343        WINBOOL fAllocate);
 4344
 4345    HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
 4346        IWMReaderAdvanced2 *This,
 4347        DWORD dwOutputNum,
 4348        WINBOOL *pfAllocate);
 4349
 4350    HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
 4351        IWMReaderAdvanced2 *This,
 4352        WORD wStreamNum,
 4353        WINBOOL fAllocate);
 4354
 4355    HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
 4356        IWMReaderAdvanced2 *This,
 4357        WORD dwStreamNum,
 4358        WINBOOL *pfAllocate);
 4359
 4360    HRESULT (STDMETHODCALLTYPE *GetStatistics)(
 4361        IWMReaderAdvanced2 *This,
 4362        WM_READER_STATISTICS *pStatistics);
 4363
 4364    HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
 4365        IWMReaderAdvanced2 *This,
 4366        WM_READER_CLIENTINFO *pClientInfo);
 4367
 4368    HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
 4369        IWMReaderAdvanced2 *This,
 4370        DWORD dwOutput,
 4371        DWORD *pcbMax);
 4372
 4373    HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
 4374        IWMReaderAdvanced2 *This,
 4375        WORD wStream,
 4376        DWORD *pcbMax);
 4377
 4378    HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
 4379        IWMReaderAdvanced2 *This,
 4380        QWORD cnsLateness);
 4381
 4382    /*** IWMReaderAdvanced2 methods ***/
 4383    HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
 4384        IWMReaderAdvanced2 *This,
 4385        WMT_PLAY_MODE Mode);
 4386
 4387    HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
 4388        IWMReaderAdvanced2 *This,
 4389        WMT_PLAY_MODE *pMode);
 4390
 4391    HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
 4392        IWMReaderAdvanced2 *This,
 4393        DWORD *pdwPercent,
 4394        QWORD *pcnsBuffering);
 4395
 4396    HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
 4397        IWMReaderAdvanced2 *This,
 4398        DWORD *pdwPercent,
 4399        QWORD *pqwBytesDownloaded,
 4400        QWORD *pcnsDownload);
 4401
 4402    HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
 4403        IWMReaderAdvanced2 *This,
 4404        DWORD *pdwPercent);
 4405
 4406    HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
 4407        IWMReaderAdvanced2 *This,
 4408        const WCHAR *pwszFilename);
 4409
 4410    HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
 4411        IWMReaderAdvanced2 *This,
 4412        WCHAR *pwszProtocol,
 4413        DWORD *pcchProtocol);
 4414
 4415    HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
 4416        IWMReaderAdvanced2 *This,
 4417        WORD wMarkerIndex,
 4418        QWORD cnsDuration,
 4419        float fRate,
 4420        void *pvContext);
 4421
 4422    HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
 4423        IWMReaderAdvanced2 *This,
 4424        DWORD dwOutputNum,
 4425        LPCWSTR pszName,
 4426        WMT_ATTR_DATATYPE *pType,
 4427        BYTE *pValue,
 4428        WORD *pcbLength);
 4429
 4430    HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
 4431        IWMReaderAdvanced2 *This,
 4432        DWORD dwOutputNum,
 4433        LPCWSTR pszName,
 4434        WMT_ATTR_DATATYPE Type,
 4435        const BYTE *pValue,
 4436        WORD cbLength);
 4437
 4438    HRESULT (STDMETHODCALLTYPE *Preroll)(
 4439        IWMReaderAdvanced2 *This,
 4440        QWORD cnsStart,
 4441        QWORD cnsDuration,
 4442        float fRate);
 4443
 4444    HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
 4445        IWMReaderAdvanced2 *This,
 4446        WINBOOL fLogClientID);
 4447
 4448    HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
 4449        IWMReaderAdvanced2 *This,
 4450        WINBOOL *pfLogClientID);
 4451
 4452    HRESULT (STDMETHODCALLTYPE *StopBuffering)(
 4453        IWMReaderAdvanced2 *This);
 4454
 4455    HRESULT (STDMETHODCALLTYPE *OpenStream)(
 4456        IWMReaderAdvanced2 *This,
 4457        IStream *pStream,
 4458        IWMReaderCallback *pCallback,
 4459        void *pvContext);
 4460
 4461    END_INTERFACE
 4462} IWMReaderAdvanced2Vtbl;
 4463
 4464interface IWMReaderAdvanced2 {
 4465    CONST_VTBL IWMReaderAdvanced2Vtbl* lpVtbl;
 4466};
 4467
 4468#ifdef COBJMACROS
 4469#ifndef WIDL_C_INLINE_WRAPPERS
 4470/*** IUnknown methods ***/
 4471#define IWMReaderAdvanced2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4472#define IWMReaderAdvanced2_AddRef(This) (This)->lpVtbl->AddRef(This)
 4473#define IWMReaderAdvanced2_Release(This) (This)->lpVtbl->Release(This)
 4474/*** IWMReaderAdvanced methods ***/
 4475#define IWMReaderAdvanced2_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
 4476#define IWMReaderAdvanced2_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
 4477#define IWMReaderAdvanced2_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
 4478#define IWMReaderAdvanced2_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
 4479#define IWMReaderAdvanced2_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
 4480#define IWMReaderAdvanced2_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
 4481#define IWMReaderAdvanced2_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
 4482#define IWMReaderAdvanced2_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
 4483#define IWMReaderAdvanced2_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
 4484#define IWMReaderAdvanced2_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
 4485#define IWMReaderAdvanced2_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
 4486#define IWMReaderAdvanced2_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
 4487#define IWMReaderAdvanced2_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
 4488#define IWMReaderAdvanced2_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
 4489#define IWMReaderAdvanced2_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
 4490#define IWMReaderAdvanced2_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
 4491#define IWMReaderAdvanced2_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
 4492#define IWMReaderAdvanced2_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
 4493#define IWMReaderAdvanced2_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
 4494#define IWMReaderAdvanced2_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
 4495/*** IWMReaderAdvanced2 methods ***/
 4496#define IWMReaderAdvanced2_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
 4497#define IWMReaderAdvanced2_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
 4498#define IWMReaderAdvanced2_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
 4499#define IWMReaderAdvanced2_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
 4500#define IWMReaderAdvanced2_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
 4501#define IWMReaderAdvanced2_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
 4502#define IWMReaderAdvanced2_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
 4503#define IWMReaderAdvanced2_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
 4504#define IWMReaderAdvanced2_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
 4505#define IWMReaderAdvanced2_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
 4506#define IWMReaderAdvanced2_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
 4507#define IWMReaderAdvanced2_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
 4508#define IWMReaderAdvanced2_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
 4509#define IWMReaderAdvanced2_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
 4510#define IWMReaderAdvanced2_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
 4511#else
 4512/*** IUnknown methods ***/
 4513static inline HRESULT IWMReaderAdvanced2_QueryInterface(IWMReaderAdvanced2* This,REFIID riid,void **ppvObject) {
 4514    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4515}
 4516static inline ULONG IWMReaderAdvanced2_AddRef(IWMReaderAdvanced2* This) {
 4517    return This->lpVtbl->AddRef(This);
 4518}
 4519static inline ULONG IWMReaderAdvanced2_Release(IWMReaderAdvanced2* This) {
 4520    return This->lpVtbl->Release(This);
 4521}
 4522/*** IWMReaderAdvanced methods ***/
 4523static inline HRESULT IWMReaderAdvanced2_SetUserProvidedClock(IWMReaderAdvanced2* This,WINBOOL fUserClock) {
 4524    return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
 4525}
 4526static inline HRESULT IWMReaderAdvanced2_GetUserProvidedClock(IWMReaderAdvanced2* This,WINBOOL *pfUserClock) {
 4527    return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
 4528}
 4529static inline HRESULT IWMReaderAdvanced2_DeliverTime(IWMReaderAdvanced2* This,QWORD cnsTime) {
 4530    return This->lpVtbl->DeliverTime(This,cnsTime);
 4531}
 4532static inline HRESULT IWMReaderAdvanced2_SetManualStreamSelection(IWMReaderAdvanced2* This,WINBOOL fSelection) {
 4533    return This->lpVtbl->SetManualStreamSelection(This,fSelection);
 4534}
 4535static inline HRESULT IWMReaderAdvanced2_GetManualStreamSelection(IWMReaderAdvanced2* This,WINBOOL *pfSelection) {
 4536    return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
 4537}
 4538static inline HRESULT IWMReaderAdvanced2_SetStreamsSelected(IWMReaderAdvanced2* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
 4539    return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
 4540}
 4541static inline HRESULT IWMReaderAdvanced2_GetStreamSelected(IWMReaderAdvanced2* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
 4542    return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
 4543}
 4544static inline HRESULT IWMReaderAdvanced2_SetReceiveSelectionCallbacks(IWMReaderAdvanced2* This,WINBOOL fGetCallbacks) {
 4545    return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
 4546}
 4547static inline HRESULT IWMReaderAdvanced2_GetReceiveSelectionCallbacks(IWMReaderAdvanced2* This,WINBOOL *pfGetCallbacks) {
 4548    return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
 4549}
 4550static inline HRESULT IWMReaderAdvanced2_SetReceiveStreamSamples(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
 4551    return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
 4552}
 4553static inline HRESULT IWMReaderAdvanced2_GetReceiveStreamSamples(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
 4554    return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
 4555}
 4556static inline HRESULT IWMReaderAdvanced2_SetAllocateForOutput(IWMReaderAdvanced2* This,DWORD dwOutputNum,WINBOOL fAllocate) {
 4557    return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
 4558}
 4559static inline HRESULT IWMReaderAdvanced2_GetAllocateForOutput(IWMReaderAdvanced2* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
 4560    return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
 4561}
 4562static inline HRESULT IWMReaderAdvanced2_SetAllocateForStream(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL fAllocate) {
 4563    return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
 4564}
 4565static inline HRESULT IWMReaderAdvanced2_GetAllocateForStream(IWMReaderAdvanced2* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
 4566    return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
 4567}
 4568static inline HRESULT IWMReaderAdvanced2_GetStatistics(IWMReaderAdvanced2* This,WM_READER_STATISTICS *pStatistics) {
 4569    return This->lpVtbl->GetStatistics(This,pStatistics);
 4570}
 4571static inline HRESULT IWMReaderAdvanced2_SetClientInfo(IWMReaderAdvanced2* This,WM_READER_CLIENTINFO *pClientInfo) {
 4572    return This->lpVtbl->SetClientInfo(This,pClientInfo);
 4573}
 4574static inline HRESULT IWMReaderAdvanced2_GetMaxOutputSampleSize(IWMReaderAdvanced2* This,DWORD dwOutput,DWORD *pcbMax) {
 4575    return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
 4576}
 4577static inline HRESULT IWMReaderAdvanced2_GetMaxStreamSampleSize(IWMReaderAdvanced2* This,WORD wStream,DWORD *pcbMax) {
 4578    return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
 4579}
 4580static inline HRESULT IWMReaderAdvanced2_NotifyLateDelivery(IWMReaderAdvanced2* This,QWORD cnsLateness) {
 4581    return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
 4582}
 4583/*** IWMReaderAdvanced2 methods ***/
 4584static inline HRESULT IWMReaderAdvanced2_SetPlayMode(IWMReaderAdvanced2* This,WMT_PLAY_MODE Mode) {
 4585    return This->lpVtbl->SetPlayMode(This,Mode);
 4586}
 4587static inline HRESULT IWMReaderAdvanced2_GetPlayMode(IWMReaderAdvanced2* This,WMT_PLAY_MODE *pMode) {
 4588    return This->lpVtbl->GetPlayMode(This,pMode);
 4589}
 4590static inline HRESULT IWMReaderAdvanced2_GetBufferProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
 4591    return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
 4592}
 4593static inline HRESULT IWMReaderAdvanced2_GetDownloadProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
 4594    return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
 4595}
 4596static inline HRESULT IWMReaderAdvanced2_GetSaveAsProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent) {
 4597    return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
 4598}
 4599static inline HRESULT IWMReaderAdvanced2_SaveFileAs(IWMReaderAdvanced2* This,const WCHAR *pwszFilename) {
 4600    return This->lpVtbl->SaveFileAs(This,pwszFilename);
 4601}
 4602static inline HRESULT IWMReaderAdvanced2_GetProtocolName(IWMReaderAdvanced2* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
 4603    return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
 4604}
 4605static inline HRESULT IWMReaderAdvanced2_StartAtMarker(IWMReaderAdvanced2* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
 4606    return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
 4607}
 4608static inline HRESULT IWMReaderAdvanced2_GetOutputSetting(IWMReaderAdvanced2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
 4609    return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
 4610}
 4611static inline HRESULT IWMReaderAdvanced2_SetOutputSetting(IWMReaderAdvanced2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
 4612    return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
 4613}
 4614static inline HRESULT IWMReaderAdvanced2_Preroll(IWMReaderAdvanced2* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
 4615    return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
 4616}
 4617static inline HRESULT IWMReaderAdvanced2_SetLogClientID(IWMReaderAdvanced2* This,WINBOOL fLogClientID) {
 4618    return This->lpVtbl->SetLogClientID(This,fLogClientID);
 4619}
 4620static inline HRESULT IWMReaderAdvanced2_GetLogClientID(IWMReaderAdvanced2* This,WINBOOL *pfLogClientID) {
 4621    return This->lpVtbl->GetLogClientID(This,pfLogClientID);
 4622}
 4623static inline HRESULT IWMReaderAdvanced2_StopBuffering(IWMReaderAdvanced2* This) {
 4624    return This->lpVtbl->StopBuffering(This);
 4625}
 4626static inline HRESULT IWMReaderAdvanced2_OpenStream(IWMReaderAdvanced2* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
 4627    return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
 4628}
 4629#endif
 4630#endif
 4631
 4632#endif
 4633
 4634
 4635#endif  /* __IWMReaderAdvanced2_INTERFACE_DEFINED__ */
 4636
 4637/*****************************************************************************
 4638 * IWMReaderAdvanced3 interface
 4639 */
 4640#ifndef __IWMReaderAdvanced3_INTERFACE_DEFINED__
 4641#define __IWMReaderAdvanced3_INTERFACE_DEFINED__
 4642
 4643DEFINE_GUID(IID_IWMReaderAdvanced3, 0x5dc0674b, 0xf04b, 0x4a4e, 0x9f,0x2a, 0xb1,0xaf,0xde,0x2c,0x81,0x00);
 4644#if defined(__cplusplus) && !defined(CINTERFACE)
 4645MIDL_INTERFACE("5dc0674b-f04b-4a4e-9f2a-b1afde2c8100")
 4646IWMReaderAdvanced3 : public IWMReaderAdvanced2
 4647{
 4648    virtual HRESULT STDMETHODCALLTYPE StopNetStreaming(
 4649        ) = 0;
 4650
 4651    virtual HRESULT STDMETHODCALLTYPE StartAtPosition(
 4652        WORD wStreamNum,
 4653        void *pvOffsetStart,
 4654        void *pvDuration,
 4655        WMT_OFFSET_FORMAT dwOffsetFormat,
 4656        float fRate,
 4657        void *pvContext) = 0;
 4658
 4659};
 4660#ifdef __CRT_UUID_DECL
 4661__CRT_UUID_DECL(IWMReaderAdvanced3, 0x5dc0674b, 0xf04b, 0x4a4e, 0x9f,0x2a, 0xb1,0xaf,0xde,0x2c,0x81,0x00)
 4662#endif
 4663#else
 4664typedef struct IWMReaderAdvanced3Vtbl {
 4665    BEGIN_INTERFACE
 4666
 4667    /*** IUnknown methods ***/
 4668    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4669        IWMReaderAdvanced3 *This,
 4670        REFIID riid,
 4671        void **ppvObject);
 4672
 4673    ULONG (STDMETHODCALLTYPE *AddRef)(
 4674        IWMReaderAdvanced3 *This);
 4675
 4676    ULONG (STDMETHODCALLTYPE *Release)(
 4677        IWMReaderAdvanced3 *This);
 4678
 4679    /*** IWMReaderAdvanced methods ***/
 4680    HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
 4681        IWMReaderAdvanced3 *This,
 4682        WINBOOL fUserClock);
 4683
 4684    HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
 4685        IWMReaderAdvanced3 *This,
 4686        WINBOOL *pfUserClock);
 4687
 4688    HRESULT (STDMETHODCALLTYPE *DeliverTime)(
 4689        IWMReaderAdvanced3 *This,
 4690        QWORD cnsTime);
 4691
 4692    HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
 4693        IWMReaderAdvanced3 *This,
 4694        WINBOOL fSelection);
 4695
 4696    HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
 4697        IWMReaderAdvanced3 *This,
 4698        WINBOOL *pfSelection);
 4699
 4700    HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
 4701        IWMReaderAdvanced3 *This,
 4702        WORD cStreamCount,
 4703        WORD *pwStreamNumbers,
 4704        WMT_STREAM_SELECTION *pSelections);
 4705
 4706    HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
 4707        IWMReaderAdvanced3 *This,
 4708        WORD wStreamNum,
 4709        WMT_STREAM_SELECTION *pSelection);
 4710
 4711    HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
 4712        IWMReaderAdvanced3 *This,
 4713        WINBOOL fGetCallbacks);
 4714
 4715    HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
 4716        IWMReaderAdvanced3 *This,
 4717        WINBOOL *pfGetCallbacks);
 4718
 4719    HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
 4720        IWMReaderAdvanced3 *This,
 4721        WORD wStreamNum,
 4722        WINBOOL fReceiveStreamSamples);
 4723
 4724    HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
 4725        IWMReaderAdvanced3 *This,
 4726        WORD wStreamNum,
 4727        WINBOOL *pfReceiveStreamSamples);
 4728
 4729    HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
 4730        IWMReaderAdvanced3 *This,
 4731        DWORD dwOutputNum,
 4732        WINBOOL fAllocate);
 4733
 4734    HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
 4735        IWMReaderAdvanced3 *This,
 4736        DWORD dwOutputNum,
 4737        WINBOOL *pfAllocate);
 4738
 4739    HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
 4740        IWMReaderAdvanced3 *This,
 4741        WORD wStreamNum,
 4742        WINBOOL fAllocate);
 4743
 4744    HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
 4745        IWMReaderAdvanced3 *This,
 4746        WORD dwStreamNum,
 4747        WINBOOL *pfAllocate);
 4748
 4749    HRESULT (STDMETHODCALLTYPE *GetStatistics)(
 4750        IWMReaderAdvanced3 *This,
 4751        WM_READER_STATISTICS *pStatistics);
 4752
 4753    HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
 4754        IWMReaderAdvanced3 *This,
 4755        WM_READER_CLIENTINFO *pClientInfo);
 4756
 4757    HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
 4758        IWMReaderAdvanced3 *This,
 4759        DWORD dwOutput,
 4760        DWORD *pcbMax);
 4761
 4762    HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
 4763        IWMReaderAdvanced3 *This,
 4764        WORD wStream,
 4765        DWORD *pcbMax);
 4766
 4767    HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
 4768        IWMReaderAdvanced3 *This,
 4769        QWORD cnsLateness);
 4770
 4771    /*** IWMReaderAdvanced2 methods ***/
 4772    HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
 4773        IWMReaderAdvanced3 *This,
 4774        WMT_PLAY_MODE Mode);
 4775
 4776    HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
 4777        IWMReaderAdvanced3 *This,
 4778        WMT_PLAY_MODE *pMode);
 4779
 4780    HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
 4781        IWMReaderAdvanced3 *This,
 4782        DWORD *pdwPercent,
 4783        QWORD *pcnsBuffering);
 4784
 4785    HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
 4786        IWMReaderAdvanced3 *This,
 4787        DWORD *pdwPercent,
 4788        QWORD *pqwBytesDownloaded,
 4789        QWORD *pcnsDownload);
 4790
 4791    HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
 4792        IWMReaderAdvanced3 *This,
 4793        DWORD *pdwPercent);
 4794
 4795    HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
 4796        IWMReaderAdvanced3 *This,
 4797        const WCHAR *pwszFilename);
 4798
 4799    HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
 4800        IWMReaderAdvanced3 *This,
 4801        WCHAR *pwszProtocol,
 4802        DWORD *pcchProtocol);
 4803
 4804    HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
 4805        IWMReaderAdvanced3 *This,
 4806        WORD wMarkerIndex,
 4807        QWORD cnsDuration,
 4808        float fRate,
 4809        void *pvContext);
 4810
 4811    HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
 4812        IWMReaderAdvanced3 *This,
 4813        DWORD dwOutputNum,
 4814        LPCWSTR pszName,
 4815        WMT_ATTR_DATATYPE *pType,
 4816        BYTE *pValue,
 4817        WORD *pcbLength);
 4818
 4819    HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
 4820        IWMReaderAdvanced3 *This,
 4821        DWORD dwOutputNum,
 4822        LPCWSTR pszName,
 4823        WMT_ATTR_DATATYPE Type,
 4824        const BYTE *pValue,
 4825        WORD cbLength);
 4826
 4827    HRESULT (STDMETHODCALLTYPE *Preroll)(
 4828        IWMReaderAdvanced3 *This,
 4829        QWORD cnsStart,
 4830        QWORD cnsDuration,
 4831        float fRate);
 4832
 4833    HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
 4834        IWMReaderAdvanced3 *This,
 4835        WINBOOL fLogClientID);
 4836
 4837    HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
 4838        IWMReaderAdvanced3 *This,
 4839        WINBOOL *pfLogClientID);
 4840
 4841    HRESULT (STDMETHODCALLTYPE *StopBuffering)(
 4842        IWMReaderAdvanced3 *This);
 4843
 4844    HRESULT (STDMETHODCALLTYPE *OpenStream)(
 4845        IWMReaderAdvanced3 *This,
 4846        IStream *pStream,
 4847        IWMReaderCallback *pCallback,
 4848        void *pvContext);
 4849
 4850    /*** IWMReaderAdvanced3 methods ***/
 4851    HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
 4852        IWMReaderAdvanced3 *This);
 4853
 4854    HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
 4855        IWMReaderAdvanced3 *This,
 4856        WORD wStreamNum,
 4857        void *pvOffsetStart,
 4858        void *pvDuration,
 4859        WMT_OFFSET_FORMAT dwOffsetFormat,
 4860        float fRate,
 4861        void *pvContext);
 4862
 4863    END_INTERFACE
 4864} IWMReaderAdvanced3Vtbl;
 4865
 4866interface IWMReaderAdvanced3 {
 4867    CONST_VTBL IWMReaderAdvanced3Vtbl* lpVtbl;
 4868};
 4869
 4870#ifdef COBJMACROS
 4871#ifndef WIDL_C_INLINE_WRAPPERS
 4872/*** IUnknown methods ***/
 4873#define IWMReaderAdvanced3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4874#define IWMReaderAdvanced3_AddRef(This) (This)->lpVtbl->AddRef(This)
 4875#define IWMReaderAdvanced3_Release(This) (This)->lpVtbl->Release(This)
 4876/*** IWMReaderAdvanced methods ***/
 4877#define IWMReaderAdvanced3_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
 4878#define IWMReaderAdvanced3_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
 4879#define IWMReaderAdvanced3_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
 4880#define IWMReaderAdvanced3_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
 4881#define IWMReaderAdvanced3_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
 4882#define IWMReaderAdvanced3_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
 4883#define IWMReaderAdvanced3_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
 4884#define IWMReaderAdvanced3_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
 4885#define IWMReaderAdvanced3_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
 4886#define IWMReaderAdvanced3_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
 4887#define IWMReaderAdvanced3_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
 4888#define IWMReaderAdvanced3_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
 4889#define IWMReaderAdvanced3_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
 4890#define IWMReaderAdvanced3_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
 4891#define IWMReaderAdvanced3_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
 4892#define IWMReaderAdvanced3_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
 4893#define IWMReaderAdvanced3_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
 4894#define IWMReaderAdvanced3_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
 4895#define IWMReaderAdvanced3_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
 4896#define IWMReaderAdvanced3_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
 4897/*** IWMReaderAdvanced2 methods ***/
 4898#define IWMReaderAdvanced3_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
 4899#define IWMReaderAdvanced3_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
 4900#define IWMReaderAdvanced3_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
 4901#define IWMReaderAdvanced3_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
 4902#define IWMReaderAdvanced3_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
 4903#define IWMReaderAdvanced3_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
 4904#define IWMReaderAdvanced3_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
 4905#define IWMReaderAdvanced3_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
 4906#define IWMReaderAdvanced3_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
 4907#define IWMReaderAdvanced3_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
 4908#define IWMReaderAdvanced3_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
 4909#define IWMReaderAdvanced3_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
 4910#define IWMReaderAdvanced3_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
 4911#define IWMReaderAdvanced3_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
 4912#define IWMReaderAdvanced3_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
 4913/*** IWMReaderAdvanced3 methods ***/
 4914#define IWMReaderAdvanced3_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
 4915#define IWMReaderAdvanced3_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
 4916#else
 4917/*** IUnknown methods ***/
 4918static inline HRESULT IWMReaderAdvanced3_QueryInterface(IWMReaderAdvanced3* This,REFIID riid,void **ppvObject) {
 4919    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4920}
 4921static inline ULONG IWMReaderAdvanced3_AddRef(IWMReaderAdvanced3* This) {
 4922    return This->lpVtbl->AddRef(This);
 4923}
 4924static inline ULONG IWMReaderAdvanced3_Release(IWMReaderAdvanced3* This) {
 4925    return This->lpVtbl->Release(This);
 4926}
 4927/*** IWMReaderAdvanced methods ***/
 4928static inline HRESULT IWMReaderAdvanced3_SetUserProvidedClock(IWMReaderAdvanced3* This,WINBOOL fUserClock) {
 4929    return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
 4930}
 4931static inline HRESULT IWMReaderAdvanced3_GetUserProvidedClock(IWMReaderAdvanced3* This,WINBOOL *pfUserClock) {
 4932    return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
 4933}
 4934static inline HRESULT IWMReaderAdvanced3_DeliverTime(IWMReaderAdvanced3* This,QWORD cnsTime) {
 4935    return This->lpVtbl->DeliverTime(This,cnsTime);
 4936}
 4937static inline HRESULT IWMReaderAdvanced3_SetManualStreamSelection(IWMReaderAdvanced3* This,WINBOOL fSelection) {
 4938    return This->lpVtbl->SetManualStreamSelection(This,fSelection);
 4939}
 4940static inline HRESULT IWMReaderAdvanced3_GetManualStreamSelection(IWMReaderAdvanced3* This,WINBOOL *pfSelection) {
 4941    return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
 4942}
 4943static inline HRESULT IWMReaderAdvanced3_SetStreamsSelected(IWMReaderAdvanced3* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
 4944    return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
 4945}
 4946static inline HRESULT IWMReaderAdvanced3_GetStreamSelected(IWMReaderAdvanced3* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
 4947    return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
 4948}
 4949static inline HRESULT IWMReaderAdvanced3_SetReceiveSelectionCallbacks(IWMReaderAdvanced3* This,WINBOOL fGetCallbacks) {
 4950    return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
 4951}
 4952static inline HRESULT IWMReaderAdvanced3_GetReceiveSelectionCallbacks(IWMReaderAdvanced3* This,WINBOOL *pfGetCallbacks) {
 4953    return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
 4954}
 4955static inline HRESULT IWMReaderAdvanced3_SetReceiveStreamSamples(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
 4956    return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
 4957}
 4958static inline HRESULT IWMReaderAdvanced3_GetReceiveStreamSamples(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
 4959    return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
 4960}
 4961static inline HRESULT IWMReaderAdvanced3_SetAllocateForOutput(IWMReaderAdvanced3* This,DWORD dwOutputNum,WINBOOL fAllocate) {
 4962    return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
 4963}
 4964static inline HRESULT IWMReaderAdvanced3_GetAllocateForOutput(IWMReaderAdvanced3* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
 4965    return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
 4966}
 4967static inline HRESULT IWMReaderAdvanced3_SetAllocateForStream(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL fAllocate) {
 4968    return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
 4969}
 4970static inline HRESULT IWMReaderAdvanced3_GetAllocateForStream(IWMReaderAdvanced3* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
 4971    return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
 4972}
 4973static inline HRESULT IWMReaderAdvanced3_GetStatistics(IWMReaderAdvanced3* This,WM_READER_STATISTICS *pStatistics) {
 4974    return This->lpVtbl->GetStatistics(This,pStatistics);
 4975}
 4976static inline HRESULT IWMReaderAdvanced3_SetClientInfo(IWMReaderAdvanced3* This,WM_READER_CLIENTINFO *pClientInfo) {
 4977    return This->lpVtbl->SetClientInfo(This,pClientInfo);
 4978}
 4979static inline HRESULT IWMReaderAdvanced3_GetMaxOutputSampleSize(IWMReaderAdvanced3* This,DWORD dwOutput,DWORD *pcbMax) {
 4980    return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
 4981}
 4982static inline HRESULT IWMReaderAdvanced3_GetMaxStreamSampleSize(IWMReaderAdvanced3* This,WORD wStream,DWORD *pcbMax) {
 4983    return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
 4984}
 4985static inline HRESULT IWMReaderAdvanced3_NotifyLateDelivery(IWMReaderAdvanced3* This,QWORD cnsLateness) {
 4986    return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
 4987}
 4988/*** IWMReaderAdvanced2 methods ***/
 4989static inline HRESULT IWMReaderAdvanced3_SetPlayMode(IWMReaderAdvanced3* This,WMT_PLAY_MODE Mode) {
 4990    return This->lpVtbl->SetPlayMode(This,Mode);
 4991}
 4992static inline HRESULT IWMReaderAdvanced3_GetPlayMode(IWMReaderAdvanced3* This,WMT_PLAY_MODE *pMode) {
 4993    return This->lpVtbl->GetPlayMode(This,pMode);
 4994}
 4995static inline HRESULT IWMReaderAdvanced3_GetBufferProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
 4996    return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
 4997}
 4998static inline HRESULT IWMReaderAdvanced3_GetDownloadProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
 4999    return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
 5000}
 5001static inline HRESULT IWMReaderAdvanced3_GetSaveAsProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent) {
 5002    return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
 5003}
 5004static inline HRESULT IWMReaderAdvanced3_SaveFileAs(IWMReaderAdvanced3* This,const WCHAR *pwszFilename) {
 5005    return This->lpVtbl->SaveFileAs(This,pwszFilename);
 5006}
 5007static inline HRESULT IWMReaderAdvanced3_GetProtocolName(IWMReaderAdvanced3* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
 5008    return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
 5009}
 5010static inline HRESULT IWMReaderAdvanced3_StartAtMarker(IWMReaderAdvanced3* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
 5011    return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
 5012}
 5013static inline HRESULT IWMReaderAdvanced3_GetOutputSetting(IWMReaderAdvanced3* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
 5014    return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
 5015}
 5016static inline HRESULT IWMReaderAdvanced3_SetOutputSetting(IWMReaderAdvanced3* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
 5017    return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
 5018}
 5019static inline HRESULT IWMReaderAdvanced3_Preroll(IWMReaderAdvanced3* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
 5020    return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
 5021}
 5022static inline HRESULT IWMReaderAdvanced3_SetLogClientID(IWMReaderAdvanced3* This,WINBOOL fLogClientID) {
 5023    return This->lpVtbl->SetLogClientID(This,fLogClientID);
 5024}
 5025static inline HRESULT IWMReaderAdvanced3_GetLogClientID(IWMReaderAdvanced3* This,WINBOOL *pfLogClientID) {
 5026    return This->lpVtbl->GetLogClientID(This,pfLogClientID);
 5027}
 5028static inline HRESULT IWMReaderAdvanced3_StopBuffering(IWMReaderAdvanced3* This) {
 5029    return This->lpVtbl->StopBuffering(This);
 5030}
 5031static inline HRESULT IWMReaderAdvanced3_OpenStream(IWMReaderAdvanced3* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
 5032    return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
 5033}
 5034/*** IWMReaderAdvanced3 methods ***/
 5035static inline HRESULT IWMReaderAdvanced3_StopNetStreaming(IWMReaderAdvanced3* This) {
 5036    return This->lpVtbl->StopNetStreaming(This);
 5037}
 5038static inline HRESULT IWMReaderAdvanced3_StartAtPosition(IWMReaderAdvanced3* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
 5039    return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
 5040}
 5041#endif
 5042#endif
 5043
 5044#endif
 5045
 5046
 5047#endif  /* __IWMReaderAdvanced3_INTERFACE_DEFINED__ */
 5048
 5049/*****************************************************************************
 5050 * IWMReaderAdvanced4 interface
 5051 */
 5052#ifndef __IWMReaderAdvanced4_INTERFACE_DEFINED__
 5053#define __IWMReaderAdvanced4_INTERFACE_DEFINED__
 5054
 5055DEFINE_GUID(IID_IWMReaderAdvanced4, 0x945a76a2, 0x12ae, 0x4d48, 0xbd,0x3c, 0xcd,0x1d,0x90,0x39,0x9b,0x85);
 5056#if defined(__cplusplus) && !defined(CINTERFACE)
 5057MIDL_INTERFACE("945a76a2-12ae-4d48-bd3c-cd1d90399b85")
 5058IWMReaderAdvanced4 : public IWMReaderAdvanced3
 5059{
 5060    virtual HRESULT STDMETHODCALLTYPE GetLanguageCount(
 5061        DWORD dwOutputNum,
 5062        WORD *pwLanguageCount) = 0;
 5063
 5064    virtual HRESULT STDMETHODCALLTYPE GetLanguage(
 5065        DWORD dwOutputNum,
 5066        WORD wLanguage,
 5067        WCHAR *pwszLanguageString,
 5068        WORD *pcchLanguageStringLength) = 0;
 5069
 5070    virtual HRESULT STDMETHODCALLTYPE GetMaxSpeedFactor(
 5071        double *pdblFactor) = 0;
 5072
 5073    virtual HRESULT STDMETHODCALLTYPE IsUsingFastCache(
 5074        WINBOOL *pfUsingFastCache) = 0;
 5075
 5076    virtual HRESULT STDMETHODCALLTYPE AddLogParam(
 5077        LPCWSTR wszNameSpace,
 5078        LPCWSTR wszName,
 5079        LPCWSTR wszValue) = 0;
 5080
 5081    virtual HRESULT STDMETHODCALLTYPE SendLogParams(
 5082        ) = 0;
 5083
 5084    virtual HRESULT STDMETHODCALLTYPE CanSaveFileAs(
 5085        WINBOOL *pfCanSave) = 0;
 5086
 5087    virtual HRESULT STDMETHODCALLTYPE CancelSaveFileAs(
 5088        ) = 0;
 5089
 5090    virtual HRESULT STDMETHODCALLTYPE GetURL(
 5091        WCHAR *pwszURL,
 5092        DWORD *pcchURL) = 0;
 5093
 5094};
 5095#ifdef __CRT_UUID_DECL
 5096__CRT_UUID_DECL(IWMReaderAdvanced4, 0x945a76a2, 0x12ae, 0x4d48, 0xbd,0x3c, 0xcd,0x1d,0x90,0x39,0x9b,0x85)
 5097#endif
 5098#else
 5099typedef struct IWMReaderAdvanced4Vtbl {
 5100    BEGIN_INTERFACE
 5101
 5102    /*** IUnknown methods ***/
 5103    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5104        IWMReaderAdvanced4 *This,
 5105        REFIID riid,
 5106        void **ppvObject);
 5107
 5108    ULONG (STDMETHODCALLTYPE *AddRef)(
 5109        IWMReaderAdvanced4 *This);
 5110
 5111    ULONG (STDMETHODCALLTYPE *Release)(
 5112        IWMReaderAdvanced4 *This);
 5113
 5114    /*** IWMReaderAdvanced methods ***/
 5115    HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
 5116        IWMReaderAdvanced4 *This,
 5117        WINBOOL fUserClock);
 5118
 5119    HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
 5120        IWMReaderAdvanced4 *This,
 5121        WINBOOL *pfUserClock);
 5122
 5123    HRESULT (STDMETHODCALLTYPE *DeliverTime)(
 5124        IWMReaderAdvanced4 *This,
 5125        QWORD cnsTime);
 5126
 5127    HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
 5128        IWMReaderAdvanced4 *This,
 5129        WINBOOL fSelection);
 5130
 5131    HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
 5132        IWMReaderAdvanced4 *This,
 5133        WINBOOL *pfSelection);
 5134
 5135    HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
 5136        IWMReaderAdvanced4 *This,
 5137        WORD cStreamCount,
 5138        WORD *pwStreamNumbers,
 5139        WMT_STREAM_SELECTION *pSelections);
 5140
 5141    HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
 5142        IWMReaderAdvanced4 *This,
 5143        WORD wStreamNum,
 5144        WMT_STREAM_SELECTION *pSelection);
 5145
 5146    HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
 5147        IWMReaderAdvanced4 *This,
 5148        WINBOOL fGetCallbacks);
 5149
 5150    HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
 5151        IWMReaderAdvanced4 *This,
 5152        WINBOOL *pfGetCallbacks);
 5153
 5154    HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
 5155        IWMReaderAdvanced4 *This,
 5156        WORD wStreamNum,
 5157        WINBOOL fReceiveStreamSamples);
 5158
 5159    HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
 5160        IWMReaderAdvanced4 *This,
 5161        WORD wStreamNum,
 5162        WINBOOL *pfReceiveStreamSamples);
 5163
 5164    HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
 5165        IWMReaderAdvanced4 *This,
 5166        DWORD dwOutputNum,
 5167        WINBOOL fAllocate);
 5168
 5169    HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
 5170        IWMReaderAdvanced4 *This,
 5171        DWORD dwOutputNum,
 5172        WINBOOL *pfAllocate);
 5173
 5174    HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
 5175        IWMReaderAdvanced4 *This,
 5176        WORD wStreamNum,
 5177        WINBOOL fAllocate);
 5178
 5179    HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
 5180        IWMReaderAdvanced4 *This,
 5181        WORD dwStreamNum,
 5182        WINBOOL *pfAllocate);
 5183
 5184    HRESULT (STDMETHODCALLTYPE *GetStatistics)(
 5185        IWMReaderAdvanced4 *This,
 5186        WM_READER_STATISTICS *pStatistics);
 5187
 5188    HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
 5189        IWMReaderAdvanced4 *This,
 5190        WM_READER_CLIENTINFO *pClientInfo);
 5191
 5192    HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
 5193        IWMReaderAdvanced4 *This,
 5194        DWORD dwOutput,
 5195        DWORD *pcbMax);
 5196
 5197    HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
 5198        IWMReaderAdvanced4 *This,
 5199        WORD wStream,
 5200        DWORD *pcbMax);
 5201
 5202    HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
 5203        IWMReaderAdvanced4 *This,
 5204        QWORD cnsLateness);
 5205
 5206    /*** IWMReaderAdvanced2 methods ***/
 5207    HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
 5208        IWMReaderAdvanced4 *This,
 5209        WMT_PLAY_MODE Mode);
 5210
 5211    HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
 5212        IWMReaderAdvanced4 *This,
 5213        WMT_PLAY_MODE *pMode);
 5214
 5215    HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
 5216        IWMReaderAdvanced4 *This,
 5217        DWORD *pdwPercent,
 5218        QWORD *pcnsBuffering);
 5219
 5220    HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
 5221        IWMReaderAdvanced4 *This,
 5222        DWORD *pdwPercent,
 5223        QWORD *pqwBytesDownloaded,
 5224        QWORD *pcnsDownload);
 5225
 5226    HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
 5227        IWMReaderAdvanced4 *This,
 5228        DWORD *pdwPercent);
 5229
 5230    HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
 5231        IWMReaderAdvanced4 *This,
 5232        const WCHAR *pwszFilename);
 5233
 5234    HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
 5235        IWMReaderAdvanced4 *This,
 5236        WCHAR *pwszProtocol,
 5237        DWORD *pcchProtocol);
 5238
 5239    HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
 5240        IWMReaderAdvanced4 *This,
 5241        WORD wMarkerIndex,
 5242        QWORD cnsDuration,
 5243        float fRate,
 5244        void *pvContext);
 5245
 5246    HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
 5247        IWMReaderAdvanced4 *This,
 5248        DWORD dwOutputNum,
 5249        LPCWSTR pszName,
 5250        WMT_ATTR_DATATYPE *pType,
 5251        BYTE *pValue,
 5252        WORD *pcbLength);
 5253
 5254    HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
 5255        IWMReaderAdvanced4 *This,
 5256        DWORD dwOutputNum,
 5257        LPCWSTR pszName,
 5258        WMT_ATTR_DATATYPE Type,
 5259        const BYTE *pValue,
 5260        WORD cbLength);
 5261
 5262    HRESULT (STDMETHODCALLTYPE *Preroll)(
 5263        IWMReaderAdvanced4 *This,
 5264        QWORD cnsStart,
 5265        QWORD cnsDuration,
 5266        float fRate);
 5267
 5268    HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
 5269        IWMReaderAdvanced4 *This,
 5270        WINBOOL fLogClientID);
 5271
 5272    HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
 5273        IWMReaderAdvanced4 *This,
 5274        WINBOOL *pfLogClientID);
 5275
 5276    HRESULT (STDMETHODCALLTYPE *StopBuffering)(
 5277        IWMReaderAdvanced4 *This);
 5278
 5279    HRESULT (STDMETHODCALLTYPE *OpenStream)(
 5280        IWMReaderAdvanced4 *This,
 5281        IStream *pStream,
 5282        IWMReaderCallback *pCallback,
 5283        void *pvContext);
 5284
 5285    /*** IWMReaderAdvanced3 methods ***/
 5286    HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
 5287        IWMReaderAdvanced4 *This);
 5288
 5289    HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
 5290        IWMReaderAdvanced4 *This,
 5291        WORD wStreamNum,
 5292        void *pvOffsetStart,
 5293        void *pvDuration,
 5294        WMT_OFFSET_FORMAT dwOffsetFormat,
 5295        float fRate,
 5296        void *pvContext);
 5297
 5298    /*** IWMReaderAdvanced4 methods ***/
 5299    HRESULT (STDMETHODCALLTYPE *GetLanguageCount)(
 5300        IWMReaderAdvanced4 *This,
 5301        DWORD dwOutputNum,
 5302        WORD *pwLanguageCount);
 5303
 5304    HRESULT (STDMETHODCALLTYPE *GetLanguage)(
 5305        IWMReaderAdvanced4 *This,
 5306        DWORD dwOutputNum,
 5307        WORD wLanguage,
 5308        WCHAR *pwszLanguageString,
 5309        WORD *pcchLanguageStringLength);
 5310
 5311    HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)(
 5312        IWMReaderAdvanced4 *This,
 5313        double *pdblFactor);
 5314
 5315    HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)(
 5316        IWMReaderAdvanced4 *This,
 5317        WINBOOL *pfUsingFastCache);
 5318
 5319    HRESULT (STDMETHODCALLTYPE *AddLogParam)(
 5320        IWMReaderAdvanced4 *This,
 5321        LPCWSTR wszNameSpace,
 5322        LPCWSTR wszName,
 5323        LPCWSTR wszValue);
 5324
 5325    HRESULT (STDMETHODCALLTYPE *SendLogParams)(
 5326        IWMReaderAdvanced4 *This);
 5327
 5328    HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)(
 5329        IWMReaderAdvanced4 *This,
 5330        WINBOOL *pfCanSave);
 5331
 5332    HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)(
 5333        IWMReaderAdvanced4 *This);
 5334
 5335    HRESULT (STDMETHODCALLTYPE *GetURL)(
 5336        IWMReaderAdvanced4 *This,
 5337        WCHAR *pwszURL,
 5338        DWORD *pcchURL);
 5339
 5340    END_INTERFACE
 5341} IWMReaderAdvanced4Vtbl;
 5342
 5343interface IWMReaderAdvanced4 {
 5344    CONST_VTBL IWMReaderAdvanced4Vtbl* lpVtbl;
 5345};
 5346
 5347#ifdef COBJMACROS
 5348#ifndef WIDL_C_INLINE_WRAPPERS
 5349/*** IUnknown methods ***/
 5350#define IWMReaderAdvanced4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5351#define IWMReaderAdvanced4_AddRef(This) (This)->lpVtbl->AddRef(This)
 5352#define IWMReaderAdvanced4_Release(This) (This)->lpVtbl->Release(This)
 5353/*** IWMReaderAdvanced methods ***/
 5354#define IWMReaderAdvanced4_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
 5355#define IWMReaderAdvanced4_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
 5356#define IWMReaderAdvanced4_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
 5357#define IWMReaderAdvanced4_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
 5358#define IWMReaderAdvanced4_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
 5359#define IWMReaderAdvanced4_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
 5360#define IWMReaderAdvanced4_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
 5361#define IWMReaderAdvanced4_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
 5362#define IWMReaderAdvanced4_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
 5363#define IWMReaderAdvanced4_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
 5364#define IWMReaderAdvanced4_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
 5365#define IWMReaderAdvanced4_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
 5366#define IWMReaderAdvanced4_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
 5367#define IWMReaderAdvanced4_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
 5368#define IWMReaderAdvanced4_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
 5369#define IWMReaderAdvanced4_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
 5370#define IWMReaderAdvanced4_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
 5371#define IWMReaderAdvanced4_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
 5372#define IWMReaderAdvanced4_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
 5373#define IWMReaderAdvanced4_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
 5374/*** IWMReaderAdvanced2 methods ***/
 5375#define IWMReaderAdvanced4_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
 5376#define IWMReaderAdvanced4_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
 5377#define IWMReaderAdvanced4_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
 5378#define IWMReaderAdvanced4_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
 5379#define IWMReaderAdvanced4_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
 5380#define IWMReaderAdvanced4_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
 5381#define IWMReaderAdvanced4_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
 5382#define IWMReaderAdvanced4_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
 5383#define IWMReaderAdvanced4_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
 5384#define IWMReaderAdvanced4_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
 5385#define IWMReaderAdvanced4_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
 5386#define IWMReaderAdvanced4_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
 5387#define IWMReaderAdvanced4_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
 5388#define IWMReaderAdvanced4_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
 5389#define IWMReaderAdvanced4_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
 5390/*** IWMReaderAdvanced3 methods ***/
 5391#define IWMReaderAdvanced4_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
 5392#define IWMReaderAdvanced4_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
 5393/*** IWMReaderAdvanced4 methods ***/
 5394#define IWMReaderAdvanced4_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount)
 5395#define IWMReaderAdvanced4_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength)
 5396#define IWMReaderAdvanced4_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor)
 5397#define IWMReaderAdvanced4_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache)
 5398#define IWMReaderAdvanced4_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue)
 5399#define IWMReaderAdvanced4_SendLogParams(This) (This)->lpVtbl->SendLogParams(This)
 5400#define IWMReaderAdvanced4_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave)
 5401#define IWMReaderAdvanced4_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This)
 5402#define IWMReaderAdvanced4_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL)
 5403#else
 5404/*** IUnknown methods ***/
 5405static inline HRESULT IWMReaderAdvanced4_QueryInterface(IWMReaderAdvanced4* This,REFIID riid,void **ppvObject) {
 5406    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5407}
 5408static inline ULONG IWMReaderAdvanced4_AddRef(IWMReaderAdvanced4* This) {
 5409    return This->lpVtbl->AddRef(This);
 5410}
 5411static inline ULONG IWMReaderAdvanced4_Release(IWMReaderAdvanced4* This) {
 5412    return This->lpVtbl->Release(This);
 5413}
 5414/*** IWMReaderAdvanced methods ***/
 5415static inline HRESULT IWMReaderAdvanced4_SetUserProvidedClock(IWMReaderAdvanced4* This,WINBOOL fUserClock) {
 5416    return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
 5417}
 5418static inline HRESULT IWMReaderAdvanced4_GetUserProvidedClock(IWMReaderAdvanced4* This,WINBOOL *pfUserClock) {
 5419    return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
 5420}
 5421static inline HRESULT IWMReaderAdvanced4_DeliverTime(IWMReaderAdvanced4* This,QWORD cnsTime) {
 5422    return This->lpVtbl->DeliverTime(This,cnsTime);
 5423}
 5424static inline HRESULT IWMReaderAdvanced4_SetManualStreamSelection(IWMReaderAdvanced4* This,WINBOOL fSelection) {
 5425    return This->lpVtbl->SetManualStreamSelection(This,fSelection);
 5426}
 5427static inline HRESULT IWMReaderAdvanced4_GetManualStreamSelection(IWMReaderAdvanced4* This,WINBOOL *pfSelection) {
 5428    return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
 5429}
 5430static inline HRESULT IWMReaderAdvanced4_SetStreamsSelected(IWMReaderAdvanced4* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
 5431    return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
 5432}
 5433static inline HRESULT IWMReaderAdvanced4_GetStreamSelected(IWMReaderAdvanced4* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
 5434    return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
 5435}
 5436static inline HRESULT IWMReaderAdvanced4_SetReceiveSelectionCallbacks(IWMReaderAdvanced4* This,WINBOOL fGetCallbacks) {
 5437    return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
 5438}
 5439static inline HRESULT IWMReaderAdvanced4_GetReceiveSelectionCallbacks(IWMReaderAdvanced4* This,WINBOOL *pfGetCallbacks) {
 5440    return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
 5441}
 5442static inline HRESULT IWMReaderAdvanced4_SetReceiveStreamSamples(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
 5443    return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
 5444}
 5445static inline HRESULT IWMReaderAdvanced4_GetReceiveStreamSamples(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
 5446    return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
 5447}
 5448static inline HRESULT IWMReaderAdvanced4_SetAllocateForOutput(IWMReaderAdvanced4* This,DWORD dwOutputNum,WINBOOL fAllocate) {
 5449    return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
 5450}
 5451static inline HRESULT IWMReaderAdvanced4_GetAllocateForOutput(IWMReaderAdvanced4* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
 5452    return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
 5453}
 5454static inline HRESULT IWMReaderAdvanced4_SetAllocateForStream(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL fAllocate) {
 5455    return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
 5456}
 5457static inline HRESULT IWMReaderAdvanced4_GetAllocateForStream(IWMReaderAdvanced4* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
 5458    return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
 5459}
 5460static inline HRESULT IWMReaderAdvanced4_GetStatistics(IWMReaderAdvanced4* This,WM_READER_STATISTICS *pStatistics) {
 5461    return This->lpVtbl->GetStatistics(This,pStatistics);
 5462}
 5463static inline HRESULT IWMReaderAdvanced4_SetClientInfo(IWMReaderAdvanced4* This,WM_READER_CLIENTINFO *pClientInfo) {
 5464    return This->lpVtbl->SetClientInfo(This,pClientInfo);
 5465}
 5466static inline HRESULT IWMReaderAdvanced4_GetMaxOutputSampleSize(IWMReaderAdvanced4* This,DWORD dwOutput,DWORD *pcbMax) {
 5467    return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
 5468}
 5469static inline HRESULT IWMReaderAdvanced4_GetMaxStreamSampleSize(IWMReaderAdvanced4* This,WORD wStream,DWORD *pcbMax) {
 5470    return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
 5471}
 5472static inline HRESULT IWMReaderAdvanced4_NotifyLateDelivery(IWMReaderAdvanced4* This,QWORD cnsLateness) {
 5473    return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
 5474}
 5475/*** IWMReaderAdvanced2 methods ***/
 5476static inline HRESULT IWMReaderAdvanced4_SetPlayMode(IWMReaderAdvanced4* This,WMT_PLAY_MODE Mode) {
 5477    return This->lpVtbl->SetPlayMode(This,Mode);
 5478}
 5479static inline HRESULT IWMReaderAdvanced4_GetPlayMode(IWMReaderAdvanced4* This,WMT_PLAY_MODE *pMode) {
 5480    return This->lpVtbl->GetPlayMode(This,pMode);
 5481}
 5482static inline HRESULT IWMReaderAdvanced4_GetBufferProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
 5483    return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
 5484}
 5485static inline HRESULT IWMReaderAdvanced4_GetDownloadProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
 5486    return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
 5487}
 5488static inline HRESULT IWMReaderAdvanced4_GetSaveAsProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent) {
 5489    return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
 5490}
 5491static inline HRESULT IWMReaderAdvanced4_SaveFileAs(IWMReaderAdvanced4* This,const WCHAR *pwszFilename) {
 5492    return This->lpVtbl->SaveFileAs(This,pwszFilename);
 5493}
 5494static inline HRESULT IWMReaderAdvanced4_GetProtocolName(IWMReaderAdvanced4* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
 5495    return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
 5496}
 5497static inline HRESULT IWMReaderAdvanced4_StartAtMarker(IWMReaderAdvanced4* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
 5498    return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
 5499}
 5500static inline HRESULT IWMReaderAdvanced4_GetOutputSetting(IWMReaderAdvanced4* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
 5501    return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
 5502}
 5503static inline HRESULT IWMReaderAdvanced4_SetOutputSetting(IWMReaderAdvanced4* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
 5504    return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
 5505}
 5506static inline HRESULT IWMReaderAdvanced4_Preroll(IWMReaderAdvanced4* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
 5507    return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
 5508}
 5509static inline HRESULT IWMReaderAdvanced4_SetLogClientID(IWMReaderAdvanced4* This,WINBOOL fLogClientID) {
 5510    return This->lpVtbl->SetLogClientID(This,fLogClientID);
 5511}
 5512static inline HRESULT IWMReaderAdvanced4_GetLogClientID(IWMReaderAdvanced4* This,WINBOOL *pfLogClientID) {
 5513    return This->lpVtbl->GetLogClientID(This,pfLogClientID);
 5514}
 5515static inline HRESULT IWMReaderAdvanced4_StopBuffering(IWMReaderAdvanced4* This) {
 5516    return This->lpVtbl->StopBuffering(This);
 5517}
 5518static inline HRESULT IWMReaderAdvanced4_OpenStream(IWMReaderAdvanced4* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
 5519    return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
 5520}
 5521/*** IWMReaderAdvanced3 methods ***/
 5522static inline HRESULT IWMReaderAdvanced4_StopNetStreaming(IWMReaderAdvanced4* This) {
 5523    return This->lpVtbl->StopNetStreaming(This);
 5524}
 5525static inline HRESULT IWMReaderAdvanced4_StartAtPosition(IWMReaderAdvanced4* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
 5526    return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
 5527}
 5528/*** IWMReaderAdvanced4 methods ***/
 5529static inline HRESULT IWMReaderAdvanced4_GetLanguageCount(IWMReaderAdvanced4* This,DWORD dwOutputNum,WORD *pwLanguageCount) {
 5530    return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount);
 5531}
 5532static inline HRESULT IWMReaderAdvanced4_GetLanguage(IWMReaderAdvanced4* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) {
 5533    return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength);
 5534}
 5535static inline HRESULT IWMReaderAdvanced4_GetMaxSpeedFactor(IWMReaderAdvanced4* This,double *pdblFactor) {
 5536    return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor);
 5537}
 5538static inline HRESULT IWMReaderAdvanced4_IsUsingFastCache(IWMReaderAdvanced4* This,WINBOOL *pfUsingFastCache) {
 5539    return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache);
 5540}
 5541static inline HRESULT IWMReaderAdvanced4_AddLogParam(IWMReaderAdvanced4* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) {
 5542    return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue);
 5543}
 5544static inline HRESULT IWMReaderAdvanced4_SendLogParams(IWMReaderAdvanced4* This) {
 5545    return This->lpVtbl->SendLogParams(This);
 5546}
 5547static inline HRESULT IWMReaderAdvanced4_CanSaveFileAs(IWMReaderAdvanced4* This,WINBOOL *pfCanSave) {
 5548    return This->lpVtbl->CanSaveFileAs(This,pfCanSave);
 5549}
 5550static inline HRESULT IWMReaderAdvanced4_CancelSaveFileAs(IWMReaderAdvanced4* This) {
 5551    return This->lpVtbl->CancelSaveFileAs(This);
 5552}
 5553static inline HRESULT IWMReaderAdvanced4_GetURL(IWMReaderAdvanced4* This,WCHAR *pwszURL,DWORD *pcchURL) {
 5554    return This->lpVtbl->GetURL(This,pwszURL,pcchURL);
 5555}
 5556#endif
 5557#endif
 5558
 5559#endif
 5560
 5561
 5562#endif  /* __IWMReaderAdvanced4_INTERFACE_DEFINED__ */
 5563
 5564/*****************************************************************************
 5565 * IWMReaderAdvanced5 interface
 5566 */
 5567#ifndef __IWMReaderAdvanced5_INTERFACE_DEFINED__
 5568#define __IWMReaderAdvanced5_INTERFACE_DEFINED__
 5569
 5570DEFINE_GUID(IID_IWMReaderAdvanced5, 0x24c44db0, 0x55d1, 0x49ae, 0xa5,0xcc, 0xf1,0x38,0x15,0xe3,0x63,0x63);
 5571#if defined(__cplusplus) && !defined(CINTERFACE)
 5572MIDL_INTERFACE("24c44db0-55d1-49ae-a5cc-f13815e36363")
 5573IWMReaderAdvanced5 : public IWMReaderAdvanced4
 5574{
 5575    virtual HRESULT STDMETHODCALLTYPE SetPlayerHook(
 5576        DWORD dwOutputNum,
 5577        IWMPlayerHook *pHook) = 0;
 5578
 5579};
 5580#ifdef __CRT_UUID_DECL
 5581__CRT_UUID_DECL(IWMReaderAdvanced5, 0x24c44db0, 0x55d1, 0x49ae, 0xa5,0xcc, 0xf1,0x38,0x15,0xe3,0x63,0x63)
 5582#endif
 5583#else
 5584typedef struct IWMReaderAdvanced5Vtbl {
 5585    BEGIN_INTERFACE
 5586
 5587    /*** IUnknown methods ***/
 5588    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5589        IWMReaderAdvanced5 *This,
 5590        REFIID riid,
 5591        void **ppvObject);
 5592
 5593    ULONG (STDMETHODCALLTYPE *AddRef)(
 5594        IWMReaderAdvanced5 *This);
 5595
 5596    ULONG (STDMETHODCALLTYPE *Release)(
 5597        IWMReaderAdvanced5 *This);
 5598
 5599    /*** IWMReaderAdvanced methods ***/
 5600    HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
 5601        IWMReaderAdvanced5 *This,
 5602        WINBOOL fUserClock);
 5603
 5604    HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
 5605        IWMReaderAdvanced5 *This,
 5606        WINBOOL *pfUserClock);
 5607
 5608    HRESULT (STDMETHODCALLTYPE *DeliverTime)(
 5609        IWMReaderAdvanced5 *This,
 5610        QWORD cnsTime);
 5611
 5612    HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
 5613        IWMReaderAdvanced5 *This,
 5614        WINBOOL fSelection);
 5615
 5616    HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
 5617        IWMReaderAdvanced5 *This,
 5618        WINBOOL *pfSelection);
 5619
 5620    HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
 5621        IWMReaderAdvanced5 *This,
 5622        WORD cStreamCount,
 5623        WORD *pwStreamNumbers,
 5624        WMT_STREAM_SELECTION *pSelections);
 5625
 5626    HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
 5627        IWMReaderAdvanced5 *This,
 5628        WORD wStreamNum,
 5629        WMT_STREAM_SELECTION *pSelection);
 5630
 5631    HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
 5632        IWMReaderAdvanced5 *This,
 5633        WINBOOL fGetCallbacks);
 5634
 5635    HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
 5636        IWMReaderAdvanced5 *This,
 5637        WINBOOL *pfGetCallbacks);
 5638
 5639    HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
 5640        IWMReaderAdvanced5 *This,
 5641        WORD wStreamNum,
 5642        WINBOOL fReceiveStreamSamples);
 5643
 5644    HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
 5645        IWMReaderAdvanced5 *This,
 5646        WORD wStreamNum,
 5647        WINBOOL *pfReceiveStreamSamples);
 5648
 5649    HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
 5650        IWMReaderAdvanced5 *This,
 5651        DWORD dwOutputNum,
 5652        WINBOOL fAllocate);
 5653
 5654    HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
 5655        IWMReaderAdvanced5 *This,
 5656        DWORD dwOutputNum,
 5657        WINBOOL *pfAllocate);
 5658
 5659    HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
 5660        IWMReaderAdvanced5 *This,
 5661        WORD wStreamNum,
 5662        WINBOOL fAllocate);
 5663
 5664    HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
 5665        IWMReaderAdvanced5 *This,
 5666        WORD dwStreamNum,
 5667        WINBOOL *pfAllocate);
 5668
 5669    HRESULT (STDMETHODCALLTYPE *GetStatistics)(
 5670        IWMReaderAdvanced5 *This,
 5671        WM_READER_STATISTICS *pStatistics);
 5672
 5673    HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
 5674        IWMReaderAdvanced5 *This,
 5675        WM_READER_CLIENTINFO *pClientInfo);
 5676
 5677    HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
 5678        IWMReaderAdvanced5 *This,
 5679        DWORD dwOutput,
 5680        DWORD *pcbMax);
 5681
 5682    HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
 5683        IWMReaderAdvanced5 *This,
 5684        WORD wStream,
 5685        DWORD *pcbMax);
 5686
 5687    HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
 5688        IWMReaderAdvanced5 *This,
 5689        QWORD cnsLateness);
 5690
 5691    /*** IWMReaderAdvanced2 methods ***/
 5692    HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
 5693        IWMReaderAdvanced5 *This,
 5694        WMT_PLAY_MODE Mode);
 5695
 5696    HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
 5697        IWMReaderAdvanced5 *This,
 5698        WMT_PLAY_MODE *pMode);
 5699
 5700    HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
 5701        IWMReaderAdvanced5 *This,
 5702        DWORD *pdwPercent,
 5703        QWORD *pcnsBuffering);
 5704
 5705    HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
 5706        IWMReaderAdvanced5 *This,
 5707        DWORD *pdwPercent,
 5708        QWORD *pqwBytesDownloaded,
 5709        QWORD *pcnsDownload);
 5710
 5711    HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
 5712        IWMReaderAdvanced5 *This,
 5713        DWORD *pdwPercent);
 5714
 5715    HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
 5716        IWMReaderAdvanced5 *This,
 5717        const WCHAR *pwszFilename);
 5718
 5719    HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
 5720        IWMReaderAdvanced5 *This,
 5721        WCHAR *pwszProtocol,
 5722        DWORD *pcchProtocol);
 5723
 5724    HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
 5725        IWMReaderAdvanced5 *This,
 5726        WORD wMarkerIndex,
 5727        QWORD cnsDuration,
 5728        float fRate,
 5729        void *pvContext);
 5730
 5731    HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
 5732        IWMReaderAdvanced5 *This,
 5733        DWORD dwOutputNum,
 5734        LPCWSTR pszName,
 5735        WMT_ATTR_DATATYPE *pType,
 5736        BYTE *pValue,
 5737        WORD *pcbLength);
 5738
 5739    HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
 5740        IWMReaderAdvanced5 *This,
 5741        DWORD dwOutputNum,
 5742        LPCWSTR pszName,
 5743        WMT_ATTR_DATATYPE Type,
 5744        const BYTE *pValue,
 5745        WORD cbLength);
 5746
 5747    HRESULT (STDMETHODCALLTYPE *Preroll)(
 5748        IWMReaderAdvanced5 *This,
 5749        QWORD cnsStart,
 5750        QWORD cnsDuration,
 5751        float fRate);
 5752
 5753    HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
 5754        IWMReaderAdvanced5 *This,
 5755        WINBOOL fLogClientID);
 5756
 5757    HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
 5758        IWMReaderAdvanced5 *This,
 5759        WINBOOL *pfLogClientID);
 5760
 5761    HRESULT (STDMETHODCALLTYPE *StopBuffering)(
 5762        IWMReaderAdvanced5 *This);
 5763
 5764    HRESULT (STDMETHODCALLTYPE *OpenStream)(
 5765        IWMReaderAdvanced5 *This,
 5766        IStream *pStream,
 5767        IWMReaderCallback *pCallback,
 5768        void *pvContext);
 5769
 5770    /*** IWMReaderAdvanced3 methods ***/
 5771    HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
 5772        IWMReaderAdvanced5 *This);
 5773
 5774    HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
 5775        IWMReaderAdvanced5 *This,
 5776        WORD wStreamNum,
 5777        void *pvOffsetStart,
 5778        void *pvDuration,
 5779        WMT_OFFSET_FORMAT dwOffsetFormat,
 5780        float fRate,
 5781        void *pvContext);
 5782
 5783    /*** IWMReaderAdvanced4 methods ***/
 5784    HRESULT (STDMETHODCALLTYPE *GetLanguageCount)(
 5785        IWMReaderAdvanced5 *This,
 5786        DWORD dwOutputNum,
 5787        WORD *pwLanguageCount);
 5788
 5789    HRESULT (STDMETHODCALLTYPE *GetLanguage)(
 5790        IWMReaderAdvanced5 *This,
 5791        DWORD dwOutputNum,
 5792        WORD wLanguage,
 5793        WCHAR *pwszLanguageString,
 5794        WORD *pcchLanguageStringLength);
 5795
 5796    HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)(
 5797        IWMReaderAdvanced5 *This,
 5798        double *pdblFactor);
 5799
 5800    HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)(
 5801        IWMReaderAdvanced5 *This,
 5802        WINBOOL *pfUsingFastCache);
 5803
 5804    HRESULT (STDMETHODCALLTYPE *AddLogParam)(
 5805        IWMReaderAdvanced5 *This,
 5806        LPCWSTR wszNameSpace,
 5807        LPCWSTR wszName,
 5808        LPCWSTR wszValue);
 5809
 5810    HRESULT (STDMETHODCALLTYPE *SendLogParams)(
 5811        IWMReaderAdvanced5 *This);
 5812
 5813    HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)(
 5814        IWMReaderAdvanced5 *This,
 5815        WINBOOL *pfCanSave);
 5816
 5817    HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)(
 5818        IWMReaderAdvanced5 *This);
 5819
 5820    HRESULT (STDMETHODCALLTYPE *GetURL)(
 5821        IWMReaderAdvanced5 *This,
 5822        WCHAR *pwszURL,
 5823        DWORD *pcchURL);
 5824
 5825    /*** IWMReaderAdvanced5 methods ***/
 5826    HRESULT (STDMETHODCALLTYPE *SetPlayerHook)(
 5827        IWMReaderAdvanced5 *This,
 5828        DWORD dwOutputNum,
 5829        IWMPlayerHook *pHook);
 5830
 5831    END_INTERFACE
 5832} IWMReaderAdvanced5Vtbl;
 5833
 5834interface IWMReaderAdvanced5 {
 5835    CONST_VTBL IWMReaderAdvanced5Vtbl* lpVtbl;
 5836};
 5837
 5838#ifdef COBJMACROS
 5839#ifndef WIDL_C_INLINE_WRAPPERS
 5840/*** IUnknown methods ***/
 5841#define IWMReaderAdvanced5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5842#define IWMReaderAdvanced5_AddRef(This) (This)->lpVtbl->AddRef(This)
 5843#define IWMReaderAdvanced5_Release(This) (This)->lpVtbl->Release(This)
 5844/*** IWMReaderAdvanced methods ***/
 5845#define IWMReaderAdvanced5_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
 5846#define IWMReaderAdvanced5_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
 5847#define IWMReaderAdvanced5_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
 5848#define IWMReaderAdvanced5_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
 5849#define IWMReaderAdvanced5_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
 5850#define IWMReaderAdvanced5_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
 5851#define IWMReaderAdvanced5_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
 5852#define IWMReaderAdvanced5_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
 5853#define IWMReaderAdvanced5_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
 5854#define IWMReaderAdvanced5_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
 5855#define IWMReaderAdvanced5_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
 5856#define IWMReaderAdvanced5_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
 5857#define IWMReaderAdvanced5_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
 5858#define IWMReaderAdvanced5_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
 5859#define IWMReaderAdvanced5_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
 5860#define IWMReaderAdvanced5_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
 5861#define IWMReaderAdvanced5_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
 5862#define IWMReaderAdvanced5_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
 5863#define IWMReaderAdvanced5_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
 5864#define IWMReaderAdvanced5_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
 5865/*** IWMReaderAdvanced2 methods ***/
 5866#define IWMReaderAdvanced5_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
 5867#define IWMReaderAdvanced5_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
 5868#define IWMReaderAdvanced5_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
 5869#define IWMReaderAdvanced5_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
 5870#define IWMReaderAdvanced5_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
 5871#define IWMReaderAdvanced5_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
 5872#define IWMReaderAdvanced5_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
 5873#define IWMReaderAdvanced5_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
 5874#define IWMReaderAdvanced5_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
 5875#define IWMReaderAdvanced5_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
 5876#define IWMReaderAdvanced5_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
 5877#define IWMReaderAdvanced5_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
 5878#define IWMReaderAdvanced5_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
 5879#define IWMReaderAdvanced5_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
 5880#define IWMReaderAdvanced5_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
 5881/*** IWMReaderAdvanced3 methods ***/
 5882#define IWMReaderAdvanced5_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
 5883#define IWMReaderAdvanced5_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
 5884/*** IWMReaderAdvanced4 methods ***/
 5885#define IWMReaderAdvanced5_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount)
 5886#define IWMReaderAdvanced5_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength)
 5887#define IWMReaderAdvanced5_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor)
 5888#define IWMReaderAdvanced5_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache)
 5889#define IWMReaderAdvanced5_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue)
 5890#define IWMReaderAdvanced5_SendLogParams(This) (This)->lpVtbl->SendLogParams(This)
 5891#define IWMReaderAdvanced5_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave)
 5892#define IWMReaderAdvanced5_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This)
 5893#define IWMReaderAdvanced5_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL)
 5894/*** IWMReaderAdvanced5 methods ***/
 5895#define IWMReaderAdvanced5_SetPlayerHook(This,dwOutputNum,pHook) (This)->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook)
 5896#else
 5897/*** IUnknown methods ***/
 5898static inline HRESULT IWMReaderAdvanced5_QueryInterface(IWMReaderAdvanced5* This,REFIID riid,void **ppvObject) {
 5899    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5900}
 5901static inline ULONG IWMReaderAdvanced5_AddRef(IWMReaderAdvanced5* This) {
 5902    return This->lpVtbl->AddRef(This);
 5903}
 5904static inline ULONG IWMReaderAdvanced5_Release(IWMReaderAdvanced5* This) {
 5905    return This->lpVtbl->Release(This);
 5906}
 5907/*** IWMReaderAdvanced methods ***/
 5908static inline HRESULT IWMReaderAdvanced5_SetUserProvidedClock(IWMReaderAdvanced5* This,WINBOOL fUserClock) {
 5909    return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
 5910}
 5911static inline HRESULT IWMReaderAdvanced5_GetUserProvidedClock(IWMReaderAdvanced5* This,WINBOOL *pfUserClock) {
 5912    return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
 5913}
 5914static inline HRESULT IWMReaderAdvanced5_DeliverTime(IWMReaderAdvanced5* This,QWORD cnsTime) {
 5915    return This->lpVtbl->DeliverTime(This,cnsTime);
 5916}
 5917static inline HRESULT IWMReaderAdvanced5_SetManualStreamSelection(IWMReaderAdvanced5* This,WINBOOL fSelection) {
 5918    return This->lpVtbl->SetManualStreamSelection(This,fSelection);
 5919}
 5920static inline HRESULT IWMReaderAdvanced5_GetManualStreamSelection(IWMReaderAdvanced5* This,WINBOOL *pfSelection) {
 5921    return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
 5922}
 5923static inline HRESULT IWMReaderAdvanced5_SetStreamsSelected(IWMReaderAdvanced5* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
 5924    return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
 5925}
 5926static inline HRESULT IWMReaderAdvanced5_GetStreamSelected(IWMReaderAdvanced5* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
 5927    return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
 5928}
 5929static inline HRESULT IWMReaderAdvanced5_SetReceiveSelectionCallbacks(IWMReaderAdvanced5* This,WINBOOL fGetCallbacks) {
 5930    return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
 5931}
 5932static inline HRESULT IWMReaderAdvanced5_GetReceiveSelectionCallbacks(IWMReaderAdvanced5* This,WINBOOL *pfGetCallbacks) {
 5933    return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
 5934}
 5935static inline HRESULT IWMReaderAdvanced5_SetReceiveStreamSamples(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
 5936    return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
 5937}
 5938static inline HRESULT IWMReaderAdvanced5_GetReceiveStreamSamples(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
 5939    return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
 5940}
 5941static inline HRESULT IWMReaderAdvanced5_SetAllocateForOutput(IWMReaderAdvanced5* This,DWORD dwOutputNum,WINBOOL fAllocate) {
 5942    return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
 5943}
 5944static inline HRESULT IWMReaderAdvanced5_GetAllocateForOutput(IWMReaderAdvanced5* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
 5945    return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
 5946}
 5947static inline HRESULT IWMReaderAdvanced5_SetAllocateForStream(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL fAllocate) {
 5948    return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
 5949}
 5950static inline HRESULT IWMReaderAdvanced5_GetAllocateForStream(IWMReaderAdvanced5* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
 5951    return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
 5952}
 5953static inline HRESULT IWMReaderAdvanced5_GetStatistics(IWMReaderAdvanced5* This,WM_READER_STATISTICS *pStatistics) {
 5954    return This->lpVtbl->GetStatistics(This,pStatistics);
 5955}
 5956static inline HRESULT IWMReaderAdvanced5_SetClientInfo(IWMReaderAdvanced5* This,WM_READER_CLIENTINFO *pClientInfo) {
 5957    return This->lpVtbl->SetClientInfo(This,pClientInfo);
 5958}
 5959static inline HRESULT IWMReaderAdvanced5_GetMaxOutputSampleSize(IWMReaderAdvanced5* This,DWORD dwOutput,DWORD *pcbMax) {
 5960    return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
 5961}
 5962static inline HRESULT IWMReaderAdvanced5_GetMaxStreamSampleSize(IWMReaderAdvanced5* This,WORD wStream,DWORD *pcbMax) {
 5963    return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
 5964}
 5965static inline HRESULT IWMReaderAdvanced5_NotifyLateDelivery(IWMReaderAdvanced5* This,QWORD cnsLateness) {
 5966    return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
 5967}
 5968/*** IWMReaderAdvanced2 methods ***/
 5969static inline HRESULT IWMReaderAdvanced5_SetPlayMode(IWMReaderAdvanced5* This,WMT_PLAY_MODE Mode) {
 5970    return This->lpVtbl->SetPlayMode(This,Mode);
 5971}
 5972static inline HRESULT IWMReaderAdvanced5_GetPlayMode(IWMReaderAdvanced5* This,WMT_PLAY_MODE *pMode) {
 5973    return This->lpVtbl->GetPlayMode(This,pMode);
 5974}
 5975static inline HRESULT IWMReaderAdvanced5_GetBufferProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
 5976    return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
 5977}
 5978static inline HRESULT IWMReaderAdvanced5_GetDownloadProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
 5979    return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
 5980}
 5981static inline HRESULT IWMReaderAdvanced5_GetSaveAsProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent) {
 5982    return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
 5983}
 5984static inline HRESULT IWMReaderAdvanced5_SaveFileAs(IWMReaderAdvanced5* This,const WCHAR *pwszFilename) {
 5985    return This->lpVtbl->SaveFileAs(This,pwszFilename);
 5986}
 5987static inline HRESULT IWMReaderAdvanced5_GetProtocolName(IWMReaderAdvanced5* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
 5988    return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
 5989}
 5990static inline HRESULT IWMReaderAdvanced5_StartAtMarker(IWMReaderAdvanced5* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
 5991    return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
 5992}
 5993static inline HRESULT IWMReaderAdvanced5_GetOutputSetting(IWMReaderAdvanced5* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
 5994    return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
 5995}
 5996static inline HRESULT IWMReaderAdvanced5_SetOutputSetting(IWMReaderAdvanced5* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
 5997    return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
 5998}
 5999static inline HRESULT IWMReaderAdvanced5_Preroll(IWMReaderAdvanced5* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
 6000    return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
 6001}
 6002static inline HRESULT IWMReaderAdvanced5_SetLogClientID(IWMReaderAdvanced5* This,WINBOOL fLogClientID) {
 6003    return This->lpVtbl->SetLogClientID(This,fLogClientID);
 6004}
 6005static inline HRESULT IWMReaderAdvanced5_GetLogClientID(IWMReaderAdvanced5* This,WINBOOL *pfLogClientID) {
 6006    return This->lpVtbl->GetLogClientID(This,pfLogClientID);
 6007}
 6008static inline HRESULT IWMReaderAdvanced5_StopBuffering(IWMReaderAdvanced5* This) {
 6009    return This->lpVtbl->StopBuffering(This);
 6010}
 6011static inline HRESULT IWMReaderAdvanced5_OpenStream(IWMReaderAdvanced5* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
 6012    return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
 6013}
 6014/*** IWMReaderAdvanced3 methods ***/
 6015static inline HRESULT IWMReaderAdvanced5_StopNetStreaming(IWMReaderAdvanced5* This) {
 6016    return This->lpVtbl->StopNetStreaming(This);
 6017}
 6018static inline HRESULT IWMReaderAdvanced5_StartAtPosition(IWMReaderAdvanced5* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
 6019    return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
 6020}
 6021/*** IWMReaderAdvanced4 methods ***/
 6022static inline HRESULT IWMReaderAdvanced5_GetLanguageCount(IWMReaderAdvanced5* This,DWORD dwOutputNum,WORD *pwLanguageCount) {
 6023    return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount);
 6024}
 6025static inline HRESULT IWMReaderAdvanced5_GetLanguage(IWMReaderAdvanced5* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) {
 6026    return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength);
 6027}
 6028static inline HRESULT IWMReaderAdvanced5_GetMaxSpeedFactor(IWMReaderAdvanced5* This,double *pdblFactor) {
 6029    return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor);
 6030}
 6031static inline HRESULT IWMReaderAdvanced5_IsUsingFastCache(IWMReaderAdvanced5* This,WINBOOL *pfUsingFastCache) {
 6032    return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache);
 6033}
 6034static inline HRESULT IWMReaderAdvanced5_AddLogParam(IWMReaderAdvanced5* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) {
 6035    return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue);
 6036}
 6037static inline HRESULT IWMReaderAdvanced5_SendLogParams(IWMReaderAdvanced5* This) {
 6038    return This->lpVtbl->SendLogParams(This);
 6039}
 6040static inline HRESULT IWMReaderAdvanced5_CanSaveFileAs(IWMReaderAdvanced5* This,WINBOOL *pfCanSave) {
 6041    return This->lpVtbl->CanSaveFileAs(This,pfCanSave);
 6042}
 6043static inline HRESULT IWMReaderAdvanced5_CancelSaveFileAs(IWMReaderAdvanced5* This) {
 6044    return This->lpVtbl->CancelSaveFileAs(This);
 6045}
 6046static inline HRESULT IWMReaderAdvanced5_GetURL(IWMReaderAdvanced5* This,WCHAR *pwszURL,DWORD *pcchURL) {
 6047    return This->lpVtbl->GetURL(This,pwszURL,pcchURL);
 6048}
 6049/*** IWMReaderAdvanced5 methods ***/
 6050static inline HRESULT IWMReaderAdvanced5_SetPlayerHook(IWMReaderAdvanced5* This,DWORD dwOutputNum,IWMPlayerHook *pHook) {
 6051    return This->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook);
 6052}
 6053#endif
 6054#endif
 6055
 6056#endif
 6057
 6058
 6059#endif  /* __IWMReaderAdvanced5_INTERFACE_DEFINED__ */
 6060
 6061/*****************************************************************************
 6062 * IWMReaderAdvanced6 interface
 6063 */
 6064#ifndef __IWMReaderAdvanced6_INTERFACE_DEFINED__
 6065#define __IWMReaderAdvanced6_INTERFACE_DEFINED__
 6066
 6067DEFINE_GUID(IID_IWMReaderAdvanced6, 0x18a2e7f8, 0x428f, 0x4acd, 0x8a,0x00, 0xe6,0x46,0x39,0xbc,0x93,0xde);
 6068#if defined(__cplusplus) && !defined(CINTERFACE)
 6069MIDL_INTERFACE("18a2e7f8-428f-4acd-8a00-e64639bc93de")
 6070IWMReaderAdvanced6 : public IWMReaderAdvanced5
 6071{
 6072    virtual HRESULT STDMETHODCALLTYPE SetProtectStreamSamples(
 6073        BYTE *pbCertificate,
 6074        DWORD cbCertificate,
 6075        DWORD dwCertificateType,
 6076        DWORD dwFlags,
 6077        BYTE *pbInitializationVector,
 6078        DWORD *pcbInitializationVector) = 0;
 6079
 6080};
 6081#ifdef __CRT_UUID_DECL
 6082__CRT_UUID_DECL(IWMReaderAdvanced6, 0x18a2e7f8, 0x428f, 0x4acd, 0x8a,0x00, 0xe6,0x46,0x39,0xbc,0x93,0xde)
 6083#endif
 6084#else
 6085typedef struct IWMReaderAdvanced6Vtbl {
 6086    BEGIN_INTERFACE
 6087
 6088    /*** IUnknown methods ***/
 6089    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6090        IWMReaderAdvanced6 *This,
 6091        REFIID riid,
 6092        void **ppvObject);
 6093
 6094    ULONG (STDMETHODCALLTYPE *AddRef)(
 6095        IWMReaderAdvanced6 *This);
 6096
 6097    ULONG (STDMETHODCALLTYPE *Release)(
 6098        IWMReaderAdvanced6 *This);
 6099
 6100    /*** IWMReaderAdvanced methods ***/
 6101    HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)(
 6102        IWMReaderAdvanced6 *This,
 6103        WINBOOL fUserClock);
 6104
 6105    HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)(
 6106        IWMReaderAdvanced6 *This,
 6107        WINBOOL *pfUserClock);
 6108
 6109    HRESULT (STDMETHODCALLTYPE *DeliverTime)(
 6110        IWMReaderAdvanced6 *This,
 6111        QWORD cnsTime);
 6112
 6113    HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)(
 6114        IWMReaderAdvanced6 *This,
 6115        WINBOOL fSelection);
 6116
 6117    HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)(
 6118        IWMReaderAdvanced6 *This,
 6119        WINBOOL *pfSelection);
 6120
 6121    HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
 6122        IWMReaderAdvanced6 *This,
 6123        WORD cStreamCount,
 6124        WORD *pwStreamNumbers,
 6125        WMT_STREAM_SELECTION *pSelections);
 6126
 6127    HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
 6128        IWMReaderAdvanced6 *This,
 6129        WORD wStreamNum,
 6130        WMT_STREAM_SELECTION *pSelection);
 6131
 6132    HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)(
 6133        IWMReaderAdvanced6 *This,
 6134        WINBOOL fGetCallbacks);
 6135
 6136    HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)(
 6137        IWMReaderAdvanced6 *This,
 6138        WINBOOL *pfGetCallbacks);
 6139
 6140    HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)(
 6141        IWMReaderAdvanced6 *This,
 6142        WORD wStreamNum,
 6143        WINBOOL fReceiveStreamSamples);
 6144
 6145    HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)(
 6146        IWMReaderAdvanced6 *This,
 6147        WORD wStreamNum,
 6148        WINBOOL *pfReceiveStreamSamples);
 6149
 6150    HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
 6151        IWMReaderAdvanced6 *This,
 6152        DWORD dwOutputNum,
 6153        WINBOOL fAllocate);
 6154
 6155    HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
 6156        IWMReaderAdvanced6 *This,
 6157        DWORD dwOutputNum,
 6158        WINBOOL *pfAllocate);
 6159
 6160    HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
 6161        IWMReaderAdvanced6 *This,
 6162        WORD wStreamNum,
 6163        WINBOOL fAllocate);
 6164
 6165    HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
 6166        IWMReaderAdvanced6 *This,
 6167        WORD dwStreamNum,
 6168        WINBOOL *pfAllocate);
 6169
 6170    HRESULT (STDMETHODCALLTYPE *GetStatistics)(
 6171        IWMReaderAdvanced6 *This,
 6172        WM_READER_STATISTICS *pStatistics);
 6173
 6174    HRESULT (STDMETHODCALLTYPE *SetClientInfo)(
 6175        IWMReaderAdvanced6 *This,
 6176        WM_READER_CLIENTINFO *pClientInfo);
 6177
 6178    HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
 6179        IWMReaderAdvanced6 *This,
 6180        DWORD dwOutput,
 6181        DWORD *pcbMax);
 6182
 6183    HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
 6184        IWMReaderAdvanced6 *This,
 6185        WORD wStream,
 6186        DWORD *pcbMax);
 6187
 6188    HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)(
 6189        IWMReaderAdvanced6 *This,
 6190        QWORD cnsLateness);
 6191
 6192    /*** IWMReaderAdvanced2 methods ***/
 6193    HRESULT (STDMETHODCALLTYPE *SetPlayMode)(
 6194        IWMReaderAdvanced6 *This,
 6195        WMT_PLAY_MODE Mode);
 6196
 6197    HRESULT (STDMETHODCALLTYPE *GetPlayMode)(
 6198        IWMReaderAdvanced6 *This,
 6199        WMT_PLAY_MODE *pMode);
 6200
 6201    HRESULT (STDMETHODCALLTYPE *GetBufferProgress)(
 6202        IWMReaderAdvanced6 *This,
 6203        DWORD *pdwPercent,
 6204        QWORD *pcnsBuffering);
 6205
 6206    HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)(
 6207        IWMReaderAdvanced6 *This,
 6208        DWORD *pdwPercent,
 6209        QWORD *pqwBytesDownloaded,
 6210        QWORD *pcnsDownload);
 6211
 6212    HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)(
 6213        IWMReaderAdvanced6 *This,
 6214        DWORD *pdwPercent);
 6215
 6216    HRESULT (STDMETHODCALLTYPE *SaveFileAs)(
 6217        IWMReaderAdvanced6 *This,
 6218        const WCHAR *pwszFilename);
 6219
 6220    HRESULT (STDMETHODCALLTYPE *GetProtocolName)(
 6221        IWMReaderAdvanced6 *This,
 6222        WCHAR *pwszProtocol,
 6223        DWORD *pcchProtocol);
 6224
 6225    HRESULT (STDMETHODCALLTYPE *StartAtMarker)(
 6226        IWMReaderAdvanced6 *This,
 6227        WORD wMarkerIndex,
 6228        QWORD cnsDuration,
 6229        float fRate,
 6230        void *pvContext);
 6231
 6232    HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
 6233        IWMReaderAdvanced6 *This,
 6234        DWORD dwOutputNum,
 6235        LPCWSTR pszName,
 6236        WMT_ATTR_DATATYPE *pType,
 6237        BYTE *pValue,
 6238        WORD *pcbLength);
 6239
 6240    HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
 6241        IWMReaderAdvanced6 *This,
 6242        DWORD dwOutputNum,
 6243        LPCWSTR pszName,
 6244        WMT_ATTR_DATATYPE Type,
 6245        const BYTE *pValue,
 6246        WORD cbLength);
 6247
 6248    HRESULT (STDMETHODCALLTYPE *Preroll)(
 6249        IWMReaderAdvanced6 *This,
 6250        QWORD cnsStart,
 6251        QWORD cnsDuration,
 6252        float fRate);
 6253
 6254    HRESULT (STDMETHODCALLTYPE *SetLogClientID)(
 6255        IWMReaderAdvanced6 *This,
 6256        WINBOOL fLogClientID);
 6257
 6258    HRESULT (STDMETHODCALLTYPE *GetLogClientID)(
 6259        IWMReaderAdvanced6 *This,
 6260        WINBOOL *pfLogClientID);
 6261
 6262    HRESULT (STDMETHODCALLTYPE *StopBuffering)(
 6263        IWMReaderAdvanced6 *This);
 6264
 6265    HRESULT (STDMETHODCALLTYPE *OpenStream)(
 6266        IWMReaderAdvanced6 *This,
 6267        IStream *pStream,
 6268        IWMReaderCallback *pCallback,
 6269        void *pvContext);
 6270
 6271    /*** IWMReaderAdvanced3 methods ***/
 6272    HRESULT (STDMETHODCALLTYPE *StopNetStreaming)(
 6273        IWMReaderAdvanced6 *This);
 6274
 6275    HRESULT (STDMETHODCALLTYPE *StartAtPosition)(
 6276        IWMReaderAdvanced6 *This,
 6277        WORD wStreamNum,
 6278        void *pvOffsetStart,
 6279        void *pvDuration,
 6280        WMT_OFFSET_FORMAT dwOffsetFormat,
 6281        float fRate,
 6282        void *pvContext);
 6283
 6284    /*** IWMReaderAdvanced4 methods ***/
 6285    HRESULT (STDMETHODCALLTYPE *GetLanguageCount)(
 6286        IWMReaderAdvanced6 *This,
 6287        DWORD dwOutputNum,
 6288        WORD *pwLanguageCount);
 6289
 6290    HRESULT (STDMETHODCALLTYPE *GetLanguage)(
 6291        IWMReaderAdvanced6 *This,
 6292        DWORD dwOutputNum,
 6293        WORD wLanguage,
 6294        WCHAR *pwszLanguageString,
 6295        WORD *pcchLanguageStringLength);
 6296
 6297    HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)(
 6298        IWMReaderAdvanced6 *This,
 6299        double *pdblFactor);
 6300
 6301    HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)(
 6302        IWMReaderAdvanced6 *This,
 6303        WINBOOL *pfUsingFastCache);
 6304
 6305    HRESULT (STDMETHODCALLTYPE *AddLogParam)(
 6306        IWMReaderAdvanced6 *This,
 6307        LPCWSTR wszNameSpace,
 6308        LPCWSTR wszName,
 6309        LPCWSTR wszValue);
 6310
 6311    HRESULT (STDMETHODCALLTYPE *SendLogParams)(
 6312        IWMReaderAdvanced6 *This);
 6313
 6314    HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)(
 6315        IWMReaderAdvanced6 *This,
 6316        WINBOOL *pfCanSave);
 6317
 6318    HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)(
 6319        IWMReaderAdvanced6 *This);
 6320
 6321    HRESULT (STDMETHODCALLTYPE *GetURL)(
 6322        IWMReaderAdvanced6 *This,
 6323        WCHAR *pwszURL,
 6324        DWORD *pcchURL);
 6325
 6326    /*** IWMReaderAdvanced5 methods ***/
 6327    HRESULT (STDMETHODCALLTYPE *SetPlayerHook)(
 6328        IWMReaderAdvanced6 *This,
 6329        DWORD dwOutputNum,
 6330        IWMPlayerHook *pHook);
 6331
 6332    /*** IWMReaderAdvanced6 methods ***/
 6333    HRESULT (STDMETHODCALLTYPE *SetProtectStreamSamples)(
 6334        IWMReaderAdvanced6 *This,
 6335        BYTE *pbCertificate,
 6336        DWORD cbCertificate,
 6337        DWORD dwCertificateType,
 6338        DWORD dwFlags,
 6339        BYTE *pbInitializationVector,
 6340        DWORD *pcbInitializationVector);
 6341
 6342    END_INTERFACE
 6343} IWMReaderAdvanced6Vtbl;
 6344
 6345interface IWMReaderAdvanced6 {
 6346    CONST_VTBL IWMReaderAdvanced6Vtbl* lpVtbl;
 6347};
 6348
 6349#ifdef COBJMACROS
 6350#ifndef WIDL_C_INLINE_WRAPPERS
 6351/*** IUnknown methods ***/
 6352#define IWMReaderAdvanced6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6353#define IWMReaderAdvanced6_AddRef(This) (This)->lpVtbl->AddRef(This)
 6354#define IWMReaderAdvanced6_Release(This) (This)->lpVtbl->Release(This)
 6355/*** IWMReaderAdvanced methods ***/
 6356#define IWMReaderAdvanced6_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock)
 6357#define IWMReaderAdvanced6_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock)
 6358#define IWMReaderAdvanced6_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime)
 6359#define IWMReaderAdvanced6_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection)
 6360#define IWMReaderAdvanced6_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection)
 6361#define IWMReaderAdvanced6_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
 6362#define IWMReaderAdvanced6_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
 6363#define IWMReaderAdvanced6_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks)
 6364#define IWMReaderAdvanced6_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks)
 6365#define IWMReaderAdvanced6_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples)
 6366#define IWMReaderAdvanced6_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples)
 6367#define IWMReaderAdvanced6_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate)
 6368#define IWMReaderAdvanced6_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate)
 6369#define IWMReaderAdvanced6_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate)
 6370#define IWMReaderAdvanced6_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate)
 6371#define IWMReaderAdvanced6_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics)
 6372#define IWMReaderAdvanced6_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo)
 6373#define IWMReaderAdvanced6_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
 6374#define IWMReaderAdvanced6_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
 6375#define IWMReaderAdvanced6_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness)
 6376/*** IWMReaderAdvanced2 methods ***/
 6377#define IWMReaderAdvanced6_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode)
 6378#define IWMReaderAdvanced6_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode)
 6379#define IWMReaderAdvanced6_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering)
 6380#define IWMReaderAdvanced6_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload)
 6381#define IWMReaderAdvanced6_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent)
 6382#define IWMReaderAdvanced6_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename)
 6383#define IWMReaderAdvanced6_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol)
 6384#define IWMReaderAdvanced6_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext)
 6385#define IWMReaderAdvanced6_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
 6386#define IWMReaderAdvanced6_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
 6387#define IWMReaderAdvanced6_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate)
 6388#define IWMReaderAdvanced6_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID)
 6389#define IWMReaderAdvanced6_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID)
 6390#define IWMReaderAdvanced6_StopBuffering(This) (This)->lpVtbl->StopBuffering(This)
 6391#define IWMReaderAdvanced6_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext)
 6392/*** IWMReaderAdvanced3 methods ***/
 6393#define IWMReaderAdvanced6_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This)
 6394#define IWMReaderAdvanced6_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext)
 6395/*** IWMReaderAdvanced4 methods ***/
 6396#define IWMReaderAdvanced6_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount)
 6397#define IWMReaderAdvanced6_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength)
 6398#define IWMReaderAdvanced6_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor)
 6399#define IWMReaderAdvanced6_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache)
 6400#define IWMReaderAdvanced6_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue)
 6401#define IWMReaderAdvanced6_SendLogParams(This) (This)->lpVtbl->SendLogParams(This)
 6402#define IWMReaderAdvanced6_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave)
 6403#define IWMReaderAdvanced6_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This)
 6404#define IWMReaderAdvanced6_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL)
 6405/*** IWMReaderAdvanced5 methods ***/
 6406#define IWMReaderAdvanced6_SetPlayerHook(This,dwOutputNum,pHook) (This)->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook)
 6407/*** IWMReaderAdvanced6 methods ***/
 6408#define IWMReaderAdvanced6_SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector) (This)->lpVtbl->SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector)
 6409#else
 6410/*** IUnknown methods ***/
 6411static inline HRESULT IWMReaderAdvanced6_QueryInterface(IWMReaderAdvanced6* This,REFIID riid,void **ppvObject) {
 6412    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6413}
 6414static inline ULONG IWMReaderAdvanced6_AddRef(IWMReaderAdvanced6* This) {
 6415    return This->lpVtbl->AddRef(This);
 6416}
 6417static inline ULONG IWMReaderAdvanced6_Release(IWMReaderAdvanced6* This) {
 6418    return This->lpVtbl->Release(This);
 6419}
 6420/*** IWMReaderAdvanced methods ***/
 6421static inline HRESULT IWMReaderAdvanced6_SetUserProvidedClock(IWMReaderAdvanced6* This,WINBOOL fUserClock) {
 6422    return This->lpVtbl->SetUserProvidedClock(This,fUserClock);
 6423}
 6424static inline HRESULT IWMReaderAdvanced6_GetUserProvidedClock(IWMReaderAdvanced6* This,WINBOOL *pfUserClock) {
 6425    return This->lpVtbl->GetUserProvidedClock(This,pfUserClock);
 6426}
 6427static inline HRESULT IWMReaderAdvanced6_DeliverTime(IWMReaderAdvanced6* This,QWORD cnsTime) {
 6428    return This->lpVtbl->DeliverTime(This,cnsTime);
 6429}
 6430static inline HRESULT IWMReaderAdvanced6_SetManualStreamSelection(IWMReaderAdvanced6* This,WINBOOL fSelection) {
 6431    return This->lpVtbl->SetManualStreamSelection(This,fSelection);
 6432}
 6433static inline HRESULT IWMReaderAdvanced6_GetManualStreamSelection(IWMReaderAdvanced6* This,WINBOOL *pfSelection) {
 6434    return This->lpVtbl->GetManualStreamSelection(This,pfSelection);
 6435}
 6436static inline HRESULT IWMReaderAdvanced6_SetStreamsSelected(IWMReaderAdvanced6* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
 6437    return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
 6438}
 6439static inline HRESULT IWMReaderAdvanced6_GetStreamSelected(IWMReaderAdvanced6* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
 6440    return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
 6441}
 6442static inline HRESULT IWMReaderAdvanced6_SetReceiveSelectionCallbacks(IWMReaderAdvanced6* This,WINBOOL fGetCallbacks) {
 6443    return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks);
 6444}
 6445static inline HRESULT IWMReaderAdvanced6_GetReceiveSelectionCallbacks(IWMReaderAdvanced6* This,WINBOOL *pfGetCallbacks) {
 6446    return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks);
 6447}
 6448static inline HRESULT IWMReaderAdvanced6_SetReceiveStreamSamples(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) {
 6449    return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples);
 6450}
 6451static inline HRESULT IWMReaderAdvanced6_GetReceiveStreamSamples(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) {
 6452    return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples);
 6453}
 6454static inline HRESULT IWMReaderAdvanced6_SetAllocateForOutput(IWMReaderAdvanced6* This,DWORD dwOutputNum,WINBOOL fAllocate) {
 6455    return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate);
 6456}
 6457static inline HRESULT IWMReaderAdvanced6_GetAllocateForOutput(IWMReaderAdvanced6* This,DWORD dwOutputNum,WINBOOL *pfAllocate) {
 6458    return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate);
 6459}
 6460static inline HRESULT IWMReaderAdvanced6_SetAllocateForStream(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL fAllocate) {
 6461    return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate);
 6462}
 6463static inline HRESULT IWMReaderAdvanced6_GetAllocateForStream(IWMReaderAdvanced6* This,WORD dwStreamNum,WINBOOL *pfAllocate) {
 6464    return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate);
 6465}
 6466static inline HRESULT IWMReaderAdvanced6_GetStatistics(IWMReaderAdvanced6* This,WM_READER_STATISTICS *pStatistics) {
 6467    return This->lpVtbl->GetStatistics(This,pStatistics);
 6468}
 6469static inline HRESULT IWMReaderAdvanced6_SetClientInfo(IWMReaderAdvanced6* This,WM_READER_CLIENTINFO *pClientInfo) {
 6470    return This->lpVtbl->SetClientInfo(This,pClientInfo);
 6471}
 6472static inline HRESULT IWMReaderAdvanced6_GetMaxOutputSampleSize(IWMReaderAdvanced6* This,DWORD dwOutput,DWORD *pcbMax) {
 6473    return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
 6474}
 6475static inline HRESULT IWMReaderAdvanced6_GetMaxStreamSampleSize(IWMReaderAdvanced6* This,WORD wStream,DWORD *pcbMax) {
 6476    return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
 6477}
 6478static inline HRESULT IWMReaderAdvanced6_NotifyLateDelivery(IWMReaderAdvanced6* This,QWORD cnsLateness) {
 6479    return This->lpVtbl->NotifyLateDelivery(This,cnsLateness);
 6480}
 6481/*** IWMReaderAdvanced2 methods ***/
 6482static inline HRESULT IWMReaderAdvanced6_SetPlayMode(IWMReaderAdvanced6* This,WMT_PLAY_MODE Mode) {
 6483    return This->lpVtbl->SetPlayMode(This,Mode);
 6484}
 6485static inline HRESULT IWMReaderAdvanced6_GetPlayMode(IWMReaderAdvanced6* This,WMT_PLAY_MODE *pMode) {
 6486    return This->lpVtbl->GetPlayMode(This,pMode);
 6487}
 6488static inline HRESULT IWMReaderAdvanced6_GetBufferProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent,QWORD *pcnsBuffering) {
 6489    return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering);
 6490}
 6491static inline HRESULT IWMReaderAdvanced6_GetDownloadProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) {
 6492    return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload);
 6493}
 6494static inline HRESULT IWMReaderAdvanced6_GetSaveAsProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent) {
 6495    return This->lpVtbl->GetSaveAsProgress(This,pdwPercent);
 6496}
 6497static inline HRESULT IWMReaderAdvanced6_SaveFileAs(IWMReaderAdvanced6* This,const WCHAR *pwszFilename) {
 6498    return This->lpVtbl->SaveFileAs(This,pwszFilename);
 6499}
 6500static inline HRESULT IWMReaderAdvanced6_GetProtocolName(IWMReaderAdvanced6* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) {
 6501    return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol);
 6502}
 6503static inline HRESULT IWMReaderAdvanced6_StartAtMarker(IWMReaderAdvanced6* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) {
 6504    return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext);
 6505}
 6506static inline HRESULT IWMReaderAdvanced6_GetOutputSetting(IWMReaderAdvanced6* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
 6507    return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
 6508}
 6509static inline HRESULT IWMReaderAdvanced6_SetOutputSetting(IWMReaderAdvanced6* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
 6510    return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
 6511}
 6512static inline HRESULT IWMReaderAdvanced6_Preroll(IWMReaderAdvanced6* This,QWORD cnsStart,QWORD cnsDuration,float fRate) {
 6513    return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate);
 6514}
 6515static inline HRESULT IWMReaderAdvanced6_SetLogClientID(IWMReaderAdvanced6* This,WINBOOL fLogClientID) {
 6516    return This->lpVtbl->SetLogClientID(This,fLogClientID);
 6517}
 6518static inline HRESULT IWMReaderAdvanced6_GetLogClientID(IWMReaderAdvanced6* This,WINBOOL *pfLogClientID) {
 6519    return This->lpVtbl->GetLogClientID(This,pfLogClientID);
 6520}
 6521static inline HRESULT IWMReaderAdvanced6_StopBuffering(IWMReaderAdvanced6* This) {
 6522    return This->lpVtbl->StopBuffering(This);
 6523}
 6524static inline HRESULT IWMReaderAdvanced6_OpenStream(IWMReaderAdvanced6* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) {
 6525    return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext);
 6526}
 6527/*** IWMReaderAdvanced3 methods ***/
 6528static inline HRESULT IWMReaderAdvanced6_StopNetStreaming(IWMReaderAdvanced6* This) {
 6529    return This->lpVtbl->StopNetStreaming(This);
 6530}
 6531static inline HRESULT IWMReaderAdvanced6_StartAtPosition(IWMReaderAdvanced6* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) {
 6532    return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext);
 6533}
 6534/*** IWMReaderAdvanced4 methods ***/
 6535static inline HRESULT IWMReaderAdvanced6_GetLanguageCount(IWMReaderAdvanced6* This,DWORD dwOutputNum,WORD *pwLanguageCount) {
 6536    return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount);
 6537}
 6538static inline HRESULT IWMReaderAdvanced6_GetLanguage(IWMReaderAdvanced6* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) {
 6539    return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength);
 6540}
 6541static inline HRESULT IWMReaderAdvanced6_GetMaxSpeedFactor(IWMReaderAdvanced6* This,double *pdblFactor) {
 6542    return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor);
 6543}
 6544static inline HRESULT IWMReaderAdvanced6_IsUsingFastCache(IWMReaderAdvanced6* This,WINBOOL *pfUsingFastCache) {
 6545    return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache);
 6546}
 6547static inline HRESULT IWMReaderAdvanced6_AddLogParam(IWMReaderAdvanced6* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) {
 6548    return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue);
 6549}
 6550static inline HRESULT IWMReaderAdvanced6_SendLogParams(IWMReaderAdvanced6* This) {
 6551    return This->lpVtbl->SendLogParams(This);
 6552}
 6553static inline HRESULT IWMReaderAdvanced6_CanSaveFileAs(IWMReaderAdvanced6* This,WINBOOL *pfCanSave) {
 6554    return This->lpVtbl->CanSaveFileAs(This,pfCanSave);
 6555}
 6556static inline HRESULT IWMReaderAdvanced6_CancelSaveFileAs(IWMReaderAdvanced6* This) {
 6557    return This->lpVtbl->CancelSaveFileAs(This);
 6558}
 6559static inline HRESULT IWMReaderAdvanced6_GetURL(IWMReaderAdvanced6* This,WCHAR *pwszURL,DWORD *pcchURL) {
 6560    return This->lpVtbl->GetURL(This,pwszURL,pcchURL);
 6561}
 6562/*** IWMReaderAdvanced5 methods ***/
 6563static inline HRESULT IWMReaderAdvanced6_SetPlayerHook(IWMReaderAdvanced6* This,DWORD dwOutputNum,IWMPlayerHook *pHook) {
 6564    return This->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook);
 6565}
 6566/*** IWMReaderAdvanced6 methods ***/
 6567static inline HRESULT IWMReaderAdvanced6_SetProtectStreamSamples(IWMReaderAdvanced6* This,BYTE *pbCertificate,DWORD cbCertificate,DWORD dwCertificateType,DWORD dwFlags,BYTE *pbInitializationVector,DWORD *pcbInitializationVector) {
 6568    return This->lpVtbl->SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector);
 6569}
 6570#endif
 6571#endif
 6572
 6573#endif
 6574
 6575
 6576#endif  /* __IWMReaderAdvanced6_INTERFACE_DEFINED__ */
 6577
 6578/*****************************************************************************
 6579 * IWMSyncReader interface
 6580 */
 6581#ifndef __IWMSyncReader_INTERFACE_DEFINED__
 6582#define __IWMSyncReader_INTERFACE_DEFINED__
 6583
 6584DEFINE_GUID(IID_IWMSyncReader, 0x9397f121, 0x7705, 0x4dc9, 0xb0,0x49, 0x98,0xb6,0x98,0x18,0x84,0x14);
 6585#if defined(__cplusplus) && !defined(CINTERFACE)
 6586MIDL_INTERFACE("9397f121-7705-4dc9-b049-98b698188414")
 6587IWMSyncReader : public IUnknown
 6588{
 6589    virtual HRESULT STDMETHODCALLTYPE Open(
 6590        const WCHAR *pwszFilename) = 0;
 6591
 6592    virtual HRESULT STDMETHODCALLTYPE Close(
 6593        ) = 0;
 6594
 6595    virtual HRESULT STDMETHODCALLTYPE SetRange(
 6596        QWORD cnsStartTime,
 6597        LONGLONG cnsDuration) = 0;
 6598
 6599    virtual HRESULT STDMETHODCALLTYPE SetRangeByFrame(
 6600        WORD wStreamNum,
 6601        QWORD qwFrameNumber,
 6602        LONGLONG cFramesToRead) = 0;
 6603
 6604    virtual HRESULT STDMETHODCALLTYPE GetNextSample(
 6605        WORD wStreamNum,
 6606        INSSBuffer **ppSample,
 6607        QWORD *pcnsSampleTime,
 6608        QWORD *pcnsDuration,
 6609        DWORD *pdwFlags,
 6610        DWORD *pdwOutputNum,
 6611        WORD *pwStreamNum) = 0;
 6612
 6613    virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected(
 6614        WORD cStreamCount,
 6615        WORD *pwStreamNumbers,
 6616        WMT_STREAM_SELECTION *pSelections) = 0;
 6617
 6618    virtual HRESULT STDMETHODCALLTYPE GetStreamSelected(
 6619        WORD wStreamNum,
 6620        WMT_STREAM_SELECTION *pSelection) = 0;
 6621
 6622    virtual HRESULT STDMETHODCALLTYPE SetReadStreamSamples(
 6623        WORD wStreamNum,
 6624        WINBOOL fCompressed) = 0;
 6625
 6626    virtual HRESULT STDMETHODCALLTYPE GetReadStreamSamples(
 6627        WORD wStreamNum,
 6628        WINBOOL *pfCompressed) = 0;
 6629
 6630    virtual HRESULT STDMETHODCALLTYPE GetOutputSetting(
 6631        DWORD dwOutputNum,
 6632        LPCWSTR pszName,
 6633        WMT_ATTR_DATATYPE *pType,
 6634        BYTE *pValue,
 6635        WORD *pcbLength) = 0;
 6636
 6637    virtual HRESULT STDMETHODCALLTYPE SetOutputSetting(
 6638        DWORD dwOutputNum,
 6639        LPCWSTR pszName,
 6640        WMT_ATTR_DATATYPE Type,
 6641        const BYTE *pValue,
 6642        WORD cbLength) = 0;
 6643
 6644    virtual HRESULT STDMETHODCALLTYPE GetOutputCount(
 6645        DWORD *pcOutputs) = 0;
 6646
 6647    virtual HRESULT STDMETHODCALLTYPE GetOutputProps(
 6648        DWORD dwOutputNum,
 6649        IWMOutputMediaProps **ppOutput) = 0;
 6650
 6651    virtual HRESULT STDMETHODCALLTYPE SetOutputProps(
 6652        DWORD dwOutputNum,
 6653        IWMOutputMediaProps *pOutput) = 0;
 6654
 6655    virtual HRESULT STDMETHODCALLTYPE GetOutputFormatCount(
 6656        DWORD dwOutputNum,
 6657        DWORD *pcFormats) = 0;
 6658
 6659    virtual HRESULT STDMETHODCALLTYPE GetOutputFormat(
 6660        DWORD dwOutputNum,
 6661        DWORD dwFormatNum,
 6662        IWMOutputMediaProps **ppProps) = 0;
 6663
 6664    virtual HRESULT STDMETHODCALLTYPE GetOutputNumberForStream(
 6665        WORD wStreamNum,
 6666        DWORD *pdwOutputNum) = 0;
 6667
 6668    virtual HRESULT STDMETHODCALLTYPE GetStreamNumberForOutput(
 6669        DWORD dwOutputNum,
 6670        WORD *pwStreamNum) = 0;
 6671
 6672    virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize(
 6673        DWORD dwOutput,
 6674        DWORD *pcbMax) = 0;
 6675
 6676    virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize(
 6677        WORD wStream,
 6678        DWORD *pcbMax) = 0;
 6679
 6680    virtual HRESULT STDMETHODCALLTYPE OpenStream(
 6681        IStream *pStream) = 0;
 6682
 6683};
 6684#ifdef __CRT_UUID_DECL
 6685__CRT_UUID_DECL(IWMSyncReader, 0x9397f121, 0x7705, 0x4dc9, 0xb0,0x49, 0x98,0xb6,0x98,0x18,0x84,0x14)
 6686#endif
 6687#else
 6688typedef struct IWMSyncReaderVtbl {
 6689    BEGIN_INTERFACE
 6690
 6691    /*** IUnknown methods ***/
 6692    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6693        IWMSyncReader *This,
 6694        REFIID riid,
 6695        void **ppvObject);
 6696
 6697    ULONG (STDMETHODCALLTYPE *AddRef)(
 6698        IWMSyncReader *This);
 6699
 6700    ULONG (STDMETHODCALLTYPE *Release)(
 6701        IWMSyncReader *This);
 6702
 6703    /*** IWMSyncReader methods ***/
 6704    HRESULT (STDMETHODCALLTYPE *Open)(
 6705        IWMSyncReader *This,
 6706        const WCHAR *pwszFilename);
 6707
 6708    HRESULT (STDMETHODCALLTYPE *Close)(
 6709        IWMSyncReader *This);
 6710
 6711    HRESULT (STDMETHODCALLTYPE *SetRange)(
 6712        IWMSyncReader *This,
 6713        QWORD cnsStartTime,
 6714        LONGLONG cnsDuration);
 6715
 6716    HRESULT (STDMETHODCALLTYPE *SetRangeByFrame)(
 6717        IWMSyncReader *This,
 6718        WORD wStreamNum,
 6719        QWORD qwFrameNumber,
 6720        LONGLONG cFramesToRead);
 6721
 6722    HRESULT (STDMETHODCALLTYPE *GetNextSample)(
 6723        IWMSyncReader *This,
 6724        WORD wStreamNum,
 6725        INSSBuffer **ppSample,
 6726        QWORD *pcnsSampleTime,
 6727        QWORD *pcnsDuration,
 6728        DWORD *pdwFlags,
 6729        DWORD *pdwOutputNum,
 6730        WORD *pwStreamNum);
 6731
 6732    HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
 6733        IWMSyncReader *This,
 6734        WORD cStreamCount,
 6735        WORD *pwStreamNumbers,
 6736        WMT_STREAM_SELECTION *pSelections);
 6737
 6738    HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
 6739        IWMSyncReader *This,
 6740        WORD wStreamNum,
 6741        WMT_STREAM_SELECTION *pSelection);
 6742
 6743    HRESULT (STDMETHODCALLTYPE *SetReadStreamSamples)(
 6744        IWMSyncReader *This,
 6745        WORD wStreamNum,
 6746        WINBOOL fCompressed);
 6747
 6748    HRESULT (STDMETHODCALLTYPE *GetReadStreamSamples)(
 6749        IWMSyncReader *This,
 6750        WORD wStreamNum,
 6751        WINBOOL *pfCompressed);
 6752
 6753    HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
 6754        IWMSyncReader *This,
 6755        DWORD dwOutputNum,
 6756        LPCWSTR pszName,
 6757        WMT_ATTR_DATATYPE *pType,
 6758        BYTE *pValue,
 6759        WORD *pcbLength);
 6760
 6761    HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
 6762        IWMSyncReader *This,
 6763        DWORD dwOutputNum,
 6764        LPCWSTR pszName,
 6765        WMT_ATTR_DATATYPE Type,
 6766        const BYTE *pValue,
 6767        WORD cbLength);
 6768
 6769    HRESULT (STDMETHODCALLTYPE *GetOutputCount)(
 6770        IWMSyncReader *This,
 6771        DWORD *pcOutputs);
 6772
 6773    HRESULT (STDMETHODCALLTYPE *GetOutputProps)(
 6774        IWMSyncReader *This,
 6775        DWORD dwOutputNum,
 6776        IWMOutputMediaProps **ppOutput);
 6777
 6778    HRESULT (STDMETHODCALLTYPE *SetOutputProps)(
 6779        IWMSyncReader *This,
 6780        DWORD dwOutputNum,
 6781        IWMOutputMediaProps *pOutput);
 6782
 6783    HRESULT (STDMETHODCALLTYPE *GetOutputFormatCount)(
 6784        IWMSyncReader *This,
 6785        DWORD dwOutputNum,
 6786        DWORD *pcFormats);
 6787
 6788    HRESULT (STDMETHODCALLTYPE *GetOutputFormat)(
 6789        IWMSyncReader *This,
 6790        DWORD dwOutputNum,
 6791        DWORD dwFormatNum,
 6792        IWMOutputMediaProps **ppProps);
 6793
 6794    HRESULT (STDMETHODCALLTYPE *GetOutputNumberForStream)(
 6795        IWMSyncReader *This,
 6796        WORD wStreamNum,
 6797        DWORD *pdwOutputNum);
 6798
 6799    HRESULT (STDMETHODCALLTYPE *GetStreamNumberForOutput)(
 6800        IWMSyncReader *This,
 6801        DWORD dwOutputNum,
 6802        WORD *pwStreamNum);
 6803
 6804    HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
 6805        IWMSyncReader *This,
 6806        DWORD dwOutput,
 6807        DWORD *pcbMax);
 6808
 6809    HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
 6810        IWMSyncReader *This,
 6811        WORD wStream,
 6812        DWORD *pcbMax);
 6813
 6814    HRESULT (STDMETHODCALLTYPE *OpenStream)(
 6815        IWMSyncReader *This,
 6816        IStream *pStream);
 6817
 6818    END_INTERFACE
 6819} IWMSyncReaderVtbl;
 6820
 6821interface IWMSyncReader {
 6822    CONST_VTBL IWMSyncReaderVtbl* lpVtbl;
 6823};
 6824
 6825#ifdef COBJMACROS
 6826#ifndef WIDL_C_INLINE_WRAPPERS
 6827/*** IUnknown methods ***/
 6828#define IWMSyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6829#define IWMSyncReader_AddRef(This) (This)->lpVtbl->AddRef(This)
 6830#define IWMSyncReader_Release(This) (This)->lpVtbl->Release(This)
 6831/*** IWMSyncReader methods ***/
 6832#define IWMSyncReader_Open(This,pwszFilename) (This)->lpVtbl->Open(This,pwszFilename)
 6833#define IWMSyncReader_Close(This) (This)->lpVtbl->Close(This)
 6834#define IWMSyncReader_SetRange(This,cnsStartTime,cnsDuration) (This)->lpVtbl->SetRange(This,cnsStartTime,cnsDuration)
 6835#define IWMSyncReader_SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead) (This)->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)
 6836#define IWMSyncReader_GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum) (This)->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)
 6837#define IWMSyncReader_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
 6838#define IWMSyncReader_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
 6839#define IWMSyncReader_SetReadStreamSamples(This,wStreamNum,fCompressed) (This)->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed)
 6840#define IWMSyncReader_GetReadStreamSamples(This,wStreamNum,pfCompressed) (This)->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed)
 6841#define IWMSyncReader_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
 6842#define IWMSyncReader_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
 6843#define IWMSyncReader_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs)
 6844#define IWMSyncReader_GetOutputProps(This,dwOutputNum,ppOutput) (This)->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput)
 6845#define IWMSyncReader_SetOutputProps(This,dwOutputNum,pOutput) (This)->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput)
 6846#define IWMSyncReader_GetOutputFormatCount(This,dwOutputNum,pcFormats) (This)->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats)
 6847#define IWMSyncReader_GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps) (This)->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)
 6848#define IWMSyncReader_GetOutputNumberForStream(This,wStreamNum,pdwOutputNum) (This)->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)
 6849#define IWMSyncReader_GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum) (This)->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)
 6850#define IWMSyncReader_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
 6851#define IWMSyncReader_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
 6852#define IWMSyncReader_OpenStream(This,pStream) (This)->lpVtbl->OpenStream(This,pStream)
 6853#else
 6854/*** IUnknown methods ***/
 6855static inline HRESULT IWMSyncReader_QueryInterface(IWMSyncReader* This,REFIID riid,void **ppvObject) {
 6856    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6857}
 6858static inline ULONG IWMSyncReader_AddRef(IWMSyncReader* This) {
 6859    return This->lpVtbl->AddRef(This);
 6860}
 6861static inline ULONG IWMSyncReader_Release(IWMSyncReader* This) {
 6862    return This->lpVtbl->Release(This);
 6863}
 6864/*** IWMSyncReader methods ***/
 6865static inline HRESULT IWMSyncReader_Open(IWMSyncReader* This,const WCHAR *pwszFilename) {
 6866    return This->lpVtbl->Open(This,pwszFilename);
 6867}
 6868static inline HRESULT IWMSyncReader_Close(IWMSyncReader* This) {
 6869    return This->lpVtbl->Close(This);
 6870}
 6871static inline HRESULT IWMSyncReader_SetRange(IWMSyncReader* This,QWORD cnsStartTime,LONGLONG cnsDuration) {
 6872    return This->lpVtbl->SetRange(This,cnsStartTime,cnsDuration);
 6873}
 6874static inline HRESULT IWMSyncReader_SetRangeByFrame(IWMSyncReader* This,WORD wStreamNum,QWORD qwFrameNumber,LONGLONG cFramesToRead) {
 6875    return This->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead);
 6876}
 6877static inline HRESULT IWMSyncReader_GetNextSample(IWMSyncReader* This,WORD wStreamNum,INSSBuffer **ppSample,QWORD *pcnsSampleTime,QWORD *pcnsDuration,DWORD *pdwFlags,DWORD *pdwOutputNum,WORD *pwStreamNum) {
 6878    return This->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum);
 6879}
 6880static inline HRESULT IWMSyncReader_SetStreamsSelected(IWMSyncReader* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
 6881    return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
 6882}
 6883static inline HRESULT IWMSyncReader_GetStreamSelected(IWMSyncReader* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
 6884    return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
 6885}
 6886static inline HRESULT IWMSyncReader_SetReadStreamSamples(IWMSyncReader* This,WORD wStreamNum,WINBOOL fCompressed) {
 6887    return This->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed);
 6888}
 6889static inline HRESULT IWMSyncReader_GetReadStreamSamples(IWMSyncReader* This,WORD wStreamNum,WINBOOL *pfCompressed) {
 6890    return This->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed);
 6891}
 6892static inline HRESULT IWMSyncReader_GetOutputSetting(IWMSyncReader* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
 6893    return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
 6894}
 6895static inline HRESULT IWMSyncReader_SetOutputSetting(IWMSyncReader* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
 6896    return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
 6897}
 6898static inline HRESULT IWMSyncReader_GetOutputCount(IWMSyncReader* This,DWORD *pcOutputs) {
 6899    return This->lpVtbl->GetOutputCount(This,pcOutputs);
 6900}
 6901static inline HRESULT IWMSyncReader_GetOutputProps(IWMSyncReader* This,DWORD dwOutputNum,IWMOutputMediaProps **ppOutput) {
 6902    return This->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput);
 6903}
 6904static inline HRESULT IWMSyncReader_SetOutputProps(IWMSyncReader* This,DWORD dwOutputNum,IWMOutputMediaProps *pOutput) {
 6905    return This->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput);
 6906}
 6907static inline HRESULT IWMSyncReader_GetOutputFormatCount(IWMSyncReader* This,DWORD dwOutputNum,DWORD *pcFormats) {
 6908    return This->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats);
 6909}
 6910static inline HRESULT IWMSyncReader_GetOutputFormat(IWMSyncReader* This,DWORD dwOutputNum,DWORD dwFormatNum,IWMOutputMediaProps **ppProps) {
 6911    return This->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps);
 6912}
 6913static inline HRESULT IWMSyncReader_GetOutputNumberForStream(IWMSyncReader* This,WORD wStreamNum,DWORD *pdwOutputNum) {
 6914    return This->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum);
 6915}
 6916static inline HRESULT IWMSyncReader_GetStreamNumberForOutput(IWMSyncReader* This,DWORD dwOutputNum,WORD *pwStreamNum) {
 6917    return This->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum);
 6918}
 6919static inline HRESULT IWMSyncReader_GetMaxOutputSampleSize(IWMSyncReader* This,DWORD dwOutput,DWORD *pcbMax) {
 6920    return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
 6921}
 6922static inline HRESULT IWMSyncReader_GetMaxStreamSampleSize(IWMSyncReader* This,WORD wStream,DWORD *pcbMax) {
 6923    return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
 6924}
 6925static inline HRESULT IWMSyncReader_OpenStream(IWMSyncReader* This,IStream *pStream) {
 6926    return This->lpVtbl->OpenStream(This,pStream);
 6927}
 6928#endif
 6929#endif
 6930
 6931#endif
 6932
 6933
 6934#endif  /* __IWMSyncReader_INTERFACE_DEFINED__ */
 6935
 6936/*****************************************************************************
 6937 * IWMReaderAllocatorEx interface
 6938 */
 6939#ifndef __IWMReaderAllocatorEx_INTERFACE_DEFINED__
 6940#define __IWMReaderAllocatorEx_INTERFACE_DEFINED__
 6941
 6942DEFINE_GUID(IID_IWMReaderAllocatorEx, 0x9f762fa7, 0xa22e, 0x428d, 0x93,0xc9, 0xac,0x82,0xf3,0xaa,0xfe,0x5a);
 6943#if defined(__cplusplus) && !defined(CINTERFACE)
 6944MIDL_INTERFACE("9f762fa7-a22e-428d-93c9-ac82f3aafe5a")
 6945IWMReaderAllocatorEx : public IUnknown
 6946{
 6947    virtual HRESULT STDMETHODCALLTYPE AllocateForStreamEx(
 6948        WORD wStreamNum,
 6949        DWORD cbBuffer,
 6950        INSSBuffer **ppBuffer,
 6951        DWORD dwFlags,
 6952        QWORD cnsSampleTime,
 6953        QWORD cnsSampleDuration,
 6954        void *pvContext) = 0;
 6955
 6956    virtual HRESULT STDMETHODCALLTYPE AllocateForOutputEx(
 6957        DWORD output,
 6958        DWORD cbBuffer,
 6959        INSSBuffer **ppBuffer,
 6960        DWORD dwFlags,
 6961        QWORD cnsSampleTime,
 6962        QWORD cnsSampleDuration,
 6963        void *pvContext) = 0;
 6964
 6965};
 6966#ifdef __CRT_UUID_DECL
 6967__CRT_UUID_DECL(IWMReaderAllocatorEx, 0x9f762fa7, 0xa22e, 0x428d, 0x93,0xc9, 0xac,0x82,0xf3,0xaa,0xfe,0x5a)
 6968#endif
 6969#else
 6970typedef struct IWMReaderAllocatorExVtbl {
 6971    BEGIN_INTERFACE
 6972
 6973    /*** IUnknown methods ***/
 6974    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6975        IWMReaderAllocatorEx *This,
 6976        REFIID riid,
 6977        void **ppvObject);
 6978
 6979    ULONG (STDMETHODCALLTYPE *AddRef)(
 6980        IWMReaderAllocatorEx *This);
 6981
 6982    ULONG (STDMETHODCALLTYPE *Release)(
 6983        IWMReaderAllocatorEx *This);
 6984
 6985    /*** IWMReaderAllocatorEx methods ***/
 6986    HRESULT (STDMETHODCALLTYPE *AllocateForStreamEx)(
 6987        IWMReaderAllocatorEx *This,
 6988        WORD wStreamNum,
 6989        DWORD cbBuffer,
 6990        INSSBuffer **ppBuffer,
 6991        DWORD dwFlags,
 6992        QWORD cnsSampleTime,
 6993        QWORD cnsSampleDuration,
 6994        void *pvContext);
 6995
 6996    HRESULT (STDMETHODCALLTYPE *AllocateForOutputEx)(
 6997        IWMReaderAllocatorEx *This,
 6998        DWORD output,
 6999        DWORD cbBuffer,
 7000        INSSBuffer **ppBuffer,
 7001        DWORD dwFlags,
 7002        QWORD cnsSampleTime,
 7003        QWORD cnsSampleDuration,
 7004        void *pvContext);
 7005
 7006    END_INTERFACE
 7007} IWMReaderAllocatorExVtbl;
 7008
 7009interface IWMReaderAllocatorEx {
 7010    CONST_VTBL IWMReaderAllocatorExVtbl* lpVtbl;
 7011};
 7012
 7013#ifdef COBJMACROS
 7014#ifndef WIDL_C_INLINE_WRAPPERS
 7015/*** IUnknown methods ***/
 7016#define IWMReaderAllocatorEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7017#define IWMReaderAllocatorEx_AddRef(This) (This)->lpVtbl->AddRef(This)
 7018#define IWMReaderAllocatorEx_Release(This) (This)->lpVtbl->Release(This)
 7019/*** IWMReaderAllocatorEx methods ***/
 7020#define IWMReaderAllocatorEx_AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) (This)->lpVtbl->AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext)
 7021#define IWMReaderAllocatorEx_AllocateForOutputEx(This,output,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) (This)->lpVtbl->AllocateForOutputEx(This,output,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext)
 7022#else
 7023/*** IUnknown methods ***/
 7024static inline HRESULT IWMReaderAllocatorEx_QueryInterface(IWMReaderAllocatorEx* This,REFIID riid,void **ppvObject) {
 7025    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7026}
 7027static inline ULONG IWMReaderAllocatorEx_AddRef(IWMReaderAllocatorEx* This) {
 7028    return This->lpVtbl->AddRef(This);
 7029}
 7030static inline ULONG IWMReaderAllocatorEx_Release(IWMReaderAllocatorEx* This) {
 7031    return This->lpVtbl->Release(This);
 7032}
 7033/*** IWMReaderAllocatorEx methods ***/
 7034static inline HRESULT IWMReaderAllocatorEx_AllocateForStreamEx(IWMReaderAllocatorEx* This,WORD wStreamNum,DWORD cbBuffer,INSSBuffer **ppBuffer,DWORD dwFlags,QWORD cnsSampleTime,QWORD cnsSampleDuration,void *pvContext) {
 7035    return This->lpVtbl->AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext);
 7036}
 7037static inline HRESULT IWMReaderAllocatorEx_AllocateForOutputEx(IWMReaderAllocatorEx* This,DWORD output,DWORD cbBuffer,INSSBuffer **ppBuffer,DWORD dwFlags,QWORD cnsSampleTime,QWORD cnsSampleDuration,void *pvContext) {
 7038    return This->lpVtbl->AllocateForOutputEx(This,output,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext);
 7039}
 7040#endif
 7041#endif
 7042
 7043#endif
 7044
 7045
 7046#endif  /* __IWMReaderAllocatorEx_INTERFACE_DEFINED__ */
 7047
 7048/*****************************************************************************
 7049 * IWMSyncReader2 interface
 7050 */
 7051#ifndef __IWMSyncReader2_INTERFACE_DEFINED__
 7052#define __IWMSyncReader2_INTERFACE_DEFINED__
 7053
 7054DEFINE_GUID(IID_IWMSyncReader2, 0xfaed3d21, 0x1b6b, 0x4af7, 0x8c,0xb6, 0x3e,0x18,0x9b,0xbc,0x18,0x7b);
 7055#if defined(__cplusplus) && !defined(CINTERFACE)
 7056MIDL_INTERFACE("faed3d21-1b6b-4af7-8cb6-3e189bbc187b")
 7057IWMSyncReader2 : public IWMSyncReader
 7058{
 7059    virtual HRESULT STDMETHODCALLTYPE SetRangeByTimecode(
 7060        WORD wStreamNum,
 7061        WMT_TIMECODE_EXTENSION_DATA *pStart,
 7062        WMT_TIMECODE_EXTENSION_DATA *pEnd) = 0;
 7063
 7064    virtual HRESULT STDMETHODCALLTYPE SetRangeByFrameEx(
 7065        WORD wStreamNum,
 7066        QWORD qwFrameNumber,
 7067        LONGLONG cFramesToRead,
 7068        QWORD *pcnsStartTime) = 0;
 7069
 7070    virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput(
 7071        DWORD dwOutputNum,
 7072        IWMReaderAllocatorEx *pAllocator) = 0;
 7073
 7074    virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput(
 7075        DWORD dwOutputNum,
 7076        IWMReaderAllocatorEx **ppAllocator) = 0;
 7077
 7078    virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream(
 7079        DWORD dwStreamNum,
 7080        IWMReaderAllocatorEx *pAllocator) = 0;
 7081
 7082    virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream(
 7083        DWORD dwStreamNum,
 7084        IWMReaderAllocatorEx **ppAllocator) = 0;
 7085
 7086};
 7087#ifdef __CRT_UUID_DECL
 7088__CRT_UUID_DECL(IWMSyncReader2, 0xfaed3d21, 0x1b6b, 0x4af7, 0x8c,0xb6, 0x3e,0x18,0x9b,0xbc,0x18,0x7b)
 7089#endif
 7090#else
 7091typedef struct IWMSyncReader2Vtbl {
 7092    BEGIN_INTERFACE
 7093
 7094    /*** IUnknown methods ***/
 7095    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7096        IWMSyncReader2 *This,
 7097        REFIID riid,
 7098        void **ppvObject);
 7099
 7100    ULONG (STDMETHODCALLTYPE *AddRef)(
 7101        IWMSyncReader2 *This);
 7102
 7103    ULONG (STDMETHODCALLTYPE *Release)(
 7104        IWMSyncReader2 *This);
 7105
 7106    /*** IWMSyncReader methods ***/
 7107    HRESULT (STDMETHODCALLTYPE *Open)(
 7108        IWMSyncReader2 *This,
 7109        const WCHAR *pwszFilename);
 7110
 7111    HRESULT (STDMETHODCALLTYPE *Close)(
 7112        IWMSyncReader2 *This);
 7113
 7114    HRESULT (STDMETHODCALLTYPE *SetRange)(
 7115        IWMSyncReader2 *This,
 7116        QWORD cnsStartTime,
 7117        LONGLONG cnsDuration);
 7118
 7119    HRESULT (STDMETHODCALLTYPE *SetRangeByFrame)(
 7120        IWMSyncReader2 *This,
 7121        WORD wStreamNum,
 7122        QWORD qwFrameNumber,
 7123        LONGLONG cFramesToRead);
 7124
 7125    HRESULT (STDMETHODCALLTYPE *GetNextSample)(
 7126        IWMSyncReader2 *This,
 7127        WORD wStreamNum,
 7128        INSSBuffer **ppSample,
 7129        QWORD *pcnsSampleTime,
 7130        QWORD *pcnsDuration,
 7131        DWORD *pdwFlags,
 7132        DWORD *pdwOutputNum,
 7133        WORD *pwStreamNum);
 7134
 7135    HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)(
 7136        IWMSyncReader2 *This,
 7137        WORD cStreamCount,
 7138        WORD *pwStreamNumbers,
 7139        WMT_STREAM_SELECTION *pSelections);
 7140
 7141    HRESULT (STDMETHODCALLTYPE *GetStreamSelected)(
 7142        IWMSyncReader2 *This,
 7143        WORD wStreamNum,
 7144        WMT_STREAM_SELECTION *pSelection);
 7145
 7146    HRESULT (STDMETHODCALLTYPE *SetReadStreamSamples)(
 7147        IWMSyncReader2 *This,
 7148        WORD wStreamNum,
 7149        WINBOOL fCompressed);
 7150
 7151    HRESULT (STDMETHODCALLTYPE *GetReadStreamSamples)(
 7152        IWMSyncReader2 *This,
 7153        WORD wStreamNum,
 7154        WINBOOL *pfCompressed);
 7155
 7156    HRESULT (STDMETHODCALLTYPE *GetOutputSetting)(
 7157        IWMSyncReader2 *This,
 7158        DWORD dwOutputNum,
 7159        LPCWSTR pszName,
 7160        WMT_ATTR_DATATYPE *pType,
 7161        BYTE *pValue,
 7162        WORD *pcbLength);
 7163
 7164    HRESULT (STDMETHODCALLTYPE *SetOutputSetting)(
 7165        IWMSyncReader2 *This,
 7166        DWORD dwOutputNum,
 7167        LPCWSTR pszName,
 7168        WMT_ATTR_DATATYPE Type,
 7169        const BYTE *pValue,
 7170        WORD cbLength);
 7171
 7172    HRESULT (STDMETHODCALLTYPE *GetOutputCount)(
 7173        IWMSyncReader2 *This,
 7174        DWORD *pcOutputs);
 7175
 7176    HRESULT (STDMETHODCALLTYPE *GetOutputProps)(
 7177        IWMSyncReader2 *This,
 7178        DWORD dwOutputNum,
 7179        IWMOutputMediaProps **ppOutput);
 7180
 7181    HRESULT (STDMETHODCALLTYPE *SetOutputProps)(
 7182        IWMSyncReader2 *This,
 7183        DWORD dwOutputNum,
 7184        IWMOutputMediaProps *pOutput);
 7185
 7186    HRESULT (STDMETHODCALLTYPE *GetOutputFormatCount)(
 7187        IWMSyncReader2 *This,
 7188        DWORD dwOutputNum,
 7189        DWORD *pcFormats);
 7190
 7191    HRESULT (STDMETHODCALLTYPE *GetOutputFormat)(
 7192        IWMSyncReader2 *This,
 7193        DWORD dwOutputNum,
 7194        DWORD dwFormatNum,
 7195        IWMOutputMediaProps **ppProps);
 7196
 7197    HRESULT (STDMETHODCALLTYPE *GetOutputNumberForStream)(
 7198        IWMSyncReader2 *This,
 7199        WORD wStreamNum,
 7200        DWORD *pdwOutputNum);
 7201
 7202    HRESULT (STDMETHODCALLTYPE *GetStreamNumberForOutput)(
 7203        IWMSyncReader2 *This,
 7204        DWORD dwOutputNum,
 7205        WORD *pwStreamNum);
 7206
 7207    HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)(
 7208        IWMSyncReader2 *This,
 7209        DWORD dwOutput,
 7210        DWORD *pcbMax);
 7211
 7212    HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)(
 7213        IWMSyncReader2 *This,
 7214        WORD wStream,
 7215        DWORD *pcbMax);
 7216
 7217    HRESULT (STDMETHODCALLTYPE *OpenStream)(
 7218        IWMSyncReader2 *This,
 7219        IStream *pStream);
 7220
 7221    /*** IWMSyncReader2 methods ***/
 7222    HRESULT (STDMETHODCALLTYPE *SetRangeByTimecode)(
 7223        IWMSyncReader2 *This,
 7224        WORD wStreamNum,
 7225        WMT_TIMECODE_EXTENSION_DATA *pStart,
 7226        WMT_TIMECODE_EXTENSION_DATA *pEnd);
 7227
 7228    HRESULT (STDMETHODCALLTYPE *SetRangeByFrameEx)(
 7229        IWMSyncReader2 *This,
 7230        WORD wStreamNum,
 7231        QWORD qwFrameNumber,
 7232        LONGLONG cFramesToRead,
 7233        QWORD *pcnsStartTime);
 7234
 7235    HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)(
 7236        IWMSyncReader2 *This,
 7237        DWORD dwOutputNum,
 7238        IWMReaderAllocatorEx *pAllocator);
 7239
 7240    HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)(
 7241        IWMSyncReader2 *This,
 7242        DWORD dwOutputNum,
 7243        IWMReaderAllocatorEx **ppAllocator);
 7244
 7245    HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)(
 7246        IWMSyncReader2 *This,
 7247        DWORD dwStreamNum,
 7248        IWMReaderAllocatorEx *pAllocator);
 7249
 7250    HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)(
 7251        IWMSyncReader2 *This,
 7252        DWORD dwStreamNum,
 7253        IWMReaderAllocatorEx **ppAllocator);
 7254
 7255    END_INTERFACE
 7256} IWMSyncReader2Vtbl;
 7257
 7258interface IWMSyncReader2 {
 7259    CONST_VTBL IWMSyncReader2Vtbl* lpVtbl;
 7260};
 7261
 7262#ifdef COBJMACROS
 7263#ifndef WIDL_C_INLINE_WRAPPERS
 7264/*** IUnknown methods ***/
 7265#define IWMSyncReader2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7266#define IWMSyncReader2_AddRef(This) (This)->lpVtbl->AddRef(This)
 7267#define IWMSyncReader2_Release(This) (This)->lpVtbl->Release(This)
 7268/*** IWMSyncReader methods ***/
 7269#define IWMSyncReader2_Open(This,pwszFilename) (This)->lpVtbl->Open(This,pwszFilename)
 7270#define IWMSyncReader2_Close(This) (This)->lpVtbl->Close(This)
 7271#define IWMSyncReader2_SetRange(This,cnsStartTime,cnsDuration) (This)->lpVtbl->SetRange(This,cnsStartTime,cnsDuration)
 7272#define IWMSyncReader2_SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead) (This)->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead)
 7273#define IWMSyncReader2_GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum) (This)->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum)
 7274#define IWMSyncReader2_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections)
 7275#define IWMSyncReader2_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection)
 7276#define IWMSyncReader2_SetReadStreamSamples(This,wStreamNum,fCompressed) (This)->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed)
 7277#define IWMSyncReader2_GetReadStreamSamples(This,wStreamNum,pfCompressed) (This)->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed)
 7278#define IWMSyncReader2_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength)
 7279#define IWMSyncReader2_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength)
 7280#define IWMSyncReader2_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs)
 7281#define IWMSyncReader2_GetOutputProps(This,dwOutputNum,ppOutput) (This)->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput)
 7282#define IWMSyncReader2_SetOutputProps(This,dwOutputNum,pOutput) (This)->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput)
 7283#define IWMSyncReader2_GetOutputFormatCount(This,dwOutputNum,pcFormats) (This)->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats)
 7284#define IWMSyncReader2_GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps) (This)->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps)
 7285#define IWMSyncReader2_GetOutputNumberForStream(This,wStreamNum,pdwOutputNum) (This)->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum)
 7286#define IWMSyncReader2_GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum) (This)->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum)
 7287#define IWMSyncReader2_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax)
 7288#define IWMSyncReader2_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax)
 7289#define IWMSyncReader2_OpenStream(This,pStream) (This)->lpVtbl->OpenStream(This,pStream)
 7290/*** IWMSyncReader2 methods ***/
 7291#define IWMSyncReader2_SetRangeByTimecode(This,wStreamNum,pStart,pEnd) (This)->lpVtbl->SetRangeByTimecode(This,wStreamNum,pStart,pEnd)
 7292#define IWMSyncReader2_SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime) (This)->lpVtbl->SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime)
 7293#define IWMSyncReader2_SetAllocateForOutput(This,dwOutputNum,pAllocator) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,pAllocator)
 7294#define IWMSyncReader2_GetAllocateForOutput(This,dwOutputNum,ppAllocator) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,ppAllocator)
 7295#define IWMSyncReader2_SetAllocateForStream(This,dwStreamNum,pAllocator) (This)->lpVtbl->SetAllocateForStream(This,dwStreamNum,pAllocator)
 7296#define IWMSyncReader2_GetAllocateForStream(This,dwStreamNum,ppAllocator) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,ppAllocator)
 7297#else
 7298/*** IUnknown methods ***/
 7299static inline HRESULT IWMSyncReader2_QueryInterface(IWMSyncReader2* This,REFIID riid,void **ppvObject) {
 7300    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7301}
 7302static inline ULONG IWMSyncReader2_AddRef(IWMSyncReader2* This) {
 7303    return This->lpVtbl->AddRef(This);
 7304}
 7305static inline ULONG IWMSyncReader2_Release(IWMSyncReader2* This) {
 7306    return This->lpVtbl->Release(This);
 7307}
 7308/*** IWMSyncReader methods ***/
 7309static inline HRESULT IWMSyncReader2_Open(IWMSyncReader2* This,const WCHAR *pwszFilename) {
 7310    return This->lpVtbl->Open(This,pwszFilename);
 7311}
 7312static inline HRESULT IWMSyncReader2_Close(IWMSyncReader2* This) {
 7313    return This->lpVtbl->Close(This);
 7314}
 7315static inline HRESULT IWMSyncReader2_SetRange(IWMSyncReader2* This,QWORD cnsStartTime,LONGLONG cnsDuration) {
 7316    return This->lpVtbl->SetRange(This,cnsStartTime,cnsDuration);
 7317}
 7318static inline HRESULT IWMSyncReader2_SetRangeByFrame(IWMSyncReader2* This,WORD wStreamNum,QWORD qwFrameNumber,LONGLONG cFramesToRead) {
 7319    return This->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead);
 7320}
 7321static inline HRESULT IWMSyncReader2_GetNextSample(IWMSyncReader2* This,WORD wStreamNum,INSSBuffer **ppSample,QWORD *pcnsSampleTime,QWORD *pcnsDuration,DWORD *pdwFlags,DWORD *pdwOutputNum,WORD *pwStreamNum) {
 7322    return This->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum);
 7323}
 7324static inline HRESULT IWMSyncReader2_SetStreamsSelected(IWMSyncReader2* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) {
 7325    return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections);
 7326}
 7327static inline HRESULT IWMSyncReader2_GetStreamSelected(IWMSyncReader2* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) {
 7328    return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection);
 7329}
 7330static inline HRESULT IWMSyncReader2_SetReadStreamSamples(IWMSyncReader2* This,WORD wStreamNum,WINBOOL fCompressed) {
 7331    return This->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed);
 7332}
 7333static inline HRESULT IWMSyncReader2_GetReadStreamSamples(IWMSyncReader2* This,WORD wStreamNum,WINBOOL *pfCompressed) {
 7334    return This->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed);
 7335}
 7336static inline HRESULT IWMSyncReader2_GetOutputSetting(IWMSyncReader2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
 7337    return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength);
 7338}
 7339static inline HRESULT IWMSyncReader2_SetOutputSetting(IWMSyncReader2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
 7340    return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength);
 7341}
 7342static inline HRESULT IWMSyncReader2_GetOutputCount(IWMSyncReader2* This,DWORD *pcOutputs) {
 7343    return This->lpVtbl->GetOutputCount(This,pcOutputs);
 7344}
 7345static inline HRESULT IWMSyncReader2_GetOutputProps(IWMSyncReader2* This,DWORD dwOutputNum,IWMOutputMediaProps **ppOutput) {
 7346    return This->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput);
 7347}
 7348static inline HRESULT IWMSyncReader2_SetOutputProps(IWMSyncReader2* This,DWORD dwOutputNum,IWMOutputMediaProps *pOutput) {
 7349    return This->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput);
 7350}
 7351static inline HRESULT IWMSyncReader2_GetOutputFormatCount(IWMSyncReader2* This,DWORD dwOutputNum,DWORD *pcFormats) {
 7352    return This->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats);
 7353}
 7354static inline HRESULT IWMSyncReader2_GetOutputFormat(IWMSyncReader2* This,DWORD dwOutputNum,DWORD dwFormatNum,IWMOutputMediaProps **ppProps) {
 7355    return This->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps);
 7356}
 7357static inline HRESULT IWMSyncReader2_GetOutputNumberForStream(IWMSyncReader2* This,WORD wStreamNum,DWORD *pdwOutputNum) {
 7358    return This->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum);
 7359}
 7360static inline HRESULT IWMSyncReader2_GetStreamNumberForOutput(IWMSyncReader2* This,DWORD dwOutputNum,WORD *pwStreamNum) {
 7361    return This->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum);
 7362}
 7363static inline HRESULT IWMSyncReader2_GetMaxOutputSampleSize(IWMSyncReader2* This,DWORD dwOutput,DWORD *pcbMax) {
 7364    return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax);
 7365}
 7366static inline HRESULT IWMSyncReader2_GetMaxStreamSampleSize(IWMSyncReader2* This,WORD wStream,DWORD *pcbMax) {
 7367    return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax);
 7368}
 7369static inline HRESULT IWMSyncReader2_OpenStream(IWMSyncReader2* This,IStream *pStream) {
 7370    return This->lpVtbl->OpenStream(This,pStream);
 7371}
 7372/*** IWMSyncReader2 methods ***/
 7373static inline HRESULT IWMSyncReader2_SetRangeByTimecode(IWMSyncReader2* This,WORD wStreamNum,WMT_TIMECODE_EXTENSION_DATA *pStart,WMT_TIMECODE_EXTENSION_DATA *pEnd) {
 7374    return This->lpVtbl->SetRangeByTimecode(This,wStreamNum,pStart,pEnd);
 7375}
 7376static inline HRESULT IWMSyncReader2_SetRangeByFrameEx(IWMSyncReader2* This,WORD wStreamNum,QWORD qwFrameNumber,LONGLONG cFramesToRead,QWORD *pcnsStartTime) {
 7377    return This->lpVtbl->SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime);
 7378}
 7379static inline HRESULT IWMSyncReader2_SetAllocateForOutput(IWMSyncReader2* This,DWORD dwOutputNum,IWMReaderAllocatorEx *pAllocator) {
 7380    return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,pAllocator);
 7381}
 7382static inline HRESULT IWMSyncReader2_GetAllocateForOutput(IWMSyncReader2* This,DWORD dwOutputNum,IWMReaderAllocatorEx **ppAllocator) {
 7383    return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,ppAllocator);
 7384}
 7385static inline HRESULT IWMSyncReader2_SetAllocateForStream(IWMSyncReader2* This,DWORD dwStreamNum,IWMReaderAllocatorEx *pAllocator) {
 7386    return This->lpVtbl->SetAllocateForStream(This,dwStreamNum,pAllocator);
 7387}
 7388static inline HRESULT IWMSyncReader2_GetAllocateForStream(IWMSyncReader2* This,DWORD dwStreamNum,IWMReaderAllocatorEx **ppAllocator) {
 7389    return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,ppAllocator);
 7390}
 7391#endif
 7392#endif
 7393
 7394#endif
 7395
 7396
 7397#endif  /* __IWMSyncReader2_INTERFACE_DEFINED__ */
 7398
 7399/*****************************************************************************
 7400 * IWMInputMediaProps interface
 7401 */
 7402#ifndef __IWMInputMediaProps_INTERFACE_DEFINED__
 7403#define __IWMInputMediaProps_INTERFACE_DEFINED__
 7404
 7405DEFINE_GUID(IID_IWMInputMediaProps, 0x96406bd5, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 7406#if defined(__cplusplus) && !defined(CINTERFACE)
 7407MIDL_INTERFACE("96406bd5-2b2b-11d3-b36b-00c04f6108ff")
 7408IWMInputMediaProps : public IWMMediaProps
 7409{
 7410    virtual HRESULT STDMETHODCALLTYPE GetConnectionName(
 7411        WCHAR *pwszName,
 7412        WORD *pcchName) = 0;
 7413
 7414    virtual HRESULT STDMETHODCALLTYPE GetGroupName(
 7415        WCHAR *pwszName,
 7416        WORD *pcchName) = 0;
 7417
 7418};
 7419#ifdef __CRT_UUID_DECL
 7420__CRT_UUID_DECL(IWMInputMediaProps, 0x96406bd5, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 7421#endif
 7422#else
 7423typedef struct IWMInputMediaPropsVtbl {
 7424    BEGIN_INTERFACE
 7425
 7426    /*** IUnknown methods ***/
 7427    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7428        IWMInputMediaProps *This,
 7429        REFIID riid,
 7430        void **ppvObject);
 7431
 7432    ULONG (STDMETHODCALLTYPE *AddRef)(
 7433        IWMInputMediaProps *This);
 7434
 7435    ULONG (STDMETHODCALLTYPE *Release)(
 7436        IWMInputMediaProps *This);
 7437
 7438    /*** IWMMediaProps methods ***/
 7439    HRESULT (STDMETHODCALLTYPE *GetType)(
 7440        IWMInputMediaProps *This,
 7441        GUID *pguidType);
 7442
 7443    HRESULT (STDMETHODCALLTYPE *GetMediaType)(
 7444        IWMInputMediaProps *This,
 7445        WM_MEDIA_TYPE *pType,
 7446        DWORD *pcbType);
 7447
 7448    HRESULT (STDMETHODCALLTYPE *SetMediaType)(
 7449        IWMInputMediaProps *This,
 7450        WM_MEDIA_TYPE *pType);
 7451
 7452    /*** IWMInputMediaProps methods ***/
 7453    HRESULT (STDMETHODCALLTYPE *GetConnectionName)(
 7454        IWMInputMediaProps *This,
 7455        WCHAR *pwszName,
 7456        WORD *pcchName);
 7457
 7458    HRESULT (STDMETHODCALLTYPE *GetGroupName)(
 7459        IWMInputMediaProps *This,
 7460        WCHAR *pwszName,
 7461        WORD *pcchName);
 7462
 7463    END_INTERFACE
 7464} IWMInputMediaPropsVtbl;
 7465
 7466interface IWMInputMediaProps {
 7467    CONST_VTBL IWMInputMediaPropsVtbl* lpVtbl;
 7468};
 7469
 7470#ifdef COBJMACROS
 7471#ifndef WIDL_C_INLINE_WRAPPERS
 7472/*** IUnknown methods ***/
 7473#define IWMInputMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7474#define IWMInputMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This)
 7475#define IWMInputMediaProps_Release(This) (This)->lpVtbl->Release(This)
 7476/*** IWMMediaProps methods ***/
 7477#define IWMInputMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
 7478#define IWMInputMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType)
 7479#define IWMInputMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType)
 7480/*** IWMInputMediaProps methods ***/
 7481#define IWMInputMediaProps_GetConnectionName(This,pwszName,pcchName) (This)->lpVtbl->GetConnectionName(This,pwszName,pcchName)
 7482#define IWMInputMediaProps_GetGroupName(This,pwszName,pcchName) (This)->lpVtbl->GetGroupName(This,pwszName,pcchName)
 7483#else
 7484/*** IUnknown methods ***/
 7485static inline HRESULT IWMInputMediaProps_QueryInterface(IWMInputMediaProps* This,REFIID riid,void **ppvObject) {
 7486    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7487}
 7488static inline ULONG IWMInputMediaProps_AddRef(IWMInputMediaProps* This) {
 7489    return This->lpVtbl->AddRef(This);
 7490}
 7491static inline ULONG IWMInputMediaProps_Release(IWMInputMediaProps* This) {
 7492    return This->lpVtbl->Release(This);
 7493}
 7494/*** IWMMediaProps methods ***/
 7495static inline HRESULT IWMInputMediaProps_GetType(IWMInputMediaProps* This,GUID *pguidType) {
 7496    return This->lpVtbl->GetType(This,pguidType);
 7497}
 7498static inline HRESULT IWMInputMediaProps_GetMediaType(IWMInputMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) {
 7499    return This->lpVtbl->GetMediaType(This,pType,pcbType);
 7500}
 7501static inline HRESULT IWMInputMediaProps_SetMediaType(IWMInputMediaProps* This,WM_MEDIA_TYPE *pType) {
 7502    return This->lpVtbl->SetMediaType(This,pType);
 7503}
 7504/*** IWMInputMediaProps methods ***/
 7505static inline HRESULT IWMInputMediaProps_GetConnectionName(IWMInputMediaProps* This,WCHAR *pwszName,WORD *pcchName) {
 7506    return This->lpVtbl->GetConnectionName(This,pwszName,pcchName);
 7507}
 7508static inline HRESULT IWMInputMediaProps_GetGroupName(IWMInputMediaProps* This,WCHAR *pwszName,WORD *pcchName) {
 7509    return This->lpVtbl->GetGroupName(This,pwszName,pcchName);
 7510}
 7511#endif
 7512#endif
 7513
 7514#endif
 7515
 7516
 7517#endif  /* __IWMInputMediaProps_INTERFACE_DEFINED__ */
 7518
 7519/*****************************************************************************
 7520 * IWMWriterSink interface
 7521 */
 7522#ifndef __IWMWriterSink_INTERFACE_DEFINED__
 7523#define __IWMWriterSink_INTERFACE_DEFINED__
 7524
 7525DEFINE_GUID(IID_IWMWriterSink, 0x96406be4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 7526#if defined(__cplusplus) && !defined(CINTERFACE)
 7527MIDL_INTERFACE("96406be4-2b2b-11d3-b36b-00c04f6108ff")
 7528IWMWriterSink : public IUnknown
 7529{
 7530    virtual HRESULT STDMETHODCALLTYPE OnHeader(
 7531        INSSBuffer *pHeader) = 0;
 7532
 7533    virtual HRESULT STDMETHODCALLTYPE IsRealTime(
 7534        WINBOOL *pfRealTime) = 0;
 7535
 7536    virtual HRESULT STDMETHODCALLTYPE AllocateDataUnit(
 7537        DWORD cbDataUnit,
 7538        INSSBuffer **ppDataUnit) = 0;
 7539
 7540    virtual HRESULT STDMETHODCALLTYPE OnDataUnit(
 7541        INSSBuffer *pDataUnit) = 0;
 7542
 7543    virtual HRESULT STDMETHODCALLTYPE OnEndWriting(
 7544        ) = 0;
 7545
 7546};
 7547#ifdef __CRT_UUID_DECL
 7548__CRT_UUID_DECL(IWMWriterSink, 0x96406be4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 7549#endif
 7550#else
 7551typedef struct IWMWriterSinkVtbl {
 7552    BEGIN_INTERFACE
 7553
 7554    /*** IUnknown methods ***/
 7555    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7556        IWMWriterSink *This,
 7557        REFIID riid,
 7558        void **ppvObject);
 7559
 7560    ULONG (STDMETHODCALLTYPE *AddRef)(
 7561        IWMWriterSink *This);
 7562
 7563    ULONG (STDMETHODCALLTYPE *Release)(
 7564        IWMWriterSink *This);
 7565
 7566    /*** IWMWriterSink methods ***/
 7567    HRESULT (STDMETHODCALLTYPE *OnHeader)(
 7568        IWMWriterSink *This,
 7569        INSSBuffer *pHeader);
 7570
 7571    HRESULT (STDMETHODCALLTYPE *IsRealTime)(
 7572        IWMWriterSink *This,
 7573        WINBOOL *pfRealTime);
 7574
 7575    HRESULT (STDMETHODCALLTYPE *AllocateDataUnit)(
 7576        IWMWriterSink *This,
 7577        DWORD cbDataUnit,
 7578        INSSBuffer **ppDataUnit);
 7579
 7580    HRESULT (STDMETHODCALLTYPE *OnDataUnit)(
 7581        IWMWriterSink *This,
 7582        INSSBuffer *pDataUnit);
 7583
 7584    HRESULT (STDMETHODCALLTYPE *OnEndWriting)(
 7585        IWMWriterSink *This);
 7586
 7587    END_INTERFACE
 7588} IWMWriterSinkVtbl;
 7589
 7590interface IWMWriterSink {
 7591    CONST_VTBL IWMWriterSinkVtbl* lpVtbl;
 7592};
 7593
 7594#ifdef COBJMACROS
 7595#ifndef WIDL_C_INLINE_WRAPPERS
 7596/*** IUnknown methods ***/
 7597#define IWMWriterSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7598#define IWMWriterSink_AddRef(This) (This)->lpVtbl->AddRef(This)
 7599#define IWMWriterSink_Release(This) (This)->lpVtbl->Release(This)
 7600/*** IWMWriterSink methods ***/
 7601#define IWMWriterSink_OnHeader(This,pHeader) (This)->lpVtbl->OnHeader(This,pHeader)
 7602#define IWMWriterSink_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
 7603#define IWMWriterSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit) (This)->lpVtbl->AllocateDataUnit(This,cbDataUnit,ppDataUnit)
 7604#define IWMWriterSink_OnDataUnit(This,pDataUnit) (This)->lpVtbl->OnDataUnit(This,pDataUnit)
 7605#define IWMWriterSink_OnEndWriting(This) (This)->lpVtbl->OnEndWriting(This)
 7606#else
 7607/*** IUnknown methods ***/
 7608static inline HRESULT IWMWriterSink_QueryInterface(IWMWriterSink* This,REFIID riid,void **ppvObject) {
 7609    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7610}
 7611static inline ULONG IWMWriterSink_AddRef(IWMWriterSink* This) {
 7612    return This->lpVtbl->AddRef(This);
 7613}
 7614static inline ULONG IWMWriterSink_Release(IWMWriterSink* This) {
 7615    return This->lpVtbl->Release(This);
 7616}
 7617/*** IWMWriterSink methods ***/
 7618static inline HRESULT IWMWriterSink_OnHeader(IWMWriterSink* This,INSSBuffer *pHeader) {
 7619    return This->lpVtbl->OnHeader(This,pHeader);
 7620}
 7621static inline HRESULT IWMWriterSink_IsRealTime(IWMWriterSink* This,WINBOOL *pfRealTime) {
 7622    return This->lpVtbl->IsRealTime(This,pfRealTime);
 7623}
 7624static inline HRESULT IWMWriterSink_AllocateDataUnit(IWMWriterSink* This,DWORD cbDataUnit,INSSBuffer **ppDataUnit) {
 7625    return This->lpVtbl->AllocateDataUnit(This,cbDataUnit,ppDataUnit);
 7626}
 7627static inline HRESULT IWMWriterSink_OnDataUnit(IWMWriterSink* This,INSSBuffer *pDataUnit) {
 7628    return This->lpVtbl->OnDataUnit(This,pDataUnit);
 7629}
 7630static inline HRESULT IWMWriterSink_OnEndWriting(IWMWriterSink* This) {
 7631    return This->lpVtbl->OnEndWriting(This);
 7632}
 7633#endif
 7634#endif
 7635
 7636#endif
 7637
 7638
 7639#endif  /* __IWMWriterSink_INTERFACE_DEFINED__ */
 7640
 7641/*****************************************************************************
 7642 * IWMWriter interface
 7643 */
 7644#ifndef __IWMWriter_INTERFACE_DEFINED__
 7645#define __IWMWriter_INTERFACE_DEFINED__
 7646
 7647DEFINE_GUID(IID_IWMWriter, 0x96406bd4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 7648#if defined(__cplusplus) && !defined(CINTERFACE)
 7649MIDL_INTERFACE("96406bd4-2b2b-11d3-b36b-00c04f6108ff")
 7650IWMWriter : public IUnknown
 7651{
 7652    virtual HRESULT STDMETHODCALLTYPE SetProfileByID(
 7653        REFGUID guidProfile) = 0;
 7654
 7655    virtual HRESULT STDMETHODCALLTYPE SetProfile(
 7656        IWMProfile *pProfile) = 0;
 7657
 7658    virtual HRESULT STDMETHODCALLTYPE SetOutputFilename(
 7659        const WCHAR *pwszFilename) = 0;
 7660
 7661    virtual HRESULT STDMETHODCALLTYPE GetInputCount(
 7662        DWORD *pcInputs) = 0;
 7663
 7664    virtual HRESULT STDMETHODCALLTYPE GetInputProps(
 7665        DWORD dwInputNum,
 7666        IWMInputMediaProps **ppInput) = 0;
 7667
 7668    virtual HRESULT STDMETHODCALLTYPE SetInputProps(
 7669        DWORD dwInputNum,
 7670        IWMInputMediaProps *pInput) = 0;
 7671
 7672    virtual HRESULT STDMETHODCALLTYPE GetInputFormatCount(
 7673        DWORD dwInputNumber,
 7674        DWORD *pcFormats) = 0;
 7675
 7676    virtual HRESULT STDMETHODCALLTYPE GetInputFormat(
 7677        DWORD dwInputNumber,
 7678        DWORD dwFormatNumber,
 7679        IWMInputMediaProps **pProps) = 0;
 7680
 7681    virtual HRESULT STDMETHODCALLTYPE BeginWriting(
 7682        ) = 0;
 7683
 7684    virtual HRESULT STDMETHODCALLTYPE EndWriting(
 7685        ) = 0;
 7686
 7687    virtual HRESULT STDMETHODCALLTYPE AllocateSample(
 7688        DWORD dwSampleSize,
 7689        INSSBuffer **ppSample) = 0;
 7690
 7691    virtual HRESULT STDMETHODCALLTYPE WriteSample(
 7692        DWORD dwInputNum,
 7693        QWORD cnsSampleTime,
 7694        DWORD dwFlags,
 7695        INSSBuffer *pSample) = 0;
 7696
 7697    virtual HRESULT STDMETHODCALLTYPE Flush(
 7698        ) = 0;
 7699
 7700};
 7701#ifdef __CRT_UUID_DECL
 7702__CRT_UUID_DECL(IWMWriter, 0x96406bd4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 7703#endif
 7704#else
 7705typedef struct IWMWriterVtbl {
 7706    BEGIN_INTERFACE
 7707
 7708    /*** IUnknown methods ***/
 7709    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7710        IWMWriter *This,
 7711        REFIID riid,
 7712        void **ppvObject);
 7713
 7714    ULONG (STDMETHODCALLTYPE *AddRef)(
 7715        IWMWriter *This);
 7716
 7717    ULONG (STDMETHODCALLTYPE *Release)(
 7718        IWMWriter *This);
 7719
 7720    /*** IWMWriter methods ***/
 7721    HRESULT (STDMETHODCALLTYPE *SetProfileByID)(
 7722        IWMWriter *This,
 7723        REFGUID guidProfile);
 7724
 7725    HRESULT (STDMETHODCALLTYPE *SetProfile)(
 7726        IWMWriter *This,
 7727        IWMProfile *pProfile);
 7728
 7729    HRESULT (STDMETHODCALLTYPE *SetOutputFilename)(
 7730        IWMWriter *This,
 7731        const WCHAR *pwszFilename);
 7732
 7733    HRESULT (STDMETHODCALLTYPE *GetInputCount)(
 7734        IWMWriter *This,
 7735        DWORD *pcInputs);
 7736
 7737    HRESULT (STDMETHODCALLTYPE *GetInputProps)(
 7738        IWMWriter *This,
 7739        DWORD dwInputNum,
 7740        IWMInputMediaProps **ppInput);
 7741
 7742    HRESULT (STDMETHODCALLTYPE *SetInputProps)(
 7743        IWMWriter *This,
 7744        DWORD dwInputNum,
 7745        IWMInputMediaProps *pInput);
 7746
 7747    HRESULT (STDMETHODCALLTYPE *GetInputFormatCount)(
 7748        IWMWriter *This,
 7749        DWORD dwInputNumber,
 7750        DWORD *pcFormats);
 7751
 7752    HRESULT (STDMETHODCALLTYPE *GetInputFormat)(
 7753        IWMWriter *This,
 7754        DWORD dwInputNumber,
 7755        DWORD dwFormatNumber,
 7756        IWMInputMediaProps **pProps);
 7757
 7758    HRESULT (STDMETHODCALLTYPE *BeginWriting)(
 7759        IWMWriter *This);
 7760
 7761    HRESULT (STDMETHODCALLTYPE *EndWriting)(
 7762        IWMWriter *This);
 7763
 7764    HRESULT (STDMETHODCALLTYPE *AllocateSample)(
 7765        IWMWriter *This,
 7766        DWORD dwSampleSize,
 7767        INSSBuffer **ppSample);
 7768
 7769    HRESULT (STDMETHODCALLTYPE *WriteSample)(
 7770        IWMWriter *This,
 7771        DWORD dwInputNum,
 7772        QWORD cnsSampleTime,
 7773        DWORD dwFlags,
 7774        INSSBuffer *pSample);
 7775
 7776    HRESULT (STDMETHODCALLTYPE *Flush)(
 7777        IWMWriter *This);
 7778
 7779    END_INTERFACE
 7780} IWMWriterVtbl;
 7781
 7782interface IWMWriter {
 7783    CONST_VTBL IWMWriterVtbl* lpVtbl;
 7784};
 7785
 7786#ifdef COBJMACROS
 7787#ifndef WIDL_C_INLINE_WRAPPERS
 7788/*** IUnknown methods ***/
 7789#define IWMWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7790#define IWMWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
 7791#define IWMWriter_Release(This) (This)->lpVtbl->Release(This)
 7792/*** IWMWriter methods ***/
 7793#define IWMWriter_SetProfileByID(This,guidProfile) (This)->lpVtbl->SetProfileByID(This,guidProfile)
 7794#define IWMWriter_SetProfile(This,pProfile) (This)->lpVtbl->SetProfile(This,pProfile)
 7795#define IWMWriter_SetOutputFilename(This,pwszFilename) (This)->lpVtbl->SetOutputFilename(This,pwszFilename)
 7796#define IWMWriter_GetInputCount(This,pcInputs) (This)->lpVtbl->GetInputCount(This,pcInputs)
 7797#define IWMWriter_GetInputProps(This,dwInputNum,ppInput) (This)->lpVtbl->GetInputProps(This,dwInputNum,ppInput)
 7798#define IWMWriter_SetInputProps(This,dwInputNum,pInput) (This)->lpVtbl->SetInputProps(This,dwInputNum,pInput)
 7799#define IWMWriter_GetInputFormatCount(This,dwInputNumber,pcFormats) (This)->lpVtbl->GetInputFormatCount(This,dwInputNumber,pcFormats)
 7800#define IWMWriter_GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps) (This)->lpVtbl->GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps)
 7801#define IWMWriter_BeginWriting(This) (This)->lpVtbl->BeginWriting(This)
 7802#define IWMWriter_EndWriting(This) (This)->lpVtbl->EndWriting(This)
 7803#define IWMWriter_AllocateSample(This,dwSampleSize,ppSample) (This)->lpVtbl->AllocateSample(This,dwSampleSize,ppSample)
 7804#define IWMWriter_WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample) (This)->lpVtbl->WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample)
 7805#define IWMWriter_Flush(This) (This)->lpVtbl->Flush(This)
 7806#else
 7807/*** IUnknown methods ***/
 7808static inline HRESULT IWMWriter_QueryInterface(IWMWriter* This,REFIID riid,void **ppvObject) {
 7809    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7810}
 7811static inline ULONG IWMWriter_AddRef(IWMWriter* This) {
 7812    return This->lpVtbl->AddRef(This);
 7813}
 7814static inline ULONG IWMWriter_Release(IWMWriter* This) {
 7815    return This->lpVtbl->Release(This);
 7816}
 7817/*** IWMWriter methods ***/
 7818static inline HRESULT IWMWriter_SetProfileByID(IWMWriter* This,REFGUID guidProfile) {
 7819    return This->lpVtbl->SetProfileByID(This,guidProfile);
 7820}
 7821static inline HRESULT IWMWriter_SetProfile(IWMWriter* This,IWMProfile *pProfile) {
 7822    return This->lpVtbl->SetProfile(This,pProfile);
 7823}
 7824static inline HRESULT IWMWriter_SetOutputFilename(IWMWriter* This,const WCHAR *pwszFilename) {
 7825    return This->lpVtbl->SetOutputFilename(This,pwszFilename);
 7826}
 7827static inline HRESULT IWMWriter_GetInputCount(IWMWriter* This,DWORD *pcInputs) {
 7828    return This->lpVtbl->GetInputCount(This,pcInputs);
 7829}
 7830static inline HRESULT IWMWriter_GetInputProps(IWMWriter* This,DWORD dwInputNum,IWMInputMediaProps **ppInput) {
 7831    return This->lpVtbl->GetInputProps(This,dwInputNum,ppInput);
 7832}
 7833static inline HRESULT IWMWriter_SetInputProps(IWMWriter* This,DWORD dwInputNum,IWMInputMediaProps *pInput) {
 7834    return This->lpVtbl->SetInputProps(This,dwInputNum,pInput);
 7835}
 7836static inline HRESULT IWMWriter_GetInputFormatCount(IWMWriter* This,DWORD dwInputNumber,DWORD *pcFormats) {
 7837    return This->lpVtbl->GetInputFormatCount(This,dwInputNumber,pcFormats);
 7838}
 7839static inline HRESULT IWMWriter_GetInputFormat(IWMWriter* This,DWORD dwInputNumber,DWORD dwFormatNumber,IWMInputMediaProps **pProps) {
 7840    return This->lpVtbl->GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps);
 7841}
 7842static inline HRESULT IWMWriter_BeginWriting(IWMWriter* This) {
 7843    return This->lpVtbl->BeginWriting(This);
 7844}
 7845static inline HRESULT IWMWriter_EndWriting(IWMWriter* This) {
 7846    return This->lpVtbl->EndWriting(This);
 7847}
 7848static inline HRESULT IWMWriter_AllocateSample(IWMWriter* This,DWORD dwSampleSize,INSSBuffer **ppSample) {
 7849    return This->lpVtbl->AllocateSample(This,dwSampleSize,ppSample);
 7850}
 7851static inline HRESULT IWMWriter_WriteSample(IWMWriter* This,DWORD dwInputNum,QWORD cnsSampleTime,DWORD dwFlags,INSSBuffer *pSample) {
 7852    return This->lpVtbl->WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample);
 7853}
 7854static inline HRESULT IWMWriter_Flush(IWMWriter* This) {
 7855    return This->lpVtbl->Flush(This);
 7856}
 7857#endif
 7858#endif
 7859
 7860#endif
 7861
 7862
 7863#endif  /* __IWMWriter_INTERFACE_DEFINED__ */
 7864
 7865/*****************************************************************************
 7866 * IWMWriterAdvanced interface
 7867 */
 7868#ifndef __IWMWriterAdvanced_INTERFACE_DEFINED__
 7869#define __IWMWriterAdvanced_INTERFACE_DEFINED__
 7870
 7871DEFINE_GUID(IID_IWMWriterAdvanced, 0x96406be3, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 7872#if defined(__cplusplus) && !defined(CINTERFACE)
 7873MIDL_INTERFACE("96406be3-2b2b-11d3-b36b-00c04f6108ff")
 7874IWMWriterAdvanced : public IUnknown
 7875{
 7876    virtual HRESULT STDMETHODCALLTYPE GetSinkCount(
 7877        DWORD *pcSinks) = 0;
 7878
 7879    virtual HRESULT STDMETHODCALLTYPE GetSink(
 7880        DWORD dwSinkNum,
 7881        IWMWriterSink **ppSink) = 0;
 7882
 7883    virtual HRESULT STDMETHODCALLTYPE AddSink(
 7884        IWMWriterSink *pSink) = 0;
 7885
 7886    virtual HRESULT STDMETHODCALLTYPE RemoveSink(
 7887        IWMWriterSink *pSink) = 0;
 7888
 7889    virtual HRESULT STDMETHODCALLTYPE WriteStreamSample(
 7890        WORD wStreamNum,
 7891        QWORD cnsSampleTime,
 7892        DWORD msSampleSendTime,
 7893        QWORD cnsSampleDuration,
 7894        DWORD dwFlags,
 7895        INSSBuffer *pSample) = 0;
 7896
 7897    virtual HRESULT STDMETHODCALLTYPE SetLiveSource(
 7898        WINBOOL fIsLiveSource) = 0;
 7899
 7900    virtual HRESULT STDMETHODCALLTYPE IsRealTime(
 7901        WINBOOL *pfRealTime) = 0;
 7902
 7903    virtual HRESULT STDMETHODCALLTYPE GetWriterTime(
 7904        QWORD *pCurrentTime) = 0;
 7905
 7906    virtual HRESULT STDMETHODCALLTYPE GetStatistics(
 7907        WORD wStreamNum,
 7908        WM_WRITER_STATISTICS *pStats) = 0;
 7909
 7910    virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance(
 7911        DWORD msWindow) = 0;
 7912
 7913    virtual HRESULT STDMETHODCALLTYPE GetSyncTolerance(
 7914        DWORD *pmsWindow) = 0;
 7915
 7916};
 7917#ifdef __CRT_UUID_DECL
 7918__CRT_UUID_DECL(IWMWriterAdvanced, 0x96406be3, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 7919#endif
 7920#else
 7921typedef struct IWMWriterAdvancedVtbl {
 7922    BEGIN_INTERFACE
 7923
 7924    /*** IUnknown methods ***/
 7925    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7926        IWMWriterAdvanced *This,
 7927        REFIID riid,
 7928        void **ppvObject);
 7929
 7930    ULONG (STDMETHODCALLTYPE *AddRef)(
 7931        IWMWriterAdvanced *This);
 7932
 7933    ULONG (STDMETHODCALLTYPE *Release)(
 7934        IWMWriterAdvanced *This);
 7935
 7936    /*** IWMWriterAdvanced methods ***/
 7937    HRESULT (STDMETHODCALLTYPE *GetSinkCount)(
 7938        IWMWriterAdvanced *This,
 7939        DWORD *pcSinks);
 7940
 7941    HRESULT (STDMETHODCALLTYPE *GetSink)(
 7942        IWMWriterAdvanced *This,
 7943        DWORD dwSinkNum,
 7944        IWMWriterSink **ppSink);
 7945
 7946    HRESULT (STDMETHODCALLTYPE *AddSink)(
 7947        IWMWriterAdvanced *This,
 7948        IWMWriterSink *pSink);
 7949
 7950    HRESULT (STDMETHODCALLTYPE *RemoveSink)(
 7951        IWMWriterAdvanced *This,
 7952        IWMWriterSink *pSink);
 7953
 7954    HRESULT (STDMETHODCALLTYPE *WriteStreamSample)(
 7955        IWMWriterAdvanced *This,
 7956        WORD wStreamNum,
 7957        QWORD cnsSampleTime,
 7958        DWORD msSampleSendTime,
 7959        QWORD cnsSampleDuration,
 7960        DWORD dwFlags,
 7961        INSSBuffer *pSample);
 7962
 7963    HRESULT (STDMETHODCALLTYPE *SetLiveSource)(
 7964        IWMWriterAdvanced *This,
 7965        WINBOOL fIsLiveSource);
 7966
 7967    HRESULT (STDMETHODCALLTYPE *IsRealTime)(
 7968        IWMWriterAdvanced *This,
 7969        WINBOOL *pfRealTime);
 7970
 7971    HRESULT (STDMETHODCALLTYPE *GetWriterTime)(
 7972        IWMWriterAdvanced *This,
 7973        QWORD *pCurrentTime);
 7974
 7975    HRESULT (STDMETHODCALLTYPE *GetStatistics)(
 7976        IWMWriterAdvanced *This,
 7977        WORD wStreamNum,
 7978        WM_WRITER_STATISTICS *pStats);
 7979
 7980    HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)(
 7981        IWMWriterAdvanced *This,
 7982        DWORD msWindow);
 7983
 7984    HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)(
 7985        IWMWriterAdvanced *This,
 7986        DWORD *pmsWindow);
 7987
 7988    END_INTERFACE
 7989} IWMWriterAdvancedVtbl;
 7990
 7991interface IWMWriterAdvanced {
 7992    CONST_VTBL IWMWriterAdvancedVtbl* lpVtbl;
 7993};
 7994
 7995#ifdef COBJMACROS
 7996#ifndef WIDL_C_INLINE_WRAPPERS
 7997/*** IUnknown methods ***/
 7998#define IWMWriterAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7999#define IWMWriterAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This)
 8000#define IWMWriterAdvanced_Release(This) (This)->lpVtbl->Release(This)
 8001/*** IWMWriterAdvanced methods ***/
 8002#define IWMWriterAdvanced_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks)
 8003#define IWMWriterAdvanced_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink)
 8004#define IWMWriterAdvanced_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink)
 8005#define IWMWriterAdvanced_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink)
 8006#define IWMWriterAdvanced_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
 8007#define IWMWriterAdvanced_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource)
 8008#define IWMWriterAdvanced_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
 8009#define IWMWriterAdvanced_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime)
 8010#define IWMWriterAdvanced_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats)
 8011#define IWMWriterAdvanced_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow)
 8012#define IWMWriterAdvanced_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow)
 8013#else
 8014/*** IUnknown methods ***/
 8015static inline HRESULT IWMWriterAdvanced_QueryInterface(IWMWriterAdvanced* This,REFIID riid,void **ppvObject) {
 8016    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8017}
 8018static inline ULONG IWMWriterAdvanced_AddRef(IWMWriterAdvanced* This) {
 8019    return This->lpVtbl->AddRef(This);
 8020}
 8021static inline ULONG IWMWriterAdvanced_Release(IWMWriterAdvanced* This) {
 8022    return This->lpVtbl->Release(This);
 8023}
 8024/*** IWMWriterAdvanced methods ***/
 8025static inline HRESULT IWMWriterAdvanced_GetSinkCount(IWMWriterAdvanced* This,DWORD *pcSinks) {
 8026    return This->lpVtbl->GetSinkCount(This,pcSinks);
 8027}
 8028static inline HRESULT IWMWriterAdvanced_GetSink(IWMWriterAdvanced* This,DWORD dwSinkNum,IWMWriterSink **ppSink) {
 8029    return This->lpVtbl->GetSink(This,dwSinkNum,ppSink);
 8030}
 8031static inline HRESULT IWMWriterAdvanced_AddSink(IWMWriterAdvanced* This,IWMWriterSink *pSink) {
 8032    return This->lpVtbl->AddSink(This,pSink);
 8033}
 8034static inline HRESULT IWMWriterAdvanced_RemoveSink(IWMWriterAdvanced* This,IWMWriterSink *pSink) {
 8035    return This->lpVtbl->RemoveSink(This,pSink);
 8036}
 8037static inline HRESULT IWMWriterAdvanced_WriteStreamSample(IWMWriterAdvanced* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) {
 8038    return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample);
 8039}
 8040static inline HRESULT IWMWriterAdvanced_SetLiveSource(IWMWriterAdvanced* This,WINBOOL fIsLiveSource) {
 8041    return This->lpVtbl->SetLiveSource(This,fIsLiveSource);
 8042}
 8043static inline HRESULT IWMWriterAdvanced_IsRealTime(IWMWriterAdvanced* This,WINBOOL *pfRealTime) {
 8044    return This->lpVtbl->IsRealTime(This,pfRealTime);
 8045}
 8046static inline HRESULT IWMWriterAdvanced_GetWriterTime(IWMWriterAdvanced* This,QWORD *pCurrentTime) {
 8047    return This->lpVtbl->GetWriterTime(This,pCurrentTime);
 8048}
 8049static inline HRESULT IWMWriterAdvanced_GetStatistics(IWMWriterAdvanced* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) {
 8050    return This->lpVtbl->GetStatistics(This,wStreamNum,pStats);
 8051}
 8052static inline HRESULT IWMWriterAdvanced_SetSyncTolerance(IWMWriterAdvanced* This,DWORD msWindow) {
 8053    return This->lpVtbl->SetSyncTolerance(This,msWindow);
 8054}
 8055static inline HRESULT IWMWriterAdvanced_GetSyncTolerance(IWMWriterAdvanced* This,DWORD *pmsWindow) {
 8056    return This->lpVtbl->GetSyncTolerance(This,pmsWindow);
 8057}
 8058#endif
 8059#endif
 8060
 8061#endif
 8062
 8063
 8064#endif  /* __IWMWriterAdvanced_INTERFACE_DEFINED__ */
 8065
 8066/*****************************************************************************
 8067 * IWMWriterAdvanced2 interface
 8068 */
 8069#ifndef __IWMWriterAdvanced2_INTERFACE_DEFINED__
 8070#define __IWMWriterAdvanced2_INTERFACE_DEFINED__
 8071
 8072DEFINE_GUID(IID_IWMWriterAdvanced2, 0x962dc1ec, 0xc046, 0x4db8, 0x9c,0xc7, 0x26,0xce,0xae,0x50,0x08,0x17);
 8073#if defined(__cplusplus) && !defined(CINTERFACE)
 8074MIDL_INTERFACE("962dc1ec-c046-4db8-9cc7-26ceae500817")
 8075IWMWriterAdvanced2 : public IWMWriterAdvanced
 8076{
 8077    virtual HRESULT STDMETHODCALLTYPE GetInputSetting(
 8078        DWORD dwInputNum,
 8079        LPCWSTR pszName,
 8080        WMT_ATTR_DATATYPE *pType,
 8081        BYTE *pValue,
 8082        WORD *pcbLength) = 0;
 8083
 8084    virtual HRESULT STDMETHODCALLTYPE SetInputSetting(
 8085        DWORD dwInputNum,
 8086        LPCWSTR pszName,
 8087        WMT_ATTR_DATATYPE Type,
 8088        const BYTE *pValue,
 8089        WORD cbLength) = 0;
 8090
 8091};
 8092#ifdef __CRT_UUID_DECL
 8093__CRT_UUID_DECL(IWMWriterAdvanced2, 0x962dc1ec, 0xc046, 0x4db8, 0x9c,0xc7, 0x26,0xce,0xae,0x50,0x08,0x17)
 8094#endif
 8095#else
 8096typedef struct IWMWriterAdvanced2Vtbl {
 8097    BEGIN_INTERFACE
 8098
 8099    /*** IUnknown methods ***/
 8100    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8101        IWMWriterAdvanced2 *This,
 8102        REFIID riid,
 8103        void **ppvObject);
 8104
 8105    ULONG (STDMETHODCALLTYPE *AddRef)(
 8106        IWMWriterAdvanced2 *This);
 8107
 8108    ULONG (STDMETHODCALLTYPE *Release)(
 8109        IWMWriterAdvanced2 *This);
 8110
 8111    /*** IWMWriterAdvanced methods ***/
 8112    HRESULT (STDMETHODCALLTYPE *GetSinkCount)(
 8113        IWMWriterAdvanced2 *This,
 8114        DWORD *pcSinks);
 8115
 8116    HRESULT (STDMETHODCALLTYPE *GetSink)(
 8117        IWMWriterAdvanced2 *This,
 8118        DWORD dwSinkNum,
 8119        IWMWriterSink **ppSink);
 8120
 8121    HRESULT (STDMETHODCALLTYPE *AddSink)(
 8122        IWMWriterAdvanced2 *This,
 8123        IWMWriterSink *pSink);
 8124
 8125    HRESULT (STDMETHODCALLTYPE *RemoveSink)(
 8126        IWMWriterAdvanced2 *This,
 8127        IWMWriterSink *pSink);
 8128
 8129    HRESULT (STDMETHODCALLTYPE *WriteStreamSample)(
 8130        IWMWriterAdvanced2 *This,
 8131        WORD wStreamNum,
 8132        QWORD cnsSampleTime,
 8133        DWORD msSampleSendTime,
 8134        QWORD cnsSampleDuration,
 8135        DWORD dwFlags,
 8136        INSSBuffer *pSample);
 8137
 8138    HRESULT (STDMETHODCALLTYPE *SetLiveSource)(
 8139        IWMWriterAdvanced2 *This,
 8140        WINBOOL fIsLiveSource);
 8141
 8142    HRESULT (STDMETHODCALLTYPE *IsRealTime)(
 8143        IWMWriterAdvanced2 *This,
 8144        WINBOOL *pfRealTime);
 8145
 8146    HRESULT (STDMETHODCALLTYPE *GetWriterTime)(
 8147        IWMWriterAdvanced2 *This,
 8148        QWORD *pCurrentTime);
 8149
 8150    HRESULT (STDMETHODCALLTYPE *GetStatistics)(
 8151        IWMWriterAdvanced2 *This,
 8152        WORD wStreamNum,
 8153        WM_WRITER_STATISTICS *pStats);
 8154
 8155    HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)(
 8156        IWMWriterAdvanced2 *This,
 8157        DWORD msWindow);
 8158
 8159    HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)(
 8160        IWMWriterAdvanced2 *This,
 8161        DWORD *pmsWindow);
 8162
 8163    /*** IWMWriterAdvanced2 methods ***/
 8164    HRESULT (STDMETHODCALLTYPE *GetInputSetting)(
 8165        IWMWriterAdvanced2 *This,
 8166        DWORD dwInputNum,
 8167        LPCWSTR pszName,
 8168        WMT_ATTR_DATATYPE *pType,
 8169        BYTE *pValue,
 8170        WORD *pcbLength);
 8171
 8172    HRESULT (STDMETHODCALLTYPE *SetInputSetting)(
 8173        IWMWriterAdvanced2 *This,
 8174        DWORD dwInputNum,
 8175        LPCWSTR pszName,
 8176        WMT_ATTR_DATATYPE Type,
 8177        const BYTE *pValue,
 8178        WORD cbLength);
 8179
 8180    END_INTERFACE
 8181} IWMWriterAdvanced2Vtbl;
 8182
 8183interface IWMWriterAdvanced2 {
 8184    CONST_VTBL IWMWriterAdvanced2Vtbl* lpVtbl;
 8185};
 8186
 8187#ifdef COBJMACROS
 8188#ifndef WIDL_C_INLINE_WRAPPERS
 8189/*** IUnknown methods ***/
 8190#define IWMWriterAdvanced2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8191#define IWMWriterAdvanced2_AddRef(This) (This)->lpVtbl->AddRef(This)
 8192#define IWMWriterAdvanced2_Release(This) (This)->lpVtbl->Release(This)
 8193/*** IWMWriterAdvanced methods ***/
 8194#define IWMWriterAdvanced2_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks)
 8195#define IWMWriterAdvanced2_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink)
 8196#define IWMWriterAdvanced2_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink)
 8197#define IWMWriterAdvanced2_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink)
 8198#define IWMWriterAdvanced2_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
 8199#define IWMWriterAdvanced2_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource)
 8200#define IWMWriterAdvanced2_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
 8201#define IWMWriterAdvanced2_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime)
 8202#define IWMWriterAdvanced2_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats)
 8203#define IWMWriterAdvanced2_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow)
 8204#define IWMWriterAdvanced2_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow)
 8205/*** IWMWriterAdvanced2 methods ***/
 8206#define IWMWriterAdvanced2_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
 8207#define IWMWriterAdvanced2_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
 8208#else
 8209/*** IUnknown methods ***/
 8210static inline HRESULT IWMWriterAdvanced2_QueryInterface(IWMWriterAdvanced2* This,REFIID riid,void **ppvObject) {
 8211    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8212}
 8213static inline ULONG IWMWriterAdvanced2_AddRef(IWMWriterAdvanced2* This) {
 8214    return This->lpVtbl->AddRef(This);
 8215}
 8216static inline ULONG IWMWriterAdvanced2_Release(IWMWriterAdvanced2* This) {
 8217    return This->lpVtbl->Release(This);
 8218}
 8219/*** IWMWriterAdvanced methods ***/
 8220static inline HRESULT IWMWriterAdvanced2_GetSinkCount(IWMWriterAdvanced2* This,DWORD *pcSinks) {
 8221    return This->lpVtbl->GetSinkCount(This,pcSinks);
 8222}
 8223static inline HRESULT IWMWriterAdvanced2_GetSink(IWMWriterAdvanced2* This,DWORD dwSinkNum,IWMWriterSink **ppSink) {
 8224    return This->lpVtbl->GetSink(This,dwSinkNum,ppSink);
 8225}
 8226static inline HRESULT IWMWriterAdvanced2_AddSink(IWMWriterAdvanced2* This,IWMWriterSink *pSink) {
 8227    return This->lpVtbl->AddSink(This,pSink);
 8228}
 8229static inline HRESULT IWMWriterAdvanced2_RemoveSink(IWMWriterAdvanced2* This,IWMWriterSink *pSink) {
 8230    return This->lpVtbl->RemoveSink(This,pSink);
 8231}
 8232static inline HRESULT IWMWriterAdvanced2_WriteStreamSample(IWMWriterAdvanced2* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) {
 8233    return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample);
 8234}
 8235static inline HRESULT IWMWriterAdvanced2_SetLiveSource(IWMWriterAdvanced2* This,WINBOOL fIsLiveSource) {
 8236    return This->lpVtbl->SetLiveSource(This,fIsLiveSource);
 8237}
 8238static inline HRESULT IWMWriterAdvanced2_IsRealTime(IWMWriterAdvanced2* This,WINBOOL *pfRealTime) {
 8239    return This->lpVtbl->IsRealTime(This,pfRealTime);
 8240}
 8241static inline HRESULT IWMWriterAdvanced2_GetWriterTime(IWMWriterAdvanced2* This,QWORD *pCurrentTime) {
 8242    return This->lpVtbl->GetWriterTime(This,pCurrentTime);
 8243}
 8244static inline HRESULT IWMWriterAdvanced2_GetStatistics(IWMWriterAdvanced2* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) {
 8245    return This->lpVtbl->GetStatistics(This,wStreamNum,pStats);
 8246}
 8247static inline HRESULT IWMWriterAdvanced2_SetSyncTolerance(IWMWriterAdvanced2* This,DWORD msWindow) {
 8248    return This->lpVtbl->SetSyncTolerance(This,msWindow);
 8249}
 8250static inline HRESULT IWMWriterAdvanced2_GetSyncTolerance(IWMWriterAdvanced2* This,DWORD *pmsWindow) {
 8251    return This->lpVtbl->GetSyncTolerance(This,pmsWindow);
 8252}
 8253/*** IWMWriterAdvanced2 methods ***/
 8254static inline HRESULT IWMWriterAdvanced2_GetInputSetting(IWMWriterAdvanced2* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
 8255    return This->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength);
 8256}
 8257static inline HRESULT IWMWriterAdvanced2_SetInputSetting(IWMWriterAdvanced2* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
 8258    return This->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength);
 8259}
 8260#endif
 8261#endif
 8262
 8263#endif
 8264
 8265
 8266#endif  /* __IWMWriterAdvanced2_INTERFACE_DEFINED__ */
 8267
 8268/*****************************************************************************
 8269 * IWMWriterAdvanced3 interface
 8270 */
 8271#ifndef __IWMWriterAdvanced3_INTERFACE_DEFINED__
 8272#define __IWMWriterAdvanced3_INTERFACE_DEFINED__
 8273
 8274DEFINE_GUID(IID_IWMWriterAdvanced3, 0x2cd6492d, 0x7c37, 0x4e76, 0x9d,0x3b, 0x59,0x26,0x11,0x83,0xa2,0x2e);
 8275#if defined(__cplusplus) && !defined(CINTERFACE)
 8276MIDL_INTERFACE("2cd6492d-7c37-4e76-9d3b-59261183a22e")
 8277IWMWriterAdvanced3 : public IWMWriterAdvanced2
 8278{
 8279    virtual HRESULT STDMETHODCALLTYPE GetStatisticsEx(
 8280        WORD wStreamNum,
 8281        WM_WRITER_STATISTICS_EX *pStats) = 0;
 8282
 8283    virtual HRESULT STDMETHODCALLTYPE SetNonBlocking(
 8284        ) = 0;
 8285
 8286};
 8287#ifdef __CRT_UUID_DECL
 8288__CRT_UUID_DECL(IWMWriterAdvanced3, 0x2cd6492d, 0x7c37, 0x4e76, 0x9d,0x3b, 0x59,0x26,0x11,0x83,0xa2,0x2e)
 8289#endif
 8290#else
 8291typedef struct IWMWriterAdvanced3Vtbl {
 8292    BEGIN_INTERFACE
 8293
 8294    /*** IUnknown methods ***/
 8295    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8296        IWMWriterAdvanced3 *This,
 8297        REFIID riid,
 8298        void **ppvObject);
 8299
 8300    ULONG (STDMETHODCALLTYPE *AddRef)(
 8301        IWMWriterAdvanced3 *This);
 8302
 8303    ULONG (STDMETHODCALLTYPE *Release)(
 8304        IWMWriterAdvanced3 *This);
 8305
 8306    /*** IWMWriterAdvanced methods ***/
 8307    HRESULT (STDMETHODCALLTYPE *GetSinkCount)(
 8308        IWMWriterAdvanced3 *This,
 8309        DWORD *pcSinks);
 8310
 8311    HRESULT (STDMETHODCALLTYPE *GetSink)(
 8312        IWMWriterAdvanced3 *This,
 8313        DWORD dwSinkNum,
 8314        IWMWriterSink **ppSink);
 8315
 8316    HRESULT (STDMETHODCALLTYPE *AddSink)(
 8317        IWMWriterAdvanced3 *This,
 8318        IWMWriterSink *pSink);
 8319
 8320    HRESULT (STDMETHODCALLTYPE *RemoveSink)(
 8321        IWMWriterAdvanced3 *This,
 8322        IWMWriterSink *pSink);
 8323
 8324    HRESULT (STDMETHODCALLTYPE *WriteStreamSample)(
 8325        IWMWriterAdvanced3 *This,
 8326        WORD wStreamNum,
 8327        QWORD cnsSampleTime,
 8328        DWORD msSampleSendTime,
 8329        QWORD cnsSampleDuration,
 8330        DWORD dwFlags,
 8331        INSSBuffer *pSample);
 8332
 8333    HRESULT (STDMETHODCALLTYPE *SetLiveSource)(
 8334        IWMWriterAdvanced3 *This,
 8335        WINBOOL fIsLiveSource);
 8336
 8337    HRESULT (STDMETHODCALLTYPE *IsRealTime)(
 8338        IWMWriterAdvanced3 *This,
 8339        WINBOOL *pfRealTime);
 8340
 8341    HRESULT (STDMETHODCALLTYPE *GetWriterTime)(
 8342        IWMWriterAdvanced3 *This,
 8343        QWORD *pCurrentTime);
 8344
 8345    HRESULT (STDMETHODCALLTYPE *GetStatistics)(
 8346        IWMWriterAdvanced3 *This,
 8347        WORD wStreamNum,
 8348        WM_WRITER_STATISTICS *pStats);
 8349
 8350    HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)(
 8351        IWMWriterAdvanced3 *This,
 8352        DWORD msWindow);
 8353
 8354    HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)(
 8355        IWMWriterAdvanced3 *This,
 8356        DWORD *pmsWindow);
 8357
 8358    /*** IWMWriterAdvanced2 methods ***/
 8359    HRESULT (STDMETHODCALLTYPE *GetInputSetting)(
 8360        IWMWriterAdvanced3 *This,
 8361        DWORD dwInputNum,
 8362        LPCWSTR pszName,
 8363        WMT_ATTR_DATATYPE *pType,
 8364        BYTE *pValue,
 8365        WORD *pcbLength);
 8366
 8367    HRESULT (STDMETHODCALLTYPE *SetInputSetting)(
 8368        IWMWriterAdvanced3 *This,
 8369        DWORD dwInputNum,
 8370        LPCWSTR pszName,
 8371        WMT_ATTR_DATATYPE Type,
 8372        const BYTE *pValue,
 8373        WORD cbLength);
 8374
 8375    /*** IWMWriterAdvanced3 methods ***/
 8376    HRESULT (STDMETHODCALLTYPE *GetStatisticsEx)(
 8377        IWMWriterAdvanced3 *This,
 8378        WORD wStreamNum,
 8379        WM_WRITER_STATISTICS_EX *pStats);
 8380
 8381    HRESULT (STDMETHODCALLTYPE *SetNonBlocking)(
 8382        IWMWriterAdvanced3 *This);
 8383
 8384    END_INTERFACE
 8385} IWMWriterAdvanced3Vtbl;
 8386
 8387interface IWMWriterAdvanced3 {
 8388    CONST_VTBL IWMWriterAdvanced3Vtbl* lpVtbl;
 8389};
 8390
 8391#ifdef COBJMACROS
 8392#ifndef WIDL_C_INLINE_WRAPPERS
 8393/*** IUnknown methods ***/
 8394#define IWMWriterAdvanced3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8395#define IWMWriterAdvanced3_AddRef(This) (This)->lpVtbl->AddRef(This)
 8396#define IWMWriterAdvanced3_Release(This) (This)->lpVtbl->Release(This)
 8397/*** IWMWriterAdvanced methods ***/
 8398#define IWMWriterAdvanced3_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks)
 8399#define IWMWriterAdvanced3_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink)
 8400#define IWMWriterAdvanced3_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink)
 8401#define IWMWriterAdvanced3_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink)
 8402#define IWMWriterAdvanced3_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample)
 8403#define IWMWriterAdvanced3_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource)
 8404#define IWMWriterAdvanced3_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime)
 8405#define IWMWriterAdvanced3_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime)
 8406#define IWMWriterAdvanced3_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats)
 8407#define IWMWriterAdvanced3_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow)
 8408#define IWMWriterAdvanced3_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow)
 8409/*** IWMWriterAdvanced2 methods ***/
 8410#define IWMWriterAdvanced3_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength)
 8411#define IWMWriterAdvanced3_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength)
 8412/*** IWMWriterAdvanced3 methods ***/
 8413#define IWMWriterAdvanced3_GetStatisticsEx(This,wStreamNum,pStats) (This)->lpVtbl->GetStatisticsEx(This,wStreamNum,pStats)
 8414#define IWMWriterAdvanced3_SetNonBlocking(This) (This)->lpVtbl->SetNonBlocking(This)
 8415#else
 8416/*** IUnknown methods ***/
 8417static inline HRESULT IWMWriterAdvanced3_QueryInterface(IWMWriterAdvanced3* This,REFIID riid,void **ppvObject) {
 8418    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8419}
 8420static inline ULONG IWMWriterAdvanced3_AddRef(IWMWriterAdvanced3* This) {
 8421    return This->lpVtbl->AddRef(This);
 8422}
 8423static inline ULONG IWMWriterAdvanced3_Release(IWMWriterAdvanced3* This) {
 8424    return This->lpVtbl->Release(This);
 8425}
 8426/*** IWMWriterAdvanced methods ***/
 8427static inline HRESULT IWMWriterAdvanced3_GetSinkCount(IWMWriterAdvanced3* This,DWORD *pcSinks) {
 8428    return This->lpVtbl->GetSinkCount(This,pcSinks);
 8429}
 8430static inline HRESULT IWMWriterAdvanced3_GetSink(IWMWriterAdvanced3* This,DWORD dwSinkNum,IWMWriterSink **ppSink) {
 8431    return This->lpVtbl->GetSink(This,dwSinkNum,ppSink);
 8432}
 8433static inline HRESULT IWMWriterAdvanced3_AddSink(IWMWriterAdvanced3* This,IWMWriterSink *pSink) {
 8434    return This->lpVtbl->AddSink(This,pSink);
 8435}
 8436static inline HRESULT IWMWriterAdvanced3_RemoveSink(IWMWriterAdvanced3* This,IWMWriterSink *pSink) {
 8437    return This->lpVtbl->RemoveSink(This,pSink);
 8438}
 8439static inline HRESULT IWMWriterAdvanced3_WriteStreamSample(IWMWriterAdvanced3* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) {
 8440    return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample);
 8441}
 8442static inline HRESULT IWMWriterAdvanced3_SetLiveSource(IWMWriterAdvanced3* This,WINBOOL fIsLiveSource) {
 8443    return This->lpVtbl->SetLiveSource(This,fIsLiveSource);
 8444}
 8445static inline HRESULT IWMWriterAdvanced3_IsRealTime(IWMWriterAdvanced3* This,WINBOOL *pfRealTime) {
 8446    return This->lpVtbl->IsRealTime(This,pfRealTime);
 8447}
 8448static inline HRESULT IWMWriterAdvanced3_GetWriterTime(IWMWriterAdvanced3* This,QWORD *pCurrentTime) {
 8449    return This->lpVtbl->GetWriterTime(This,pCurrentTime);
 8450}
 8451static inline HRESULT IWMWriterAdvanced3_GetStatistics(IWMWriterAdvanced3* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) {
 8452    return This->lpVtbl->GetStatistics(This,wStreamNum,pStats);
 8453}
 8454static inline HRESULT IWMWriterAdvanced3_SetSyncTolerance(IWMWriterAdvanced3* This,DWORD msWindow) {
 8455    return This->lpVtbl->SetSyncTolerance(This,msWindow);
 8456}
 8457static inline HRESULT IWMWriterAdvanced3_GetSyncTolerance(IWMWriterAdvanced3* This,DWORD *pmsWindow) {
 8458    return This->lpVtbl->GetSyncTolerance(This,pmsWindow);
 8459}
 8460/*** IWMWriterAdvanced2 methods ***/
 8461static inline HRESULT IWMWriterAdvanced3_GetInputSetting(IWMWriterAdvanced3* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) {
 8462    return This->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength);
 8463}
 8464static inline HRESULT IWMWriterAdvanced3_SetInputSetting(IWMWriterAdvanced3* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) {
 8465    return This->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength);
 8466}
 8467/*** IWMWriterAdvanced3 methods ***/
 8468static inline HRESULT IWMWriterAdvanced3_GetStatisticsEx(IWMWriterAdvanced3* This,WORD wStreamNum,WM_WRITER_STATISTICS_EX *pStats) {
 8469    return This->lpVtbl->GetStatisticsEx(This,wStreamNum,pStats);
 8470}
 8471static inline HRESULT IWMWriterAdvanced3_SetNonBlocking(IWMWriterAdvanced3* This) {
 8472    return This->lpVtbl->SetNonBlocking(This);
 8473}
 8474#endif
 8475#endif
 8476
 8477#endif
 8478
 8479
 8480#endif  /* __IWMWriterAdvanced3_INTERFACE_DEFINED__ */
 8481
 8482/*****************************************************************************
 8483 * IWMHeaderInfo interface
 8484 */
 8485#ifndef __IWMHeaderInfo_INTERFACE_DEFINED__
 8486#define __IWMHeaderInfo_INTERFACE_DEFINED__
 8487
 8488DEFINE_GUID(IID_IWMHeaderInfo, 0x96406bda, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 8489#if defined(__cplusplus) && !defined(CINTERFACE)
 8490MIDL_INTERFACE("96406bda-2b2b-11d3-b36b-00c04f6108ff")
 8491IWMHeaderInfo : public IUnknown
 8492{
 8493    virtual HRESULT STDMETHODCALLTYPE GetAttributeCount(
 8494        WORD stream_num,
 8495        WORD *attributes) = 0;
 8496
 8497    virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndex(
 8498        WORD index,
 8499        WORD *stream_num,
 8500        WCHAR *name,
 8501        WORD *name_len,
 8502        WMT_ATTR_DATATYPE *type,
 8503        BYTE *value,
 8504        WORD *length) = 0;
 8505
 8506    virtual HRESULT STDMETHODCALLTYPE GetAttributeByName(
 8507        WORD *stream_num,
 8508        LPCWSTR name,
 8509        WMT_ATTR_DATATYPE *type,
 8510        BYTE *value,
 8511        WORD *length) = 0;
 8512
 8513    virtual HRESULT STDMETHODCALLTYPE SetAttribute(
 8514        WORD stream_num,
 8515        LPCWSTR name,
 8516        WMT_ATTR_DATATYPE type,
 8517        const BYTE *value,
 8518        WORD length) = 0;
 8519
 8520    virtual HRESULT STDMETHODCALLTYPE GetMarkerCount(
 8521        WORD *markers) = 0;
 8522
 8523    virtual HRESULT STDMETHODCALLTYPE GetMarker(
 8524        WORD index,
 8525        WCHAR *marker_name,
 8526        WORD *marker_len,
 8527        QWORD *marker_time) = 0;
 8528
 8529    virtual HRESULT STDMETHODCALLTYPE AddMarker(
 8530        LPCWSTR_WMSDK_TYPE_SAFE marker_name,
 8531        QWORD marker_time) = 0;
 8532
 8533    virtual HRESULT STDMETHODCALLTYPE RemoveMarker(
 8534        WORD index) = 0;
 8535
 8536    virtual HRESULT STDMETHODCALLTYPE GetScriptCount(
 8537        WORD *scripts) = 0;
 8538
 8539    virtual HRESULT STDMETHODCALLTYPE GetScript(
 8540        WORD index,
 8541        WCHAR *type,
 8542        WORD *type_len,
 8543        WCHAR *command,
 8544        WORD *command_len,
 8545        QWORD *script_time) = 0;
 8546
 8547    virtual HRESULT STDMETHODCALLTYPE AddScript(
 8548        LPCWSTR_WMSDK_TYPE_SAFE type,
 8549        LPCWSTR_WMSDK_TYPE_SAFE command,
 8550        QWORD script_time) = 0;
 8551
 8552    virtual HRESULT STDMETHODCALLTYPE RemoveScript(
 8553        WORD index) = 0;
 8554
 8555};
 8556#ifdef __CRT_UUID_DECL
 8557__CRT_UUID_DECL(IWMHeaderInfo, 0x96406bda, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 8558#endif
 8559#else
 8560typedef struct IWMHeaderInfoVtbl {
 8561    BEGIN_INTERFACE
 8562
 8563    /*** IUnknown methods ***/
 8564    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8565        IWMHeaderInfo *This,
 8566        REFIID riid,
 8567        void **ppvObject);
 8568
 8569    ULONG (STDMETHODCALLTYPE *AddRef)(
 8570        IWMHeaderInfo *This);
 8571
 8572    ULONG (STDMETHODCALLTYPE *Release)(
 8573        IWMHeaderInfo *This);
 8574
 8575    /*** IWMHeaderInfo methods ***/
 8576    HRESULT (STDMETHODCALLTYPE *GetAttributeCount)(
 8577        IWMHeaderInfo *This,
 8578        WORD stream_num,
 8579        WORD *attributes);
 8580
 8581    HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)(
 8582        IWMHeaderInfo *This,
 8583        WORD index,
 8584        WORD *stream_num,
 8585        WCHAR *name,
 8586        WORD *name_len,
 8587        WMT_ATTR_DATATYPE *type,
 8588        BYTE *value,
 8589        WORD *length);
 8590
 8591    HRESULT (STDMETHODCALLTYPE *GetAttributeByName)(
 8592        IWMHeaderInfo *This,
 8593        WORD *stream_num,
 8594        LPCWSTR name,
 8595        WMT_ATTR_DATATYPE *type,
 8596        BYTE *value,
 8597        WORD *length);
 8598
 8599    HRESULT (STDMETHODCALLTYPE *SetAttribute)(
 8600        IWMHeaderInfo *This,
 8601        WORD stream_num,
 8602        LPCWSTR name,
 8603        WMT_ATTR_DATATYPE type,
 8604        const BYTE *value,
 8605        WORD length);
 8606
 8607    HRESULT (STDMETHODCALLTYPE *GetMarkerCount)(
 8608        IWMHeaderInfo *This,
 8609        WORD *markers);
 8610
 8611    HRESULT (STDMETHODCALLTYPE *GetMarker)(
 8612        IWMHeaderInfo *This,
 8613        WORD index,
 8614        WCHAR *marker_name,
 8615        WORD *marker_len,
 8616        QWORD *marker_time);
 8617
 8618    HRESULT (STDMETHODCALLTYPE *AddMarker)(
 8619        IWMHeaderInfo *This,
 8620        LPCWSTR_WMSDK_TYPE_SAFE marker_name,
 8621        QWORD marker_time);
 8622
 8623    HRESULT (STDMETHODCALLTYPE *RemoveMarker)(
 8624        IWMHeaderInfo *This,
 8625        WORD index);
 8626
 8627    HRESULT (STDMETHODCALLTYPE *GetScriptCount)(
 8628        IWMHeaderInfo *This,
 8629        WORD *scripts);
 8630
 8631    HRESULT (STDMETHODCALLTYPE *GetScript)(
 8632        IWMHeaderInfo *This,
 8633        WORD index,
 8634        WCHAR *type,
 8635        WORD *type_len,
 8636        WCHAR *command,
 8637        WORD *command_len,
 8638        QWORD *script_time);
 8639
 8640    HRESULT (STDMETHODCALLTYPE *AddScript)(
 8641        IWMHeaderInfo *This,
 8642        LPCWSTR_WMSDK_TYPE_SAFE type,
 8643        LPCWSTR_WMSDK_TYPE_SAFE command,
 8644        QWORD script_time);
 8645
 8646    HRESULT (STDMETHODCALLTYPE *RemoveScript)(
 8647        IWMHeaderInfo *This,
 8648        WORD index);
 8649
 8650    END_INTERFACE
 8651} IWMHeaderInfoVtbl;
 8652
 8653interface IWMHeaderInfo {
 8654    CONST_VTBL IWMHeaderInfoVtbl* lpVtbl;
 8655};
 8656
 8657#ifdef COBJMACROS
 8658#ifndef WIDL_C_INLINE_WRAPPERS
 8659/*** IUnknown methods ***/
 8660#define IWMHeaderInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8661#define IWMHeaderInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
 8662#define IWMHeaderInfo_Release(This) (This)->lpVtbl->Release(This)
 8663/*** IWMHeaderInfo methods ***/
 8664#define IWMHeaderInfo_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes)
 8665#define IWMHeaderInfo_GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) (This)->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length)
 8666#define IWMHeaderInfo_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length)
 8667#define IWMHeaderInfo_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length)
 8668#define IWMHeaderInfo_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers)
 8669#define IWMHeaderInfo_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time)
 8670#define IWMHeaderInfo_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time)
 8671#define IWMHeaderInfo_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index)
 8672#define IWMHeaderInfo_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts)
 8673#define IWMHeaderInfo_GetScript(This,index,type,type_len,command,command_len,script_time) (This)->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time)
 8674#define IWMHeaderInfo_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time)
 8675#define IWMHeaderInfo_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index)
 8676#else
 8677/*** IUnknown methods ***/
 8678static inline HRESULT IWMHeaderInfo_QueryInterface(IWMHeaderInfo* This,REFIID riid,void **ppvObject) {
 8679    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8680}
 8681static inline ULONG IWMHeaderInfo_AddRef(IWMHeaderInfo* This) {
 8682    return This->lpVtbl->AddRef(This);
 8683}
 8684static inline ULONG IWMHeaderInfo_Release(IWMHeaderInfo* This) {
 8685    return This->lpVtbl->Release(This);
 8686}
 8687/*** IWMHeaderInfo methods ***/
 8688static inline HRESULT IWMHeaderInfo_GetAttributeCount(IWMHeaderInfo* This,WORD stream_num,WORD *attributes) {
 8689    return This->lpVtbl->GetAttributeCount(This,stream_num,attributes);
 8690}
 8691static inline HRESULT IWMHeaderInfo_GetAttributeByIndex(IWMHeaderInfo* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
 8692    return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length);
 8693}
 8694static inline HRESULT IWMHeaderInfo_GetAttributeByName(IWMHeaderInfo* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
 8695    return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length);
 8696}
 8697static inline HRESULT IWMHeaderInfo_SetAttribute(IWMHeaderInfo* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
 8698    return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length);
 8699}
 8700static inline HRESULT IWMHeaderInfo_GetMarkerCount(IWMHeaderInfo* This,WORD *markers) {
 8701    return This->lpVtbl->GetMarkerCount(This,markers);
 8702}
 8703static inline HRESULT IWMHeaderInfo_GetMarker(IWMHeaderInfo* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) {
 8704    return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time);
 8705}
 8706static inline HRESULT IWMHeaderInfo_AddMarker(IWMHeaderInfo* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) {
 8707    return This->lpVtbl->AddMarker(This,marker_name,marker_time);
 8708}
 8709static inline HRESULT IWMHeaderInfo_RemoveMarker(IWMHeaderInfo* This,WORD index) {
 8710    return This->lpVtbl->RemoveMarker(This,index);
 8711}
 8712static inline HRESULT IWMHeaderInfo_GetScriptCount(IWMHeaderInfo* This,WORD *scripts) {
 8713    return This->lpVtbl->GetScriptCount(This,scripts);
 8714}
 8715static inline HRESULT IWMHeaderInfo_GetScript(IWMHeaderInfo* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) {
 8716    return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time);
 8717}
 8718static inline HRESULT IWMHeaderInfo_AddScript(IWMHeaderInfo* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) {
 8719    return This->lpVtbl->AddScript(This,type,command,script_time);
 8720}
 8721static inline HRESULT IWMHeaderInfo_RemoveScript(IWMHeaderInfo* This,WORD index) {
 8722    return This->lpVtbl->RemoveScript(This,index);
 8723}
 8724#endif
 8725#endif
 8726
 8727#endif
 8728
 8729
 8730#endif  /* __IWMHeaderInfo_INTERFACE_DEFINED__ */
 8731
 8732/*****************************************************************************
 8733 * IWMHeaderInfo2 interface
 8734 */
 8735#ifndef __IWMHeaderInfo2_INTERFACE_DEFINED__
 8736#define __IWMHeaderInfo2_INTERFACE_DEFINED__
 8737
 8738DEFINE_GUID(IID_IWMHeaderInfo2, 0x15cf9781, 0x454e, 0x482e, 0xb3,0x93, 0x85,0xfa,0xe4,0x87,0xa8,0x10);
 8739#if defined(__cplusplus) && !defined(CINTERFACE)
 8740MIDL_INTERFACE("15cf9781-454e-482e-b393-85fae487a810")
 8741IWMHeaderInfo2 : public IWMHeaderInfo
 8742{
 8743    virtual HRESULT STDMETHODCALLTYPE GetCodecInfoCount(
 8744        DWORD *codec_infos) = 0;
 8745
 8746    virtual HRESULT STDMETHODCALLTYPE GetCodecInfo(
 8747        DWORD index,
 8748        WORD *name_len,
 8749        WCHAR *name,
 8750        WORD *description_len,
 8751        WCHAR *description,
 8752        WMT_CODEC_INFO_TYPE *codec_type,
 8753        WORD *codec_info_cnt,
 8754        BYTE *codec_info) = 0;
 8755
 8756};
 8757#ifdef __CRT_UUID_DECL
 8758__CRT_UUID_DECL(IWMHeaderInfo2, 0x15cf9781, 0x454e, 0x482e, 0xb3,0x93, 0x85,0xfa,0xe4,0x87,0xa8,0x10)
 8759#endif
 8760#else
 8761typedef struct IWMHeaderInfo2Vtbl {
 8762    BEGIN_INTERFACE
 8763
 8764    /*** IUnknown methods ***/
 8765    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8766        IWMHeaderInfo2 *This,
 8767        REFIID riid,
 8768        void **ppvObject);
 8769
 8770    ULONG (STDMETHODCALLTYPE *AddRef)(
 8771        IWMHeaderInfo2 *This);
 8772
 8773    ULONG (STDMETHODCALLTYPE *Release)(
 8774        IWMHeaderInfo2 *This);
 8775
 8776    /*** IWMHeaderInfo methods ***/
 8777    HRESULT (STDMETHODCALLTYPE *GetAttributeCount)(
 8778        IWMHeaderInfo2 *This,
 8779        WORD stream_num,
 8780        WORD *attributes);
 8781
 8782    HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)(
 8783        IWMHeaderInfo2 *This,
 8784        WORD index,
 8785        WORD *stream_num,
 8786        WCHAR *name,
 8787        WORD *name_len,
 8788        WMT_ATTR_DATATYPE *type,
 8789        BYTE *value,
 8790        WORD *length);
 8791
 8792    HRESULT (STDMETHODCALLTYPE *GetAttributeByName)(
 8793        IWMHeaderInfo2 *This,
 8794        WORD *stream_num,
 8795        LPCWSTR name,
 8796        WMT_ATTR_DATATYPE *type,
 8797        BYTE *value,
 8798        WORD *length);
 8799
 8800    HRESULT (STDMETHODCALLTYPE *SetAttribute)(
 8801        IWMHeaderInfo2 *This,
 8802        WORD stream_num,
 8803        LPCWSTR name,
 8804        WMT_ATTR_DATATYPE type,
 8805        const BYTE *value,
 8806        WORD length);
 8807
 8808    HRESULT (STDMETHODCALLTYPE *GetMarkerCount)(
 8809        IWMHeaderInfo2 *This,
 8810        WORD *markers);
 8811
 8812    HRESULT (STDMETHODCALLTYPE *GetMarker)(
 8813        IWMHeaderInfo2 *This,
 8814        WORD index,
 8815        WCHAR *marker_name,
 8816        WORD *marker_len,
 8817        QWORD *marker_time);
 8818
 8819    HRESULT (STDMETHODCALLTYPE *AddMarker)(
 8820        IWMHeaderInfo2 *This,
 8821        LPCWSTR_WMSDK_TYPE_SAFE marker_name,
 8822        QWORD marker_time);
 8823
 8824    HRESULT (STDMETHODCALLTYPE *RemoveMarker)(
 8825        IWMHeaderInfo2 *This,
 8826        WORD index);
 8827
 8828    HRESULT (STDMETHODCALLTYPE *GetScriptCount)(
 8829        IWMHeaderInfo2 *This,
 8830        WORD *scripts);
 8831
 8832    HRESULT (STDMETHODCALLTYPE *GetScript)(
 8833        IWMHeaderInfo2 *This,
 8834        WORD index,
 8835        WCHAR *type,
 8836        WORD *type_len,
 8837        WCHAR *command,
 8838        WORD *command_len,
 8839        QWORD *script_time);
 8840
 8841    HRESULT (STDMETHODCALLTYPE *AddScript)(
 8842        IWMHeaderInfo2 *This,
 8843        LPCWSTR_WMSDK_TYPE_SAFE type,
 8844        LPCWSTR_WMSDK_TYPE_SAFE command,
 8845        QWORD script_time);
 8846
 8847    HRESULT (STDMETHODCALLTYPE *RemoveScript)(
 8848        IWMHeaderInfo2 *This,
 8849        WORD index);
 8850
 8851    /*** IWMHeaderInfo2 methods ***/
 8852    HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)(
 8853        IWMHeaderInfo2 *This,
 8854        DWORD *codec_infos);
 8855
 8856    HRESULT (STDMETHODCALLTYPE *GetCodecInfo)(
 8857        IWMHeaderInfo2 *This,
 8858        DWORD index,
 8859        WORD *name_len,
 8860        WCHAR *name,
 8861        WORD *description_len,
 8862        WCHAR *description,
 8863        WMT_CODEC_INFO_TYPE *codec_type,
 8864        WORD *codec_info_cnt,
 8865        BYTE *codec_info);
 8866
 8867    END_INTERFACE
 8868} IWMHeaderInfo2Vtbl;
 8869
 8870interface IWMHeaderInfo2 {
 8871    CONST_VTBL IWMHeaderInfo2Vtbl* lpVtbl;
 8872};
 8873
 8874#ifdef COBJMACROS
 8875#ifndef WIDL_C_INLINE_WRAPPERS
 8876/*** IUnknown methods ***/
 8877#define IWMHeaderInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8878#define IWMHeaderInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
 8879#define IWMHeaderInfo2_Release(This) (This)->lpVtbl->Release(This)
 8880/*** IWMHeaderInfo methods ***/
 8881#define IWMHeaderInfo2_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes)
 8882#define IWMHeaderInfo2_GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) (This)->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length)
 8883#define IWMHeaderInfo2_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length)
 8884#define IWMHeaderInfo2_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length)
 8885#define IWMHeaderInfo2_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers)
 8886#define IWMHeaderInfo2_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time)
 8887#define IWMHeaderInfo2_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time)
 8888#define IWMHeaderInfo2_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index)
 8889#define IWMHeaderInfo2_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts)
 8890#define IWMHeaderInfo2_GetScript(This,index,type,type_len,command,command_len,script_time) (This)->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time)
 8891#define IWMHeaderInfo2_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time)
 8892#define IWMHeaderInfo2_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index)
 8893/*** IWMHeaderInfo2 methods ***/
 8894#define IWMHeaderInfo2_GetCodecInfoCount(This,codec_infos) (This)->lpVtbl->GetCodecInfoCount(This,codec_infos)
 8895#define IWMHeaderInfo2_GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info) (This)->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info)
 8896#else
 8897/*** IUnknown methods ***/
 8898static inline HRESULT IWMHeaderInfo2_QueryInterface(IWMHeaderInfo2* This,REFIID riid,void **ppvObject) {
 8899    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8900}
 8901static inline ULONG IWMHeaderInfo2_AddRef(IWMHeaderInfo2* This) {
 8902    return This->lpVtbl->AddRef(This);
 8903}
 8904static inline ULONG IWMHeaderInfo2_Release(IWMHeaderInfo2* This) {
 8905    return This->lpVtbl->Release(This);
 8906}
 8907/*** IWMHeaderInfo methods ***/
 8908static inline HRESULT IWMHeaderInfo2_GetAttributeCount(IWMHeaderInfo2* This,WORD stream_num,WORD *attributes) {
 8909    return This->lpVtbl->GetAttributeCount(This,stream_num,attributes);
 8910}
 8911static inline HRESULT IWMHeaderInfo2_GetAttributeByIndex(IWMHeaderInfo2* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
 8912    return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length);
 8913}
 8914static inline HRESULT IWMHeaderInfo2_GetAttributeByName(IWMHeaderInfo2* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
 8915    return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length);
 8916}
 8917static inline HRESULT IWMHeaderInfo2_SetAttribute(IWMHeaderInfo2* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
 8918    return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length);
 8919}
 8920static inline HRESULT IWMHeaderInfo2_GetMarkerCount(IWMHeaderInfo2* This,WORD *markers) {
 8921    return This->lpVtbl->GetMarkerCount(This,markers);
 8922}
 8923static inline HRESULT IWMHeaderInfo2_GetMarker(IWMHeaderInfo2* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) {
 8924    return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time);
 8925}
 8926static inline HRESULT IWMHeaderInfo2_AddMarker(IWMHeaderInfo2* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) {
 8927    return This->lpVtbl->AddMarker(This,marker_name,marker_time);
 8928}
 8929static inline HRESULT IWMHeaderInfo2_RemoveMarker(IWMHeaderInfo2* This,WORD index) {
 8930    return This->lpVtbl->RemoveMarker(This,index);
 8931}
 8932static inline HRESULT IWMHeaderInfo2_GetScriptCount(IWMHeaderInfo2* This,WORD *scripts) {
 8933    return This->lpVtbl->GetScriptCount(This,scripts);
 8934}
 8935static inline HRESULT IWMHeaderInfo2_GetScript(IWMHeaderInfo2* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) {
 8936    return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time);
 8937}
 8938static inline HRESULT IWMHeaderInfo2_AddScript(IWMHeaderInfo2* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) {
 8939    return This->lpVtbl->AddScript(This,type,command,script_time);
 8940}
 8941static inline HRESULT IWMHeaderInfo2_RemoveScript(IWMHeaderInfo2* This,WORD index) {
 8942    return This->lpVtbl->RemoveScript(This,index);
 8943}
 8944/*** IWMHeaderInfo2 methods ***/
 8945static inline HRESULT IWMHeaderInfo2_GetCodecInfoCount(IWMHeaderInfo2* This,DWORD *codec_infos) {
 8946    return This->lpVtbl->GetCodecInfoCount(This,codec_infos);
 8947}
 8948static inline HRESULT IWMHeaderInfo2_GetCodecInfo(IWMHeaderInfo2* This,DWORD index,WORD *name_len,WCHAR *name,WORD *description_len,WCHAR *description,WMT_CODEC_INFO_TYPE *codec_type,WORD *codec_info_cnt,BYTE *codec_info) {
 8949    return This->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info);
 8950}
 8951#endif
 8952#endif
 8953
 8954#endif
 8955
 8956
 8957#endif  /* __IWMHeaderInfo2_INTERFACE_DEFINED__ */
 8958
 8959/*****************************************************************************
 8960 * IWMHeaderInfo3 interface
 8961 */
 8962#ifndef __IWMHeaderInfo3_INTERFACE_DEFINED__
 8963#define __IWMHeaderInfo3_INTERFACE_DEFINED__
 8964
 8965DEFINE_GUID(IID_IWMHeaderInfo3, 0x15cc68e3, 0x27cc, 0x4ecd, 0xb2,0x22, 0x3f,0x5d,0x02,0xd8,0x0b,0xd5);
 8966#if defined(__cplusplus) && !defined(CINTERFACE)
 8967MIDL_INTERFACE("15cc68e3-27cc-4ecd-b222-3f5d02d80bd5")
 8968IWMHeaderInfo3 : public IWMHeaderInfo2
 8969{
 8970    virtual HRESULT STDMETHODCALLTYPE GetAttributeCountEx(
 8971        WORD stream_num,
 8972        WORD *attributes) = 0;
 8973
 8974    virtual HRESULT STDMETHODCALLTYPE GetAttributeIndices(
 8975        WORD stream_num,
 8976        LPCWSTR name,
 8977        WORD *lang_index,
 8978        WORD *indices,
 8979        WORD *count) = 0;
 8980
 8981    virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndexEx(
 8982        WORD stream_num,
 8983        WORD index,
 8984        LPWSTR name,
 8985        WORD *name_len,
 8986        WMT_ATTR_DATATYPE *type,
 8987        WORD *lang_index,
 8988        BYTE *value,
 8989        DWORD *data_len) = 0;
 8990
 8991    virtual HRESULT STDMETHODCALLTYPE ModifyAttribute(
 8992        WORD stream_num,
 8993        WORD index,
 8994        WMT_ATTR_DATATYPE type,
 8995        WORD lang_index,
 8996        const BYTE *value,
 8997        DWORD length) = 0;
 8998
 8999    virtual HRESULT STDMETHODCALLTYPE AddAttribute(
 9000        WORD stream_num,
 9001        LPCWSTR name,
 9002        WORD *index,
 9003        WMT_ATTR_DATATYPE type,
 9004        WORD lang_index,
 9005        const BYTE *value,
 9006        DWORD length) = 0;
 9007
 9008    virtual HRESULT STDMETHODCALLTYPE DeleteAttribute(
 9009        WORD stream_num,
 9010        WORD index) = 0;
 9011
 9012    virtual HRESULT STDMETHODCALLTYPE AddCodecInfo(
 9013        LPCWSTR_WMSDK_TYPE_SAFE name,
 9014        LPCWSTR_WMSDK_TYPE_SAFE description,
 9015        WMT_CODEC_INFO_TYPE codec_type,
 9016        WORD codec_info_cnt,
 9017        BYTE *codec_info) = 0;
 9018
 9019};
 9020#ifdef __CRT_UUID_DECL
 9021__CRT_UUID_DECL(IWMHeaderInfo3, 0x15cc68e3, 0x27cc, 0x4ecd, 0xb2,0x22, 0x3f,0x5d,0x02,0xd8,0x0b,0xd5)
 9022#endif
 9023#else
 9024typedef struct IWMHeaderInfo3Vtbl {
 9025    BEGIN_INTERFACE
 9026
 9027    /*** IUnknown methods ***/
 9028    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9029        IWMHeaderInfo3 *This,
 9030        REFIID riid,
 9031        void **ppvObject);
 9032
 9033    ULONG (STDMETHODCALLTYPE *AddRef)(
 9034        IWMHeaderInfo3 *This);
 9035
 9036    ULONG (STDMETHODCALLTYPE *Release)(
 9037        IWMHeaderInfo3 *This);
 9038
 9039    /*** IWMHeaderInfo methods ***/
 9040    HRESULT (STDMETHODCALLTYPE *GetAttributeCount)(
 9041        IWMHeaderInfo3 *This,
 9042        WORD stream_num,
 9043        WORD *attributes);
 9044
 9045    HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)(
 9046        IWMHeaderInfo3 *This,
 9047        WORD index,
 9048        WORD *stream_num,
 9049        WCHAR *name,
 9050        WORD *name_len,
 9051        WMT_ATTR_DATATYPE *type,
 9052        BYTE *value,
 9053        WORD *length);
 9054
 9055    HRESULT (STDMETHODCALLTYPE *GetAttributeByName)(
 9056        IWMHeaderInfo3 *This,
 9057        WORD *stream_num,
 9058        LPCWSTR name,
 9059        WMT_ATTR_DATATYPE *type,
 9060        BYTE *value,
 9061        WORD *length);
 9062
 9063    HRESULT (STDMETHODCALLTYPE *SetAttribute)(
 9064        IWMHeaderInfo3 *This,
 9065        WORD stream_num,
 9066        LPCWSTR name,
 9067        WMT_ATTR_DATATYPE type,
 9068        const BYTE *value,
 9069        WORD length);
 9070
 9071    HRESULT (STDMETHODCALLTYPE *GetMarkerCount)(
 9072        IWMHeaderInfo3 *This,
 9073        WORD *markers);
 9074
 9075    HRESULT (STDMETHODCALLTYPE *GetMarker)(
 9076        IWMHeaderInfo3 *This,
 9077        WORD index,
 9078        WCHAR *marker_name,
 9079        WORD *marker_len,
 9080        QWORD *marker_time);
 9081
 9082    HRESULT (STDMETHODCALLTYPE *AddMarker)(
 9083        IWMHeaderInfo3 *This,
 9084        LPCWSTR_WMSDK_TYPE_SAFE marker_name,
 9085        QWORD marker_time);
 9086
 9087    HRESULT (STDMETHODCALLTYPE *RemoveMarker)(
 9088        IWMHeaderInfo3 *This,
 9089        WORD index);
 9090
 9091    HRESULT (STDMETHODCALLTYPE *GetScriptCount)(
 9092        IWMHeaderInfo3 *This,
 9093        WORD *scripts);
 9094
 9095    HRESULT (STDMETHODCALLTYPE *GetScript)(
 9096        IWMHeaderInfo3 *This,
 9097        WORD index,
 9098        WCHAR *type,
 9099        WORD *type_len,
 9100        WCHAR *command,
 9101        WORD *command_len,
 9102        QWORD *script_time);
 9103
 9104    HRESULT (STDMETHODCALLTYPE *AddScript)(
 9105        IWMHeaderInfo3 *This,
 9106        LPCWSTR_WMSDK_TYPE_SAFE type,
 9107        LPCWSTR_WMSDK_TYPE_SAFE command,
 9108        QWORD script_time);
 9109
 9110    HRESULT (STDMETHODCALLTYPE *RemoveScript)(
 9111        IWMHeaderInfo3 *This,
 9112        WORD index);
 9113
 9114    /*** IWMHeaderInfo2 methods ***/
 9115    HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)(
 9116        IWMHeaderInfo3 *This,
 9117        DWORD *codec_infos);
 9118
 9119    HRESULT (STDMETHODCALLTYPE *GetCodecInfo)(
 9120        IWMHeaderInfo3 *This,
 9121        DWORD index,
 9122        WORD *name_len,
 9123        WCHAR *name,
 9124        WORD *description_len,
 9125        WCHAR *description,
 9126        WMT_CODEC_INFO_TYPE *codec_type,
 9127        WORD *codec_info_cnt,
 9128        BYTE *codec_info);
 9129
 9130    /*** IWMHeaderInfo3 methods ***/
 9131    HRESULT (STDMETHODCALLTYPE *GetAttributeCountEx)(
 9132        IWMHeaderInfo3 *This,
 9133        WORD stream_num,
 9134        WORD *attributes);
 9135
 9136    HRESULT (STDMETHODCALLTYPE *GetAttributeIndices)(
 9137        IWMHeaderInfo3 *This,
 9138        WORD stream_num,
 9139        LPCWSTR name,
 9140        WORD *lang_index,
 9141        WORD *indices,
 9142        WORD *count);
 9143
 9144    HRESULT (STDMETHODCALLTYPE *GetAttributeByIndexEx)(
 9145        IWMHeaderInfo3 *This,
 9146        WORD stream_num,
 9147        WORD index,
 9148        LPWSTR name,
 9149        WORD *name_len,
 9150        WMT_ATTR_DATATYPE *type,
 9151        WORD *lang_index,
 9152        BYTE *value,
 9153        DWORD *data_len);
 9154
 9155    HRESULT (STDMETHODCALLTYPE *ModifyAttribute)(
 9156        IWMHeaderInfo3 *This,
 9157        WORD stream_num,
 9158        WORD index,
 9159        WMT_ATTR_DATATYPE type,
 9160        WORD lang_index,
 9161        const BYTE *value,
 9162        DWORD length);
 9163
 9164    HRESULT (STDMETHODCALLTYPE *AddAttribute)(
 9165        IWMHeaderInfo3 *This,
 9166        WORD stream_num,
 9167        LPCWSTR name,
 9168        WORD *index,
 9169        WMT_ATTR_DATATYPE type,
 9170        WORD lang_index,
 9171        const BYTE *value,
 9172        DWORD length);
 9173
 9174    HRESULT (STDMETHODCALLTYPE *DeleteAttribute)(
 9175        IWMHeaderInfo3 *This,
 9176        WORD stream_num,
 9177        WORD index);
 9178
 9179    HRESULT (STDMETHODCALLTYPE *AddCodecInfo)(
 9180        IWMHeaderInfo3 *This,
 9181        LPCWSTR_WMSDK_TYPE_SAFE name,
 9182        LPCWSTR_WMSDK_TYPE_SAFE description,
 9183        WMT_CODEC_INFO_TYPE codec_type,
 9184        WORD codec_info_cnt,
 9185        BYTE *codec_info);
 9186
 9187    END_INTERFACE
 9188} IWMHeaderInfo3Vtbl;
 9189
 9190interface IWMHeaderInfo3 {
 9191    CONST_VTBL IWMHeaderInfo3Vtbl* lpVtbl;
 9192};
 9193
 9194#ifdef COBJMACROS
 9195#ifndef WIDL_C_INLINE_WRAPPERS
 9196/*** IUnknown methods ***/
 9197#define IWMHeaderInfo3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9198#define IWMHeaderInfo3_AddRef(This) (This)->lpVtbl->AddRef(This)
 9199#define IWMHeaderInfo3_Release(This) (This)->lpVtbl->Release(This)
 9200/*** IWMHeaderInfo methods ***/
 9201#define IWMHeaderInfo3_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes)
 9202#define IWMHeaderInfo3_GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length) (This)->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length)
 9203#define IWMHeaderInfo3_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length)
 9204#define IWMHeaderInfo3_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length)
 9205#define IWMHeaderInfo3_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers)
 9206#define IWMHeaderInfo3_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time)
 9207#define IWMHeaderInfo3_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time)
 9208#define IWMHeaderInfo3_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index)
 9209#define IWMHeaderInfo3_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts)
 9210#define IWMHeaderInfo3_GetScript(This,index,type,type_len,command,command_len,script_time) (This)->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time)
 9211#define IWMHeaderInfo3_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time)
 9212#define IWMHeaderInfo3_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index)
 9213/*** IWMHeaderInfo2 methods ***/
 9214#define IWMHeaderInfo3_GetCodecInfoCount(This,codec_infos) (This)->lpVtbl->GetCodecInfoCount(This,codec_infos)
 9215#define IWMHeaderInfo3_GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info) (This)->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info)
 9216/*** IWMHeaderInfo3 methods ***/
 9217#define IWMHeaderInfo3_GetAttributeCountEx(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCountEx(This,stream_num,attributes)
 9218#define IWMHeaderInfo3_GetAttributeIndices(This,stream_num,name,lang_index,indices,count) (This)->lpVtbl->GetAttributeIndices(This,stream_num,name,lang_index,indices,count)
 9219#define IWMHeaderInfo3_GetAttributeByIndexEx(This,stream_num,index,name,name_len,type,lang_index,value,data_len) (This)->lpVtbl->GetAttributeByIndexEx(This,stream_num,index,name,name_len,type,lang_index,value,data_len)
 9220#define IWMHeaderInfo3_ModifyAttribute(This,stream_num,index,type,lang_index,value,length) (This)->lpVtbl->ModifyAttribute(This,stream_num,index,type,lang_index,value,length)
 9221#define IWMHeaderInfo3_AddAttribute(This,stream_num,name,index,type,lang_index,value,length) (This)->lpVtbl->AddAttribute(This,stream_num,name,index,type,lang_index,value,length)
 9222#define IWMHeaderInfo3_DeleteAttribute(This,stream_num,index) (This)->lpVtbl->DeleteAttribute(This,stream_num,index)
 9223#define IWMHeaderInfo3_AddCodecInfo(This,name,description,codec_type,codec_info_cnt,codec_info) (This)->lpVtbl->AddCodecInfo(This,name,description,codec_type,codec_info_cnt,codec_info)
 9224#else
 9225/*** IUnknown methods ***/
 9226static inline HRESULT IWMHeaderInfo3_QueryInterface(IWMHeaderInfo3* This,REFIID riid,void **ppvObject) {
 9227    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9228}
 9229static inline ULONG IWMHeaderInfo3_AddRef(IWMHeaderInfo3* This) {
 9230    return This->lpVtbl->AddRef(This);
 9231}
 9232static inline ULONG IWMHeaderInfo3_Release(IWMHeaderInfo3* This) {
 9233    return This->lpVtbl->Release(This);
 9234}
 9235/*** IWMHeaderInfo methods ***/
 9236static inline HRESULT IWMHeaderInfo3_GetAttributeCount(IWMHeaderInfo3* This,WORD stream_num,WORD *attributes) {
 9237    return This->lpVtbl->GetAttributeCount(This,stream_num,attributes);
 9238}
 9239static inline HRESULT IWMHeaderInfo3_GetAttributeByIndex(IWMHeaderInfo3* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
 9240    return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length);
 9241}
 9242static inline HRESULT IWMHeaderInfo3_GetAttributeByName(IWMHeaderInfo3* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
 9243    return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length);
 9244}
 9245static inline HRESULT IWMHeaderInfo3_SetAttribute(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
 9246    return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length);
 9247}
 9248static inline HRESULT IWMHeaderInfo3_GetMarkerCount(IWMHeaderInfo3* This,WORD *markers) {
 9249    return This->lpVtbl->GetMarkerCount(This,markers);
 9250}
 9251static inline HRESULT IWMHeaderInfo3_GetMarker(IWMHeaderInfo3* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) {
 9252    return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time);
 9253}
 9254static inline HRESULT IWMHeaderInfo3_AddMarker(IWMHeaderInfo3* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) {
 9255    return This->lpVtbl->AddMarker(This,marker_name,marker_time);
 9256}
 9257static inline HRESULT IWMHeaderInfo3_RemoveMarker(IWMHeaderInfo3* This,WORD index) {
 9258    return This->lpVtbl->RemoveMarker(This,index);
 9259}
 9260static inline HRESULT IWMHeaderInfo3_GetScriptCount(IWMHeaderInfo3* This,WORD *scripts) {
 9261    return This->lpVtbl->GetScriptCount(This,scripts);
 9262}
 9263static inline HRESULT IWMHeaderInfo3_GetScript(IWMHeaderInfo3* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) {
 9264    return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time);
 9265}
 9266static inline HRESULT IWMHeaderInfo3_AddScript(IWMHeaderInfo3* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) {
 9267    return This->lpVtbl->AddScript(This,type,command,script_time);
 9268}
 9269static inline HRESULT IWMHeaderInfo3_RemoveScript(IWMHeaderInfo3* This,WORD index) {
 9270    return This->lpVtbl->RemoveScript(This,index);
 9271}
 9272/*** IWMHeaderInfo2 methods ***/
 9273static inline HRESULT IWMHeaderInfo3_GetCodecInfoCount(IWMHeaderInfo3* This,DWORD *codec_infos) {
 9274    return This->lpVtbl->GetCodecInfoCount(This,codec_infos);
 9275}
 9276static inline HRESULT IWMHeaderInfo3_GetCodecInfo(IWMHeaderInfo3* This,DWORD index,WORD *name_len,WCHAR *name,WORD *description_len,WCHAR *description,WMT_CODEC_INFO_TYPE *codec_type,WORD *codec_info_cnt,BYTE *codec_info) {
 9277    return This->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info);
 9278}
 9279/*** IWMHeaderInfo3 methods ***/
 9280static inline HRESULT IWMHeaderInfo3_GetAttributeCountEx(IWMHeaderInfo3* This,WORD stream_num,WORD *attributes) {
 9281    return This->lpVtbl->GetAttributeCountEx(This,stream_num,attributes);
 9282}
 9283static inline HRESULT IWMHeaderInfo3_GetAttributeIndices(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WORD *lang_index,WORD *indices,WORD *count) {
 9284    return This->lpVtbl->GetAttributeIndices(This,stream_num,name,lang_index,indices,count);
 9285}
 9286static inline HRESULT IWMHeaderInfo3_GetAttributeByIndexEx(IWMHeaderInfo3* This,WORD stream_num,WORD index,LPWSTR name,WORD *name_len,WMT_ATTR_DATATYPE *type,WORD *lang_index,BYTE *value,DWORD *data_len) {
 9287    return This->lpVtbl->GetAttributeByIndexEx(This,stream_num,index,name,name_len,type,lang_index,value,data_len);
 9288}
 9289static inline HRESULT IWMHeaderInfo3_ModifyAttribute(IWMHeaderInfo3* This,WORD stream_num,WORD index,WMT_ATTR_DATATYPE type,WORD lang_index,const BYTE *value,DWORD length) {
 9290    return This->lpVtbl->ModifyAttribute(This,stream_num,index,type,lang_index,value,length);
 9291}
 9292static inline HRESULT IWMHeaderInfo3_AddAttribute(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WORD *index,WMT_ATTR_DATATYPE type,WORD lang_index,const BYTE *value,DWORD length) {
 9293    return This->lpVtbl->AddAttribute(This,stream_num,name,index,type,lang_index,value,length);
 9294}
 9295static inline HRESULT IWMHeaderInfo3_DeleteAttribute(IWMHeaderInfo3* This,WORD stream_num,WORD index) {
 9296    return This->lpVtbl->DeleteAttribute(This,stream_num,index);
 9297}
 9298static inline HRESULT IWMHeaderInfo3_AddCodecInfo(IWMHeaderInfo3* This,LPCWSTR_WMSDK_TYPE_SAFE name,LPCWSTR_WMSDK_TYPE_SAFE description,WMT_CODEC_INFO_TYPE codec_type,WORD codec_info_cnt,BYTE *codec_info) {
 9299    return This->lpVtbl->AddCodecInfo(This,name,description,codec_type,codec_info_cnt,codec_info);
 9300}
 9301#endif
 9302#endif
 9303
 9304#endif
 9305
 9306
 9307#endif  /* __IWMHeaderInfo3_INTERFACE_DEFINED__ */
 9308
 9309/*****************************************************************************
 9310 * IWMReaderNetworkConfig interface
 9311 */
 9312#ifndef __IWMReaderNetworkConfig_INTERFACE_DEFINED__
 9313#define __IWMReaderNetworkConfig_INTERFACE_DEFINED__
 9314
 9315DEFINE_GUID(IID_IWMReaderNetworkConfig, 0x96406bec, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
 9316#if defined(__cplusplus) && !defined(CINTERFACE)
 9317MIDL_INTERFACE("96406bec-2b2b-11d3-b36b-00c04f6108ff")
 9318IWMReaderNetworkConfig : public IUnknown
 9319{
 9320    virtual HRESULT STDMETHODCALLTYPE GetBufferingTime(
 9321        QWORD *buffering_time) = 0;
 9322
 9323    virtual HRESULT STDMETHODCALLTYPE SetBufferingTime(
 9324        QWORD buffering_time) = 0;
 9325
 9326    virtual HRESULT STDMETHODCALLTYPE GetUDPPortRanges(
 9327        WM_PORT_NUMBER_RANGE *array,
 9328        DWORD *ranges) = 0;
 9329
 9330    virtual HRESULT STDMETHODCALLTYPE SetUDPPortRanges(
 9331        WM_PORT_NUMBER_RANGE *array,
 9332        DWORD ranges) = 0;
 9333
 9334    virtual HRESULT STDMETHODCALLTYPE GetProxySettings(
 9335        const WCHAR *protocol,
 9336        WMT_PROXY_SETTINGS *proxy) = 0;
 9337
 9338    virtual HRESULT STDMETHODCALLTYPE SetProxySettings(
 9339        LPCWSTR protocol,
 9340        WMT_PROXY_SETTINGS proxy) = 0;
 9341
 9342    virtual HRESULT STDMETHODCALLTYPE GetProxyHostName(
 9343        const WCHAR *protocol,
 9344        WCHAR *hostname,
 9345        DWORD *size) = 0;
 9346
 9347    virtual HRESULT STDMETHODCALLTYPE SetProxyHostName(
 9348        const WCHAR *protocol,
 9349        const WCHAR *hostname) = 0;
 9350
 9351    virtual HRESULT STDMETHODCALLTYPE GetProxyPort(
 9352        const WCHAR *protocol,
 9353        DWORD *port) = 0;
 9354
 9355    virtual HRESULT STDMETHODCALLTYPE SetProxyPort(
 9356        const WCHAR *protocol,
 9357        DWORD port) = 0;
 9358
 9359    virtual HRESULT STDMETHODCALLTYPE GetProxyExceptionList(
 9360        const WCHAR *protocol,
 9361        WCHAR *exceptions,
 9362        DWORD *count) = 0;
 9363
 9364    virtual HRESULT STDMETHODCALLTYPE SetProxyExceptionList(
 9365        const WCHAR *protocol,
 9366        const WCHAR *exceptions) = 0;
 9367
 9368    virtual HRESULT STDMETHODCALLTYPE GetProxyBypassForLocal(
 9369        const WCHAR *protocol,
 9370        WINBOOL *bypass) = 0;
 9371
 9372    virtual HRESULT STDMETHODCALLTYPE SetProxyBypassForLocal(
 9373        const WCHAR *protocol,
 9374        WINBOOL bypass) = 0;
 9375
 9376    virtual HRESULT STDMETHODCALLTYPE GetForceRerunAutoProxyDetection(
 9377        WINBOOL *detection) = 0;
 9378
 9379    virtual HRESULT STDMETHODCALLTYPE SetForceRerunAutoProxyDetection(
 9380        WINBOOL detection) = 0;
 9381
 9382    virtual HRESULT STDMETHODCALLTYPE GetEnableMulticast(
 9383        WINBOOL *multicast) = 0;
 9384
 9385    virtual HRESULT STDMETHODCALLTYPE SetEnableMulticast(
 9386        WINBOOL multicast) = 0;
 9387
 9388    virtual HRESULT STDMETHODCALLTYPE GetEnableHTTP(
 9389        WINBOOL *enable) = 0;
 9390
 9391    virtual HRESULT STDMETHODCALLTYPE SetEnableHTTP(
 9392        WINBOOL enable) = 0;
 9393
 9394    virtual HRESULT STDMETHODCALLTYPE GetEnableUDP(
 9395        WINBOOL *enable) = 0;
 9396
 9397    virtual HRESULT STDMETHODCALLTYPE SetEnableUDP(
 9398        WINBOOL enable) = 0;
 9399
 9400    virtual HRESULT STDMETHODCALLTYPE GetEnableTCP(
 9401        WINBOOL *enable) = 0;
 9402
 9403    virtual HRESULT STDMETHODCALLTYPE SetEnableTCP(
 9404        WINBOOL enable) = 0;
 9405
 9406    virtual HRESULT STDMETHODCALLTYPE ResetProtocolRollover(
 9407        ) = 0;
 9408
 9409    virtual HRESULT STDMETHODCALLTYPE GetConnectionBandwidth(
 9410        DWORD *bandwidth) = 0;
 9411
 9412    virtual HRESULT STDMETHODCALLTYPE SetConnectionBandwidth(
 9413        DWORD bandwidth) = 0;
 9414
 9415    virtual HRESULT STDMETHODCALLTYPE GetNumProtocolsSupported(
 9416        DWORD *protocols) = 0;
 9417
 9418    virtual HRESULT STDMETHODCALLTYPE GetSupportedProtocolName(
 9419        DWORD protocol_num,
 9420        WCHAR *protocol,
 9421        DWORD *size) = 0;
 9422
 9423    virtual HRESULT STDMETHODCALLTYPE AddLoggingUrl(
 9424        const WCHAR *url) = 0;
 9425
 9426    virtual HRESULT STDMETHODCALLTYPE GetLoggingUrl(
 9427        DWORD index,
 9428        WCHAR *url,
 9429        DWORD *size) = 0;
 9430
 9431    virtual HRESULT STDMETHODCALLTYPE GetLoggingUrlCount(
 9432        DWORD *count) = 0;
 9433
 9434    virtual HRESULT STDMETHODCALLTYPE ResetLoggingUrlList(
 9435        ) = 0;
 9436
 9437};
 9438#ifdef __CRT_UUID_DECL
 9439__CRT_UUID_DECL(IWMReaderNetworkConfig, 0x96406bec, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
 9440#endif
 9441#else
 9442typedef struct IWMReaderNetworkConfigVtbl {
 9443    BEGIN_INTERFACE
 9444
 9445    /*** IUnknown methods ***/
 9446    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9447        IWMReaderNetworkConfig *This,
 9448        REFIID riid,
 9449        void **ppvObject);
 9450
 9451    ULONG (STDMETHODCALLTYPE *AddRef)(
 9452        IWMReaderNetworkConfig *This);
 9453
 9454    ULONG (STDMETHODCALLTYPE *Release)(
 9455        IWMReaderNetworkConfig *This);
 9456
 9457    /*** IWMReaderNetworkConfig methods ***/
 9458    HRESULT (STDMETHODCALLTYPE *GetBufferingTime)(
 9459        IWMReaderNetworkConfig *This,
 9460        QWORD *buffering_time);
 9461
 9462    HRESULT (STDMETHODCALLTYPE *SetBufferingTime)(
 9463        IWMReaderNetworkConfig *This,
 9464        QWORD buffering_time);
 9465
 9466    HRESULT (STDMETHODCALLTYPE *GetUDPPortRanges)(
 9467        IWMReaderNetworkConfig *This,
 9468        WM_PORT_NUMBER_RANGE *array,
 9469        DWORD *ranges);
 9470
 9471    HRESULT (STDMETHODCALLTYPE *SetUDPPortRanges)(
 9472        IWMReaderNetworkConfig *This,
 9473        WM_PORT_NUMBER_RANGE *array,
 9474        DWORD ranges);
 9475
 9476    HRESULT (STDMETHODCALLTYPE *GetProxySettings)(
 9477        IWMReaderNetworkConfig *This,
 9478        const WCHAR *protocol,
 9479        WMT_PROXY_SETTINGS *proxy);
 9480
 9481    HRESULT (STDMETHODCALLTYPE *SetProxySettings)(
 9482        IWMReaderNetworkConfig *This,
 9483        LPCWSTR protocol,
 9484        WMT_PROXY_SETTINGS proxy);
 9485
 9486    HRESULT (STDMETHODCALLTYPE *GetProxyHostName)(
 9487        IWMReaderNetworkConfig *This,
 9488        const WCHAR *protocol,
 9489        WCHAR *hostname,
 9490        DWORD *size);
 9491
 9492    HRESULT (STDMETHODCALLTYPE *SetProxyHostName)(
 9493        IWMReaderNetworkConfig *This,
 9494        const WCHAR *protocol,
 9495        const WCHAR *hostname);
 9496
 9497    HRESULT (STDMETHODCALLTYPE *GetProxyPort)(
 9498        IWMReaderNetworkConfig *This,
 9499        const WCHAR *protocol,
 9500        DWORD *port);
 9501
 9502    HRESULT (STDMETHODCALLTYPE *SetProxyPort)(
 9503        IWMReaderNetworkConfig *This,
 9504        const WCHAR *protocol,
 9505        DWORD port);
 9506
 9507    HRESULT (STDMETHODCALLTYPE *GetProxyExceptionList)(
 9508        IWMReaderNetworkConfig *This,
 9509        const WCHAR *protocol,
 9510        WCHAR *exceptions,
 9511        DWORD *count);
 9512
 9513    HRESULT (STDMETHODCALLTYPE *SetProxyExceptionList)(
 9514        IWMReaderNetworkConfig *This,
 9515        const WCHAR *protocol,
 9516        const WCHAR *exceptions);
 9517
 9518    HRESULT (STDMETHODCALLTYPE *GetProxyBypassForLocal)(
 9519        IWMReaderNetworkConfig *This,
 9520        const WCHAR *protocol,
 9521        WINBOOL *bypass);
 9522
 9523    HRESULT (STDMETHODCALLTYPE *SetProxyBypassForLocal)(
 9524        IWMReaderNetworkConfig *This,
 9525        const WCHAR *protocol,
 9526        WINBOOL bypass);
 9527
 9528    HRESULT (STDMETHODCALLTYPE *GetForceRerunAutoProxyDetection)(
 9529        IWMReaderNetworkConfig *This,
 9530        WINBOOL *detection);
 9531
 9532    HRESULT (STDMETHODCALLTYPE *SetForceRerunAutoProxyDetection)(
 9533        IWMReaderNetworkConfig *This,
 9534        WINBOOL detection);
 9535
 9536    HRESULT (STDMETHODCALLTYPE *GetEnableMulticast)(
 9537        IWMReaderNetworkConfig *This,
 9538        WINBOOL *multicast);
 9539
 9540    HRESULT (STDMETHODCALLTYPE *SetEnableMulticast)(
 9541        IWMReaderNetworkConfig *This,
 9542        WINBOOL multicast);
 9543
 9544    HRESULT (STDMETHODCALLTYPE *GetEnableHTTP)(
 9545        IWMReaderNetworkConfig *This,
 9546        WINBOOL *enable);
 9547
 9548    HRESULT (STDMETHODCALLTYPE *SetEnableHTTP)(
 9549        IWMReaderNetworkConfig *This,
 9550        WINBOOL enable);
 9551
 9552    HRESULT (STDMETHODCALLTYPE *GetEnableUDP)(
 9553        IWMReaderNetworkConfig *This,
 9554        WINBOOL *enable);
 9555
 9556    HRESULT (STDMETHODCALLTYPE *SetEnableUDP)(
 9557        IWMReaderNetworkConfig *This,
 9558        WINBOOL enable);
 9559
 9560    HRESULT (STDMETHODCALLTYPE *GetEnableTCP)(
 9561        IWMReaderNetworkConfig *This,
 9562        WINBOOL *enable);
 9563
 9564    HRESULT (STDMETHODCALLTYPE *SetEnableTCP)(
 9565        IWMReaderNetworkConfig *This,
 9566        WINBOOL enable);
 9567
 9568    HRESULT (STDMETHODCALLTYPE *ResetProtocolRollover)(
 9569        IWMReaderNetworkConfig *This);
 9570
 9571    HRESULT (STDMETHODCALLTYPE *GetConnectionBandwidth)(
 9572        IWMReaderNetworkConfig *This,
 9573        DWORD *bandwidth);
 9574
 9575    HRESULT (STDMETHODCALLTYPE *SetConnectionBandwidth)(
 9576        IWMReaderNetworkConfig *This,
 9577        DWORD bandwidth);
 9578
 9579    HRESULT (STDMETHODCALLTYPE *GetNumProtocolsSupported)(
 9580        IWMReaderNetworkConfig *This,
 9581        DWORD *protocols);
 9582
 9583    HRESULT (STDMETHODCALLTYPE *GetSupportedProtocolName)(
 9584        IWMReaderNetworkConfig *This,
 9585        DWORD protocol_num,
 9586        WCHAR *protocol,
 9587        DWORD *size);
 9588
 9589    HRESULT (STDMETHODCALLTYPE *AddLoggingUrl)(
 9590        IWMReaderNetworkConfig *This,
 9591        const WCHAR *url);
 9592
 9593    HRESULT (STDMETHODCALLTYPE *GetLoggingUrl)(
 9594        IWMReaderNetworkConfig *This,
 9595        DWORD index,
 9596        WCHAR *url,
 9597        DWORD *size);
 9598
 9599    HRESULT (STDMETHODCALLTYPE *GetLoggingUrlCount)(
 9600        IWMReaderNetworkConfig *This,
 9601        DWORD *count);
 9602
 9603    HRESULT (STDMETHODCALLTYPE *ResetLoggingUrlList)(
 9604        IWMReaderNetworkConfig *This);
 9605
 9606    END_INTERFACE
 9607} IWMReaderNetworkConfigVtbl;
 9608
 9609interface IWMReaderNetworkConfig {
 9610    CONST_VTBL IWMReaderNetworkConfigVtbl* lpVtbl;
 9611};
 9612
 9613#ifdef COBJMACROS
 9614#ifndef WIDL_C_INLINE_WRAPPERS
 9615/*** IUnknown methods ***/
 9616#define IWMReaderNetworkConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9617#define IWMReaderNetworkConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
 9618#define IWMReaderNetworkConfig_Release(This) (This)->lpVtbl->Release(This)
 9619/*** IWMReaderNetworkConfig methods ***/
 9620#define IWMReaderNetworkConfig_GetBufferingTime(This,buffering_time) (This)->lpVtbl->GetBufferingTime(This,buffering_time)
 9621#define IWMReaderNetworkConfig_SetBufferingTime(This,buffering_time) (This)->lpVtbl->SetBufferingTime(This,buffering_time)
 9622#define IWMReaderNetworkConfig_GetUDPPortRanges(This,array,ranges) (This)->lpVtbl->GetUDPPortRanges(This,array,ranges)
 9623#define IWMReaderNetworkConfig_SetUDPPortRanges(This,array,ranges) (This)->lpVtbl->SetUDPPortRanges(This,array,ranges)
 9624#define IWMReaderNetworkConfig_GetProxySettings(This,protocol,proxy) (This)->lpVtbl->GetProxySettings(This,protocol,proxy)
 9625#define IWMReaderNetworkConfig_SetProxySettings(This,protocol,proxy) (This)->lpVtbl->SetProxySettings(This,protocol,proxy)
 9626#define IWMReaderNetworkConfig_GetProxyHostName(This,protocol,hostname,size) (This)->lpVtbl->GetProxyHostName(This,protocol,hostname,size)
 9627#define IWMReaderNetworkConfig_SetProxyHostName(This,protocol,hostname) (This)->lpVtbl->SetProxyHostName(This,protocol,hostname)
 9628#define IWMReaderNetworkConfig_GetProxyPort(This,protocol,port) (This)->lpVtbl->GetProxyPort(This,protocol,port)
 9629#define IWMReaderNetworkConfig_SetProxyPort(This,protocol,port) (This)->lpVtbl->SetProxyPort(This,protocol,port)
 9630#define IWMReaderNetworkConfig_GetProxyExceptionList(This,protocol,exceptions,count) (This)->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count)
 9631#define IWMReaderNetworkConfig_SetProxyExceptionList(This,protocol,exceptions) (This)->lpVtbl->SetProxyExceptionList(This,protocol,exceptions)
 9632#define IWMReaderNetworkConfig_GetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass)
 9633#define IWMReaderNetworkConfig_SetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass)
 9634#define IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->GetForceRerunAutoProxyDetection(This,detection)
 9635#define IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->SetForceRerunAutoProxyDetection(This,detection)
 9636#define IWMReaderNetworkConfig_GetEnableMulticast(This,multicast) (This)->lpVtbl->GetEnableMulticast(This,multicast)
 9637#define IWMReaderNetworkConfig_SetEnableMulticast(This,multicast) (This)->lpVtbl->SetEnableMulticast(This,multicast)
 9638#define IWMReaderNetworkConfig_GetEnableHTTP(This,enable) (This)->lpVtbl->GetEnableHTTP(This,enable)
 9639#define IWMReaderNetworkConfig_SetEnableHTTP(This,enable) (This)->lpVtbl->SetEnableHTTP(This,enable)
 9640#define IWMReaderNetworkConfig_GetEnableUDP(This,enable) (This)->lpVtbl->GetEnableUDP(This,enable)
 9641#define IWMReaderNetworkConfig_SetEnableUDP(This,enable) (This)->lpVtbl->SetEnableUDP(This,enable)
 9642#define IWMReaderNetworkConfig_GetEnableTCP(This,enable) (This)->lpVtbl->GetEnableTCP(This,enable)
 9643#define IWMReaderNetworkConfig_SetEnableTCP(This,enable) (This)->lpVtbl->SetEnableTCP(This,enable)
 9644#define IWMReaderNetworkConfig_ResetProtocolRollover(This) (This)->lpVtbl->ResetProtocolRollover(This)
 9645#define IWMReaderNetworkConfig_GetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->GetConnectionBandwidth(This,bandwidth)
 9646#define IWMReaderNetworkConfig_SetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->SetConnectionBandwidth(This,bandwidth)
 9647#define IWMReaderNetworkConfig_GetNumProtocolsSupported(This,protocols) (This)->lpVtbl->GetNumProtocolsSupported(This,protocols)
 9648#define IWMReaderNetworkConfig_GetSupportedProtocolName(This,protocol_num,protocol,size) (This)->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size)
 9649#define IWMReaderNetworkConfig_AddLoggingUrl(This,url) (This)->lpVtbl->AddLoggingUrl(This,url)
 9650#define IWMReaderNetworkConfig_GetLoggingUrl(This,index,url,size) (This)->lpVtbl->GetLoggingUrl(This,index,url,size)
 9651#define IWMReaderNetworkConfig_GetLoggingUrlCount(This,count) (This)->lpVtbl->GetLoggingUrlCount(This,count)
 9652#define IWMReaderNetworkConfig_ResetLoggingUrlList(This) (This)->lpVtbl->ResetLoggingUrlList(This)
 9653#else
 9654/*** IUnknown methods ***/
 9655static inline HRESULT IWMReaderNetworkConfig_QueryInterface(IWMReaderNetworkConfig* This,REFIID riid,void **ppvObject) {
 9656    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9657}
 9658static inline ULONG IWMReaderNetworkConfig_AddRef(IWMReaderNetworkConfig* This) {
 9659    return This->lpVtbl->AddRef(This);
 9660}
 9661static inline ULONG IWMReaderNetworkConfig_Release(IWMReaderNetworkConfig* This) {
 9662    return This->lpVtbl->Release(This);
 9663}
 9664/*** IWMReaderNetworkConfig methods ***/
 9665static inline HRESULT IWMReaderNetworkConfig_GetBufferingTime(IWMReaderNetworkConfig* This,QWORD *buffering_time) {
 9666    return This->lpVtbl->GetBufferingTime(This,buffering_time);
 9667}
 9668static inline HRESULT IWMReaderNetworkConfig_SetBufferingTime(IWMReaderNetworkConfig* This,QWORD buffering_time) {
 9669    return This->lpVtbl->SetBufferingTime(This,buffering_time);
 9670}
 9671static inline HRESULT IWMReaderNetworkConfig_GetUDPPortRanges(IWMReaderNetworkConfig* This,WM_PORT_NUMBER_RANGE *array,DWORD *ranges) {
 9672    return This->lpVtbl->GetUDPPortRanges(This,array,ranges);
 9673}
 9674static inline HRESULT IWMReaderNetworkConfig_SetUDPPortRanges(IWMReaderNetworkConfig* This,WM_PORT_NUMBER_RANGE *array,DWORD ranges) {
 9675    return This->lpVtbl->SetUDPPortRanges(This,array,ranges);
 9676}
 9677static inline HRESULT IWMReaderNetworkConfig_GetProxySettings(IWMReaderNetworkConfig* This,const WCHAR *protocol,WMT_PROXY_SETTINGS *proxy) {
 9678    return This->lpVtbl->GetProxySettings(This,protocol,proxy);
 9679}
 9680static inline HRESULT IWMReaderNetworkConfig_SetProxySettings(IWMReaderNetworkConfig* This,LPCWSTR protocol,WMT_PROXY_SETTINGS proxy) {
 9681    return This->lpVtbl->SetProxySettings(This,protocol,proxy);
 9682}
 9683static inline HRESULT IWMReaderNetworkConfig_GetProxyHostName(IWMReaderNetworkConfig* This,const WCHAR *protocol,WCHAR *hostname,DWORD *size) {
 9684    return This->lpVtbl->GetProxyHostName(This,protocol,hostname,size);
 9685}
 9686static inline HRESULT IWMReaderNetworkConfig_SetProxyHostName(IWMReaderNetworkConfig* This,const WCHAR *protocol,const WCHAR *hostname) {
 9687    return This->lpVtbl->SetProxyHostName(This,protocol,hostname);
 9688}
 9689static inline HRESULT IWMReaderNetworkConfig_GetProxyPort(IWMReaderNetworkConfig* This,const WCHAR *protocol,DWORD *port) {
 9690    return This->lpVtbl->GetProxyPort(This,protocol,port);
 9691}
 9692static inline HRESULT IWMReaderNetworkConfig_SetProxyPort(IWMReaderNetworkConfig* This,const WCHAR *protocol,DWORD port) {
 9693    return This->lpVtbl->SetProxyPort(This,protocol,port);
 9694}
 9695static inline HRESULT IWMReaderNetworkConfig_GetProxyExceptionList(IWMReaderNetworkConfig* This,const WCHAR *protocol,WCHAR *exceptions,DWORD *count) {
 9696    return This->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count);
 9697}
 9698static inline HRESULT IWMReaderNetworkConfig_SetProxyExceptionList(IWMReaderNetworkConfig* This,const WCHAR *protocol,const WCHAR *exceptions) {
 9699    return This->lpVtbl->SetProxyExceptionList(This,protocol,exceptions);
 9700}
 9701static inline HRESULT IWMReaderNetworkConfig_GetProxyBypassForLocal(IWMReaderNetworkConfig* This,const WCHAR *protocol,WINBOOL *bypass) {
 9702    return This->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass);
 9703}
 9704static inline HRESULT IWMReaderNetworkConfig_SetProxyBypassForLocal(IWMReaderNetworkConfig* This,const WCHAR *protocol,WINBOOL bypass) {
 9705    return This->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass);
 9706}
 9707static inline HRESULT IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection(IWMReaderNetworkConfig* This,WINBOOL *detection) {
 9708    return This->lpVtbl->GetForceRerunAutoProxyDetection(This,detection);
 9709}
 9710static inline HRESULT IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection(IWMReaderNetworkConfig* This,WINBOOL detection) {
 9711    return This->lpVtbl->SetForceRerunAutoProxyDetection(This,detection);
 9712}
 9713static inline HRESULT IWMReaderNetworkConfig_GetEnableMulticast(IWMReaderNetworkConfig* This,WINBOOL *multicast) {
 9714    return This->lpVtbl->GetEnableMulticast(This,multicast);
 9715}
 9716static inline HRESULT IWMReaderNetworkConfig_SetEnableMulticast(IWMReaderNetworkConfig* This,WINBOOL multicast) {
 9717    return This->lpVtbl->SetEnableMulticast(This,multicast);
 9718}
 9719static inline HRESULT IWMReaderNetworkConfig_GetEnableHTTP(IWMReaderNetworkConfig* This,WINBOOL *enable) {
 9720    return This->lpVtbl->GetEnableHTTP(This,enable);
 9721}
 9722static inline HRESULT IWMReaderNetworkConfig_SetEnableHTTP(IWMReaderNetworkConfig* This,WINBOOL enable) {
 9723    return This->lpVtbl->SetEnableHTTP(This,enable);
 9724}
 9725static inline HRESULT IWMReaderNetworkConfig_GetEnableUDP(IWMReaderNetworkConfig* This,WINBOOL *enable) {
 9726    return This->lpVtbl->GetEnableUDP(This,enable);
 9727}
 9728static inline HRESULT IWMReaderNetworkConfig_SetEnableUDP(IWMReaderNetworkConfig* This,WINBOOL enable) {
 9729    return This->lpVtbl->SetEnableUDP(This,enable);
 9730}
 9731static inline HRESULT IWMReaderNetworkConfig_GetEnableTCP(IWMReaderNetworkConfig* This,WINBOOL *enable) {
 9732    return This->lpVtbl->GetEnableTCP(This,enable);
 9733}
 9734static inline HRESULT IWMReaderNetworkConfig_SetEnableTCP(IWMReaderNetworkConfig* This,WINBOOL enable) {
 9735    return This->lpVtbl->SetEnableTCP(This,enable);
 9736}
 9737static inline HRESULT IWMReaderNetworkConfig_ResetProtocolRollover(IWMReaderNetworkConfig* This) {
 9738    return This->lpVtbl->ResetProtocolRollover(This);
 9739}
 9740static inline HRESULT IWMReaderNetworkConfig_GetConnectionBandwidth(IWMReaderNetworkConfig* This,DWORD *bandwidth) {
 9741    return This->lpVtbl->GetConnectionBandwidth(This,bandwidth);
 9742}
 9743static inline HRESULT IWMReaderNetworkConfig_SetConnectionBandwidth(IWMReaderNetworkConfig* This,DWORD bandwidth) {
 9744    return This->lpVtbl->SetConnectionBandwidth(This,bandwidth);
 9745}
 9746static inline HRESULT IWMReaderNetworkConfig_GetNumProtocolsSupported(IWMReaderNetworkConfig* This,DWORD *protocols) {
 9747    return This->lpVtbl->GetNumProtocolsSupported(This,protocols);
 9748}
 9749static inline HRESULT IWMReaderNetworkConfig_GetSupportedProtocolName(IWMReaderNetworkConfig* This,DWORD protocol_num,WCHAR *protocol,DWORD *size) {
 9750    return This->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size);
 9751}
 9752static inline HRESULT IWMReaderNetworkConfig_AddLoggingUrl(IWMReaderNetworkConfig* This,const WCHAR *url) {
 9753    return This->lpVtbl->AddLoggingUrl(This,url);
 9754}
 9755static inline HRESULT IWMReaderNetworkConfig_GetLoggingUrl(IWMReaderNetworkConfig* This,DWORD index,WCHAR *url,DWORD *size) {
 9756    return This->lpVtbl->GetLoggingUrl(This,index,url,size);
 9757}
 9758static inline HRESULT IWMReaderNetworkConfig_GetLoggingUrlCount(IWMReaderNetworkConfig* This,DWORD *count) {
 9759    return This->lpVtbl->GetLoggingUrlCount(This,count);
 9760}
 9761static inline HRESULT IWMReaderNetworkConfig_ResetLoggingUrlList(IWMReaderNetworkConfig* This) {
 9762    return This->lpVtbl->ResetLoggingUrlList(This);
 9763}
 9764#endif
 9765#endif
 9766
 9767#endif
 9768
 9769
 9770#endif  /* __IWMReaderNetworkConfig_INTERFACE_DEFINED__ */
 9771
 9772/*****************************************************************************
 9773 * IWMReaderNetworkConfig2 interface
 9774 */
 9775#ifndef __IWMReaderNetworkConfig2_INTERFACE_DEFINED__
 9776#define __IWMReaderNetworkConfig2_INTERFACE_DEFINED__
 9777
 9778DEFINE_GUID(IID_IWMReaderNetworkConfig2, 0xd979a853, 0x042b, 0x4050, 0x83,0x87, 0xc9,0x39,0xdb,0x22,0x01,0x3f);
 9779#if defined(__cplusplus) && !defined(CINTERFACE)
 9780MIDL_INTERFACE("d979a853-042b-4050-8387-c939db22013f")
 9781IWMReaderNetworkConfig2 : public IWMReaderNetworkConfig
 9782{
 9783    virtual HRESULT STDMETHODCALLTYPE GetEnableContentCaching(
 9784        WINBOOL *enable) = 0;
 9785
 9786    virtual HRESULT STDMETHODCALLTYPE SetEnableContentCaching(
 9787        WINBOOL enable) = 0;
 9788
 9789    virtual HRESULT STDMETHODCALLTYPE GetEnableFastCache(
 9790        WINBOOL *enable) = 0;
 9791
 9792    virtual HRESULT STDMETHODCALLTYPE SetEnableFastCache(
 9793        WINBOOL enable) = 0;
 9794
 9795    virtual HRESULT STDMETHODCALLTYPE GetAcceleratedStreamingDuration(
 9796        QWORD *duration) = 0;
 9797
 9798    virtual HRESULT STDMETHODCALLTYPE SetAcceleratedStreamingDuration(
 9799        QWORD duration) = 0;
 9800
 9801    virtual HRESULT STDMETHODCALLTYPE GetAutoReconnectLimit(
 9802        DWORD *limit) = 0;
 9803
 9804    virtual HRESULT STDMETHODCALLTYPE SetAutoReconnectLimit(
 9805        DWORD limit) = 0;
 9806
 9807    virtual HRESULT STDMETHODCALLTYPE GetEnableResends(
 9808        WINBOOL *enable) = 0;
 9809
 9810    virtual HRESULT STDMETHODCALLTYPE SetEnableResends(
 9811        WINBOOL enable) = 0;
 9812
 9813    virtual HRESULT STDMETHODCALLTYPE GetEnableThinning(
 9814        WINBOOL *enable) = 0;
 9815
 9816    virtual HRESULT STDMETHODCALLTYPE SetEnableThinning(
 9817        WINBOOL enable) = 0;
 9818
 9819    virtual HRESULT STDMETHODCALLTYPE GetMaxNetPacketSize(
 9820        DWORD *packet_size) = 0;
 9821
 9822};
 9823#ifdef __CRT_UUID_DECL
 9824__CRT_UUID_DECL(IWMReaderNetworkConfig2, 0xd979a853, 0x042b, 0x4050, 0x83,0x87, 0xc9,0x39,0xdb,0x22,0x01,0x3f)
 9825#endif
 9826#else
 9827typedef struct IWMReaderNetworkConfig2Vtbl {
 9828    BEGIN_INTERFACE
 9829
 9830    /*** IUnknown methods ***/
 9831    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9832        IWMReaderNetworkConfig2 *This,
 9833        REFIID riid,
 9834        void **ppvObject);
 9835
 9836    ULONG (STDMETHODCALLTYPE *AddRef)(
 9837        IWMReaderNetworkConfig2 *This);
 9838
 9839    ULONG (STDMETHODCALLTYPE *Release)(
 9840        IWMReaderNetworkConfig2 *This);
 9841
 9842    /*** IWMReaderNetworkConfig methods ***/
 9843    HRESULT (STDMETHODCALLTYPE *GetBufferingTime)(
 9844        IWMReaderNetworkConfig2 *This,
 9845        QWORD *buffering_time);
 9846
 9847    HRESULT (STDMETHODCALLTYPE *SetBufferingTime)(
 9848        IWMReaderNetworkConfig2 *This,
 9849        QWORD buffering_time);
 9850
 9851    HRESULT (STDMETHODCALLTYPE *GetUDPPortRanges)(
 9852        IWMReaderNetworkConfig2 *This,
 9853        WM_PORT_NUMBER_RANGE *array,
 9854        DWORD *ranges);
 9855
 9856    HRESULT (STDMETHODCALLTYPE *SetUDPPortRanges)(
 9857        IWMReaderNetworkConfig2 *This,
 9858        WM_PORT_NUMBER_RANGE *array,
 9859        DWORD ranges);
 9860
 9861    HRESULT (STDMETHODCALLTYPE *GetProxySettings)(
 9862        IWMReaderNetworkConfig2 *This,
 9863        const WCHAR *protocol,
 9864        WMT_PROXY_SETTINGS *proxy);
 9865
 9866    HRESULT (STDMETHODCALLTYPE *SetProxySettings)(
 9867        IWMReaderNetworkConfig2 *This,
 9868        LPCWSTR protocol,
 9869        WMT_PROXY_SETTINGS proxy);
 9870
 9871    HRESULT (STDMETHODCALLTYPE *GetProxyHostName)(
 9872        IWMReaderNetworkConfig2 *This,
 9873        const WCHAR *protocol,
 9874        WCHAR *hostname,
 9875        DWORD *size);
 9876
 9877    HRESULT (STDMETHODCALLTYPE *SetProxyHostName)(
 9878        IWMReaderNetworkConfig2 *This,
 9879        const WCHAR *protocol,
 9880        const WCHAR *hostname);
 9881
 9882    HRESULT (STDMETHODCALLTYPE *GetProxyPort)(
 9883        IWMReaderNetworkConfig2 *This,
 9884        const WCHAR *protocol,
 9885        DWORD *port);
 9886
 9887    HRESULT (STDMETHODCALLTYPE *SetProxyPort)(
 9888        IWMReaderNetworkConfig2 *This,
 9889        const WCHAR *protocol,
 9890        DWORD port);
 9891
 9892    HRESULT (STDMETHODCALLTYPE *GetProxyExceptionList)(
 9893        IWMReaderNetworkConfig2 *This,
 9894        const WCHAR *protocol,
 9895        WCHAR *exceptions,
 9896        DWORD *count);
 9897
 9898    HRESULT (STDMETHODCALLTYPE *SetProxyExceptionList)(
 9899        IWMReaderNetworkConfig2 *This,
 9900        const WCHAR *protocol,
 9901        const WCHAR *exceptions);
 9902
 9903    HRESULT (STDMETHODCALLTYPE *GetProxyBypassForLocal)(
 9904        IWMReaderNetworkConfig2 *This,
 9905        const WCHAR *protocol,
 9906        WINBOOL *bypass);
 9907
 9908    HRESULT (STDMETHODCALLTYPE *SetProxyBypassForLocal)(
 9909        IWMReaderNetworkConfig2 *This,
 9910        const WCHAR *protocol,
 9911        WINBOOL bypass);
 9912
 9913    HRESULT (STDMETHODCALLTYPE *GetForceRerunAutoProxyDetection)(
 9914        IWMReaderNetworkConfig2 *This,
 9915        WINBOOL *detection);
 9916
 9917    HRESULT (STDMETHODCALLTYPE *SetForceRerunAutoProxyDetection)(
 9918        IWMReaderNetworkConfig2 *This,
 9919        WINBOOL detection);
 9920
 9921    HRESULT (STDMETHODCALLTYPE *GetEnableMulticast)(
 9922        IWMReaderNetworkConfig2 *This,
 9923        WINBOOL *multicast);
 9924
 9925    HRESULT (STDMETHODCALLTYPE *SetEnableMulticast)(
 9926        IWMReaderNetworkConfig2 *This,
 9927        WINBOOL multicast);
 9928
 9929    HRESULT (STDMETHODCALLTYPE *GetEnableHTTP)(
 9930        IWMReaderNetworkConfig2 *This,
 9931        WINBOOL *enable);
 9932
 9933    HRESULT (STDMETHODCALLTYPE *SetEnableHTTP)(
 9934        IWMReaderNetworkConfig2 *This,
 9935        WINBOOL enable);
 9936
 9937    HRESULT (STDMETHODCALLTYPE *GetEnableUDP)(
 9938        IWMReaderNetworkConfig2 *This,
 9939        WINBOOL *enable);
 9940
 9941    HRESULT (STDMETHODCALLTYPE *SetEnableUDP)(
 9942        IWMReaderNetworkConfig2 *This,
 9943        WINBOOL enable);
 9944
 9945    HRESULT (STDMETHODCALLTYPE *GetEnableTCP)(
 9946        IWMReaderNetworkConfig2 *This,
 9947        WINBOOL *enable);
 9948
 9949    HRESULT (STDMETHODCALLTYPE *SetEnableTCP)(
 9950        IWMReaderNetworkConfig2 *This,
 9951        WINBOOL enable);
 9952
 9953    HRESULT (STDMETHODCALLTYPE *ResetProtocolRollover)(
 9954        IWMReaderNetworkConfig2 *This);
 9955
 9956    HRESULT (STDMETHODCALLTYPE *GetConnectionBandwidth)(
 9957        IWMReaderNetworkConfig2 *This,
 9958        DWORD *bandwidth);
 9959
 9960    HRESULT (STDMETHODCALLTYPE *SetConnectionBandwidth)(
 9961        IWMReaderNetworkConfig2 *This,
 9962        DWORD bandwidth);
 9963
 9964    HRESULT (STDMETHODCALLTYPE *GetNumProtocolsSupported)(
 9965        IWMReaderNetworkConfig2 *This,
 9966        DWORD *protocols);
 9967
 9968    HRESULT (STDMETHODCALLTYPE *GetSupportedProtocolName)(
 9969        IWMReaderNetworkConfig2 *This,
 9970        DWORD protocol_num,
 9971        WCHAR *protocol,
 9972        DWORD *size);
 9973
 9974    HRESULT (STDMETHODCALLTYPE *AddLoggingUrl)(
 9975        IWMReaderNetworkConfig2 *This,
 9976        const WCHAR *url);
 9977
 9978    HRESULT (STDMETHODCALLTYPE *GetLoggingUrl)(
 9979        IWMReaderNetworkConfig2 *This,
 9980        DWORD index,
 9981        WCHAR *url,
 9982        DWORD *size);
 9983
 9984    HRESULT (STDMETHODCALLTYPE *GetLoggingUrlCount)(
 9985        IWMReaderNetworkConfig2 *This,
 9986        DWORD *count);
 9987
 9988    HRESULT (STDMETHODCALLTYPE *ResetLoggingUrlList)(
 9989        IWMReaderNetworkConfig2 *This);
 9990
 9991    /*** IWMReaderNetworkConfig2 methods ***/
 9992    HRESULT (STDMETHODCALLTYPE *GetEnableContentCaching)(
 9993        IWMReaderNetworkConfig2 *This,
 9994        WINBOOL *enable);
 9995
 9996    HRESULT (STDMETHODCALLTYPE *SetEnableContentCaching)(
 9997        IWMReaderNetworkConfig2 *This,
 9998        WINBOOL enable);
 9999
10000    HRESULT (STDMETHODCALLTYPE *GetEnableFastCache)(
10001        IWMReaderNetworkConfig2 *This,
10002        WINBOOL *enable);
10003
10004    HRESULT (STDMETHODCALLTYPE *SetEnableFastCache)(
10005        IWMReaderNetworkConfig2 *This,
10006        WINBOOL enable);
10007
10008    HRESULT (STDMETHODCALLTYPE *GetAcceleratedStreamingDuration)(
10009        IWMReaderNetworkConfig2 *This,
10010        QWORD *duration);
10011
10012    HRESULT (STDMETHODCALLTYPE *SetAcceleratedStreamingDuration)(
10013        IWMReaderNetworkConfig2 *This,
10014        QWORD duration);
10015
10016    HRESULT (STDMETHODCALLTYPE *GetAutoReconnectLimit)(
10017        IWMReaderNetworkConfig2 *This,
10018        DWORD *limit);
10019
10020    HRESULT (STDMETHODCALLTYPE *SetAutoReconnectLimit)(
10021        IWMReaderNetworkConfig2 *This,
10022        DWORD limit);
10023
10024    HRESULT (STDMETHODCALLTYPE *GetEnableResends)(
10025        IWMReaderNetworkConfig2 *This,
10026        WINBOOL *enable);
10027
10028    HRESULT (STDMETHODCALLTYPE *SetEnableResends)(
10029        IWMReaderNetworkConfig2 *This,
10030        WINBOOL enable);
10031
10032    HRESULT (STDMETHODCALLTYPE *GetEnableThinning)(
10033        IWMReaderNetworkConfig2 *This,
10034        WINBOOL *enable);
10035
10036    HRESULT (STDMETHODCALLTYPE *SetEnableThinning)(
10037        IWMReaderNetworkConfig2 *This,
10038        WINBOOL enable);
10039
10040    HRESULT (STDMETHODCALLTYPE *GetMaxNetPacketSize)(
10041        IWMReaderNetworkConfig2 *This,
10042        DWORD *packet_size);
10043
10044    END_INTERFACE
10045} IWMReaderNetworkConfig2Vtbl;
10046
10047interface IWMReaderNetworkConfig2 {
10048    CONST_VTBL IWMReaderNetworkConfig2Vtbl* lpVtbl;
10049};
10050
10051#ifdef COBJMACROS
10052#ifndef WIDL_C_INLINE_WRAPPERS
10053/*** IUnknown methods ***/
10054#define IWMReaderNetworkConfig2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10055#define IWMReaderNetworkConfig2_AddRef(This) (This)->lpVtbl->AddRef(This)
10056#define IWMReaderNetworkConfig2_Release(This) (This)->lpVtbl->Release(This)
10057/*** IWMReaderNetworkConfig methods ***/
10058#define IWMReaderNetworkConfig2_GetBufferingTime(This,buffering_time) (This)->lpVtbl->GetBufferingTime(This,buffering_time)
10059#define IWMReaderNetworkConfig2_SetBufferingTime(This,buffering_time) (This)->lpVtbl->SetBufferingTime(This,buffering_time)
10060#define IWMReaderNetworkConfig2_GetUDPPortRanges(This,array,ranges) (This)->lpVtbl->GetUDPPortRanges(This,array,ranges)
10061#define IWMReaderNetworkConfig2_SetUDPPortRanges(This,array,ranges) (This)->lpVtbl->SetUDPPortRanges(This,array,ranges)
10062#define IWMReaderNetworkConfig2_GetProxySettings(This,protocol,proxy) (This)->lpVtbl->GetProxySettings(This,protocol,proxy)
10063#define IWMReaderNetworkConfig2_SetProxySettings(This,protocol,proxy) (This)->lpVtbl->SetProxySettings(This,protocol,proxy)
10064#define IWMReaderNetworkConfig2_GetProxyHostName(This,protocol,hostname,size) (This)->lpVtbl->GetProxyHostName(This,protocol,hostname,size)
10065#define IWMReaderNetworkConfig2_SetProxyHostName(This,protocol,hostname) (This)->lpVtbl->SetProxyHostName(This,protocol,hostname)
10066#define IWMReaderNetworkConfig2_GetProxyPort(This,protocol,port) (This)->lpVtbl->GetProxyPort(This,protocol,port)
10067#define IWMReaderNetworkConfig2_SetProxyPort(This,protocol,port) (This)->lpVtbl->SetProxyPort(This,protocol,port)
10068#define IWMReaderNetworkConfig2_GetProxyExceptionList(This,protocol,exceptions,count) (This)->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count)
10069#define IWMReaderNetworkConfig2_SetProxyExceptionList(This,protocol,exceptions) (This)->lpVtbl->SetProxyExceptionList(This,protocol,exceptions)
10070#define IWMReaderNetworkConfig2_GetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass)
10071#define IWMReaderNetworkConfig2_SetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass)
10072#define IWMReaderNetworkConfig2_GetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->GetForceRerunAutoProxyDetection(This,detection)
10073#define IWMReaderNetworkConfig2_SetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->SetForceRerunAutoProxyDetection(This,detection)
10074#define IWMReaderNetworkConfig2_GetEnableMulticast(This,multicast) (This)->lpVtbl->GetEnableMulticast(This,multicast)
10075#define IWMReaderNetworkConfig2_SetEnableMulticast(This,multicast) (This)->lpVtbl->SetEnableMulticast(This,multicast)
10076#define IWMReaderNetworkConfig2_GetEnableHTTP(This,enable) (This)->lpVtbl->GetEnableHTTP(This,enable)
10077#define IWMReaderNetworkConfig2_SetEnableHTTP(This,enable) (This)->lpVtbl->SetEnableHTTP(This,enable)
10078#define IWMReaderNetworkConfig2_GetEnableUDP(This,enable) (This)->lpVtbl->GetEnableUDP(This,enable)
10079#define IWMReaderNetworkConfig2_SetEnableUDP(This,enable) (This)->lpVtbl->SetEnableUDP(This,enable)
10080#define IWMReaderNetworkConfig2_GetEnableTCP(This,enable) (This)->lpVtbl->GetEnableTCP(This,enable)
10081#define IWMReaderNetworkConfig2_SetEnableTCP(This,enable) (This)->lpVtbl->SetEnableTCP(This,enable)
10082#define IWMReaderNetworkConfig2_ResetProtocolRollover(This) (This)->lpVtbl->ResetProtocolRollover(This)
10083#define IWMReaderNetworkConfig2_GetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->GetConnectionBandwidth(This,bandwidth)
10084#define IWMReaderNetworkConfig2_SetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->SetConnectionBandwidth(This,bandwidth)
10085#define IWMReaderNetworkConfig2_GetNumProtocolsSupported(This,protocols) (This)->lpVtbl->GetNumProtocolsSupported(This,protocols)
10086#define IWMReaderNetworkConfig2_GetSupportedProtocolName(This,protocol_num,protocol,size) (This)->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size)
10087#define IWMReaderNetworkConfig2_AddLoggingUrl(This,url) (This)->lpVtbl->AddLoggingUrl(This,url)
10088#define IWMReaderNetworkConfig2_GetLoggingUrl(This,index,url,size) (This)->lpVtbl->GetLoggingUrl(This,index,url,size)
10089#define IWMReaderNetworkConfig2_GetLoggingUrlCount(This,count) (This)->lpVtbl->GetLoggingUrlCount(This,count)
10090#define IWMReaderNetworkConfig2_ResetLoggingUrlList(This) (This)->lpVtbl->ResetLoggingUrlList(This)
10091/*** IWMReaderNetworkConfig2 methods ***/
10092#define IWMReaderNetworkConfig2_GetEnableContentCaching(This,enable) (This)->lpVtbl->GetEnableContentCaching(This,enable)
10093#define IWMReaderNetworkConfig2_SetEnableContentCaching(This,enable) (This)->lpVtbl->SetEnableContentCaching(This,enable)
10094#define IWMReaderNetworkConfig2_GetEnableFastCache(This,enable) (This)->lpVtbl->GetEnableFastCache(This,enable)
10095#define IWMReaderNetworkConfig2_SetEnableFastCache(This,enable) (This)->lpVtbl->SetEnableFastCache(This,enable)
10096#define IWMReaderNetworkConfig2_GetAcceleratedStreamingDuration(This,duration) (This)->lpVtbl->GetAcceleratedStreamingDuration(This,duration)
10097#define IWMReaderNetworkConfig2_SetAcceleratedStreamingDuration(This,duration) (This)->lpVtbl->SetAcceleratedStreamingDuration(This,duration)
10098#define IWMReaderNetworkConfig2_GetAutoReconnectLimit(This,limit) (This)->lpVtbl->GetAutoReconnectLimit(This,limit)
10099#define IWMReaderNetworkConfig2_SetAutoReconnectLimit(This,limit) (This)->lpVtbl->SetAutoReconnectLimit(This,limit)
10100#define IWMReaderNetworkConfig2_GetEnableResends(This,enable) (This)->lpVtbl->GetEnableResends(This,enable)
10101#define IWMReaderNetworkConfig2_SetEnableResends(This,enable) (This)->lpVtbl->SetEnableResends(This,enable)
10102#define IWMReaderNetworkConfig2_GetEnableThinning(This,enable) (This)->lpVtbl->GetEnableThinning(This,enable)
10103#define IWMReaderNetworkConfig2_SetEnableThinning(This,enable) (This)->lpVtbl->SetEnableThinning(This,enable)
10104#define IWMReaderNetworkConfig2_GetMaxNetPacketSize(This,packet_size) (This)->lpVtbl->GetMaxNetPacketSize(This,packet_size)
10105#else
10106/*** IUnknown methods ***/
10107static inline HRESULT IWMReaderNetworkConfig2_QueryInterface(IWMReaderNetworkConfig2* This,REFIID riid,void **ppvObject) {
10108    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10109}
10110static inline ULONG IWMReaderNetworkConfig2_AddRef(IWMReaderNetworkConfig2* This) {
10111    return This->lpVtbl->AddRef(This);
10112}
10113static inline ULONG IWMReaderNetworkConfig2_Release(IWMReaderNetworkConfig2* This) {
10114    return This->lpVtbl->Release(This);
10115}
10116/*** IWMReaderNetworkConfig methods ***/
10117static inline HRESULT IWMReaderNetworkConfig2_GetBufferingTime(IWMReaderNetworkConfig2* This,QWORD *buffering_time) {
10118    return This->lpVtbl->GetBufferingTime(This,buffering_time);
10119}
10120static inline HRESULT IWMReaderNetworkConfig2_SetBufferingTime(IWMReaderNetworkConfig2* This,QWORD buffering_time) {
10121    return This->lpVtbl->SetBufferingTime(This,buffering_time);
10122}
10123static inline HRESULT IWMReaderNetworkConfig2_GetUDPPortRanges(IWMReaderNetworkConfig2* This,WM_PORT_NUMBER_RANGE *array,DWORD *ranges) {
10124    return This->lpVtbl->GetUDPPortRanges(This,array,ranges);
10125}
10126static inline HRESULT IWMReaderNetworkConfig2_SetUDPPortRanges(IWMReaderNetworkConfig2* This,WM_PORT_NUMBER_RANGE *array,DWORD ranges) {
10127    return This->lpVtbl->SetUDPPortRanges(This,array,ranges);
10128}
10129static inline HRESULT IWMReaderNetworkConfig2_GetProxySettings(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WMT_PROXY_SETTINGS *proxy) {
10130    return This->lpVtbl->GetProxySettings(This,protocol,proxy);
10131}
10132static inline HRESULT IWMReaderNetworkConfig2_SetProxySettings(IWMReaderNetworkConfig2* This,LPCWSTR protocol,WMT_PROXY_SETTINGS proxy) {
10133    return This->lpVtbl->SetProxySettings(This,protocol,proxy);
10134}
10135static inline HRESULT IWMReaderNetworkConfig2_GetProxyHostName(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WCHAR *hostname,DWORD *size) {
10136    return This->lpVtbl->GetProxyHostName(This,protocol,hostname,size);
10137}
10138static inline HRESULT IWMReaderNetworkConfig2_SetProxyHostName(IWMReaderNetworkConfig2* This,const WCHAR *protocol,const WCHAR *hostname) {
10139    return This->lpVtbl->SetProxyHostName(This,protocol,hostname);
10140}
10141static inline HRESULT IWMReaderNetworkConfig2_GetProxyPort(IWMReaderNetworkConfig2* This,const WCHAR *protocol,DWORD *port) {
10142    return This->lpVtbl->GetProxyPort(This,protocol,port);
10143}
10144static inline HRESULT IWMReaderNetworkConfig2_SetProxyPort(IWMReaderNetworkConfig2* This,const WCHAR *protocol,DWORD port) {
10145    return This->lpVtbl->SetProxyPort(This,protocol,port);
10146}
10147static inline HRESULT IWMReaderNetworkConfig2_GetProxyExceptionList(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WCHAR *exceptions,DWORD *count) {
10148    return This->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count);
10149}
10150static inline HRESULT IWMReaderNetworkConfig2_SetProxyExceptionList(IWMReaderNetworkConfig2* This,const WCHAR *protocol,const WCHAR *exceptions) {
10151    return This->lpVtbl->SetProxyExceptionList(This,protocol,exceptions);
10152}
10153static inline HRESULT IWMReaderNetworkConfig2_GetProxyBypassForLocal(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WINBOOL *bypass) {
10154    return This->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass);
10155}
10156static inline HRESULT IWMReaderNetworkConfig2_SetProxyBypassForLocal(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WINBOOL bypass) {
10157    return This->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass);
10158}
10159static inline HRESULT IWMReaderNetworkConfig2_GetForceRerunAutoProxyDetection(IWMReaderNetworkConfig2* This,WINBOOL *detection) {
10160    return This->lpVtbl->GetForceRerunAutoProxyDetection(This,detection);
10161}
10162static inline HRESULT IWMReaderNetworkConfig2_SetForceRerunAutoProxyDetection(IWMReaderNetworkConfig2* This,WINBOOL detection) {
10163    return This->lpVtbl->SetForceRerunAutoProxyDetection(This,detection);
10164}
10165static inline HRESULT IWMReaderNetworkConfig2_GetEnableMulticast(IWMReaderNetworkConfig2* This,WINBOOL *multicast) {
10166    return This->lpVtbl->GetEnableMulticast(This,multicast);
10167}
10168static inline HRESULT IWMReaderNetworkConfig2_SetEnableMulticast(IWMReaderNetworkConfig2* This,WINBOOL multicast) {
10169    return This->lpVtbl->SetEnableMulticast(This,multicast);
10170}
10171static inline HRESULT IWMReaderNetworkConfig2_GetEnableHTTP(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10172    return This->lpVtbl->GetEnableHTTP(This,enable);
10173}
10174static inline HRESULT IWMReaderNetworkConfig2_SetEnableHTTP(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10175    return This->lpVtbl->SetEnableHTTP(This,enable);
10176}
10177static inline HRESULT IWMReaderNetworkConfig2_GetEnableUDP(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10178    return This->lpVtbl->GetEnableUDP(This,enable);
10179}
10180static inline HRESULT IWMReaderNetworkConfig2_SetEnableUDP(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10181    return This->lpVtbl->SetEnableUDP(This,enable);
10182}
10183static inline HRESULT IWMReaderNetworkConfig2_GetEnableTCP(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10184    return This->lpVtbl->GetEnableTCP(This,enable);
10185}
10186static inline HRESULT IWMReaderNetworkConfig2_SetEnableTCP(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10187    return This->lpVtbl->SetEnableTCP(This,enable);
10188}
10189static inline HRESULT IWMReaderNetworkConfig2_ResetProtocolRollover(IWMReaderNetworkConfig2* This) {
10190    return This->lpVtbl->ResetProtocolRollover(This);
10191}
10192static inline HRESULT IWMReaderNetworkConfig2_GetConnectionBandwidth(IWMReaderNetworkConfig2* This,DWORD *bandwidth) {
10193    return This->lpVtbl->GetConnectionBandwidth(This,bandwidth);
10194}
10195static inline HRESULT IWMReaderNetworkConfig2_SetConnectionBandwidth(IWMReaderNetworkConfig2* This,DWORD bandwidth) {
10196    return This->lpVtbl->SetConnectionBandwidth(This,bandwidth);
10197}
10198static inline HRESULT IWMReaderNetworkConfig2_GetNumProtocolsSupported(IWMReaderNetworkConfig2* This,DWORD *protocols) {
10199    return This->lpVtbl->GetNumProtocolsSupported(This,protocols);
10200}
10201static inline HRESULT IWMReaderNetworkConfig2_GetSupportedProtocolName(IWMReaderNetworkConfig2* This,DWORD protocol_num,WCHAR *protocol,DWORD *size) {
10202    return This->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size);
10203}
10204static inline HRESULT IWMReaderNetworkConfig2_AddLoggingUrl(IWMReaderNetworkConfig2* This,const WCHAR *url) {
10205    return This->lpVtbl->AddLoggingUrl(This,url);
10206}
10207static inline HRESULT IWMReaderNetworkConfig2_GetLoggingUrl(IWMReaderNetworkConfig2* This,DWORD index,WCHAR *url,DWORD *size) {
10208    return This->lpVtbl->GetLoggingUrl(This,index,url,size);
10209}
10210static inline HRESULT IWMReaderNetworkConfig2_GetLoggingUrlCount(IWMReaderNetworkConfig2* This,DWORD *count) {
10211    return This->lpVtbl->GetLoggingUrlCount(This,count);
10212}
10213static inline HRESULT IWMReaderNetworkConfig2_ResetLoggingUrlList(IWMReaderNetworkConfig2* This) {
10214    return This->lpVtbl->ResetLoggingUrlList(This);
10215}
10216/*** IWMReaderNetworkConfig2 methods ***/
10217static inline HRESULT IWMReaderNetworkConfig2_GetEnableContentCaching(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10218    return This->lpVtbl->GetEnableContentCaching(This,enable);
10219}
10220static inline HRESULT IWMReaderNetworkConfig2_SetEnableContentCaching(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10221    return This->lpVtbl->SetEnableContentCaching(This,enable);
10222}
10223static inline HRESULT IWMReaderNetworkConfig2_GetEnableFastCache(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10224    return This->lpVtbl->GetEnableFastCache(This,enable);
10225}
10226static inline HRESULT IWMReaderNetworkConfig2_SetEnableFastCache(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10227    return This->lpVtbl->SetEnableFastCache(This,enable);
10228}
10229static inline HRESULT IWMReaderNetworkConfig2_GetAcceleratedStreamingDuration(IWMReaderNetworkConfig2* This,QWORD *duration) {
10230    return This->lpVtbl->GetAcceleratedStreamingDuration(This,duration);
10231}
10232static inline HRESULT IWMReaderNetworkConfig2_SetAcceleratedStreamingDuration(IWMReaderNetworkConfig2* This,QWORD duration) {
10233    return This->lpVtbl->SetAcceleratedStreamingDuration(This,duration);
10234}
10235static inline HRESULT IWMReaderNetworkConfig2_GetAutoReconnectLimit(IWMReaderNetworkConfig2* This,DWORD *limit) {
10236    return This->lpVtbl->GetAutoReconnectLimit(This,limit);
10237}
10238static inline HRESULT IWMReaderNetworkConfig2_SetAutoReconnectLimit(IWMReaderNetworkConfig2* This,DWORD limit) {
10239    return This->lpVtbl->SetAutoReconnectLimit(This,limit);
10240}
10241static inline HRESULT IWMReaderNetworkConfig2_GetEnableResends(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10242    return This->lpVtbl->GetEnableResends(This,enable);
10243}
10244static inline HRESULT IWMReaderNetworkConfig2_SetEnableResends(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10245    return This->lpVtbl->SetEnableResends(This,enable);
10246}
10247static inline HRESULT IWMReaderNetworkConfig2_GetEnableThinning(IWMReaderNetworkConfig2* This,WINBOOL *enable) {
10248    return This->lpVtbl->GetEnableThinning(This,enable);
10249}
10250static inline HRESULT IWMReaderNetworkConfig2_SetEnableThinning(IWMReaderNetworkConfig2* This,WINBOOL enable) {
10251    return This->lpVtbl->SetEnableThinning(This,enable);
10252}
10253static inline HRESULT IWMReaderNetworkConfig2_GetMaxNetPacketSize(IWMReaderNetworkConfig2* This,DWORD *packet_size) {
10254    return This->lpVtbl->GetMaxNetPacketSize(This,packet_size);
10255}
10256#endif
10257#endif
10258
10259#endif
10260
10261
10262#endif  /* __IWMReaderNetworkConfig2_INTERFACE_DEFINED__ */
10263
10264/*****************************************************************************
10265 * IWMReaderStreamClock interface
10266 */
10267#ifndef __IWMReaderStreamClock_INTERFACE_DEFINED__
10268#define __IWMReaderStreamClock_INTERFACE_DEFINED__
10269
10270DEFINE_GUID(IID_IWMReaderStreamClock, 0x96406bed, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff);
10271#if defined(__cplusplus) && !defined(CINTERFACE)
10272MIDL_INTERFACE("96406bed-2b2b-11d3-b36b-00c04f6108ff")
10273IWMReaderStreamClock : public IUnknown
10274{
10275    virtual HRESULT STDMETHODCALLTYPE GetTime(
10276        QWORD *now) = 0;
10277
10278    virtual HRESULT STDMETHODCALLTYPE SetTimer(
10279        QWORD when,
10280        void *param,
10281        DWORD *id) = 0;
10282
10283    virtual HRESULT STDMETHODCALLTYPE KillTimer(
10284        DWORD id) = 0;
10285
10286};
10287#ifdef __CRT_UUID_DECL
10288__CRT_UUID_DECL(IWMReaderStreamClock, 0x96406bed, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff)
10289#endif
10290#else
10291typedef struct IWMReaderStreamClockVtbl {
10292    BEGIN_INTERFACE
10293
10294    /*** IUnknown methods ***/
10295    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10296        IWMReaderStreamClock *This,
10297        REFIID riid,
10298        void **ppvObject);
10299
10300    ULONG (STDMETHODCALLTYPE *AddRef)(
10301        IWMReaderStreamClock *This);
10302
10303    ULONG (STDMETHODCALLTYPE *Release)(
10304        IWMReaderStreamClock *This);
10305
10306    /*** IWMReaderStreamClock methods ***/
10307    HRESULT (STDMETHODCALLTYPE *GetTime)(
10308        IWMReaderStreamClock *This,
10309        QWORD *now);
10310
10311    HRESULT (STDMETHODCALLTYPE *SetTimer)(
10312        IWMReaderStreamClock *This,
10313        QWORD when,
10314        void *param,
10315        DWORD *id);
10316
10317    HRESULT (STDMETHODCALLTYPE *KillTimer)(
10318        IWMReaderStreamClock *This,
10319        DWORD id);
10320
10321    END_INTERFACE
10322} IWMReaderStreamClockVtbl;
10323
10324interface IWMReaderStreamClock {
10325    CONST_VTBL IWMReaderStreamClockVtbl* lpVtbl;
10326};
10327
10328#ifdef COBJMACROS
10329#ifndef WIDL_C_INLINE_WRAPPERS
10330/*** IUnknown methods ***/
10331#define IWMReaderStreamClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10332#define IWMReaderStreamClock_AddRef(This) (This)->lpVtbl->AddRef(This)
10333#define IWMReaderStreamClock_Release(This) (This)->lpVtbl->Release(This)
10334/*** IWMReaderStreamClock methods ***/
10335#define IWMReaderStreamClock_GetTime(This,now) (This)->lpVtbl->GetTime(This,now)
10336#define IWMReaderStreamClock_SetTimer(This,when,param,id) (This)->lpVtbl->SetTimer(This,when,param,id)
10337#define IWMReaderStreamClock_KillTimer(This,id) (This)->lpVtbl->KillTimer(This,id)
10338#else
10339/*** IUnknown methods ***/
10340static inline HRESULT IWMReaderStreamClock_QueryInterface(IWMReaderStreamClock* This,REFIID riid,void **ppvObject) {
10341    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10342}
10343static inline ULONG IWMReaderStreamClock_AddRef(IWMReaderStreamClock* This) {
10344    return This->lpVtbl->AddRef(This);
10345}
10346static inline ULONG IWMReaderStreamClock_Release(IWMReaderStreamClock* This) {
10347    return This->lpVtbl->Release(This);
10348}
10349/*** IWMReaderStreamClock methods ***/
10350static inline HRESULT IWMReaderStreamClock_GetTime(IWMReaderStreamClock* This,QWORD *now) {
10351    return This->lpVtbl->GetTime(This,now);
10352}
10353static inline HRESULT IWMReaderStreamClock_SetTimer(IWMReaderStreamClock* This,QWORD when,void *param,DWORD *id) {
10354    return This->lpVtbl->SetTimer(This,when,param,id);
10355}
10356static inline HRESULT IWMReaderStreamClock_KillTimer(IWMReaderStreamClock* This,DWORD id) {
10357    return This->lpVtbl->KillTimer(This,id);
10358}
10359#endif
10360#endif
10361
10362#endif
10363
10364
10365#endif  /* __IWMReaderStreamClock_INTERFACE_DEFINED__ */
10366
10367/*****************************************************************************
10368 * IWMPacketSize interface
10369 */
10370#ifndef __IWMPacketSize_INTERFACE_DEFINED__
10371#define __IWMPacketSize_INTERFACE_DEFINED__
10372
10373DEFINE_GUID(IID_IWMPacketSize, 0xcdfb97ab, 0x188f, 0x40b3, 0xb6,0x43, 0x5b,0x79,0x03,0x97,0x5c,0x59);
10374#if defined(__cplusplus) && !defined(CINTERFACE)
10375MIDL_INTERFACE("cdfb97ab-188f-40b3-b643-5b7903975c59")
10376IWMPacketSize : public IUnknown
10377{
10378    virtual HRESULT STDMETHODCALLTYPE GetMaxPacketSize(
10379        DWORD *size) = 0;
10380
10381    virtual HRESULT STDMETHODCALLTYPE SetMaxPacketSize(
10382        DWORD size) = 0;
10383
10384};
10385#ifdef __CRT_UUID_DECL
10386__CRT_UUID_DECL(IWMPacketSize, 0xcdfb97ab, 0x188f, 0x40b3, 0xb6,0x43, 0x5b,0x79,0x03,0x97,0x5c,0x59)
10387#endif
10388#else
10389typedef struct IWMPacketSizeVtbl {
10390    BEGIN_INTERFACE
10391
10392    /*** IUnknown methods ***/
10393    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10394        IWMPacketSize *This,
10395        REFIID riid,
10396        void **ppvObject);
10397
10398    ULONG (STDMETHODCALLTYPE *AddRef)(
10399        IWMPacketSize *This);
10400
10401    ULONG (STDMETHODCALLTYPE *Release)(
10402        IWMPacketSize *This);
10403
10404    /*** IWMPacketSize methods ***/
10405    HRESULT (STDMETHODCALLTYPE *GetMaxPacketSize)(
10406        IWMPacketSize *This,
10407        DWORD *size);
10408
10409    HRESULT (STDMETHODCALLTYPE *SetMaxPacketSize)(
10410        IWMPacketSize *This,
10411        DWORD size);
10412
10413    END_INTERFACE
10414} IWMPacketSizeVtbl;
10415
10416interface IWMPacketSize {
10417    CONST_VTBL IWMPacketSizeVtbl* lpVtbl;
10418};
10419
10420#ifdef COBJMACROS
10421#ifndef WIDL_C_INLINE_WRAPPERS
10422/*** IUnknown methods ***/
10423#define IWMPacketSize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10424#define IWMPacketSize_AddRef(This) (This)->lpVtbl->AddRef(This)
10425#define IWMPacketSize_Release(This) (This)->lpVtbl->Release(This)
10426/*** IWMPacketSize methods ***/
10427#define IWMPacketSize_GetMaxPacketSize(This,size) (This)->lpVtbl->GetMaxPacketSize(This,size)
10428#define IWMPacketSize_SetMaxPacketSize(This,size) (This)->lpVtbl->SetMaxPacketSize(This,size)
10429#else
10430/*** IUnknown methods ***/
10431static inline HRESULT IWMPacketSize_QueryInterface(IWMPacketSize* This,REFIID riid,void **ppvObject) {
10432    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10433}
10434static inline ULONG IWMPacketSize_AddRef(IWMPacketSize* This) {
10435    return This->lpVtbl->AddRef(This);
10436}
10437static inline ULONG IWMPacketSize_Release(IWMPacketSize* This) {
10438    return This->lpVtbl->Release(This);
10439}
10440/*** IWMPacketSize methods ***/
10441static inline HRESULT IWMPacketSize_GetMaxPacketSize(IWMPacketSize* This,DWORD *size) {
10442    return This->lpVtbl->GetMaxPacketSize(This,size);
10443}
10444static inline HRESULT IWMPacketSize_SetMaxPacketSize(IWMPacketSize* This,DWORD size) {
10445    return This->lpVtbl->SetMaxPacketSize(This,size);
10446}
10447#endif
10448#endif
10449
10450#endif
10451
10452
10453#endif  /* __IWMPacketSize_INTERFACE_DEFINED__ */
10454
10455/*****************************************************************************
10456 * IWMPacketSize2 interface
10457 */
10458#ifndef __IWMPacketSize2_INTERFACE_DEFINED__
10459#define __IWMPacketSize2_INTERFACE_DEFINED__
10460
10461DEFINE_GUID(IID_IWMPacketSize2, 0x8bfc2b9e, 0xb646, 0x4233, 0xa8,0x77, 0x1c,0x6a,0x07,0x96,0x69,0xdc);
10462#if defined(__cplusplus) && !defined(CINTERFACE)
10463MIDL_INTERFACE("8bfc2b9e-b646-4233-a877-1c6a079669dc")
10464IWMPacketSize2 : public IWMPacketSize
10465{
10466    virtual HRESULT STDMETHODCALLTYPE GetMinPacketSize(
10467        DWORD *size) = 0;
10468
10469    virtual HRESULT STDMETHODCALLTYPE SetMinPacketSize(
10470        DWORD size) = 0;
10471
10472};
10473#ifdef __CRT_UUID_DECL
10474__CRT_UUID_DECL(IWMPacketSize2, 0x8bfc2b9e, 0xb646, 0x4233, 0xa8,0x77, 0x1c,0x6a,0x07,0x96,0x69,0xdc)
10475#endif
10476#else
10477typedef struct IWMPacketSize2Vtbl {
10478    BEGIN_INTERFACE
10479
10480    /*** IUnknown methods ***/
10481    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10482        IWMPacketSize2 *This,
10483        REFIID riid,
10484        void **ppvObject);
10485
10486    ULONG (STDMETHODCALLTYPE *AddRef)(
10487        IWMPacketSize2 *This);
10488
10489    ULONG (STDMETHODCALLTYPE *Release)(
10490        IWMPacketSize2 *This);
10491
10492    /*** IWMPacketSize methods ***/
10493    HRESULT (STDMETHODCALLTYPE *GetMaxPacketSize)(
10494        IWMPacketSize2 *This,
10495        DWORD *size);
10496
10497    HRESULT (STDMETHODCALLTYPE *SetMaxPacketSize)(
10498        IWMPacketSize2 *This,
10499        DWORD size);
10500
10501    /*** IWMPacketSize2 methods ***/
10502    HRESULT (STDMETHODCALLTYPE *GetMinPacketSize)(
10503        IWMPacketSize2 *This,
10504        DWORD *size);
10505
10506    HRESULT (STDMETHODCALLTYPE *SetMinPacketSize)(
10507        IWMPacketSize2 *This,
10508        DWORD size);
10509
10510    END_INTERFACE
10511} IWMPacketSize2Vtbl;
10512
10513interface IWMPacketSize2 {
10514    CONST_VTBL IWMPacketSize2Vtbl* lpVtbl;
10515};
10516
10517#ifdef COBJMACROS
10518#ifndef WIDL_C_INLINE_WRAPPERS
10519/*** IUnknown methods ***/
10520#define IWMPacketSize2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10521#define IWMPacketSize2_AddRef(This) (This)->lpVtbl->AddRef(This)
10522#define IWMPacketSize2_Release(This) (This)->lpVtbl->Release(This)
10523/*** IWMPacketSize methods ***/
10524#define IWMPacketSize2_GetMaxPacketSize(This,size) (This)->lpVtbl->GetMaxPacketSize(This,size)
10525#define IWMPacketSize2_SetMaxPacketSize(This,size) (This)->lpVtbl->SetMaxPacketSize(This,size)
10526/*** IWMPacketSize2 methods ***/
10527#define IWMPacketSize2_GetMinPacketSize(This,size) (This)->lpVtbl->GetMinPacketSize(This,size)
10528#define IWMPacketSize2_SetMinPacketSize(This,size) (This)->lpVtbl->SetMinPacketSize(This,size)
10529#else
10530/*** IUnknown methods ***/
10531static inline HRESULT IWMPacketSize2_QueryInterface(IWMPacketSize2* This,REFIID riid,void **ppvObject) {
10532    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10533}
10534static inline ULONG IWMPacketSize2_AddRef(IWMPacketSize2* This) {
10535    return This->lpVtbl->AddRef(This);
10536}
10537static inline ULONG IWMPacketSize2_Release(IWMPacketSize2* This) {
10538    return This->lpVtbl->Release(This);
10539}
10540/*** IWMPacketSize methods ***/
10541static inline HRESULT IWMPacketSize2_GetMaxPacketSize(IWMPacketSize2* This,DWORD *size) {
10542    return This->lpVtbl->GetMaxPacketSize(This,size);
10543}
10544static inline HRESULT IWMPacketSize2_SetMaxPacketSize(IWMPacketSize2* This,DWORD size) {
10545    return This->lpVtbl->SetMaxPacketSize(This,size);
10546}
10547/*** IWMPacketSize2 methods ***/
10548static inline HRESULT IWMPacketSize2_GetMinPacketSize(IWMPacketSize2* This,DWORD *size) {
10549    return This->lpVtbl->GetMinPacketSize(This,size);
10550}
10551static inline HRESULT IWMPacketSize2_SetMinPacketSize(IWMPacketSize2* This,DWORD size) {
10552    return This->lpVtbl->SetMinPacketSize(This,size);
10553}
10554#endif
10555#endif
10556
10557#endif
10558
10559
10560#endif  /* __IWMPacketSize2_INTERFACE_DEFINED__ */
10561
10562/*****************************************************************************
10563 * IWMDRMReader interface
10564 */
10565#ifndef __IWMDRMReader_INTERFACE_DEFINED__
10566#define __IWMDRMReader_INTERFACE_DEFINED__
10567
10568DEFINE_GUID(IID_IWMDRMReader, 0xd2827540, 0x3ee7, 0x432c, 0xb1,0x4c, 0xdc,0x17,0xf0,0x85,0xd3,0xb3);
10569#if defined(__cplusplus) && !defined(CINTERFACE)
10570MIDL_INTERFACE("d2827540-3ee7-432c-b14c-dc17f085d3b3")
10571IWMDRMReader : public IUnknown
10572{
10573    virtual HRESULT STDMETHODCALLTYPE AcquireLicense(
10574        DWORD flags) = 0;
10575
10576    virtual HRESULT STDMETHODCALLTYPE CancelLicenseAcquisition(
10577        ) = 0;
10578
10579    virtual HRESULT STDMETHODCALLTYPE Individualize(
10580        DWORD flags) = 0;
10581
10582    virtual HRESULT STDMETHODCALLTYPE CancelIndividualization(
10583        ) = 0;
10584
10585    virtual HRESULT STDMETHODCALLTYPE MonitorLicenseAcquisition(
10586        ) = 0;
10587
10588    virtual HRESULT STDMETHODCALLTYPE CancelMonitorLicenseAcquisition(
10589        ) = 0;
10590
10591    virtual HRESULT STDMETHODCALLTYPE SetDRMProperty(
10592        const WCHAR *name,
10593        WMT_ATTR_DATATYPE type,
10594        const BYTE *value,
10595        WORD length) = 0;
10596
10597    virtual HRESULT STDMETHODCALLTYPE GetDRMProperty(
10598        const WCHAR *name,
10599        WMT_ATTR_DATATYPE *type,
10600        BYTE *value,
10601        WORD *length) = 0;
10602
10603};
10604#ifdef __CRT_UUID_DECL
10605__CRT_UUID_DECL(IWMDRMReader, 0xd2827540, 0x3ee7, 0x432c, 0xb1,0x4c, 0xdc,0x17,0xf0,0x85,0xd3,0xb3)
10606#endif
10607#else
10608typedef struct IWMDRMReaderVtbl {
10609    BEGIN_INTERFACE
10610
10611    /*** IUnknown methods ***/
10612    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10613        IWMDRMReader *This,
10614        REFIID riid,
10615        void **ppvObject);
10616
10617    ULONG (STDMETHODCALLTYPE *AddRef)(
10618        IWMDRMReader *This);
10619
10620    ULONG (STDMETHODCALLTYPE *Release)(
10621        IWMDRMReader *This);
10622
10623    /*** IWMDRMReader methods ***/
10624    HRESULT (STDMETHODCALLTYPE *AcquireLicense)(
10625        IWMDRMReader *This,
10626        DWORD flags);
10627
10628    HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)(
10629        IWMDRMReader *This);
10630
10631    HRESULT (STDMETHODCALLTYPE *Individualize)(
10632        IWMDRMReader *This,
10633        DWORD flags);
10634
10635    HRESULT (STDMETHODCALLTYPE *CancelIndividualization)(
10636        IWMDRMReader *This);
10637
10638    HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)(
10639        IWMDRMReader *This);
10640
10641    HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)(
10642        IWMDRMReader *This);
10643
10644    HRESULT (STDMETHODCALLTYPE *SetDRMProperty)(
10645        IWMDRMReader *This,
10646        const WCHAR *name,
10647        WMT_ATTR_DATATYPE type,
10648        const BYTE *value,
10649        WORD length);
10650
10651    HRESULT (STDMETHODCALLTYPE *GetDRMProperty)(
10652        IWMDRMReader *This,
10653        const WCHAR *name,
10654        WMT_ATTR_DATATYPE *type,
10655        BYTE *value,
10656        WORD *length);
10657
10658    END_INTERFACE
10659} IWMDRMReaderVtbl;
10660
10661interface IWMDRMReader {
10662    CONST_VTBL IWMDRMReaderVtbl* lpVtbl;
10663};
10664
10665#ifdef COBJMACROS
10666#ifndef WIDL_C_INLINE_WRAPPERS
10667/*** IUnknown methods ***/
10668#define IWMDRMReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10669#define IWMDRMReader_AddRef(This) (This)->lpVtbl->AddRef(This)
10670#define IWMDRMReader_Release(This) (This)->lpVtbl->Release(This)
10671/*** IWMDRMReader methods ***/
10672#define IWMDRMReader_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags)
10673#define IWMDRMReader_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This)
10674#define IWMDRMReader_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags)
10675#define IWMDRMReader_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This)
10676#define IWMDRMReader_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This)
10677#define IWMDRMReader_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This)
10678#define IWMDRMReader_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length)
10679#define IWMDRMReader_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length)
10680#else
10681/*** IUnknown methods ***/
10682static inline HRESULT IWMDRMReader_QueryInterface(IWMDRMReader* This,REFIID riid,void **ppvObject) {
10683    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10684}
10685static inline ULONG IWMDRMReader_AddRef(IWMDRMReader* This) {
10686    return This->lpVtbl->AddRef(This);
10687}
10688static inline ULONG IWMDRMReader_Release(IWMDRMReader* This) {
10689    return This->lpVtbl->Release(This);
10690}
10691/*** IWMDRMReader methods ***/
10692static inline HRESULT IWMDRMReader_AcquireLicense(IWMDRMReader* This,DWORD flags) {
10693    return This->lpVtbl->AcquireLicense(This,flags);
10694}
10695static inline HRESULT IWMDRMReader_CancelLicenseAcquisition(IWMDRMReader* This) {
10696    return This->lpVtbl->CancelLicenseAcquisition(This);
10697}
10698static inline HRESULT IWMDRMReader_Individualize(IWMDRMReader* This,DWORD flags) {
10699    return This->lpVtbl->Individualize(This,flags);
10700}
10701static inline HRESULT IWMDRMReader_CancelIndividualization(IWMDRMReader* This) {
10702    return This->lpVtbl->CancelIndividualization(This);
10703}
10704static inline HRESULT IWMDRMReader_MonitorLicenseAcquisition(IWMDRMReader* This) {
10705    return This->lpVtbl->MonitorLicenseAcquisition(This);
10706}
10707static inline HRESULT IWMDRMReader_CancelMonitorLicenseAcquisition(IWMDRMReader* This) {
10708    return This->lpVtbl->CancelMonitorLicenseAcquisition(This);
10709}
10710static inline HRESULT IWMDRMReader_SetDRMProperty(IWMDRMReader* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
10711    return This->lpVtbl->SetDRMProperty(This,name,type,value,length);
10712}
10713static inline HRESULT IWMDRMReader_GetDRMProperty(IWMDRMReader* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
10714    return This->lpVtbl->GetDRMProperty(This,name,type,value,length);
10715}
10716#endif
10717#endif
10718
10719#endif
10720
10721
10722#endif  /* __IWMDRMReader_INTERFACE_DEFINED__ */
10723
10724/*****************************************************************************
10725 * IWMDRMReader2 interface
10726 */
10727#ifndef __IWMDRMReader2_INTERFACE_DEFINED__
10728#define __IWMDRMReader2_INTERFACE_DEFINED__
10729
10730DEFINE_GUID(IID_IWMDRMReader2, 0xbefe7a75, 0x9f1d, 0x4075, 0xb9,0xd9, 0xa3,0xc3,0x7b,0xda,0x49,0xa0);
10731#if defined(__cplusplus) && !defined(CINTERFACE)
10732MIDL_INTERFACE("befe7a75-9f1d-4075-b9d9-a3c37bda49a0")
10733IWMDRMReader2 : public IWMDRMReader
10734{
10735    virtual HRESULT STDMETHODCALLTYPE SetEvaluateOutputLevelLicenses(
10736        WINBOOL evaluate) = 0;
10737
10738    virtual HRESULT STDMETHODCALLTYPE GetPlayOutputLevels(
10739        DRM_PLAY_OPL *play,
10740        DWORD *length,
10741        DWORD *level) = 0;
10742
10743    virtual HRESULT STDMETHODCALLTYPE GetCopyOutputLevels(
10744        DRM_COPY_OPL *copy,
10745        DWORD *length,
10746        DWORD *level) = 0;
10747
10748    virtual HRESULT STDMETHODCALLTYPE TryNextLicense(
10749        ) = 0;
10750
10751};
10752#ifdef __CRT_UUID_DECL
10753__CRT_UUID_DECL(IWMDRMReader2, 0xbefe7a75, 0x9f1d, 0x4075, 0xb9,0xd9, 0xa3,0xc3,0x7b,0xda,0x49,0xa0)
10754#endif
10755#else
10756typedef struct IWMDRMReader2Vtbl {
10757    BEGIN_INTERFACE
10758
10759    /*** IUnknown methods ***/
10760    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10761        IWMDRMReader2 *This,
10762        REFIID riid,
10763        void **ppvObject);
10764
10765    ULONG (STDMETHODCALLTYPE *AddRef)(
10766        IWMDRMReader2 *This);
10767
10768    ULONG (STDMETHODCALLTYPE *Release)(
10769        IWMDRMReader2 *This);
10770
10771    /*** IWMDRMReader methods ***/
10772    HRESULT (STDMETHODCALLTYPE *AcquireLicense)(
10773        IWMDRMReader2 *This,
10774        DWORD flags);
10775
10776    HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)(
10777        IWMDRMReader2 *This);
10778
10779    HRESULT (STDMETHODCALLTYPE *Individualize)(
10780        IWMDRMReader2 *This,
10781        DWORD flags);
10782
10783    HRESULT (STDMETHODCALLTYPE *CancelIndividualization)(
10784        IWMDRMReader2 *This);
10785
10786    HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)(
10787        IWMDRMReader2 *This);
10788
10789    HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)(
10790        IWMDRMReader2 *This);
10791
10792    HRESULT (STDMETHODCALLTYPE *SetDRMProperty)(
10793        IWMDRMReader2 *This,
10794        const WCHAR *name,
10795        WMT_ATTR_DATATYPE type,
10796        const BYTE *value,
10797        WORD length);
10798
10799    HRESULT (STDMETHODCALLTYPE *GetDRMProperty)(
10800        IWMDRMReader2 *This,
10801        const WCHAR *name,
10802        WMT_ATTR_DATATYPE *type,
10803        BYTE *value,
10804        WORD *length);
10805
10806    /*** IWMDRMReader2 methods ***/
10807    HRESULT (STDMETHODCALLTYPE *SetEvaluateOutputLevelLicenses)(
10808        IWMDRMReader2 *This,
10809        WINBOOL evaluate);
10810
10811    HRESULT (STDMETHODCALLTYPE *GetPlayOutputLevels)(
10812        IWMDRMReader2 *This,
10813        DRM_PLAY_OPL *play,
10814        DWORD *length,
10815        DWORD *level);
10816
10817    HRESULT (STDMETHODCALLTYPE *GetCopyOutputLevels)(
10818        IWMDRMReader2 *This,
10819        DRM_COPY_OPL *copy,
10820        DWORD *length,
10821        DWORD *level);
10822
10823    HRESULT (STDMETHODCALLTYPE *TryNextLicense)(
10824        IWMDRMReader2 *This);
10825
10826    END_INTERFACE
10827} IWMDRMReader2Vtbl;
10828
10829interface IWMDRMReader2 {
10830    CONST_VTBL IWMDRMReader2Vtbl* lpVtbl;
10831};
10832
10833#ifdef COBJMACROS
10834#ifndef WIDL_C_INLINE_WRAPPERS
10835/*** IUnknown methods ***/
10836#define IWMDRMReader2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10837#define IWMDRMReader2_AddRef(This) (This)->lpVtbl->AddRef(This)
10838#define IWMDRMReader2_Release(This) (This)->lpVtbl->Release(This)
10839/*** IWMDRMReader methods ***/
10840#define IWMDRMReader2_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags)
10841#define IWMDRMReader2_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This)
10842#define IWMDRMReader2_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags)
10843#define IWMDRMReader2_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This)
10844#define IWMDRMReader2_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This)
10845#define IWMDRMReader2_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This)
10846#define IWMDRMReader2_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length)
10847#define IWMDRMReader2_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length)
10848/*** IWMDRMReader2 methods ***/
10849#define IWMDRMReader2_SetEvaluateOutputLevelLicenses(This,evaluate) (This)->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate)
10850#define IWMDRMReader2_GetPlayOutputLevels(This,play,length,level) (This)->lpVtbl->GetPlayOutputLevels(This,play,length,level)
10851#define IWMDRMReader2_GetCopyOutputLevels(This,copy,length,level) (This)->lpVtbl->GetCopyOutputLevels(This,copy,length,level)
10852#define IWMDRMReader2_TryNextLicense(This) (This)->lpVtbl->TryNextLicense(This)
10853#else
10854/*** IUnknown methods ***/
10855static inline HRESULT IWMDRMReader2_QueryInterface(IWMDRMReader2* This,REFIID riid,void **ppvObject) {
10856    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10857}
10858static inline ULONG IWMDRMReader2_AddRef(IWMDRMReader2* This) {
10859    return This->lpVtbl->AddRef(This);
10860}
10861static inline ULONG IWMDRMReader2_Release(IWMDRMReader2* This) {
10862    return This->lpVtbl->Release(This);
10863}
10864/*** IWMDRMReader methods ***/
10865static inline HRESULT IWMDRMReader2_AcquireLicense(IWMDRMReader2* This,DWORD flags) {
10866    return This->lpVtbl->AcquireLicense(This,flags);
10867}
10868static inline HRESULT IWMDRMReader2_CancelLicenseAcquisition(IWMDRMReader2* This) {
10869    return This->lpVtbl->CancelLicenseAcquisition(This);
10870}
10871static inline HRESULT IWMDRMReader2_Individualize(IWMDRMReader2* This,DWORD flags) {
10872    return This->lpVtbl->Individualize(This,flags);
10873}
10874static inline HRESULT IWMDRMReader2_CancelIndividualization(IWMDRMReader2* This) {
10875    return This->lpVtbl->CancelIndividualization(This);
10876}
10877static inline HRESULT IWMDRMReader2_MonitorLicenseAcquisition(IWMDRMReader2* This) {
10878    return This->lpVtbl->MonitorLicenseAcquisition(This);
10879}
10880static inline HRESULT IWMDRMReader2_CancelMonitorLicenseAcquisition(IWMDRMReader2* This) {
10881    return This->lpVtbl->CancelMonitorLicenseAcquisition(This);
10882}
10883static inline HRESULT IWMDRMReader2_SetDRMProperty(IWMDRMReader2* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
10884    return This->lpVtbl->SetDRMProperty(This,name,type,value,length);
10885}
10886static inline HRESULT IWMDRMReader2_GetDRMProperty(IWMDRMReader2* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
10887    return This->lpVtbl->GetDRMProperty(This,name,type,value,length);
10888}
10889/*** IWMDRMReader2 methods ***/
10890static inline HRESULT IWMDRMReader2_SetEvaluateOutputLevelLicenses(IWMDRMReader2* This,WINBOOL evaluate) {
10891    return This->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate);
10892}
10893static inline HRESULT IWMDRMReader2_GetPlayOutputLevels(IWMDRMReader2* This,DRM_PLAY_OPL *play,DWORD *length,DWORD *level) {
10894    return This->lpVtbl->GetPlayOutputLevels(This,play,length,level);
10895}
10896static inline HRESULT IWMDRMReader2_GetCopyOutputLevels(IWMDRMReader2* This,DRM_COPY_OPL *copy,DWORD *length,DWORD *level) {
10897    return This->lpVtbl->GetCopyOutputLevels(This,copy,length,level);
10898}
10899static inline HRESULT IWMDRMReader2_TryNextLicense(IWMDRMReader2* This) {
10900    return This->lpVtbl->TryNextLicense(This);
10901}
10902#endif
10903#endif
10904
10905#endif
10906
10907
10908#endif  /* __IWMDRMReader2_INTERFACE_DEFINED__ */
10909
10910/*****************************************************************************
10911 * IWMDRMReader3 interface
10912 */
10913#ifndef __IWMDRMReader3_INTERFACE_DEFINED__
10914#define __IWMDRMReader3_INTERFACE_DEFINED__
10915
10916DEFINE_GUID(IID_IWMDRMReader3, 0xe08672de, 0xf1e7, 0x4ff4, 0xa0,0xa3, 0xfc,0x4b,0x08,0xe4,0xca,0xf8);
10917#if defined(__cplusplus) && !defined(CINTERFACE)
10918MIDL_INTERFACE("e08672de-f1e7-4ff4-a0a3-fc4b08e4caf8")
10919IWMDRMReader3 : public IWMDRMReader2
10920{
10921    virtual HRESULT STDMETHODCALLTYPE GetInclusionList(
10922        GUID **guids,
10923        DWORD *count) = 0;
10924
10925};
10926#ifdef __CRT_UUID_DECL
10927__CRT_UUID_DECL(IWMDRMReader3, 0xe08672de, 0xf1e7, 0x4ff4, 0xa0,0xa3, 0xfc,0x4b,0x08,0xe4,0xca,0xf8)
10928#endif
10929#else
10930typedef struct IWMDRMReader3Vtbl {
10931    BEGIN_INTERFACE
10932
10933    /*** IUnknown methods ***/
10934    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10935        IWMDRMReader3 *This,
10936        REFIID riid,
10937        void **ppvObject);
10938
10939    ULONG (STDMETHODCALLTYPE *AddRef)(
10940        IWMDRMReader3 *This);
10941
10942    ULONG (STDMETHODCALLTYPE *Release)(
10943        IWMDRMReader3 *This);
10944
10945    /*** IWMDRMReader methods ***/
10946    HRESULT (STDMETHODCALLTYPE *AcquireLicense)(
10947        IWMDRMReader3 *This,
10948        DWORD flags);
10949
10950    HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)(
10951        IWMDRMReader3 *This);
10952
10953    HRESULT (STDMETHODCALLTYPE *Individualize)(
10954        IWMDRMReader3 *This,
10955        DWORD flags);
10956
10957    HRESULT (STDMETHODCALLTYPE *CancelIndividualization)(
10958        IWMDRMReader3 *This);
10959
10960    HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)(
10961        IWMDRMReader3 *This);
10962
10963    HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)(
10964        IWMDRMReader3 *This);
10965
10966    HRESULT (STDMETHODCALLTYPE *SetDRMProperty)(
10967        IWMDRMReader3 *This,
10968        const WCHAR *name,
10969        WMT_ATTR_DATATYPE type,
10970        const BYTE *value,
10971        WORD length);
10972
10973    HRESULT (STDMETHODCALLTYPE *GetDRMProperty)(
10974        IWMDRMReader3 *This,
10975        const WCHAR *name,
10976        WMT_ATTR_DATATYPE *type,
10977        BYTE *value,
10978        WORD *length);
10979
10980    /*** IWMDRMReader2 methods ***/
10981    HRESULT (STDMETHODCALLTYPE *SetEvaluateOutputLevelLicenses)(
10982        IWMDRMReader3 *This,
10983        WINBOOL evaluate);
10984
10985    HRESULT (STDMETHODCALLTYPE *GetPlayOutputLevels)(
10986        IWMDRMReader3 *This,
10987        DRM_PLAY_OPL *play,
10988        DWORD *length,
10989        DWORD *level);
10990
10991    HRESULT (STDMETHODCALLTYPE *GetCopyOutputLevels)(
10992        IWMDRMReader3 *This,
10993        DRM_COPY_OPL *copy,
10994        DWORD *length,
10995        DWORD *level);
10996
10997    HRESULT (STDMETHODCALLTYPE *TryNextLicense)(
10998        IWMDRMReader3 *This);
10999
11000    /*** IWMDRMReader3 methods ***/
11001    HRESULT (STDMETHODCALLTYPE *GetInclusionList)(
11002        IWMDRMReader3 *This,
11003        GUID **guids,
11004        DWORD *count);
11005
11006    END_INTERFACE
11007} IWMDRMReader3Vtbl;
11008
11009interface IWMDRMReader3 {
11010    CONST_VTBL IWMDRMReader3Vtbl* lpVtbl;
11011};
11012
11013#ifdef COBJMACROS
11014#ifndef WIDL_C_INLINE_WRAPPERS
11015/*** IUnknown methods ***/
11016#define IWMDRMReader3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11017#define IWMDRMReader3_AddRef(This) (This)->lpVtbl->AddRef(This)
11018#define IWMDRMReader3_Release(This) (This)->lpVtbl->Release(This)
11019/*** IWMDRMReader methods ***/
11020#define IWMDRMReader3_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags)
11021#define IWMDRMReader3_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This)
11022#define IWMDRMReader3_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags)
11023#define IWMDRMReader3_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This)
11024#define IWMDRMReader3_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This)
11025#define IWMDRMReader3_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This)
11026#define IWMDRMReader3_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length)
11027#define IWMDRMReader3_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length)
11028/*** IWMDRMReader2 methods ***/
11029#define IWMDRMReader3_SetEvaluateOutputLevelLicenses(This,evaluate) (This)->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate)
11030#define IWMDRMReader3_GetPlayOutputLevels(This,play,length,level) (This)->lpVtbl->GetPlayOutputLevels(This,play,length,level)
11031#define IWMDRMReader3_GetCopyOutputLevels(This,copy,length,level) (This)->lpVtbl->GetCopyOutputLevels(This,copy,length,level)
11032#define IWMDRMReader3_TryNextLicense(This) (This)->lpVtbl->TryNextLicense(This)
11033/*** IWMDRMReader3 methods ***/
11034#define IWMDRMReader3_GetInclusionList(This,guids,count) (This)->lpVtbl->GetInclusionList(This,guids,count)
11035#else
11036/*** IUnknown methods ***/
11037static inline HRESULT IWMDRMReader3_QueryInterface(IWMDRMReader3* This,REFIID riid,void **ppvObject) {
11038    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11039}
11040static inline ULONG IWMDRMReader3_AddRef(IWMDRMReader3* This) {
11041    return This->lpVtbl->AddRef(This);
11042}
11043static inline ULONG IWMDRMReader3_Release(IWMDRMReader3* This) {
11044    return This->lpVtbl->Release(This);
11045}
11046/*** IWMDRMReader methods ***/
11047static inline HRESULT IWMDRMReader3_AcquireLicense(IWMDRMReader3* This,DWORD flags) {
11048    return This->lpVtbl->AcquireLicense(This,flags);
11049}
11050static inline HRESULT IWMDRMReader3_CancelLicenseAcquisition(IWMDRMReader3* This) {
11051    return This->lpVtbl->CancelLicenseAcquisition(This);
11052}
11053static inline HRESULT IWMDRMReader3_Individualize(IWMDRMReader3* This,DWORD flags) {
11054    return This->lpVtbl->Individualize(This,flags);
11055}
11056static inline HRESULT IWMDRMReader3_CancelIndividualization(IWMDRMReader3* This) {
11057    return This->lpVtbl->CancelIndividualization(This);
11058}
11059static inline HRESULT IWMDRMReader3_MonitorLicenseAcquisition(IWMDRMReader3* This) {
11060    return This->lpVtbl->MonitorLicenseAcquisition(This);
11061}
11062static inline HRESULT IWMDRMReader3_CancelMonitorLicenseAcquisition(IWMDRMReader3* This) {
11063    return This->lpVtbl->CancelMonitorLicenseAcquisition(This);
11064}
11065static inline HRESULT IWMDRMReader3_SetDRMProperty(IWMDRMReader3* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) {
11066    return This->lpVtbl->SetDRMProperty(This,name,type,value,length);
11067}
11068static inline HRESULT IWMDRMReader3_GetDRMProperty(IWMDRMReader3* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) {
11069    return This->lpVtbl->GetDRMProperty(This,name,type,value,length);
11070}
11071/*** IWMDRMReader2 methods ***/
11072static inline HRESULT IWMDRMReader3_SetEvaluateOutputLevelLicenses(IWMDRMReader3* This,WINBOOL evaluate) {
11073    return This->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate);
11074}
11075static inline HRESULT IWMDRMReader3_GetPlayOutputLevels(IWMDRMReader3* This,DRM_PLAY_OPL *play,DWORD *length,DWORD *level) {
11076    return This->lpVtbl->GetPlayOutputLevels(This,play,length,level);
11077}
11078static inline HRESULT IWMDRMReader3_GetCopyOutputLevels(IWMDRMReader3* This,DRM_COPY_OPL *copy,DWORD *length,DWORD *level) {
11079    return This->lpVtbl->GetCopyOutputLevels(This,copy,length,level);
11080}
11081static inline HRESULT IWMDRMReader3_TryNextLicense(IWMDRMReader3* This) {
11082    return This->lpVtbl->TryNextLicense(This);
11083}
11084/*** IWMDRMReader3 methods ***/
11085static inline HRESULT IWMDRMReader3_GetInclusionList(IWMDRMReader3* This,GUID **guids,DWORD *count) {
11086    return This->lpVtbl->GetInclusionList(This,guids,count);
11087}
11088#endif
11089#endif
11090
11091#endif
11092
11093
11094#endif  /* __IWMDRMReader3_INTERFACE_DEFINED__ */
11095
11096/*****************************************************************************
11097 * IWMReaderAccelerator interface
11098 */
11099#ifndef __IWMReaderAccelerator_INTERFACE_DEFINED__
11100#define __IWMReaderAccelerator_INTERFACE_DEFINED__
11101
11102DEFINE_GUID(IID_IWMReaderAccelerator, 0xbddc4d08, 0x944d, 0x4d52, 0xa6,0x12, 0x46,0xc3,0xfd,0xa0,0x7d,0xd4);
11103#if defined(__cplusplus) && !defined(CINTERFACE)
11104MIDL_INTERFACE("bddc4d08-944d-4d52-a612-46c3fda07dd4")
11105IWMReaderAccelerator : public IUnknown
11106{
11107    virtual HRESULT STDMETHODCALLTYPE GetCodecInterface(
11108        DWORD output,
11109        REFIID riid,
11110        void **codec) = 0;
11111
11112    virtual HRESULT STDMETHODCALLTYPE Notify(
11113        DWORD output,
11114        WM_MEDIA_TYPE *subtype) = 0;
11115
11116};
11117#ifdef __CRT_UUID_DECL
11118__CRT_UUID_DECL(IWMReaderAccelerator, 0xbddc4d08, 0x944d, 0x4d52, 0xa6,0x12, 0x46,0xc3,0xfd,0xa0,0x7d,0xd4)
11119#endif
11120#else
11121typedef struct IWMReaderAcceleratorVtbl {
11122    BEGIN_INTERFACE
11123
11124    /*** IUnknown methods ***/
11125    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11126        IWMReaderAccelerator *This,
11127        REFIID riid,
11128        void **ppvObject);
11129
11130    ULONG (STDMETHODCALLTYPE *AddRef)(
11131        IWMReaderAccelerator *This);
11132
11133    ULONG (STDMETHODCALLTYPE *Release)(
11134        IWMReaderAccelerator *This);
11135
11136    /*** IWMReaderAccelerator methods ***/
11137    HRESULT (STDMETHODCALLTYPE *GetCodecInterface)(
11138        IWMReaderAccelerator *This,
11139        DWORD output,
11140        REFIID riid,
11141        void **codec);
11142
11143    HRESULT (STDMETHODCALLTYPE *Notify)(
11144        IWMReaderAccelerator *This,
11145        DWORD output,
11146        WM_MEDIA_TYPE *subtype);
11147
11148    END_INTERFACE
11149} IWMReaderAcceleratorVtbl;
11150
11151interface IWMReaderAccelerator {
11152    CONST_VTBL IWMReaderAcceleratorVtbl* lpVtbl;
11153};
11154
11155#ifdef COBJMACROS
11156#ifndef WIDL_C_INLINE_WRAPPERS
11157/*** IUnknown methods ***/
11158#define IWMReaderAccelerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11159#define IWMReaderAccelerator_AddRef(This) (This)->lpVtbl->AddRef(This)
11160#define IWMReaderAccelerator_Release(This) (This)->lpVtbl->Release(This)
11161/*** IWMReaderAccelerator methods ***/
11162#define IWMReaderAccelerator_GetCodecInterface(This,output,riid,codec) (This)->lpVtbl->GetCodecInterface(This,output,riid,codec)
11163#define IWMReaderAccelerator_Notify(This,output,subtype) (This)->lpVtbl->Notify(This,output,subtype)
11164#else
11165/*** IUnknown methods ***/
11166static inline HRESULT IWMReaderAccelerator_QueryInterface(IWMReaderAccelerator* This,REFIID riid,void **ppvObject) {
11167    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11168}
11169static inline ULONG IWMReaderAccelerator_AddRef(IWMReaderAccelerator* This) {
11170    return This->lpVtbl->AddRef(This);
11171}
11172static inline ULONG IWMReaderAccelerator_Release(IWMReaderAccelerator* This) {
11173    return This->lpVtbl->Release(This);
11174}
11175/*** IWMReaderAccelerator methods ***/
11176static inline HRESULT IWMReaderAccelerator_GetCodecInterface(IWMReaderAccelerator* This,DWORD output,REFIID riid,void **codec) {
11177    return This->lpVtbl->GetCodecInterface(This,output,riid,codec);
11178}
11179static inline HRESULT IWMReaderAccelerator_Notify(IWMReaderAccelerator* This,DWORD output,WM_MEDIA_TYPE *subtype) {
11180    return This->lpVtbl->Notify(This,output,subtype);
11181}
11182#endif
11183#endif
11184
11185#endif
11186
11187
11188#endif  /* __IWMReaderAccelerator_INTERFACE_DEFINED__ */
11189
11190/*****************************************************************************
11191 * IWMReaderTimecode interface
11192 */
11193#ifndef __IWMReaderTimecode_INTERFACE_DEFINED__
11194#define __IWMReaderTimecode_INTERFACE_DEFINED__
11195
11196DEFINE_GUID(IID_IWMReaderTimecode, 0xf369e2f0, 0xe081, 0x4fe6, 0x84,0x50, 0xb8,0x10,0xb2,0xf4,0x10,0xd1);
11197#if defined(__cplusplus) && !defined(CINTERFACE)
11198MIDL_INTERFACE("f369e2f0-e081-4fe6-8450-b810b2f410d1")
11199IWMReaderTimecode : public IUnknown
11200{
11201    virtual HRESULT STDMETHODCALLTYPE GetTimecodeRangeCount(
11202        WORD num,
11203        WORD *count) = 0;
11204
11205    virtual HRESULT STDMETHODCALLTYPE GetTimecodeRangeBounds(
11206        WORD stream,
11207        WORD range,
11208        DWORD *start_timecode,
11209        DWORD *end_timecode) = 0;
11210
11211};
11212#ifdef __CRT_UUID_DECL
11213__CRT_UUID_DECL(IWMReaderTimecode, 0xf369e2f0, 0xe081, 0x4fe6, 0x84,0x50, 0xb8,0x10,0xb2,0xf4,0x10,0xd1)
11214#endif
11215#else
11216typedef struct IWMReaderTimecodeVtbl {
11217    BEGIN_INTERFACE
11218
11219    /*** IUnknown methods ***/
11220    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11221        IWMReaderTimecode *This,
11222        REFIID riid,
11223        void **ppvObject);
11224
11225    ULONG (STDMETHODCALLTYPE *AddRef)(
11226        IWMReaderTimecode *This);
11227
11228    ULONG (STDMETHODCALLTYPE *Release)(
11229        IWMReaderTimecode *This);
11230
11231    /*** IWMReaderTimecode methods ***/
11232    HRESULT (STDMETHODCALLTYPE *GetTimecodeRangeCount)(
11233        IWMReaderTimecode *This,
11234        WORD num,
11235        WORD *count);
11236
11237    HRESULT (STDMETHODCALLTYPE *GetTimecodeRangeBounds)(
11238        IWMReaderTimecode *This,
11239        WORD stream,
11240        WORD range,
11241        DWORD *start_timecode,
11242        DWORD *end_timecode);
11243
11244    END_INTERFACE
11245} IWMReaderTimecodeVtbl;
11246
11247interface IWMReaderTimecode {
11248    CONST_VTBL IWMReaderTimecodeVtbl* lpVtbl;
11249};
11250
11251#ifdef COBJMACROS
11252#ifndef WIDL_C_INLINE_WRAPPERS
11253/*** IUnknown methods ***/
11254#define IWMReaderTimecode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11255#define IWMReaderTimecode_AddRef(This) (This)->lpVtbl->AddRef(This)
11256#define IWMReaderTimecode_Release(This) (This)->lpVtbl->Release(This)
11257/*** IWMReaderTimecode methods ***/
11258#define IWMReaderTimecode_GetTimecodeRangeCount(This,num,count) (This)->lpVtbl->GetTimecodeRangeCount(This,num,count)
11259#define IWMReaderTimecode_GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode) (This)->lpVtbl->GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode)
11260#else
11261/*** IUnknown methods ***/
11262static inline HRESULT IWMReaderTimecode_QueryInterface(IWMReaderTimecode* This,REFIID riid,void **ppvObject) {
11263    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11264}
11265static inline ULONG IWMReaderTimecode_AddRef(IWMReaderTimecode* This) {
11266    return This->lpVtbl->AddRef(This);
11267}
11268static inline ULONG IWMReaderTimecode_Release(IWMReaderTimecode* This) {
11269    return This->lpVtbl->Release(This);
11270}
11271/*** IWMReaderTimecode methods ***/
11272static inline HRESULT IWMReaderTimecode_GetTimecodeRangeCount(IWMReaderTimecode* This,WORD num,WORD *count) {
11273    return This->lpVtbl->GetTimecodeRangeCount(This,num,count);
11274}
11275static inline HRESULT IWMReaderTimecode_GetTimecodeRangeBounds(IWMReaderTimecode* This,WORD stream,WORD range,DWORD *start_timecode,DWORD *end_timecode) {
11276    return This->lpVtbl->GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode);
11277}
11278#endif
11279#endif
11280
11281#endif
11282
11283
11284#endif  /* __IWMReaderTimecode_INTERFACE_DEFINED__ */
11285
11286/*****************************************************************************
11287 * IWMReaderTypeNegotiation interface
11288 */
11289#ifndef __IWMReaderTypeNegotiation_INTERFACE_DEFINED__
11290#define __IWMReaderTypeNegotiation_INTERFACE_DEFINED__
11291
11292DEFINE_GUID(IID_IWMReaderTypeNegotiation, 0xfdbe5592, 0x81a1, 0x41ea, 0x93,0xbd, 0x73,0x5c,0xad,0x1a,0xdc,0x05);
11293#if defined(__cplusplus) && !defined(CINTERFACE)
11294MIDL_INTERFACE("fdbe5592-81a1-41ea-93bd-735cad1adc05")
11295IWMReaderTypeNegotiation : public IUnknown
11296{
11297    virtual HRESULT STDMETHODCALLTYPE TryOutputProps(
11298        DWORD output,
11299        IWMOutputMediaProps *props) = 0;
11300
11301};
11302#ifdef __CRT_UUID_DECL
11303__CRT_UUID_DECL(IWMReaderTypeNegotiation, 0xfdbe5592, 0x81a1, 0x41ea, 0x93,0xbd, 0x73,0x5c,0xad,0x1a,0xdc,0x05)
11304#endif
11305#else
11306typedef struct IWMReaderTypeNegotiationVtbl {
11307    BEGIN_INTERFACE
11308
11309    /*** IUnknown methods ***/
11310    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11311        IWMReaderTypeNegotiation *This,
11312        REFIID riid,
11313        void **ppvObject);
11314
11315    ULONG (STDMETHODCALLTYPE *AddRef)(
11316        IWMReaderTypeNegotiation *This);
11317
11318    ULONG (STDMETHODCALLTYPE *Release)(
11319        IWMReaderTypeNegotiation *This);
11320
11321    /*** IWMReaderTypeNegotiation methods ***/
11322    HRESULT (STDMETHODCALLTYPE *TryOutputProps)(
11323        IWMReaderTypeNegotiation *This,
11324        DWORD output,
11325        IWMOutputMediaProps *props);
11326
11327    END_INTERFACE
11328} IWMReaderTypeNegotiationVtbl;
11329
11330interface IWMReaderTypeNegotiation {
11331    CONST_VTBL IWMReaderTypeNegotiationVtbl* lpVtbl;
11332};
11333
11334#ifdef COBJMACROS
11335#ifndef WIDL_C_INLINE_WRAPPERS
11336/*** IUnknown methods ***/
11337#define IWMReaderTypeNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11338#define IWMReaderTypeNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
11339#define IWMReaderTypeNegotiation_Release(This) (This)->lpVtbl->Release(This)
11340/*** IWMReaderTypeNegotiation methods ***/
11341#define IWMReaderTypeNegotiation_TryOutputProps(This,output,props) (This)->lpVtbl->TryOutputProps(This,output,props)
11342#else
11343/*** IUnknown methods ***/
11344static inline HRESULT IWMReaderTypeNegotiation_QueryInterface(IWMReaderTypeNegotiation* This,REFIID riid,void **ppvObject) {
11345    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11346}
11347static inline ULONG IWMReaderTypeNegotiation_AddRef(IWMReaderTypeNegotiation* This) {
11348    return This->lpVtbl->AddRef(This);
11349}
11350static inline ULONG IWMReaderTypeNegotiation_Release(IWMReaderTypeNegotiation* This) {
11351    return This->lpVtbl->Release(This);
11352}
11353/*** IWMReaderTypeNegotiation methods ***/
11354static inline HRESULT IWMReaderTypeNegotiation_TryOutputProps(IWMReaderTypeNegotiation* This,DWORD output,IWMOutputMediaProps *props) {
11355    return This->lpVtbl->TryOutputProps(This,output,props);
11356}
11357#endif
11358#endif
11359
11360#endif
11361
11362
11363#endif  /* __IWMReaderTypeNegotiation_INTERFACE_DEFINED__ */
11364
11365/*****************************************************************************
11366 * IWMLanguageList interface
11367 */
11368#ifndef __IWMLanguageList_INTERFACE_DEFINED__
11369#define __IWMLanguageList_INTERFACE_DEFINED__
11370
11371DEFINE_GUID(IID_IWMLanguageList, 0xdf683f00, 0x2d49, 0x4d8e, 0x92,0xb7, 0xfb,0x19,0xf6,0xa0,0xdc,0x57);
11372#if defined(__cplusplus) && !defined(CINTERFACE)
11373MIDL_INTERFACE("df683f00-2d49-4d8e-92b7-fb19f6a0dc57")
11374IWMLanguageList : public IUnknown
11375{
11376    virtual HRESULT STDMETHODCALLTYPE GetLanguageCount(
11377        WORD *count) = 0;
11378
11379    virtual HRESULT STDMETHODCALLTYPE GetLanguageDetails(
11380        WORD index,
11381        WCHAR *language,
11382        WORD *length) = 0;
11383
11384    virtual HRESULT STDMETHODCALLTYPE AddLanguageByRFC1766String(
11385        LPCWSTR_WMSDK_TYPE_SAFE language,
11386        WORD *index) = 0;
11387
11388};
11389#ifdef __CRT_UUID_DECL
11390__CRT_UUID_DECL(IWMLanguageList, 0xdf683f00, 0x2d49, 0x4d8e, 0x92,0xb7, 0xfb,0x19,0xf6,0xa0,0xdc,0x57)
11391#endif
11392#else
11393typedef struct IWMLanguageListVtbl {
11394    BEGIN_INTERFACE
11395
11396    /*** IUnknown methods ***/
11397    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11398        IWMLanguageList *This,
11399        REFIID riid,
11400        void **ppvObject);
11401
11402    ULONG (STDMETHODCALLTYPE *AddRef)(
11403        IWMLanguageList *This);
11404
11405    ULONG (STDMETHODCALLTYPE *Release)(
11406        IWMLanguageList *This);
11407
11408    /*** IWMLanguageList methods ***/
11409    HRESULT (STDMETHODCALLTYPE *GetLanguageCount)(
11410        IWMLanguageList *This,
11411        WORD *count);
11412
11413    HRESULT (STDMETHODCALLTYPE *GetLanguageDetails)(
11414        IWMLanguageList *This,
11415        WORD index,
11416        WCHAR *language,
11417        WORD *length);
11418
11419    HRESULT (STDMETHODCALLTYPE *AddLanguageByRFC1766String)(
11420        IWMLanguageList *This,
11421        LPCWSTR_WMSDK_TYPE_SAFE language,
11422        WORD *index);
11423
11424    END_INTERFACE
11425} IWMLanguageListVtbl;
11426
11427interface IWMLanguageList {
11428    CONST_VTBL IWMLanguageListVtbl* lpVtbl;
11429};
11430
11431#ifdef COBJMACROS
11432#ifndef WIDL_C_INLINE_WRAPPERS
11433/*** IUnknown methods ***/
11434#define IWMLanguageList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11435#define IWMLanguageList_AddRef(This) (This)->lpVtbl->AddRef(This)
11436#define IWMLanguageList_Release(This) (This)->lpVtbl->Release(This)
11437/*** IWMLanguageList methods ***/
11438#define IWMLanguageList_GetLanguageCount(This,count) (This)->lpVtbl->GetLanguageCount(This,count)
11439#define IWMLanguageList_GetLanguageDetails(This,index,language,length) (This)->lpVtbl->GetLanguageDetails(This,index,language,length)
11440#define IWMLanguageList_AddLanguageByRFC1766String(This,language,index) (This)->lpVtbl->AddLanguageByRFC1766String(This,language,index)
11441#else
11442/*** IUnknown methods ***/
11443static inline HRESULT IWMLanguageList_QueryInterface(IWMLanguageList* This,REFIID riid,void **ppvObject) {
11444    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11445}
11446static inline ULONG IWMLanguageList_AddRef(IWMLanguageList* This) {
11447    return This->lpVtbl->AddRef(This);
11448}
11449static inline ULONG IWMLanguageList_Release(IWMLanguageList* This) {
11450    return This->lpVtbl->Release(This);
11451}
11452/*** IWMLanguageList methods ***/
11453static inline HRESULT IWMLanguageList_GetLanguageCount(IWMLanguageList* This,WORD *count) {
11454    return This->lpVtbl->GetLanguageCount(This,count);
11455}
11456static inline HRESULT IWMLanguageList_GetLanguageDetails(IWMLanguageList* This,WORD index,WCHAR *language,WORD *length) {
11457    return This->lpVtbl->GetLanguageDetails(This,index,language,length);
11458}
11459static inline HRESULT IWMLanguageList_AddLanguageByRFC1766String(IWMLanguageList* This,LPCWSTR_WMSDK_TYPE_SAFE language,WORD *index) {
11460    return This->lpVtbl->AddLanguageByRFC1766String(This,language,index);
11461}
11462#endif
11463#endif
11464
11465#endif
11466
11467
11468#endif  /* __IWMLanguageList_INTERFACE_DEFINED__ */
11469
11470/*****************************************************************************
11471 * IWMReaderPlaylistBurn interface
11472 */
11473#ifndef __IWMReaderPlaylistBurn_INTERFACE_DEFINED__
11474#define __IWMReaderPlaylistBurn_INTERFACE_DEFINED__
11475
11476DEFINE_GUID(IID_IWMReaderPlaylistBurn, 0xf28c0300, 0x9baa, 0x4477, 0xa8,0x46, 0x17,0x44,0xd9,0xcb,0xf5,0x33);
11477#if defined(__cplusplus) && !defined(CINTERFACE)
11478MIDL_INTERFACE("f28c0300-9baa-4477-a846-1744d9cbf533")
11479IWMReaderPlaylistBurn : public IUnknown
11480{
11481    virtual HRESULT STDMETHODCALLTYPE InitPlaylistBurn(
11482        DWORD count,
11483        LPCWSTR_WMSDK_TYPE_SAFE *filenames,
11484        IWMStatusCallback *callback,
11485        void *context) = 0;
11486
11487    virtual HRESULT STDMETHODCALLTYPE GetInitResults(
11488        DWORD count,
11489        HRESULT *stat) = 0;
11490
11491    virtual HRESULT STDMETHODCALLTYPE Cancel(
11492        ) = 0;
11493
11494    virtual HRESULT STDMETHODCALLTYPE EndPlaylistBurn(
11495        HRESULT result) = 0;
11496
11497};
11498#ifdef __CRT_UUID_DECL
11499__CRT_UUID_DECL(IWMReaderPlaylistBurn, 0xf28c0300, 0x9baa, 0x4477, 0xa8,0x46, 0x17,0x44,0xd9,0xcb,0xf5,0x33)
11500#endif
11501#else
11502typedef struct IWMReaderPlaylistBurnVtbl {
11503    BEGIN_INTERFACE
11504
11505    /*** IUnknown methods ***/
11506    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11507        IWMReaderPlaylistBurn *This,
11508        REFIID riid,
11509        void **ppvObject);
11510
11511    ULONG (STDMETHODCALLTYPE *AddRef)(
11512        IWMReaderPlaylistBurn *This);
11513
11514    ULONG (STDMETHODCALLTYPE *Release)(
11515        IWMReaderPlaylistBurn *This);
11516
11517    /*** IWMReaderPlaylistBurn methods ***/
11518    HRESULT (STDMETHODCALLTYPE *InitPlaylistBurn)(
11519        IWMReaderPlaylistBurn *This,
11520        DWORD count,
11521        LPCWSTR_WMSDK_TYPE_SAFE *filenames,
11522        IWMStatusCallback *callback,
11523        void *context);
11524
11525    HRESULT (STDMETHODCALLTYPE *GetInitResults)(
11526        IWMReaderPlaylistBurn *This,
11527        DWORD count,
11528        HRESULT *stat);
11529
11530    HRESULT (STDMETHODCALLTYPE *Cancel)(
11531        IWMReaderPlaylistBurn *This);
11532
11533    HRESULT (STDMETHODCALLTYPE *EndPlaylistBurn)(
11534        IWMReaderPlaylistBurn *This,
11535        HRESULT result);
11536
11537    END_INTERFACE
11538} IWMReaderPlaylistBurnVtbl;
11539
11540interface IWMReaderPlaylistBurn {
11541    CONST_VTBL IWMReaderPlaylistBurnVtbl* lpVtbl;
11542};
11543
11544#ifdef COBJMACROS
11545#ifndef WIDL_C_INLINE_WRAPPERS
11546/*** IUnknown methods ***/
11547#define IWMReaderPlaylistBurn_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11548#define IWMReaderPlaylistBurn_AddRef(This) (This)->lpVtbl->AddRef(This)
11549#define IWMReaderPlaylistBurn_Release(This) (This)->lpVtbl->Release(This)
11550/*** IWMReaderPlaylistBurn methods ***/
11551#define IWMReaderPlaylistBurn_InitPlaylistBurn(This,count,filenames,callback,context) (This)->lpVtbl->InitPlaylistBurn(This,count,filenames,callback,context)
11552#define IWMReaderPlaylistBurn_GetInitResults(This,count,stat) (This)->lpVtbl->GetInitResults(This,count,stat)
11553#define IWMReaderPlaylistBurn_Cancel(This) (This)->lpVtbl->Cancel(This)
11554#define IWMReaderPlaylistBurn_EndPlaylistBurn(This,result) (This)->lpVtbl->EndPlaylistBurn(This,result)
11555#else
11556/*** IUnknown methods ***/
11557static inline HRESULT IWMReaderPlaylistBurn_QueryInterface(IWMReaderPlaylistBurn* This,REFIID riid,void **ppvObject) {
11558    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11559}
11560static inline ULONG IWMReaderPlaylistBurn_AddRef(IWMReaderPlaylistBurn* This) {
11561    return This->lpVtbl->AddRef(This);
11562}
11563static inline ULONG IWMReaderPlaylistBurn_Release(IWMReaderPlaylistBurn* This) {
11564    return This->lpVtbl->Release(This);
11565}
11566/*** IWMReaderPlaylistBurn methods ***/
11567static inline HRESULT IWMReaderPlaylistBurn_InitPlaylistBurn(IWMReaderPlaylistBurn* This,DWORD count,LPCWSTR_WMSDK_TYPE_SAFE *filenames,IWMStatusCallback *callback,void *context) {
11568    return This->lpVtbl->InitPlaylistBurn(This,count,filenames,callback,context);
11569}
11570static inline HRESULT IWMReaderPlaylistBurn_GetInitResults(IWMReaderPlaylistBurn* This,DWORD count,HRESULT *stat) {
11571    return This->lpVtbl->GetInitResults(This,count,stat);
11572}
11573static inline HRESULT IWMReaderPlaylistBurn_Cancel(IWMReaderPlaylistBurn* This) {
11574    return This->lpVtbl->Cancel(This);
11575}
11576static inline HRESULT IWMReaderPlaylistBurn_EndPlaylistBurn(IWMReaderPlaylistBurn* This,HRESULT result) {
11577    return This->lpVtbl->EndPlaylistBurn(This,result);
11578}
11579#endif
11580#endif
11581
11582#endif
11583
11584
11585#endif  /* __IWMReaderPlaylistBurn_INTERFACE_DEFINED__ */
11586
11587/*****************************************************************************
11588 * IWMPropertyVault interface
11589 */
11590#ifndef __IWMPropertyVault_INTERFACE_DEFINED__
11591#define __IWMPropertyVault_INTERFACE_DEFINED__
11592
11593DEFINE_GUID(IID_IWMPropertyVault, 0x72995a79, 0x5090, 0x42a4, 0x9c,0x8c, 0xd9,0xd0,0xb6,0xd3,0x4b,0xe5);
11594#if defined(__cplusplus) && !defined(CINTERFACE)
11595MIDL_INTERFACE("72995a79-5090-42a4-9c8c-d9d0b6d34be5")
11596IWMPropertyVault : public IUnknown
11597{
11598    virtual HRESULT STDMETHODCALLTYPE GetPropertyCount(
11599        DWORD *count) = 0;
11600
11601    virtual HRESULT STDMETHODCALLTYPE GetPropertyByName(
11602        const WCHAR *name,
11603        WMT_ATTR_DATATYPE *type,
11604        BYTE *value,
11605        DWORD *size) = 0;
11606
11607    virtual HRESULT STDMETHODCALLTYPE SetProperty(
11608        const WCHAR *name,
11609        WMT_ATTR_DATATYPE type,
11610        BYTE *value,
11611        DWORD size) = 0;
11612
11613    virtual HRESULT STDMETHODCALLTYPE GetPropertyByIndex(
11614        DWORD index,
11615        WCHAR *name,
11616        DWORD *length,
11617        WMT_ATTR_DATATYPE *type,
11618        BYTE *value,
11619        DWORD *size) = 0;
11620
11621    virtual HRESULT STDMETHODCALLTYPE CopyPropertiesFrom(
11622        IWMPropertyVault *vault) = 0;
11623
11624    virtual HRESULT STDMETHODCALLTYPE Clear(
11625        ) = 0;
11626
11627};
11628#ifdef __CRT_UUID_DECL
11629__CRT_UUID_DECL(IWMPropertyVault, 0x72995a79, 0x5090, 0x42a4, 0x9c,0x8c, 0xd9,0xd0,0xb6,0xd3,0x4b,0xe5)
11630#endif
11631#else
11632typedef struct IWMPropertyVaultVtbl {
11633    BEGIN_INTERFACE
11634
11635    /*** IUnknown methods ***/
11636    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11637        IWMPropertyVault *This,
11638        REFIID riid,
11639        void **ppvObject);
11640
11641    ULONG (STDMETHODCALLTYPE *AddRef)(
11642        IWMPropertyVault *This);
11643
11644    ULONG (STDMETHODCALLTYPE *Release)(
11645        IWMPropertyVault *This);
11646
11647    /*** IWMPropertyVault methods ***/
11648    HRESULT (STDMETHODCALLTYPE *GetPropertyCount)(
11649        IWMPropertyVault *This,
11650        DWORD *count);
11651
11652    HRESULT (STDMETHODCALLTYPE *GetPropertyByName)(
11653        IWMPropertyVault *This,
11654        const WCHAR *name,
11655        WMT_ATTR_DATATYPE *type,
11656        BYTE *value,
11657        DWORD *size);
11658
11659    HRESULT (STDMETHODCALLTYPE *SetProperty)(
11660        IWMPropertyVault *This,
11661        const WCHAR *name,
11662        WMT_ATTR_DATATYPE type,
11663        BYTE *value,
11664        DWORD size);
11665
11666    HRESULT (STDMETHODCALLTYPE *GetPropertyByIndex)(
11667        IWMPropertyVault *This,
11668        DWORD index,
11669        WCHAR *name,
11670        DWORD *length,
11671        WMT_ATTR_DATATYPE *type,
11672        BYTE *value,
11673        DWORD *size);
11674
11675    HRESULT (STDMETHODCALLTYPE *CopyPropertiesFrom)(
11676        IWMPropertyVault *This,
11677        IWMPropertyVault *vault);
11678
11679    HRESULT (STDMETHODCALLTYPE *Clear)(
11680        IWMPropertyVault *This);
11681
11682    END_INTERFACE
11683} IWMPropertyVaultVtbl;
11684
11685interface IWMPropertyVault {
11686    CONST_VTBL IWMPropertyVaultVtbl* lpVtbl;
11687};
11688
11689#ifdef COBJMACROS
11690#ifndef WIDL_C_INLINE_WRAPPERS
11691/*** IUnknown methods ***/
11692#define IWMPropertyVault_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11693#define IWMPropertyVault_AddRef(This) (This)->lpVtbl->AddRef(This)
11694#define IWMPropertyVault_Release(This) (This)->lpVtbl->Release(This)
11695/*** IWMPropertyVault methods ***/
11696#define IWMPropertyVault_GetPropertyCount(This,count) (This)->lpVtbl->GetPropertyCount(This,count)
11697#define IWMPropertyVault_GetPropertyByName(This,name,type,value,size) (This)->lpVtbl->GetPropertyByName(This,name,type,value,size)
11698#define IWMPropertyVault_SetProperty(This,name,type,value,size) (This)->lpVtbl->SetProperty(This,name,type,value,size)
11699#define IWMPropertyVault_GetPropertyByIndex(This,index,name,length,type,value,size) (This)->lpVtbl->GetPropertyByIndex(This,index,name,length,type,value,size)
11700#define IWMPropertyVault_CopyPropertiesFrom(This,vault) (This)->lpVtbl->CopyPropertiesFrom(This,vault)
11701#define IWMPropertyVault_Clear(This) (This)->lpVtbl->Clear(This)
11702#else
11703/*** IUnknown methods ***/
11704static inline HRESULT IWMPropertyVault_QueryInterface(IWMPropertyVault* This,REFIID riid,void **ppvObject) {
11705    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11706}
11707static inline ULONG IWMPropertyVault_AddRef(IWMPropertyVault* This) {
11708    return This->lpVtbl->AddRef(This);
11709}
11710static inline ULONG IWMPropertyVault_Release(IWMPropertyVault* This) {
11711    return This->lpVtbl->Release(This);
11712}
11713/*** IWMPropertyVault methods ***/
11714static inline HRESULT IWMPropertyVault_GetPropertyCount(IWMPropertyVault* This,DWORD *count) {
11715    return This->lpVtbl->GetPropertyCount(This,count);
11716}
11717static inline HRESULT IWMPropertyVault_GetPropertyByName(IWMPropertyVault* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
11718    return This->lpVtbl->GetPropertyByName(This,name,type,value,size);
11719}
11720static inline HRESULT IWMPropertyVault_SetProperty(IWMPropertyVault* This,const WCHAR *name,WMT_ATTR_DATATYPE type,BYTE *value,DWORD size) {
11721    return This->lpVtbl->SetProperty(This,name,type,value,size);
11722}
11723static inline HRESULT IWMPropertyVault_GetPropertyByIndex(IWMPropertyVault* This,DWORD index,WCHAR *name,DWORD *length,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
11724    return This->lpVtbl->GetPropertyByIndex(This,index,name,length,type,value,size);
11725}
11726static inline HRESULT IWMPropertyVault_CopyPropertiesFrom(IWMPropertyVault* This,IWMPropertyVault *vault) {
11727    return This->lpVtbl->CopyPropertiesFrom(This,vault);
11728}
11729static inline HRESULT IWMPropertyVault_Clear(IWMPropertyVault* This) {
11730    return This->lpVtbl->Clear(This);
11731}
11732#endif
11733#endif
11734
11735#endif
11736
11737
11738#endif  /* __IWMPropertyVault_INTERFACE_DEFINED__ */
11739
11740/*****************************************************************************
11741 * IWMWriterPreprocess interface
11742 */
11743#ifndef __IWMWriterPreprocess_INTERFACE_DEFINED__
11744#define __IWMWriterPreprocess_INTERFACE_DEFINED__
11745
11746DEFINE_GUID(IID_IWMWriterPreprocess, 0xfc54a285, 0x38c4, 0x45b5, 0xaa,0x23, 0x85,0xb9,0xf7,0xcb,0x42,0x4b);
11747#if defined(__cplusplus) && !defined(CINTERFACE)
11748MIDL_INTERFACE("fc54a285-38c4-45b5-aa23-85b9f7cb424b")
11749IWMWriterPreprocess : public IUnknown
11750{
11751    virtual HRESULT STDMETHODCALLTYPE GetMaxPreprocessingPasses(
11752        DWORD input,
11753        DWORD flags,
11754        DWORD *passes) = 0;
11755
11756    virtual HRESULT STDMETHODCALLTYPE SetNumPreprocessingPasses(
11757        DWORD input,
11758        DWORD flags,
11759        DWORD passes) = 0;
11760
11761    virtual HRESULT STDMETHODCALLTYPE BeginPreprocessingPass(
11762        DWORD input,
11763        DWORD flags) = 0;
11764
11765    virtual HRESULT STDMETHODCALLTYPE PreprocessSample(
11766        DWORD input,
11767        QWORD sample_time,
11768        DWORD flags,
11769        INSSBuffer *sample) = 0;
11770
11771    virtual HRESULT STDMETHODCALLTYPE EndPreprocessingPass(
11772        DWORD input,
11773        DWORD flags) = 0;
11774
11775};
11776#ifdef __CRT_UUID_DECL
11777__CRT_UUID_DECL(IWMWriterPreprocess, 0xfc54a285, 0x38c4, 0x45b5, 0xaa,0x23, 0x85,0xb9,0xf7,0xcb,0x42,0x4b)
11778#endif
11779#else
11780typedef struct IWMWriterPreprocessVtbl {
11781    BEGIN_INTERFACE
11782
11783    /*** IUnknown methods ***/
11784    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11785        IWMWriterPreprocess *This,
11786        REFIID riid,
11787        void **ppvObject);
11788
11789    ULONG (STDMETHODCALLTYPE *AddRef)(
11790        IWMWriterPreprocess *This);
11791
11792    ULONG (STDMETHODCALLTYPE *Release)(
11793        IWMWriterPreprocess *This);
11794
11795    /*** IWMWriterPreprocess methods ***/
11796    HRESULT (STDMETHODCALLTYPE *GetMaxPreprocessingPasses)(
11797        IWMWriterPreprocess *This,
11798        DWORD input,
11799        DWORD flags,
11800        DWORD *passes);
11801
11802    HRESULT (STDMETHODCALLTYPE *SetNumPreprocessingPasses)(
11803        IWMWriterPreprocess *This,
11804        DWORD input,
11805        DWORD flags,
11806        DWORD passes);
11807
11808    HRESULT (STDMETHODCALLTYPE *BeginPreprocessingPass)(
11809        IWMWriterPreprocess *This,
11810        DWORD input,
11811        DWORD flags);
11812
11813    HRESULT (STDMETHODCALLTYPE *PreprocessSample)(
11814        IWMWriterPreprocess *This,
11815        DWORD input,
11816        QWORD sample_time,
11817        DWORD flags,
11818        INSSBuffer *sample);
11819
11820    HRESULT (STDMETHODCALLTYPE *EndPreprocessingPass)(
11821        IWMWriterPreprocess *This,
11822        DWORD input,
11823        DWORD flags);
11824
11825    END_INTERFACE
11826} IWMWriterPreprocessVtbl;
11827
11828interface IWMWriterPreprocess {
11829    CONST_VTBL IWMWriterPreprocessVtbl* lpVtbl;
11830};
11831
11832#ifdef COBJMACROS
11833#ifndef WIDL_C_INLINE_WRAPPERS
11834/*** IUnknown methods ***/
11835#define IWMWriterPreprocess_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11836#define IWMWriterPreprocess_AddRef(This) (This)->lpVtbl->AddRef(This)
11837#define IWMWriterPreprocess_Release(This) (This)->lpVtbl->Release(This)
11838/*** IWMWriterPreprocess methods ***/
11839#define IWMWriterPreprocess_GetMaxPreprocessingPasses(This,input,flags,passes) (This)->lpVtbl->GetMaxPreprocessingPasses(This,input,flags,passes)
11840#define IWMWriterPreprocess_SetNumPreprocessingPasses(This,input,flags,passes) (This)->lpVtbl->SetNumPreprocessingPasses(This,input,flags,passes)
11841#define IWMWriterPreprocess_BeginPreprocessingPass(This,input,flags) (This)->lpVtbl->BeginPreprocessingPass(This,input,flags)
11842#define IWMWriterPreprocess_PreprocessSample(This,input,sample_time,flags,sample) (This)->lpVtbl->PreprocessSample(This,input,sample_time,flags,sample)
11843#define IWMWriterPreprocess_EndPreprocessingPass(This,input,flags) (This)->lpVtbl->EndPreprocessingPass(This,input,flags)
11844#else
11845/*** IUnknown methods ***/
11846static inline HRESULT IWMWriterPreprocess_QueryInterface(IWMWriterPreprocess* This,REFIID riid,void **ppvObject) {
11847    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11848}
11849static inline ULONG IWMWriterPreprocess_AddRef(IWMWriterPreprocess* This) {
11850    return This->lpVtbl->AddRef(This);
11851}
11852static inline ULONG IWMWriterPreprocess_Release(IWMWriterPreprocess* This) {
11853    return This->lpVtbl->Release(This);
11854}
11855/*** IWMWriterPreprocess methods ***/
11856static inline HRESULT IWMWriterPreprocess_GetMaxPreprocessingPasses(IWMWriterPreprocess* This,DWORD input,DWORD flags,DWORD *passes) {
11857    return This->lpVtbl->GetMaxPreprocessingPasses(This,input,flags,passes);
11858}
11859static inline HRESULT IWMWriterPreprocess_SetNumPreprocessingPasses(IWMWriterPreprocess* This,DWORD input,DWORD flags,DWORD passes) {
11860    return This->lpVtbl->SetNumPreprocessingPasses(This,input,flags,passes);
11861}
11862static inline HRESULT IWMWriterPreprocess_BeginPreprocessingPass(IWMWriterPreprocess* This,DWORD input,DWORD flags) {
11863    return This->lpVtbl->BeginPreprocessingPass(This,input,flags);
11864}
11865static inline HRESULT IWMWriterPreprocess_PreprocessSample(IWMWriterPreprocess* This,DWORD input,QWORD sample_time,DWORD flags,INSSBuffer *sample) {
11866    return This->lpVtbl->PreprocessSample(This,input,sample_time,flags,sample);
11867}
11868static inline HRESULT IWMWriterPreprocess_EndPreprocessingPass(IWMWriterPreprocess* This,DWORD input,DWORD flags) {
11869    return This->lpVtbl->EndPreprocessingPass(This,input,flags);
11870}
11871#endif
11872#endif
11873
11874#endif
11875
11876
11877#endif  /* __IWMWriterPreprocess_INTERFACE_DEFINED__ */
11878
11879/*****************************************************************************
11880 * IWMLicenseBackup interface
11881 */
11882#ifndef __IWMLicenseBackup_INTERFACE_DEFINED__
11883#define __IWMLicenseBackup_INTERFACE_DEFINED__
11884
11885DEFINE_GUID(IID_IWMLicenseBackup, 0x05e5ac9f, 0x3fb6, 0x4508, 0xbb,0x43, 0xa4,0x06,0x7b,0xa1,0xeb,0xe8);
11886#if defined(__cplusplus) && !defined(CINTERFACE)
11887MIDL_INTERFACE("05e5ac9f-3fb6-4508-bb43-a4067ba1ebe8")
11888IWMLicenseBackup : public IUnknown
11889{
11890    virtual HRESULT STDMETHODCALLTYPE BackupLicenses(
11891        DWORD dwFlags,
11892        IWMStatusCallback *pCallback) = 0;
11893
11894    virtual HRESULT STDMETHODCALLTYPE CancelLicenseBackup(
11895        ) = 0;
11896
11897};
11898#ifdef __CRT_UUID_DECL
11899__CRT_UUID_DECL(IWMLicenseBackup, 0x05e5ac9f, 0x3fb6, 0x4508, 0xbb,0x43, 0xa4,0x06,0x7b,0xa1,0xeb,0xe8)
11900#endif
11901#else
11902typedef struct IWMLicenseBackupVtbl {
11903    BEGIN_INTERFACE
11904
11905    /*** IUnknown methods ***/
11906    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11907        IWMLicenseBackup *This,
11908        REFIID riid,
11909        void **ppvObject);
11910
11911    ULONG (STDMETHODCALLTYPE *AddRef)(
11912        IWMLicenseBackup *This);
11913
11914    ULONG (STDMETHODCALLTYPE *Release)(
11915        IWMLicenseBackup *This);
11916
11917    /*** IWMLicenseBackup methods ***/
11918    HRESULT (STDMETHODCALLTYPE *BackupLicenses)(
11919        IWMLicenseBackup *This,
11920        DWORD dwFlags,
11921        IWMStatusCallback *pCallback);
11922
11923    HRESULT (STDMETHODCALLTYPE *CancelLicenseBackup)(
11924        IWMLicenseBackup *This);
11925
11926    END_INTERFACE
11927} IWMLicenseBackupVtbl;
11928
11929interface IWMLicenseBackup {
11930    CONST_VTBL IWMLicenseBackupVtbl* lpVtbl;
11931};
11932
11933#ifdef COBJMACROS
11934#ifndef WIDL_C_INLINE_WRAPPERS
11935/*** IUnknown methods ***/
11936#define IWMLicenseBackup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11937#define IWMLicenseBackup_AddRef(This) (This)->lpVtbl->AddRef(This)
11938#define IWMLicenseBackup_Release(This) (This)->lpVtbl->Release(This)
11939/*** IWMLicenseBackup methods ***/
11940#define IWMLicenseBackup_BackupLicenses(This,dwFlags,pCallback) (This)->lpVtbl->BackupLicenses(This,dwFlags,pCallback)
11941#define IWMLicenseBackup_CancelLicenseBackup(This) (This)->lpVtbl->CancelLicenseBackup(This)
11942#else
11943/*** IUnknown methods ***/
11944static inline HRESULT IWMLicenseBackup_QueryInterface(IWMLicenseBackup* This,REFIID riid,void **ppvObject) {
11945    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11946}
11947static inline ULONG IWMLicenseBackup_AddRef(IWMLicenseBackup* This) {
11948    return This->lpVtbl->AddRef(This);
11949}
11950static inline ULONG IWMLicenseBackup_Release(IWMLicenseBackup* This) {
11951    return This->lpVtbl->Release(This);
11952}
11953/*** IWMLicenseBackup methods ***/
11954static inline HRESULT IWMLicenseBackup_BackupLicenses(IWMLicenseBackup* This,DWORD dwFlags,IWMStatusCallback *pCallback) {
11955    return This->lpVtbl->BackupLicenses(This,dwFlags,pCallback);
11956}
11957static inline HRESULT IWMLicenseBackup_CancelLicenseBackup(IWMLicenseBackup* This) {
11958    return This->lpVtbl->CancelLicenseBackup(This);
11959}
11960#endif
11961#endif
11962
11963#endif
11964
11965
11966#endif  /* __IWMLicenseBackup_INTERFACE_DEFINED__ */
11967
11968/*****************************************************************************
11969 * IWMLicenseRestore interface
11970 */
11971#ifndef __IWMLicenseRestore_INTERFACE_DEFINED__
11972#define __IWMLicenseRestore_INTERFACE_DEFINED__
11973
11974DEFINE_GUID(IID_IWMLicenseRestore, 0xc70b6334, 0xa22e, 0x4efb, 0xa2,0x45, 0x15,0xe6,0x5a,0x00,0x4a,0x13);
11975#if defined(__cplusplus) && !defined(CINTERFACE)
11976MIDL_INTERFACE("c70b6334-a22e-4efb-a245-15e65a004a13")
11977IWMLicenseRestore : public IUnknown
11978{
11979    virtual HRESULT STDMETHODCALLTYPE RestoreLicenses(
11980        DWORD dwFlags,
11981        IWMStatusCallback *pCallback) = 0;
11982
11983    virtual HRESULT STDMETHODCALLTYPE CancelLicenseRestore(
11984        ) = 0;
11985
11986};
11987#ifdef __CRT_UUID_DECL
11988__CRT_UUID_DECL(IWMLicenseRestore, 0xc70b6334, 0xa22e, 0x4efb, 0xa2,0x45, 0x15,0xe6,0x5a,0x00,0x4a,0x13)
11989#endif
11990#else
11991typedef struct IWMLicenseRestoreVtbl {
11992    BEGIN_INTERFACE
11993
11994    /*** IUnknown methods ***/
11995    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11996        IWMLicenseRestore *This,
11997        REFIID riid,
11998        void **ppvObject);
11999
12000    ULONG (STDMETHODCALLTYPE *AddRef)(
12001        IWMLicenseRestore *This);
12002
12003    ULONG (STDMETHODCALLTYPE *Release)(
12004        IWMLicenseRestore *This);
12005
12006    /*** IWMLicenseRestore methods ***/
12007    HRESULT (STDMETHODCALLTYPE *RestoreLicenses)(
12008        IWMLicenseRestore *This,
12009        DWORD dwFlags,
12010        IWMStatusCallback *pCallback);
12011
12012    HRESULT (STDMETHODCALLTYPE *CancelLicenseRestore)(
12013        IWMLicenseRestore *This);
12014
12015    END_INTERFACE
12016} IWMLicenseRestoreVtbl;
12017
12018interface IWMLicenseRestore {
12019    CONST_VTBL IWMLicenseRestoreVtbl* lpVtbl;
12020};
12021
12022#ifdef COBJMACROS
12023#ifndef WIDL_C_INLINE_WRAPPERS
12024/*** IUnknown methods ***/
12025#define IWMLicenseRestore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12026#define IWMLicenseRestore_AddRef(This) (This)->lpVtbl->AddRef(This)
12027#define IWMLicenseRestore_Release(This) (This)->lpVtbl->Release(This)
12028/*** IWMLicenseRestore methods ***/
12029#define IWMLicenseRestore_RestoreLicenses(This,dwFlags,pCallback) (This)->lpVtbl->RestoreLicenses(This,dwFlags,pCallback)
12030#define IWMLicenseRestore_CancelLicenseRestore(This) (This)->lpVtbl->CancelLicenseRestore(This)
12031#else
12032/*** IUnknown methods ***/
12033static inline HRESULT IWMLicenseRestore_QueryInterface(IWMLicenseRestore* This,REFIID riid,void **ppvObject) {
12034    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12035}
12036static inline ULONG IWMLicenseRestore_AddRef(IWMLicenseRestore* This) {
12037    return This->lpVtbl->AddRef(This);
12038}
12039static inline ULONG IWMLicenseRestore_Release(IWMLicenseRestore* This) {
12040    return This->lpVtbl->Release(This);
12041}
12042/*** IWMLicenseRestore methods ***/
12043static inline HRESULT IWMLicenseRestore_RestoreLicenses(IWMLicenseRestore* This,DWORD dwFlags,IWMStatusCallback *pCallback) {
12044    return This->lpVtbl->RestoreLicenses(This,dwFlags,pCallback);
12045}
12046static inline HRESULT IWMLicenseRestore_CancelLicenseRestore(IWMLicenseRestore* This) {
12047    return This->lpVtbl->CancelLicenseRestore(This);
12048}
12049#endif
12050#endif
12051
12052#endif
12053
12054
12055#endif  /* __IWMLicenseRestore_INTERFACE_DEFINED__ */
12056
12057/*****************************************************************************
12058 * IWMIStreamProps interface
12059 */
12060#ifndef __IWMIStreamProps_INTERFACE_DEFINED__
12061#define __IWMIStreamProps_INTERFACE_DEFINED__
12062
12063DEFINE_GUID(IID_IWMIStreamProps, 0x6816dad3, 0x2b4b, 0x4c8e, 0x81,0x49, 0x87,0x4c,0x34,0x83,0xa7,0x53);
12064#if defined(__cplusplus) && !defined(CINTERFACE)
12065MIDL_INTERFACE("6816dad3-2b4b-4c8e-8149-874c3483a753")
12066IWMIStreamProps : public IUnknown
12067{
12068    virtual HRESULT STDMETHODCALLTYPE GetProperty(
12069        const WCHAR *name,
12070        WMT_ATTR_DATATYPE *type,
12071        BYTE *value,
12072        DWORD *size) = 0;
12073
12074};
12075#ifdef __CRT_UUID_DECL
12076__CRT_UUID_DECL(IWMIStreamProps, 0x6816dad3, 0x2b4b, 0x4c8e, 0x81,0x49, 0x87,0x4c,0x34,0x83,0xa7,0x53)
12077#endif
12078#else
12079typedef struct IWMIStreamPropsVtbl {
12080    BEGIN_INTERFACE
12081
12082    /*** IUnknown methods ***/
12083    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12084        IWMIStreamProps *This,
12085        REFIID riid,
12086        void **ppvObject);
12087
12088    ULONG (STDMETHODCALLTYPE *AddRef)(
12089        IWMIStreamProps *This);
12090
12091    ULONG (STDMETHODCALLTYPE *Release)(
12092        IWMIStreamProps *This);
12093
12094    /*** IWMIStreamProps methods ***/
12095    HRESULT (STDMETHODCALLTYPE *GetProperty)(
12096        IWMIStreamProps *This,
12097        const WCHAR *name,
12098        WMT_ATTR_DATATYPE *type,
12099        BYTE *value,
12100        DWORD *size);
12101
12102    END_INTERFACE
12103} IWMIStreamPropsVtbl;
12104
12105interface IWMIStreamProps {
12106    CONST_VTBL IWMIStreamPropsVtbl* lpVtbl;
12107};
12108
12109#ifdef COBJMACROS
12110#ifndef WIDL_C_INLINE_WRAPPERS
12111/*** IUnknown methods ***/
12112#define IWMIStreamProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12113#define IWMIStreamProps_AddRef(This) (This)->lpVtbl->AddRef(This)
12114#define IWMIStreamProps_Release(This) (This)->lpVtbl->Release(This)
12115/*** IWMIStreamProps methods ***/
12116#define IWMIStreamProps_GetProperty(This,name,type,value,size) (This)->lpVtbl->GetProperty(This,name,type,value,size)
12117#else
12118/*** IUnknown methods ***/
12119static inline HRESULT IWMIStreamProps_QueryInterface(IWMIStreamProps* This,REFIID riid,void **ppvObject) {
12120    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12121}
12122static inline ULONG IWMIStreamProps_AddRef(IWMIStreamProps* This) {
12123    return This->lpVtbl->AddRef(This);
12124}
12125static inline ULONG IWMIStreamProps_Release(IWMIStreamProps* This) {
12126    return This->lpVtbl->Release(This);
12127}
12128/*** IWMIStreamProps methods ***/
12129static inline HRESULT IWMIStreamProps_GetProperty(IWMIStreamProps* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) {
12130    return This->lpVtbl->GetProperty(This,name,type,value,size);
12131}
12132#endif
12133#endif
12134
12135#endif
12136
12137
12138#endif  /* __IWMIStreamProps_INTERFACE_DEFINED__ */
12139
12140/*****************************************************************************
12141 * IWMCredentialCallback interface
12142 */
12143#ifndef __IWMCredentialCallback_INTERFACE_DEFINED__
12144#define __IWMCredentialCallback_INTERFACE_DEFINED__
12145
12146DEFINE_GUID(IID_IWMCredentialCallback, 0x342e0eb7, 0xe651, 0x450c, 0x97,0x5b, 0x2a,0xce,0x2c,0x90,0xc4,0x8e);
12147#if defined(__cplusplus) && !defined(CINTERFACE)
12148MIDL_INTERFACE("342e0eb7-e651-450c-975b-2ace2c90c48e")
12149IWMCredentialCallback : public IUnknown
12150{
12151    virtual HRESULT STDMETHODCALLTYPE AcquireCredentials(
12152        WCHAR *realm,
12153        WCHAR *site,
12154        WCHAR *username,
12155        DWORD username_size,
12156        WCHAR *password,
12157        DWORD password_size,
12158        HRESULT hr,
12159        DWORD *flags) = 0;
12160
12161};
12162#ifdef __CRT_UUID_DECL
12163__CRT_UUID_DECL(IWMCredentialCallback, 0x342e0eb7, 0xe651, 0x450c, 0x97,0x5b, 0x2a,0xce,0x2c,0x90,0xc4,0x8e)
12164#endif
12165#else
12166typedef struct IWMCredentialCallbackVtbl {
12167    BEGIN_INTERFACE
12168
12169    /*** IUnknown methods ***/
12170    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12171        IWMCredentialCallback *This,
12172        REFIID riid,
12173        void **ppvObject);
12174
12175    ULONG (STDMETHODCALLTYPE *AddRef)(
12176        IWMCredentialCallback *This);
12177
12178    ULONG (STDMETHODCALLTYPE *Release)(
12179        IWMCredentialCallback *This);
12180
12181    /*** IWMCredentialCallback methods ***/
12182    HRESULT (STDMETHODCALLTYPE *AcquireCredentials)(
12183        IWMCredentialCallback *This,
12184        WCHAR *realm,
12185        WCHAR *site,
12186        WCHAR *username,
12187        DWORD username_size,
12188        WCHAR *password,
12189        DWORD password_size,
12190        HRESULT hr,
12191        DWORD *flags);
12192
12193    END_INTERFACE
12194} IWMCredentialCallbackVtbl;
12195
12196interface IWMCredentialCallback {
12197    CONST_VTBL IWMCredentialCallbackVtbl* lpVtbl;
12198};
12199
12200#ifdef COBJMACROS
12201#ifndef WIDL_C_INLINE_WRAPPERS
12202/*** IUnknown methods ***/
12203#define IWMCredentialCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12204#define IWMCredentialCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
12205#define IWMCredentialCallback_Release(This) (This)->lpVtbl->Release(This)
12206/*** IWMCredentialCallback methods ***/
12207#define IWMCredentialCallback_AcquireCredentials(This,realm,site,username,username_size,password,password_size,hr,flags) (This)->lpVtbl->AcquireCredentials(This,realm,site,username,username_size,password,password_size,hr,flags)
12208#else
12209/*** IUnknown methods ***/
12210static inline HRESULT IWMCredentialCallback_QueryInterface(IWMCredentialCallback* This,REFIID riid,void **ppvObject) {
12211    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12212}
12213static inline ULONG IWMCredentialCallback_AddRef(IWMCredentialCallback* This) {
12214    return This->lpVtbl->AddRef(This);
12215}
12216static inline ULONG IWMCredentialCallback_Release(IWMCredentialCallback* This) {
12217    return This->lpVtbl->Release(This);
12218}
12219/*** IWMCredentialCallback methods ***/
12220static inline HRESULT IWMCredentialCallback_AcquireCredentials(IWMCredentialCallback* This,WCHAR *realm,WCHAR *site,WCHAR *username,DWORD username_size,WCHAR *password,DWORD password_size,HRESULT hr,DWORD *flags) {
12221    return This->lpVtbl->AcquireCredentials(This,realm,site,username,username_size,password,password_size,hr,flags);
12222}
12223#endif
12224#endif
12225
12226#endif
12227
12228
12229#endif  /* __IWMCredentialCallback_INTERFACE_DEFINED__ */
12230
12231HRESULT WINAPI WMCheckURLExtension(LPCWSTR);
12232HRESULT WINAPI WMCheckURLScheme(LPCWSTR);
12233HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**);
12234HRESULT WINAPI WMCreateReader(IUnknown*,DWORD,IWMReader**);
12235HRESULT WINAPI WMCreateSyncReader(IUnknown*,DWORD,IWMSyncReader**);
12236HRESULT WINAPI WMCreateEditor(IWMMetadataEditor**);
12237HRESULT WINAPI WMCreateBackupRestorer(IUnknown*,IWMLicenseBackup**);
12238HRESULT WINAPI WMCreateProfileManager(IWMProfileManager**);
12239HRESULT WINAPI WMIsContentProtected(const WCHAR*, WINBOOL*);
12240EXTERN_GUID(WMMEDIASUBTYPE_Base,   0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12241EXTERN_GUID(WMMEDIATYPE_Video,     0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12242EXTERN_GUID(WMMEDIASUBTYPE_RGB1,   0xe436eb78,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12243EXTERN_GUID(WMMEDIASUBTYPE_RGB4,   0xe436eb79,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12244EXTERN_GUID(WMMEDIASUBTYPE_RGB8,   0xe436eb7a,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12245EXTERN_GUID(WMMEDIASUBTYPE_RGB565, 0xe436eb7b,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12246EXTERN_GUID(WMMEDIASUBTYPE_RGB555, 0xe436eb7c,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12247EXTERN_GUID(WMMEDIASUBTYPE_RGB24,  0xe436eb7d,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12248EXTERN_GUID(WMMEDIASUBTYPE_RGB32,  0xe436eb7e,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);
12249EXTERN_GUID(WMMEDIASUBTYPE_I420,   0x30323449,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12250EXTERN_GUID(WMMEDIASUBTYPE_IYUV,   0x56555949,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12251EXTERN_GUID(WMMEDIASUBTYPE_YV12,   0x32315659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12252EXTERN_GUID(WMMEDIASUBTYPE_YUY2,   0x32595559,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12253EXTERN_GUID(WMMEDIASUBTYPE_P422,   0x32323450,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12254EXTERN_GUID(WMMEDIASUBTYPE_UYVY,   0x59565955,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12255EXTERN_GUID(WMMEDIASUBTYPE_YVYU,   0x55595659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12256EXTERN_GUID(WMMEDIASUBTYPE_YVU9,   0x39555659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12257EXTERN_GUID(WMMEDIASUBTYPE_VIDEOIMAGE, 0x1d4a45f2,0xe5f6,0x4b44,0x83,0x88,0xf0,0xae,0x5c,0x0e,0x0c,0x37);
12258EXTERN_GUID(WMMEDIASUBTYPE_MP43,   0x3334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12259EXTERN_GUID(WMMEDIASUBTYPE_MP4S,   0x5334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12260EXTERN_GUID(WMMEDIASUBTYPE_M4S2,   0x3253344d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12261EXTERN_GUID(WMMEDIASUBTYPE_WMV1,   0x31564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12262EXTERN_GUID(WMMEDIASUBTYPE_WMV2,   0x32564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12263EXTERN_GUID(WMMEDIASUBTYPE_MSS1,   0x3153534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12264EXTERN_GUID(WMMEDIASUBTYPE_MPEG2_VIDEO, 0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea);
12265EXTERN_GUID(WMMEDIATYPE_Audio,     0x73647561,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12266EXTERN_GUID(WMMEDIASUBTYPE_PCM,    0x00000001,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12267EXTERN_GUID(WMMEDIASUBTYPE_DRM,    0x00000009,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12268EXTERN_GUID(WMMEDIASUBTYPE_WMAudioV9,        0x00000162,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12269EXTERN_GUID(WMMEDIASUBTYPE_WMAudio_Lossless, 0x00000163,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12270EXTERN_GUID(WMMEDIASUBTYPE_MSS2,   0x3253534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12271EXTERN_GUID(WMMEDIASUBTYPE_WMSP1,  0x0000000a,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12272EXTERN_GUID(WMMEDIASUBTYPE_WMSP2,  0x0000000b,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12273EXTERN_GUID(WMMEDIASUBTYPE_WMV3,   0x33564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12274EXTERN_GUID(WMMEDIASUBTYPE_WMVP,   0x50564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12275EXTERN_GUID(WMMEDIASUBTYPE_WVP2,   0x32505657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12276EXTERN_GUID(WMMEDIASUBTYPE_WMVA,   0x41564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12277EXTERN_GUID(WMMEDIASUBTYPE_WVC1,   0x31435657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);
12278/* Begin additional prototypes for all interfaces */
12279
12280
12281/* End additional prototypes */
12282
12283#ifdef __cplusplus
12284}
12285#endif
12286
12287#endif /* __wmsdkidl_h__ */