| /*** Autogenerated by WIDL 5.0-rc1 from include/wmsdkidl.idl - Do not edit ***/ | 
 |  | 
 | #ifdef _WIN32 | 
 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | 
 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 | 
 | #endif | 
 | #include <rpc.h> | 
 | #include <rpcndr.h> | 
 | #endif | 
 |  | 
 | #ifndef COM_NO_WINDOWS_H | 
 | #include <windows.h> | 
 | #include <ole2.h> | 
 | #endif | 
 |  | 
 | #ifndef __wmsdkidl_h__ | 
 | #define __wmsdkidl_h__ | 
 |  | 
 | /* Forward declarations */ | 
 |  | 
 | #ifndef __IWMStatusCallback_FWD_DEFINED__ | 
 | #define __IWMStatusCallback_FWD_DEFINED__ | 
 | typedef interface IWMStatusCallback IWMStatusCallback; | 
 | #ifdef __cplusplus | 
 | interface IWMStatusCallback; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderCallback_FWD_DEFINED__ | 
 | #define __IWMReaderCallback_FWD_DEFINED__ | 
 | typedef interface IWMReaderCallback IWMReaderCallback; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderCallback; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMStreamList_FWD_DEFINED__ | 
 | #define __IWMStreamList_FWD_DEFINED__ | 
 | typedef interface IWMStreamList IWMStreamList; | 
 | #ifdef __cplusplus | 
 | interface IWMStreamList; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMMutualExclusion_FWD_DEFINED__ | 
 | #define __IWMMutualExclusion_FWD_DEFINED__ | 
 | typedef interface IWMMutualExclusion IWMMutualExclusion; | 
 | #ifdef __cplusplus | 
 | interface IWMMutualExclusion; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMBandwidthSharing_FWD_DEFINED__ | 
 | #define __IWMBandwidthSharing_FWD_DEFINED__ | 
 | typedef interface IWMBandwidthSharing IWMBandwidthSharing; | 
 | #ifdef __cplusplus | 
 | interface IWMBandwidthSharing; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMStreamPrioritization_FWD_DEFINED__ | 
 | #define __IWMStreamPrioritization_FWD_DEFINED__ | 
 | typedef interface IWMStreamPrioritization IWMStreamPrioritization; | 
 | #ifdef __cplusplus | 
 | interface IWMStreamPrioritization; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMStreamConfig_FWD_DEFINED__ | 
 | #define __IWMStreamConfig_FWD_DEFINED__ | 
 | typedef interface IWMStreamConfig IWMStreamConfig; | 
 | #ifdef __cplusplus | 
 | interface IWMStreamConfig; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMProfile_FWD_DEFINED__ | 
 | #define __IWMProfile_FWD_DEFINED__ | 
 | typedef interface IWMProfile IWMProfile; | 
 | #ifdef __cplusplus | 
 | interface IWMProfile; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMProfile2_FWD_DEFINED__ | 
 | #define __IWMProfile2_FWD_DEFINED__ | 
 | typedef interface IWMProfile2 IWMProfile2; | 
 | #ifdef __cplusplus | 
 | interface IWMProfile2; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMProfile3_FWD_DEFINED__ | 
 | #define __IWMProfile3_FWD_DEFINED__ | 
 | typedef interface IWMProfile3 IWMProfile3; | 
 | #ifdef __cplusplus | 
 | interface IWMProfile3; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMProfileManager_FWD_DEFINED__ | 
 | #define __IWMProfileManager_FWD_DEFINED__ | 
 | typedef interface IWMProfileManager IWMProfileManager; | 
 | #ifdef __cplusplus | 
 | interface IWMProfileManager; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMProfileManager2_FWD_DEFINED__ | 
 | #define __IWMProfileManager2_FWD_DEFINED__ | 
 | typedef interface IWMProfileManager2 IWMProfileManager2; | 
 | #ifdef __cplusplus | 
 | interface IWMProfileManager2; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMCodecInfo_FWD_DEFINED__ | 
 | #define __IWMCodecInfo_FWD_DEFINED__ | 
 | typedef interface IWMCodecInfo IWMCodecInfo; | 
 | #ifdef __cplusplus | 
 | interface IWMCodecInfo; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMCodecInfo2_FWD_DEFINED__ | 
 | #define __IWMCodecInfo2_FWD_DEFINED__ | 
 | typedef interface IWMCodecInfo2 IWMCodecInfo2; | 
 | #ifdef __cplusplus | 
 | interface IWMCodecInfo2; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMCodecInfo3_FWD_DEFINED__ | 
 | #define __IWMCodecInfo3_FWD_DEFINED__ | 
 | typedef interface IWMCodecInfo3 IWMCodecInfo3; | 
 | #ifdef __cplusplus | 
 | interface IWMCodecInfo3; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMMediaProps_FWD_DEFINED__ | 
 | #define __IWMMediaProps_FWD_DEFINED__ | 
 | typedef interface IWMMediaProps IWMMediaProps; | 
 | #ifdef __cplusplus | 
 | interface IWMMediaProps; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMOutputMediaProps_FWD_DEFINED__ | 
 | #define __IWMOutputMediaProps_FWD_DEFINED__ | 
 | typedef interface IWMOutputMediaProps IWMOutputMediaProps; | 
 | #ifdef __cplusplus | 
 | interface IWMOutputMediaProps; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMMetadataEditor_FWD_DEFINED__ | 
 | #define __IWMMetadataEditor_FWD_DEFINED__ | 
 | typedef interface IWMMetadataEditor IWMMetadataEditor; | 
 | #ifdef __cplusplus | 
 | interface IWMMetadataEditor; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReader_FWD_DEFINED__ | 
 | #define __IWMReader_FWD_DEFINED__ | 
 | typedef interface IWMReader IWMReader; | 
 | #ifdef __cplusplus | 
 | interface IWMReader; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMPlayerHook_FWD_DEFINED__ | 
 | #define __IWMPlayerHook_FWD_DEFINED__ | 
 | typedef interface IWMPlayerHook IWMPlayerHook; | 
 | #ifdef __cplusplus | 
 | interface IWMPlayerHook; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderAdvanced_FWD_DEFINED__ | 
 | #define __IWMReaderAdvanced_FWD_DEFINED__ | 
 | typedef interface IWMReaderAdvanced IWMReaderAdvanced; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderAdvanced; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderAdvanced2_FWD_DEFINED__ | 
 | #define __IWMReaderAdvanced2_FWD_DEFINED__ | 
 | typedef interface IWMReaderAdvanced2 IWMReaderAdvanced2; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderAdvanced2; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderAdvanced3_FWD_DEFINED__ | 
 | #define __IWMReaderAdvanced3_FWD_DEFINED__ | 
 | typedef interface IWMReaderAdvanced3 IWMReaderAdvanced3; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderAdvanced3; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderAdvanced4_FWD_DEFINED__ | 
 | #define __IWMReaderAdvanced4_FWD_DEFINED__ | 
 | typedef interface IWMReaderAdvanced4 IWMReaderAdvanced4; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderAdvanced4; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderAdvanced5_FWD_DEFINED__ | 
 | #define __IWMReaderAdvanced5_FWD_DEFINED__ | 
 | typedef interface IWMReaderAdvanced5 IWMReaderAdvanced5; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderAdvanced5; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderAdvanced6_FWD_DEFINED__ | 
 | #define __IWMReaderAdvanced6_FWD_DEFINED__ | 
 | typedef interface IWMReaderAdvanced6 IWMReaderAdvanced6; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderAdvanced6; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMSyncReader_FWD_DEFINED__ | 
 | #define __IWMSyncReader_FWD_DEFINED__ | 
 | typedef interface IWMSyncReader IWMSyncReader; | 
 | #ifdef __cplusplus | 
 | interface IWMSyncReader; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderAllocatorEx_FWD_DEFINED__ | 
 | #define __IWMReaderAllocatorEx_FWD_DEFINED__ | 
 | typedef interface IWMReaderAllocatorEx IWMReaderAllocatorEx; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderAllocatorEx; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMSyncReader2_FWD_DEFINED__ | 
 | #define __IWMSyncReader2_FWD_DEFINED__ | 
 | typedef interface IWMSyncReader2 IWMSyncReader2; | 
 | #ifdef __cplusplus | 
 | interface IWMSyncReader2; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMInputMediaProps_FWD_DEFINED__ | 
 | #define __IWMInputMediaProps_FWD_DEFINED__ | 
 | typedef interface IWMInputMediaProps IWMInputMediaProps; | 
 | #ifdef __cplusplus | 
 | interface IWMInputMediaProps; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMWriterSink_FWD_DEFINED__ | 
 | #define __IWMWriterSink_FWD_DEFINED__ | 
 | typedef interface IWMWriterSink IWMWriterSink; | 
 | #ifdef __cplusplus | 
 | interface IWMWriterSink; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMWriter_FWD_DEFINED__ | 
 | #define __IWMWriter_FWD_DEFINED__ | 
 | typedef interface IWMWriter IWMWriter; | 
 | #ifdef __cplusplus | 
 | interface IWMWriter; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMWriterAdvanced_FWD_DEFINED__ | 
 | #define __IWMWriterAdvanced_FWD_DEFINED__ | 
 | typedef interface IWMWriterAdvanced IWMWriterAdvanced; | 
 | #ifdef __cplusplus | 
 | interface IWMWriterAdvanced; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMWriterAdvanced2_FWD_DEFINED__ | 
 | #define __IWMWriterAdvanced2_FWD_DEFINED__ | 
 | typedef interface IWMWriterAdvanced2 IWMWriterAdvanced2; | 
 | #ifdef __cplusplus | 
 | interface IWMWriterAdvanced2; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMWriterAdvanced3_FWD_DEFINED__ | 
 | #define __IWMWriterAdvanced3_FWD_DEFINED__ | 
 | typedef interface IWMWriterAdvanced3 IWMWriterAdvanced3; | 
 | #ifdef __cplusplus | 
 | interface IWMWriterAdvanced3; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMHeaderInfo_FWD_DEFINED__ | 
 | #define __IWMHeaderInfo_FWD_DEFINED__ | 
 | typedef interface IWMHeaderInfo IWMHeaderInfo; | 
 | #ifdef __cplusplus | 
 | interface IWMHeaderInfo; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMHeaderInfo2_FWD_DEFINED__ | 
 | #define __IWMHeaderInfo2_FWD_DEFINED__ | 
 | typedef interface IWMHeaderInfo2 IWMHeaderInfo2; | 
 | #ifdef __cplusplus | 
 | interface IWMHeaderInfo2; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMHeaderInfo3_FWD_DEFINED__ | 
 | #define __IWMHeaderInfo3_FWD_DEFINED__ | 
 | typedef interface IWMHeaderInfo3 IWMHeaderInfo3; | 
 | #ifdef __cplusplus | 
 | interface IWMHeaderInfo3; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderNetworkConfig_FWD_DEFINED__ | 
 | #define __IWMReaderNetworkConfig_FWD_DEFINED__ | 
 | typedef interface IWMReaderNetworkConfig IWMReaderNetworkConfig; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderNetworkConfig; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderNetworkConfig2_FWD_DEFINED__ | 
 | #define __IWMReaderNetworkConfig2_FWD_DEFINED__ | 
 | typedef interface IWMReaderNetworkConfig2 IWMReaderNetworkConfig2; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderNetworkConfig2; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderStreamClock_FWD_DEFINED__ | 
 | #define __IWMReaderStreamClock_FWD_DEFINED__ | 
 | typedef interface IWMReaderStreamClock IWMReaderStreamClock; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderStreamClock; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMPacketSize_FWD_DEFINED__ | 
 | #define __IWMPacketSize_FWD_DEFINED__ | 
 | typedef interface IWMPacketSize IWMPacketSize; | 
 | #ifdef __cplusplus | 
 | interface IWMPacketSize; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMPacketSize2_FWD_DEFINED__ | 
 | #define __IWMPacketSize2_FWD_DEFINED__ | 
 | typedef interface IWMPacketSize2 IWMPacketSize2; | 
 | #ifdef __cplusplus | 
 | interface IWMPacketSize2; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMDRMReader_FWD_DEFINED__ | 
 | #define __IWMDRMReader_FWD_DEFINED__ | 
 | typedef interface IWMDRMReader IWMDRMReader; | 
 | #ifdef __cplusplus | 
 | interface IWMDRMReader; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMDRMReader2_FWD_DEFINED__ | 
 | #define __IWMDRMReader2_FWD_DEFINED__ | 
 | typedef interface IWMDRMReader2 IWMDRMReader2; | 
 | #ifdef __cplusplus | 
 | interface IWMDRMReader2; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMDRMReader3_FWD_DEFINED__ | 
 | #define __IWMDRMReader3_FWD_DEFINED__ | 
 | typedef interface IWMDRMReader3 IWMDRMReader3; | 
 | #ifdef __cplusplus | 
 | interface IWMDRMReader3; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderAccelerator_FWD_DEFINED__ | 
 | #define __IWMReaderAccelerator_FWD_DEFINED__ | 
 | typedef interface IWMReaderAccelerator IWMReaderAccelerator; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderAccelerator; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderTimecode_FWD_DEFINED__ | 
 | #define __IWMReaderTimecode_FWD_DEFINED__ | 
 | typedef interface IWMReaderTimecode IWMReaderTimecode; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderTimecode; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderTypeNegotiation_FWD_DEFINED__ | 
 | #define __IWMReaderTypeNegotiation_FWD_DEFINED__ | 
 | typedef interface IWMReaderTypeNegotiation IWMReaderTypeNegotiation; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderTypeNegotiation; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMLanguageList_FWD_DEFINED__ | 
 | #define __IWMLanguageList_FWD_DEFINED__ | 
 | typedef interface IWMLanguageList IWMLanguageList; | 
 | #ifdef __cplusplus | 
 | interface IWMLanguageList; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMReaderPlaylistBurn_FWD_DEFINED__ | 
 | #define __IWMReaderPlaylistBurn_FWD_DEFINED__ | 
 | typedef interface IWMReaderPlaylistBurn IWMReaderPlaylistBurn; | 
 | #ifdef __cplusplus | 
 | interface IWMReaderPlaylistBurn; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMPropertyVault_FWD_DEFINED__ | 
 | #define __IWMPropertyVault_FWD_DEFINED__ | 
 | typedef interface IWMPropertyVault IWMPropertyVault; | 
 | #ifdef __cplusplus | 
 | interface IWMPropertyVault; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMWriterPreprocess_FWD_DEFINED__ | 
 | #define __IWMWriterPreprocess_FWD_DEFINED__ | 
 | typedef interface IWMWriterPreprocess IWMWriterPreprocess; | 
 | #ifdef __cplusplus | 
 | interface IWMWriterPreprocess; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMLicenseBackup_FWD_DEFINED__ | 
 | #define __IWMLicenseBackup_FWD_DEFINED__ | 
 | typedef interface IWMLicenseBackup IWMLicenseBackup; | 
 | #ifdef __cplusplus | 
 | interface IWMLicenseBackup; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | #ifndef __IWMLicenseRestore_FWD_DEFINED__ | 
 | #define __IWMLicenseRestore_FWD_DEFINED__ | 
 | typedef interface IWMLicenseRestore IWMLicenseRestore; | 
 | #ifdef __cplusplus | 
 | interface IWMLicenseRestore; | 
 | #endif /* __cplusplus */ | 
 | #endif | 
 |  | 
 | /* Headers for imported files */ | 
 |  | 
 | #include <oaidl.h> | 
 | #include <wmsbuffer.h> | 
 | #include <drmexternals.h> | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | typedef struct _WMMediaType { | 
 |     GUID majortype; | 
 |     GUID subtype; | 
 |     WINBOOL bFixedSizeSamples; | 
 |     WINBOOL bTemporalCompression; | 
 |     ULONG lSampleSize; | 
 |     GUID formattype; | 
 |     IUnknown *pUnk; | 
 |     ULONG cbFormat; | 
 |     BYTE *pbFormat; | 
 | } WM_MEDIA_TYPE; | 
 | typedef struct _WMWriterStatistics { | 
 |     QWORD qwSampleCount; | 
 |     QWORD qwByteCount; | 
 |     QWORD qwDroppedSampleCount; | 
 |     QWORD qwDroppedByteCount; | 
 |     DWORD dwCurrentBitrate; | 
 |     DWORD dwAverageBitrate; | 
 |     DWORD dwExpectedBitrate; | 
 |     DWORD dwCurrentSampleRate; | 
 |     DWORD dwAverageSampleRate; | 
 |     DWORD dwExpectedSampleRate; | 
 | } WM_WRITER_STATISTICS; | 
 | typedef struct _WMWriterStatisticsEx { | 
 |     DWORD dwBitratePlusOverhead; | 
 |     DWORD dwCurrentSampleDropRateInQueue; | 
 |     DWORD dwCurrentSampleDropRateInCodec; | 
 |     DWORD dwCurrentSampleDropRateInMultiplexer; | 
 |     DWORD dwTotalSampleDropsInQueue; | 
 |     DWORD dwTotalSampleDropsInCodec; | 
 |     DWORD dwTotalSampleDropsInMultiplexer; | 
 | } WM_WRITER_STATISTICS_EX; | 
 | typedef struct _WMReaderStatistics { | 
 |     DWORD cbSize; | 
 |     DWORD dwBandwidth; | 
 |     DWORD cPacketsReceived; | 
 |     DWORD cPacketsRecovered; | 
 |     DWORD cPacketsLost; | 
 |     WORD wQuality; | 
 | } WM_READER_STATISTICS; | 
 | typedef struct _WMReaderClientInfo { | 
 |     DWORD cbSize; | 
 |     WCHAR *wszLang; | 
 |     WCHAR *wszBrowserUserAgent; | 
 |     WCHAR *wszBrowserWebPage; | 
 |     QWORD qwReserved; | 
 |     LPARAM *pReserved; | 
 |     WCHAR *wszHostExe; | 
 |     QWORD qwHostVersion; | 
 |     WCHAR *wszPlayerUserAgent; | 
 | } WM_READER_CLIENTINFO; | 
 | typedef enum WMT_ATTR_DATATYPE { | 
 |     WMT_TYPE_DWORD = 0, | 
 |     WMT_TYPE_STRING = 1, | 
 |     WMT_TYPE_BINARY = 2, | 
 |     WMT_TYPE_BOOL = 3, | 
 |     WMT_TYPE_QWORD = 4, | 
 |     WMT_TYPE_WORD = 5, | 
 |     WMT_TYPE_GUID = 6 | 
 | } WMT_ATTR_DATATYPE; | 
 | typedef enum WMT_STATUS { | 
 |     WMT_ERROR = 0, | 
 |     WMT_OPENED = 1, | 
 |     WMT_BUFFERING_START = 2, | 
 |     WMT_BUFFERING_STOP = 3, | 
 |     WMT_EOF = 4, | 
 |     WMT_END_OF_FILE = 4, | 
 |     WMT_END_OF_SEGMENT = 5, | 
 |     WMT_END_OF_STREAMING = 6, | 
 |     WMT_LOCATING = 7, | 
 |     WMT_CONNECTING = 8, | 
 |     WMT_NO_RIGHTS = 9, | 
 |     WMT_MISSING_CODEC = 10, | 
 |     WMT_STARTED = 11, | 
 |     WMT_STOPPED = 12, | 
 |     WMT_CLOSED = 13, | 
 |     WMT_STRIDING = 14, | 
 |     WMT_TIMER = 15, | 
 |     WMT_INDEX_PROGRESS = 16, | 
 |     WMT_SAVEAS_START = 17, | 
 |     WMT_SAVEAS_STOP = 18, | 
 |     WMT_NEW_SOURCEFLAGS = 19, | 
 |     WMT_NEW_METADATA = 20, | 
 |     WMT_BACKUPRESTORE_BEGIN = 21, | 
 |     WMT_SOURCE_SWITCH = 22, | 
 |     WMT_ACQUIRE_LICENSE = 23, | 
 |     WMT_INDIVIDUALIZE = 24, | 
 |     WMT_NEEDS_INDIVIDUALIZATION = 25, | 
 |     WMT_NO_RIGHTS_EX = 26, | 
 |     WMT_BACKUPRESTORE_END = 27, | 
 |     WMT_BACKUPRESTORE_CONNECTING = 28, | 
 |     WMT_BACKUPRESTORE_DISCONNECTING = 29, | 
 |     WMT_ERROR_WITHURL = 30, | 
 |     WMT_RESTRICTED_LICENSE = 31, | 
 |     WMT_CLIENT_CONNECT = 32, | 
 |     WMT_CLIENT_DISCONNECT = 33, | 
 |     WMT_NATIVE_OUTPUT_PROPS_CHANGED = 34, | 
 |     WMT_RECONNECT_START = 35, | 
 |     WMT_RECONNECT_END = 36, | 
 |     WMT_CLIENT_CONNECT_EX = 37, | 
 |     WMT_CLIENT_DISCONNECT_EX = 38, | 
 |     WMT_SET_FEC_SPAN = 39, | 
 |     WMT_PREROLL_READY = 40, | 
 |     WMT_PREROLL_COMPLETE = 41, | 
 |     WMT_CLIENT_PROPERTIES = 42, | 
 |     WMT_LICENSEURL_SIGNATURE_STATE = 43, | 
 |     WMT_INIT_PLAYLIST_BURN = 44, | 
 |     WMT_TRANSCRYPTOR_INIT = 45, | 
 |     WMT_TRANSCRYPTOR_SEEKED = 46, | 
 |     WMT_TRANSCRYPTOR_READ = 47, | 
 |     WMT_TRANSCRYPTOR_CLOSED = 48, | 
 |     WMT_PROXIMITY_RESULT = 49, | 
 |     WMT_PROXIMITY_COMPLETED = 50, | 
 |     WMT_CONTENT_ENABLER = 51 | 
 | } WMT_STATUS; | 
 | typedef enum WMT_STREAM_SELECTION { | 
 |     WMT_OFF = 0, | 
 |     WMT_CLEANPOINT_ONLY = 1, | 
 |     WMT_ON = 2 | 
 | } WMT_STREAM_SELECTION; | 
 | typedef enum WMT_VERSION { | 
 |     WMT_VER_4_0 = 0x40000, | 
 |     WMT_VER_7_0 = 0x70000, | 
 |     WMT_VER_8_0 = 0x80000, | 
 |     WMT_VER_9_0 = 0x90000 | 
 | } WMT_VERSION; | 
 | typedef enum WMT_PLAY_MODE { | 
 |     WMT_PLAY_MODE_AUTOSELECT = 0, | 
 |     WMT_PLAY_MODE_LOCAL = 1, | 
 |     WMT_PLAY_MODE_DOWNLOAD = 2, | 
 |     WMT_PLAY_MODE_STREAMING = 3 | 
 | } WMT_PLAY_MODE; | 
 | typedef enum tagWMT_OFFSET_FORMAT { | 
 |     WMT_OFFSET_FORMAT_100NS = 0, | 
 |     WMT_OFFSET_FORMAT_FRAME_NUMBERS = 1, | 
 |     WMT_OFFSET_FORMAT_PLAYLIST_OFFSET = 2, | 
 |     WMT_OFFSET_FORMAT_TIMECODE = 3, | 
 |     WMT_OFFSET_FORMAT_100NS_APPROXIMATE = 4 | 
 | } WMT_OFFSET_FORMAT; | 
 | typedef enum WMT_CODEC_INFO_TYPE { | 
 |     WMT_CODECINFO_AUDIO = 0, | 
 |     WMT_CODECINFO_VIDEO = 1, | 
 |     WMT_CODECINFO_UNKNOWN = 0xffffffff | 
 | } WMT_CODEC_INFO_TYPE; | 
 | typedef enum WMT_PROXY_SETTINGS { | 
 |     WMT_PROXY_SETTING_NONE = 0, | 
 |     WMT_PROXY_SETTING_MANUAL = 1, | 
 |     WMT_PROXY_SETTING_AUTO = 2, | 
 |     WMT_PROXY_SETTING_BROWSER = 3, | 
 |     WMT_PROXY_SETTING_MAX = 4 | 
 | } WMT_PROXY_SETTINGS; | 
 | typedef enum tagWMT_STORAGE_FORMAT { | 
 |     WMT_Storage_Format_MP3 = 0, | 
 |     WMT_Storage_Format_V1 = 1 | 
 | } WMT_STORAGE_FORMAT; | 
 | typedef struct _WMStreamPrioritizationRecord { | 
 |     WORD wStreamNumber; | 
 |     WINBOOL fMandatory; | 
 | } WM_STREAM_PRIORITY_RECORD; | 
 | typedef struct _WMT_TIMECODE_EXTENSION_DATA { | 
 |     WORD wRange; | 
 |     DWORD dwTimecode; | 
 |     DWORD dwUserbits; | 
 |     DWORD dwAmFlags; | 
 | } WMT_TIMECODE_EXTENSION_DATA; | 
 | typedef struct _WM_PORT_NUMBER_RANGE { | 
 |     WORD wPortBegin; | 
 |     WORD wPortEnd; | 
 | } WM_PORT_NUMBER_RANGE; | 
 | typedef LPCWSTR LPCWSTR_WMSDK_TYPE_SAFE; | 
 | /***************************************************************************** | 
 |  * IWMStatusCallback interface | 
 |  */ | 
 | #ifndef __IWMStatusCallback_INTERFACE_DEFINED__ | 
 | #define __IWMStatusCallback_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMStatusCallback, 0x6d7cdc70, 0x9888, 0x11d3, 0x8e,0xdc, 0x00,0xc0,0x4f,0x61,0x09,0xcf); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("6d7cdc70-9888-11d3-8edc-00c04f6109cf") | 
 | IWMStatusCallback : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE OnStatus( | 
 |         WMT_STATUS Status, | 
 |         HRESULT hr, | 
 |         WMT_ATTR_DATATYPE dwType, | 
 |         BYTE *pValue, | 
 |         void *pvContext) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMStatusCallback, 0x6d7cdc70, 0x9888, 0x11d3, 0x8e,0xdc, 0x00,0xc0,0x4f,0x61,0x09,0xcf) | 
 | #endif | 
 | #else | 
 | typedef struct IWMStatusCallbackVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMStatusCallback *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMStatusCallback *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMStatusCallback *This); | 
 |  | 
 |     /*** IWMStatusCallback methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *OnStatus)( | 
 |         IWMStatusCallback *This, | 
 |         WMT_STATUS Status, | 
 |         HRESULT hr, | 
 |         WMT_ATTR_DATATYPE dwType, | 
 |         BYTE *pValue, | 
 |         void *pvContext); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMStatusCallbackVtbl; | 
 |  | 
 | interface IWMStatusCallback { | 
 |     CONST_VTBL IWMStatusCallbackVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMStatusCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMStatusCallback_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMStatusCallback_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMStatusCallback methods ***/ | 
 | #define IWMStatusCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext) (This)->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMStatusCallback_QueryInterface(IWMStatusCallback* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMStatusCallback_AddRef(IWMStatusCallback* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMStatusCallback_Release(IWMStatusCallback* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMStatusCallback methods ***/ | 
 | static FORCEINLINE HRESULT IWMStatusCallback_OnStatus(IWMStatusCallback* This,WMT_STATUS Status,HRESULT hr,WMT_ATTR_DATATYPE dwType,BYTE *pValue,void *pvContext) { | 
 |     return This->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMStatusCallback_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderCallback interface | 
 |  */ | 
 | #ifndef __IWMReaderCallback_INTERFACE_DEFINED__ | 
 | #define __IWMReaderCallback_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderCallback, 0x96406bd8, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bd8-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMReaderCallback : public IWMStatusCallback | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE OnSample( | 
 |         DWORD dwOutputNum, | 
 |         QWORD cnsSampleTime, | 
 |         QWORD cnsSampleDuration, | 
 |         DWORD dwFlags, | 
 |         INSSBuffer *pSample, | 
 |         void *pvContext) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderCallback, 0x96406bd8, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderCallbackVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderCallback *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderCallback *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderCallback *This); | 
 |  | 
 |     /*** IWMStatusCallback methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *OnStatus)( | 
 |         IWMReaderCallback *This, | 
 |         WMT_STATUS Status, | 
 |         HRESULT hr, | 
 |         WMT_ATTR_DATATYPE dwType, | 
 |         BYTE *pValue, | 
 |         void *pvContext); | 
 |  | 
 |     /*** IWMReaderCallback methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *OnSample)( | 
 |         IWMReaderCallback *This, | 
 |         DWORD dwOutputNum, | 
 |         QWORD cnsSampleTime, | 
 |         QWORD cnsSampleDuration, | 
 |         DWORD dwFlags, | 
 |         INSSBuffer *pSample, | 
 |         void *pvContext); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderCallbackVtbl; | 
 |  | 
 | interface IWMReaderCallback { | 
 |     CONST_VTBL IWMReaderCallbackVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderCallback_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderCallback_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMStatusCallback methods ***/ | 
 | #define IWMReaderCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext) (This)->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext) | 
 | /*** IWMReaderCallback methods ***/ | 
 | #define IWMReaderCallback_OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext) (This)->lpVtbl->OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderCallback_QueryInterface(IWMReaderCallback* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderCallback_AddRef(IWMReaderCallback* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderCallback_Release(IWMReaderCallback* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMStatusCallback methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderCallback_OnStatus(IWMReaderCallback* This,WMT_STATUS Status,HRESULT hr,WMT_ATTR_DATATYPE dwType,BYTE *pValue,void *pvContext) { | 
 |     return This->lpVtbl->OnStatus(This,Status,hr,dwType,pValue,pvContext); | 
 | } | 
 | /*** IWMReaderCallback methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderCallback_OnSample(IWMReaderCallback* This,DWORD dwOutputNum,QWORD cnsSampleTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample,void *pvContext) { | 
 |     return This->lpVtbl->OnSample(This,dwOutputNum,cnsSampleTime,cnsSampleDuration,dwFlags,pSample,pvContext); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderCallback_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMStreamList interface | 
 |  */ | 
 | #ifndef __IWMStreamList_INTERFACE_DEFINED__ | 
 | #define __IWMStreamList_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMStreamList, 0x96406bdd, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bdd-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMStreamList : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStreams( | 
 |         WORD *pwStreamNumArray, | 
 |         WORD *pcStreams) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddStream( | 
 |         WORD wStreamNum) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE RemoveStream( | 
 |         WORD wStreamNum) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMStreamList, 0x96406bdd, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMStreamListVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMStreamList *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMStreamList *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMStreamList *This); | 
 |  | 
 |     /*** IWMStreamList methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreams)( | 
 |         IWMStreamList *This, | 
 |         WORD *pwStreamNumArray, | 
 |         WORD *pcStreams); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddStream)( | 
 |         IWMStreamList *This, | 
 |         WORD wStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveStream)( | 
 |         IWMStreamList *This, | 
 |         WORD wStreamNum); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMStreamListVtbl; | 
 |  | 
 | interface IWMStreamList { | 
 |     CONST_VTBL IWMStreamListVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMStreamList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMStreamList_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMStreamList_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMStreamList methods ***/ | 
 | #define IWMStreamList_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams) | 
 | #define IWMStreamList_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum) | 
 | #define IWMStreamList_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMStreamList_QueryInterface(IWMStreamList* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMStreamList_AddRef(IWMStreamList* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMStreamList_Release(IWMStreamList* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMStreamList methods ***/ | 
 | static FORCEINLINE HRESULT IWMStreamList_GetStreams(IWMStreamList* This,WORD *pwStreamNumArray,WORD *pcStreams) { | 
 |     return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamList_AddStream(IWMStreamList* This,WORD wStreamNum) { | 
 |     return This->lpVtbl->AddStream(This,wStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamList_RemoveStream(IWMStreamList* This,WORD wStreamNum) { | 
 |     return This->lpVtbl->RemoveStream(This,wStreamNum); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMStreamList_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMMutualExclusion interface | 
 |  */ | 
 | #ifndef __IWMMutualExclusion_INTERFACE_DEFINED__ | 
 | #define __IWMMutualExclusion_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMMutualExclusion, 0x96406bde, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bde-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMMutualExclusion : public IWMStreamList | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetType( | 
 |         GUID *pguidType) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetType( | 
 |         REFGUID guidType) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMMutualExclusion, 0x96406bde, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMMutualExclusionVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMMutualExclusion *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMMutualExclusion *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMMutualExclusion *This); | 
 |  | 
 |     /*** IWMStreamList methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreams)( | 
 |         IWMMutualExclusion *This, | 
 |         WORD *pwStreamNumArray, | 
 |         WORD *pcStreams); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddStream)( | 
 |         IWMMutualExclusion *This, | 
 |         WORD wStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveStream)( | 
 |         IWMMutualExclusion *This, | 
 |         WORD wStreamNum); | 
 |  | 
 |     /*** IWMMutualExclusion methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetType)( | 
 |         IWMMutualExclusion *This, | 
 |         GUID *pguidType); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetType)( | 
 |         IWMMutualExclusion *This, | 
 |         REFGUID guidType); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMMutualExclusionVtbl; | 
 |  | 
 | interface IWMMutualExclusion { | 
 |     CONST_VTBL IWMMutualExclusionVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMMutualExclusion_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMMutualExclusion_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMStreamList methods ***/ | 
 | #define IWMMutualExclusion_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams) | 
 | #define IWMMutualExclusion_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum) | 
 | #define IWMMutualExclusion_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum) | 
 | /*** IWMMutualExclusion methods ***/ | 
 | #define IWMMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) | 
 | #define IWMMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMMutualExclusion_QueryInterface(IWMMutualExclusion* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMMutualExclusion_AddRef(IWMMutualExclusion* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMMutualExclusion_Release(IWMMutualExclusion* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMStreamList methods ***/ | 
 | static FORCEINLINE HRESULT IWMMutualExclusion_GetStreams(IWMMutualExclusion* This,WORD *pwStreamNumArray,WORD *pcStreams) { | 
 |     return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams); | 
 | } | 
 | static FORCEINLINE HRESULT IWMMutualExclusion_AddStream(IWMMutualExclusion* This,WORD wStreamNum) { | 
 |     return This->lpVtbl->AddStream(This,wStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMMutualExclusion_RemoveStream(IWMMutualExclusion* This,WORD wStreamNum) { | 
 |     return This->lpVtbl->RemoveStream(This,wStreamNum); | 
 | } | 
 | /*** IWMMutualExclusion methods ***/ | 
 | static FORCEINLINE HRESULT IWMMutualExclusion_GetType(IWMMutualExclusion* This,GUID *pguidType) { | 
 |     return This->lpVtbl->GetType(This,pguidType); | 
 | } | 
 | static FORCEINLINE HRESULT IWMMutualExclusion_SetType(IWMMutualExclusion* This,REFGUID guidType) { | 
 |     return This->lpVtbl->SetType(This,guidType); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMMutualExclusion_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMBandwidthSharing interface | 
 |  */ | 
 | #ifndef __IWMBandwidthSharing_INTERFACE_DEFINED__ | 
 | #define __IWMBandwidthSharing_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMBandwidthSharing, 0xad694af1, 0xf8d9, 0x42f8, 0xbc,0x47, 0x70,0x31,0x1b,0x0c,0x4f,0x9e); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("ad694af1-f8d9-42f8-bc47-70311b0c4f9e") | 
 | IWMBandwidthSharing : public IWMStreamList | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetType( | 
 |         GUID *guid) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetType( | 
 |         REFGUID guid) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetBandwidth( | 
 |         DWORD *bitrate, | 
 |         DWORD *buffer) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetBandwidth( | 
 |         DWORD bitrate, | 
 |         DWORD buffer) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMBandwidthSharing, 0xad694af1, 0xf8d9, 0x42f8, 0xbc,0x47, 0x70,0x31,0x1b,0x0c,0x4f,0x9e) | 
 | #endif | 
 | #else | 
 | typedef struct IWMBandwidthSharingVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMBandwidthSharing *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMBandwidthSharing *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMBandwidthSharing *This); | 
 |  | 
 |     /*** IWMStreamList methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreams)( | 
 |         IWMBandwidthSharing *This, | 
 |         WORD *pwStreamNumArray, | 
 |         WORD *pcStreams); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddStream)( | 
 |         IWMBandwidthSharing *This, | 
 |         WORD wStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveStream)( | 
 |         IWMBandwidthSharing *This, | 
 |         WORD wStreamNum); | 
 |  | 
 |     /*** IWMBandwidthSharing methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetType)( | 
 |         IWMBandwidthSharing *This, | 
 |         GUID *guid); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetType)( | 
 |         IWMBandwidthSharing *This, | 
 |         REFGUID guid); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetBandwidth)( | 
 |         IWMBandwidthSharing *This, | 
 |         DWORD *bitrate, | 
 |         DWORD *buffer); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetBandwidth)( | 
 |         IWMBandwidthSharing *This, | 
 |         DWORD bitrate, | 
 |         DWORD buffer); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMBandwidthSharingVtbl; | 
 |  | 
 | interface IWMBandwidthSharing { | 
 |     CONST_VTBL IWMBandwidthSharingVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMBandwidthSharing_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMBandwidthSharing_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMBandwidthSharing_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMStreamList methods ***/ | 
 | #define IWMBandwidthSharing_GetStreams(This,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams) | 
 | #define IWMBandwidthSharing_AddStream(This,wStreamNum) (This)->lpVtbl->AddStream(This,wStreamNum) | 
 | #define IWMBandwidthSharing_RemoveStream(This,wStreamNum) (This)->lpVtbl->RemoveStream(This,wStreamNum) | 
 | /*** IWMBandwidthSharing methods ***/ | 
 | #define IWMBandwidthSharing_GetType(This,guid) (This)->lpVtbl->GetType(This,guid) | 
 | #define IWMBandwidthSharing_SetType(This,guid) (This)->lpVtbl->SetType(This,guid) | 
 | #define IWMBandwidthSharing_GetBandwidth(This,bitrate,buffer) (This)->lpVtbl->GetBandwidth(This,bitrate,buffer) | 
 | #define IWMBandwidthSharing_SetBandwidth(This,bitrate,buffer) (This)->lpVtbl->SetBandwidth(This,bitrate,buffer) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMBandwidthSharing_QueryInterface(IWMBandwidthSharing* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMBandwidthSharing_AddRef(IWMBandwidthSharing* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMBandwidthSharing_Release(IWMBandwidthSharing* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMStreamList methods ***/ | 
 | static FORCEINLINE HRESULT IWMBandwidthSharing_GetStreams(IWMBandwidthSharing* This,WORD *pwStreamNumArray,WORD *pcStreams) { | 
 |     return This->lpVtbl->GetStreams(This,pwStreamNumArray,pcStreams); | 
 | } | 
 | static FORCEINLINE HRESULT IWMBandwidthSharing_AddStream(IWMBandwidthSharing* This,WORD wStreamNum) { | 
 |     return This->lpVtbl->AddStream(This,wStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMBandwidthSharing_RemoveStream(IWMBandwidthSharing* This,WORD wStreamNum) { | 
 |     return This->lpVtbl->RemoveStream(This,wStreamNum); | 
 | } | 
 | /*** IWMBandwidthSharing methods ***/ | 
 | static FORCEINLINE HRESULT IWMBandwidthSharing_GetType(IWMBandwidthSharing* This,GUID *guid) { | 
 |     return This->lpVtbl->GetType(This,guid); | 
 | } | 
 | static FORCEINLINE HRESULT IWMBandwidthSharing_SetType(IWMBandwidthSharing* This,REFGUID guid) { | 
 |     return This->lpVtbl->SetType(This,guid); | 
 | } | 
 | static FORCEINLINE HRESULT IWMBandwidthSharing_GetBandwidth(IWMBandwidthSharing* This,DWORD *bitrate,DWORD *buffer) { | 
 |     return This->lpVtbl->GetBandwidth(This,bitrate,buffer); | 
 | } | 
 | static FORCEINLINE HRESULT IWMBandwidthSharing_SetBandwidth(IWMBandwidthSharing* This,DWORD bitrate,DWORD buffer) { | 
 |     return This->lpVtbl->SetBandwidth(This,bitrate,buffer); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMBandwidthSharing_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMStreamPrioritization interface | 
 |  */ | 
 | #ifndef __IWMStreamPrioritization_INTERFACE_DEFINED__ | 
 | #define __IWMStreamPrioritization_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMStreamPrioritization, 0x8c1c6090, 0xf9a8, 0x4748, 0x8e,0xc3, 0xdd,0x11,0x08,0xba,0x1e,0x77); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("8c1c6090-f9a8-4748-8ec3-dd1108ba1e77") | 
 | IWMStreamPrioritization : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetPriorityRecords( | 
 |         WM_STREAM_PRIORITY_RECORD *array, | 
 |         WORD *records) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetPriorityRecords( | 
 |         WM_STREAM_PRIORITY_RECORD *array, | 
 |         WORD records) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMStreamPrioritization, 0x8c1c6090, 0xf9a8, 0x4748, 0x8e,0xc3, 0xdd,0x11,0x08,0xba,0x1e,0x77) | 
 | #endif | 
 | #else | 
 | typedef struct IWMStreamPrioritizationVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMStreamPrioritization *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMStreamPrioritization *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMStreamPrioritization *This); | 
 |  | 
 |     /*** IWMStreamPrioritization methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetPriorityRecords)( | 
 |         IWMStreamPrioritization *This, | 
 |         WM_STREAM_PRIORITY_RECORD *array, | 
 |         WORD *records); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetPriorityRecords)( | 
 |         IWMStreamPrioritization *This, | 
 |         WM_STREAM_PRIORITY_RECORD *array, | 
 |         WORD records); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMStreamPrioritizationVtbl; | 
 |  | 
 | interface IWMStreamPrioritization { | 
 |     CONST_VTBL IWMStreamPrioritizationVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMStreamPrioritization_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMStreamPrioritization_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMStreamPrioritization methods ***/ | 
 | #define IWMStreamPrioritization_GetPriorityRecords(This,array,records) (This)->lpVtbl->GetPriorityRecords(This,array,records) | 
 | #define IWMStreamPrioritization_SetPriorityRecords(This,array,records) (This)->lpVtbl->SetPriorityRecords(This,array,records) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMStreamPrioritization_QueryInterface(IWMStreamPrioritization* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMStreamPrioritization_AddRef(IWMStreamPrioritization* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMStreamPrioritization_Release(IWMStreamPrioritization* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMStreamPrioritization methods ***/ | 
 | static FORCEINLINE HRESULT IWMStreamPrioritization_GetPriorityRecords(IWMStreamPrioritization* This,WM_STREAM_PRIORITY_RECORD *array,WORD *records) { | 
 |     return This->lpVtbl->GetPriorityRecords(This,array,records); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamPrioritization_SetPriorityRecords(IWMStreamPrioritization* This,WM_STREAM_PRIORITY_RECORD *array,WORD records) { | 
 |     return This->lpVtbl->SetPriorityRecords(This,array,records); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMStreamPrioritization_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMStreamConfig interface | 
 |  */ | 
 | #ifndef __IWMStreamConfig_INTERFACE_DEFINED__ | 
 | #define __IWMStreamConfig_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMStreamConfig, 0x96406bdc, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bdc-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMStreamConfig : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStreamType( | 
 |         GUID *pguidStreamType) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStreamNumber( | 
 |         WORD *pwStreamNum) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetStreamNumber( | 
 |         WORD wStreamNum) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStreamName( | 
 |         WCHAR *pwszStreamName, | 
 |         WORD *pcchStreamName) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetStreamName( | 
 |         LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetConnectionName( | 
 |         WCHAR *pwszInputName, | 
 |         WORD *pcchInputName) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetConnectionName( | 
 |         LPCWSTR_WMSDK_TYPE_SAFE pwszInputName) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetBitrate( | 
 |         DWORD *pdwBitrate) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetBitrate( | 
 |         DWORD pdwBitrate) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetBufferWindow( | 
 |         DWORD *pmsBufferWindow) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetBufferWindow( | 
 |         DWORD msBufferWindow) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMStreamConfig, 0x96406bdc, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMStreamConfigVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMStreamConfig *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMStreamConfig *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMStreamConfig *This); | 
 |  | 
 |     /*** IWMStreamConfig methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamType)( | 
 |         IWMStreamConfig *This, | 
 |         GUID *pguidStreamType); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamNumber)( | 
 |         IWMStreamConfig *This, | 
 |         WORD *pwStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStreamNumber)( | 
 |         IWMStreamConfig *This, | 
 |         WORD wStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamName)( | 
 |         IWMStreamConfig *This, | 
 |         WCHAR *pwszStreamName, | 
 |         WORD *pcchStreamName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStreamName)( | 
 |         IWMStreamConfig *This, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetConnectionName)( | 
 |         IWMStreamConfig *This, | 
 |         WCHAR *pwszInputName, | 
 |         WORD *pcchInputName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetConnectionName)( | 
 |         IWMStreamConfig *This, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE pwszInputName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetBitrate)( | 
 |         IWMStreamConfig *This, | 
 |         DWORD *pdwBitrate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetBitrate)( | 
 |         IWMStreamConfig *This, | 
 |         DWORD pdwBitrate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetBufferWindow)( | 
 |         IWMStreamConfig *This, | 
 |         DWORD *pmsBufferWindow); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetBufferWindow)( | 
 |         IWMStreamConfig *This, | 
 |         DWORD msBufferWindow); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMStreamConfigVtbl; | 
 |  | 
 | interface IWMStreamConfig { | 
 |     CONST_VTBL IWMStreamConfigVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMStreamConfig_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMStreamConfig methods ***/ | 
 | #define IWMStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType) | 
 | #define IWMStreamConfig_GetStreamNumber(This,pwStreamNum) (This)->lpVtbl->GetStreamNumber(This,pwStreamNum) | 
 | #define IWMStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum) | 
 | #define IWMStreamConfig_GetStreamName(This,pwszStreamName,pcchStreamName) (This)->lpVtbl->GetStreamName(This,pwszStreamName,pcchStreamName) | 
 | #define IWMStreamConfig_SetStreamName(This,pwszStreamName) (This)->lpVtbl->SetStreamName(This,pwszStreamName) | 
 | #define IWMStreamConfig_GetConnectionName(This,pwszInputName,pcchInputName) (This)->lpVtbl->GetConnectionName(This,pwszInputName,pcchInputName) | 
 | #define IWMStreamConfig_SetConnectionName(This,pwszInputName) (This)->lpVtbl->SetConnectionName(This,pwszInputName) | 
 | #define IWMStreamConfig_GetBitrate(This,pdwBitrate) (This)->lpVtbl->GetBitrate(This,pdwBitrate) | 
 | #define IWMStreamConfig_SetBitrate(This,pdwBitrate) (This)->lpVtbl->SetBitrate(This,pdwBitrate) | 
 | #define IWMStreamConfig_GetBufferWindow(This,pmsBufferWindow) (This)->lpVtbl->GetBufferWindow(This,pmsBufferWindow) | 
 | #define IWMStreamConfig_SetBufferWindow(This,msBufferWindow) (This)->lpVtbl->SetBufferWindow(This,msBufferWindow) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMStreamConfig_QueryInterface(IWMStreamConfig* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMStreamConfig_AddRef(IWMStreamConfig* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMStreamConfig_Release(IWMStreamConfig* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMStreamConfig methods ***/ | 
 | static FORCEINLINE HRESULT IWMStreamConfig_GetStreamType(IWMStreamConfig* This,GUID *pguidStreamType) { | 
 |     return This->lpVtbl->GetStreamType(This,pguidStreamType); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamConfig_GetStreamNumber(IWMStreamConfig* This,WORD *pwStreamNum) { | 
 |     return This->lpVtbl->GetStreamNumber(This,pwStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamConfig_SetStreamNumber(IWMStreamConfig* This,WORD wStreamNum) { | 
 |     return This->lpVtbl->SetStreamNumber(This,wStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamConfig_GetStreamName(IWMStreamConfig* This,WCHAR *pwszStreamName,WORD *pcchStreamName) { | 
 |     return This->lpVtbl->GetStreamName(This,pwszStreamName,pcchStreamName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamConfig_SetStreamName(IWMStreamConfig* This,LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName) { | 
 |     return This->lpVtbl->SetStreamName(This,pwszStreamName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamConfig_GetConnectionName(IWMStreamConfig* This,WCHAR *pwszInputName,WORD *pcchInputName) { | 
 |     return This->lpVtbl->GetConnectionName(This,pwszInputName,pcchInputName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamConfig_SetConnectionName(IWMStreamConfig* This,LPCWSTR_WMSDK_TYPE_SAFE pwszInputName) { | 
 |     return This->lpVtbl->SetConnectionName(This,pwszInputName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamConfig_GetBitrate(IWMStreamConfig* This,DWORD *pdwBitrate) { | 
 |     return This->lpVtbl->GetBitrate(This,pdwBitrate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamConfig_SetBitrate(IWMStreamConfig* This,DWORD pdwBitrate) { | 
 |     return This->lpVtbl->SetBitrate(This,pdwBitrate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamConfig_GetBufferWindow(IWMStreamConfig* This,DWORD *pmsBufferWindow) { | 
 |     return This->lpVtbl->GetBufferWindow(This,pmsBufferWindow); | 
 | } | 
 | static FORCEINLINE HRESULT IWMStreamConfig_SetBufferWindow(IWMStreamConfig* This,DWORD msBufferWindow) { | 
 |     return This->lpVtbl->SetBufferWindow(This,msBufferWindow); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMStreamConfig_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMProfile interface | 
 |  */ | 
 | #ifndef __IWMProfile_INTERFACE_DEFINED__ | 
 | #define __IWMProfile_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMProfile, 0x96406bdb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bdb-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMProfile : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetVersion( | 
 |         WMT_VERSION *pdwVersion) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetName( | 
 |         WCHAR *pwszName, | 
 |         DWORD *pcchName) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetName( | 
 |         const WCHAR *pwszName) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetDescription( | 
 |         WCHAR *pwszDescription, | 
 |         DWORD *pcchDescription) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetDescription( | 
 |         const WCHAR *pwszDescription) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStreamCount( | 
 |         DWORD *pcStreams) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStream( | 
 |         DWORD dwStreamIndex, | 
 |         IWMStreamConfig **ppConfig) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStreamByNumber( | 
 |         WORD wStreamNum, | 
 |         IWMStreamConfig **ppConfig) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE RemoveStream( | 
 |         IWMStreamConfig *pConfig) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE RemoveStreamByNumber( | 
 |         WORD wStreamNum) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddStream( | 
 |         IWMStreamConfig *pConfig) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE ReconfigStream( | 
 |         IWMStreamConfig *pConfig) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CreateNewStream( | 
 |         REFGUID guidStreamType, | 
 |         IWMStreamConfig **ppConfig) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMutualExclusionCount( | 
 |         DWORD *pcME) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMutualExclusion( | 
 |         DWORD dwMEIndex, | 
 |         IWMMutualExclusion **ppME) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE RemoveMutualExclusion( | 
 |         IWMMutualExclusion *pME) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddMutualExclusion( | 
 |         IWMMutualExclusion *pME) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CreateNewMutualExclusion( | 
 |         IWMMutualExclusion **ppME) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMProfile, 0x96406bdb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMProfileVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMProfile *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMProfile *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMProfile *This); | 
 |  | 
 |     /*** IWMProfile methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetVersion)( | 
 |         IWMProfile *This, | 
 |         WMT_VERSION *pdwVersion); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetName)( | 
 |         IWMProfile *This, | 
 |         WCHAR *pwszName, | 
 |         DWORD *pcchName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetName)( | 
 |         IWMProfile *This, | 
 |         const WCHAR *pwszName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetDescription)( | 
 |         IWMProfile *This, | 
 |         WCHAR *pwszDescription, | 
 |         DWORD *pcchDescription); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetDescription)( | 
 |         IWMProfile *This, | 
 |         const WCHAR *pwszDescription); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamCount)( | 
 |         IWMProfile *This, | 
 |         DWORD *pcStreams); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStream)( | 
 |         IWMProfile *This, | 
 |         DWORD dwStreamIndex, | 
 |         IWMStreamConfig **ppConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)( | 
 |         IWMProfile *This, | 
 |         WORD wStreamNum, | 
 |         IWMStreamConfig **ppConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveStream)( | 
 |         IWMProfile *This, | 
 |         IWMStreamConfig *pConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)( | 
 |         IWMProfile *This, | 
 |         WORD wStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddStream)( | 
 |         IWMProfile *This, | 
 |         IWMStreamConfig *pConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *ReconfigStream)( | 
 |         IWMProfile *This, | 
 |         IWMStreamConfig *pConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CreateNewStream)( | 
 |         IWMProfile *This, | 
 |         REFGUID guidStreamType, | 
 |         IWMStreamConfig **ppConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)( | 
 |         IWMProfile *This, | 
 |         DWORD *pcME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)( | 
 |         IWMProfile *This, | 
 |         DWORD dwMEIndex, | 
 |         IWMMutualExclusion **ppME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)( | 
 |         IWMProfile *This, | 
 |         IWMMutualExclusion *pME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)( | 
 |         IWMProfile *This, | 
 |         IWMMutualExclusion *pME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)( | 
 |         IWMProfile *This, | 
 |         IWMMutualExclusion **ppME); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMProfileVtbl; | 
 |  | 
 | interface IWMProfile { | 
 |     CONST_VTBL IWMProfileVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMProfile_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMProfile_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMProfile methods ***/ | 
 | #define IWMProfile_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion) | 
 | #define IWMProfile_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName) | 
 | #define IWMProfile_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName) | 
 | #define IWMProfile_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription) | 
 | #define IWMProfile_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription) | 
 | #define IWMProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) | 
 | #define IWMProfile_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig) | 
 | #define IWMProfile_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig) | 
 | #define IWMProfile_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig) | 
 | #define IWMProfile_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum) | 
 | #define IWMProfile_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig) | 
 | #define IWMProfile_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig) | 
 | #define IWMProfile_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig) | 
 | #define IWMProfile_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME) | 
 | #define IWMProfile_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME) | 
 | #define IWMProfile_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME) | 
 | #define IWMProfile_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME) | 
 | #define IWMProfile_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfile_QueryInterface(IWMProfile* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMProfile_AddRef(IWMProfile* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMProfile_Release(IWMProfile* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMProfile methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfile_GetVersion(IWMProfile* This,WMT_VERSION *pdwVersion) { | 
 |     return This->lpVtbl->GetVersion(This,pdwVersion); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_GetName(IWMProfile* This,WCHAR *pwszName,DWORD *pcchName) { | 
 |     return This->lpVtbl->GetName(This,pwszName,pcchName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_SetName(IWMProfile* This,const WCHAR *pwszName) { | 
 |     return This->lpVtbl->SetName(This,pwszName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_GetDescription(IWMProfile* This,WCHAR *pwszDescription,DWORD *pcchDescription) { | 
 |     return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_SetDescription(IWMProfile* This,const WCHAR *pwszDescription) { | 
 |     return This->lpVtbl->SetDescription(This,pwszDescription); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_GetStreamCount(IWMProfile* This,DWORD *pcStreams) { | 
 |     return This->lpVtbl->GetStreamCount(This,pcStreams); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_GetStream(IWMProfile* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) { | 
 |     return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_GetStreamByNumber(IWMProfile* This,WORD wStreamNum,IWMStreamConfig **ppConfig) { | 
 |     return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_RemoveStream(IWMProfile* This,IWMStreamConfig *pConfig) { | 
 |     return This->lpVtbl->RemoveStream(This,pConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_RemoveStreamByNumber(IWMProfile* This,WORD wStreamNum) { | 
 |     return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_AddStream(IWMProfile* This,IWMStreamConfig *pConfig) { | 
 |     return This->lpVtbl->AddStream(This,pConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_ReconfigStream(IWMProfile* This,IWMStreamConfig *pConfig) { | 
 |     return This->lpVtbl->ReconfigStream(This,pConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_CreateNewStream(IWMProfile* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) { | 
 |     return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_GetMutualExclusionCount(IWMProfile* This,DWORD *pcME) { | 
 |     return This->lpVtbl->GetMutualExclusionCount(This,pcME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_GetMutualExclusion(IWMProfile* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) { | 
 |     return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_RemoveMutualExclusion(IWMProfile* This,IWMMutualExclusion *pME) { | 
 |     return This->lpVtbl->RemoveMutualExclusion(This,pME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_AddMutualExclusion(IWMProfile* This,IWMMutualExclusion *pME) { | 
 |     return This->lpVtbl->AddMutualExclusion(This,pME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile_CreateNewMutualExclusion(IWMProfile* This,IWMMutualExclusion **ppME) { | 
 |     return This->lpVtbl->CreateNewMutualExclusion(This,ppME); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMProfile_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMProfile2 interface | 
 |  */ | 
 | #ifndef __IWMProfile2_INTERFACE_DEFINED__ | 
 | #define __IWMProfile2_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMProfile2, 0x07e72d33, 0xd94e, 0x4be7, 0x88,0x43, 0x60,0xae,0x5f,0xf7,0xe5,0xf5); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("07e72d33-d94e-4be7-8843-60ae5ff7e5f5") | 
 | IWMProfile2 : public IWMProfile | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetProfileID( | 
 |         GUID *guid) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMProfile2, 0x07e72d33, 0xd94e, 0x4be7, 0x88,0x43, 0x60,0xae,0x5f,0xf7,0xe5,0xf5) | 
 | #endif | 
 | #else | 
 | typedef struct IWMProfile2Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMProfile2 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMProfile2 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMProfile2 *This); | 
 |  | 
 |     /*** IWMProfile methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetVersion)( | 
 |         IWMProfile2 *This, | 
 |         WMT_VERSION *pdwVersion); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetName)( | 
 |         IWMProfile2 *This, | 
 |         WCHAR *pwszName, | 
 |         DWORD *pcchName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetName)( | 
 |         IWMProfile2 *This, | 
 |         const WCHAR *pwszName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetDescription)( | 
 |         IWMProfile2 *This, | 
 |         WCHAR *pwszDescription, | 
 |         DWORD *pcchDescription); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetDescription)( | 
 |         IWMProfile2 *This, | 
 |         const WCHAR *pwszDescription); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamCount)( | 
 |         IWMProfile2 *This, | 
 |         DWORD *pcStreams); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStream)( | 
 |         IWMProfile2 *This, | 
 |         DWORD dwStreamIndex, | 
 |         IWMStreamConfig **ppConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)( | 
 |         IWMProfile2 *This, | 
 |         WORD wStreamNum, | 
 |         IWMStreamConfig **ppConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveStream)( | 
 |         IWMProfile2 *This, | 
 |         IWMStreamConfig *pConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)( | 
 |         IWMProfile2 *This, | 
 |         WORD wStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddStream)( | 
 |         IWMProfile2 *This, | 
 |         IWMStreamConfig *pConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *ReconfigStream)( | 
 |         IWMProfile2 *This, | 
 |         IWMStreamConfig *pConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CreateNewStream)( | 
 |         IWMProfile2 *This, | 
 |         REFGUID guidStreamType, | 
 |         IWMStreamConfig **ppConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)( | 
 |         IWMProfile2 *This, | 
 |         DWORD *pcME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)( | 
 |         IWMProfile2 *This, | 
 |         DWORD dwMEIndex, | 
 |         IWMMutualExclusion **ppME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)( | 
 |         IWMProfile2 *This, | 
 |         IWMMutualExclusion *pME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)( | 
 |         IWMProfile2 *This, | 
 |         IWMMutualExclusion *pME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)( | 
 |         IWMProfile2 *This, | 
 |         IWMMutualExclusion **ppME); | 
 |  | 
 |     /*** IWMProfile2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetProfileID)( | 
 |         IWMProfile2 *This, | 
 |         GUID *guid); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMProfile2Vtbl; | 
 |  | 
 | interface IWMProfile2 { | 
 |     CONST_VTBL IWMProfile2Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMProfile2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMProfile2_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMProfile2_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMProfile methods ***/ | 
 | #define IWMProfile2_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion) | 
 | #define IWMProfile2_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName) | 
 | #define IWMProfile2_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName) | 
 | #define IWMProfile2_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription) | 
 | #define IWMProfile2_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription) | 
 | #define IWMProfile2_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) | 
 | #define IWMProfile2_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig) | 
 | #define IWMProfile2_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig) | 
 | #define IWMProfile2_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig) | 
 | #define IWMProfile2_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum) | 
 | #define IWMProfile2_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig) | 
 | #define IWMProfile2_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig) | 
 | #define IWMProfile2_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig) | 
 | #define IWMProfile2_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME) | 
 | #define IWMProfile2_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME) | 
 | #define IWMProfile2_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME) | 
 | #define IWMProfile2_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME) | 
 | #define IWMProfile2_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME) | 
 | /*** IWMProfile2 methods ***/ | 
 | #define IWMProfile2_GetProfileID(This,guid) (This)->lpVtbl->GetProfileID(This,guid) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfile2_QueryInterface(IWMProfile2* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMProfile2_AddRef(IWMProfile2* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMProfile2_Release(IWMProfile2* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMProfile methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfile2_GetVersion(IWMProfile2* This,WMT_VERSION *pdwVersion) { | 
 |     return This->lpVtbl->GetVersion(This,pdwVersion); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_GetName(IWMProfile2* This,WCHAR *pwszName,DWORD *pcchName) { | 
 |     return This->lpVtbl->GetName(This,pwszName,pcchName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_SetName(IWMProfile2* This,const WCHAR *pwszName) { | 
 |     return This->lpVtbl->SetName(This,pwszName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_GetDescription(IWMProfile2* This,WCHAR *pwszDescription,DWORD *pcchDescription) { | 
 |     return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_SetDescription(IWMProfile2* This,const WCHAR *pwszDescription) { | 
 |     return This->lpVtbl->SetDescription(This,pwszDescription); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_GetStreamCount(IWMProfile2* This,DWORD *pcStreams) { | 
 |     return This->lpVtbl->GetStreamCount(This,pcStreams); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_GetStream(IWMProfile2* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) { | 
 |     return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_GetStreamByNumber(IWMProfile2* This,WORD wStreamNum,IWMStreamConfig **ppConfig) { | 
 |     return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_RemoveStream(IWMProfile2* This,IWMStreamConfig *pConfig) { | 
 |     return This->lpVtbl->RemoveStream(This,pConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_RemoveStreamByNumber(IWMProfile2* This,WORD wStreamNum) { | 
 |     return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_AddStream(IWMProfile2* This,IWMStreamConfig *pConfig) { | 
 |     return This->lpVtbl->AddStream(This,pConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_ReconfigStream(IWMProfile2* This,IWMStreamConfig *pConfig) { | 
 |     return This->lpVtbl->ReconfigStream(This,pConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_CreateNewStream(IWMProfile2* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) { | 
 |     return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_GetMutualExclusionCount(IWMProfile2* This,DWORD *pcME) { | 
 |     return This->lpVtbl->GetMutualExclusionCount(This,pcME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_GetMutualExclusion(IWMProfile2* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) { | 
 |     return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_RemoveMutualExclusion(IWMProfile2* This,IWMMutualExclusion *pME) { | 
 |     return This->lpVtbl->RemoveMutualExclusion(This,pME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_AddMutualExclusion(IWMProfile2* This,IWMMutualExclusion *pME) { | 
 |     return This->lpVtbl->AddMutualExclusion(This,pME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile2_CreateNewMutualExclusion(IWMProfile2* This,IWMMutualExclusion **ppME) { | 
 |     return This->lpVtbl->CreateNewMutualExclusion(This,ppME); | 
 | } | 
 | /*** IWMProfile2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfile2_GetProfileID(IWMProfile2* This,GUID *guid) { | 
 |     return This->lpVtbl->GetProfileID(This,guid); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMProfile2_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMProfile3 interface | 
 |  */ | 
 | #ifndef __IWMProfile3_INTERFACE_DEFINED__ | 
 | #define __IWMProfile3_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMProfile3, 0x00ef96cc, 0xa461, 0x4546, 0x8b,0xcd, 0xc9,0xa2,0x8f,0x0e,0x06,0xf5); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("00ef96cc-a461-4546-8bcd-c9a28f0e06f5") | 
 | IWMProfile3 : public IWMProfile2 | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStorageFormat( | 
 |         WMT_STORAGE_FORMAT *storage) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetStorageFormat( | 
 |         WMT_STORAGE_FORMAT storage) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetBandwidthSharingCount( | 
 |         DWORD *count) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetBandwidthSharing( | 
 |         DWORD index, | 
 |         IWMBandwidthSharing **bandwidth) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE RemoveBandwidthSharing( | 
 |         IWMBandwidthSharing *bandwidth) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddBandwidthSharing( | 
 |         IWMBandwidthSharing *bandwidth) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CreateNewBandwidthSharing( | 
 |         IWMBandwidthSharing **bandwidth) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStreamPrioritization( | 
 |         IWMStreamPrioritization **stream) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetStreamPrioritization( | 
 |         IWMStreamPrioritization *stream) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE RemoveStreamPrioritization( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CreateNewStreamPrioritization( | 
 |         IWMStreamPrioritization **stream) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetExpectedPacketCount( | 
 |         QWORD duration, | 
 |         QWORD *packets) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMProfile3, 0x00ef96cc, 0xa461, 0x4546, 0x8b,0xcd, 0xc9,0xa2,0x8f,0x0e,0x06,0xf5) | 
 | #endif | 
 | #else | 
 | typedef struct IWMProfile3Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMProfile3 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMProfile3 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMProfile3 *This); | 
 |  | 
 |     /*** IWMProfile methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetVersion)( | 
 |         IWMProfile3 *This, | 
 |         WMT_VERSION *pdwVersion); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetName)( | 
 |         IWMProfile3 *This, | 
 |         WCHAR *pwszName, | 
 |         DWORD *pcchName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetName)( | 
 |         IWMProfile3 *This, | 
 |         const WCHAR *pwszName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetDescription)( | 
 |         IWMProfile3 *This, | 
 |         WCHAR *pwszDescription, | 
 |         DWORD *pcchDescription); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetDescription)( | 
 |         IWMProfile3 *This, | 
 |         const WCHAR *pwszDescription); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamCount)( | 
 |         IWMProfile3 *This, | 
 |         DWORD *pcStreams); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStream)( | 
 |         IWMProfile3 *This, | 
 |         DWORD dwStreamIndex, | 
 |         IWMStreamConfig **ppConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)( | 
 |         IWMProfile3 *This, | 
 |         WORD wStreamNum, | 
 |         IWMStreamConfig **ppConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveStream)( | 
 |         IWMProfile3 *This, | 
 |         IWMStreamConfig *pConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveStreamByNumber)( | 
 |         IWMProfile3 *This, | 
 |         WORD wStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddStream)( | 
 |         IWMProfile3 *This, | 
 |         IWMStreamConfig *pConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *ReconfigStream)( | 
 |         IWMProfile3 *This, | 
 |         IWMStreamConfig *pConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CreateNewStream)( | 
 |         IWMProfile3 *This, | 
 |         REFGUID guidStreamType, | 
 |         IWMStreamConfig **ppConfig); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)( | 
 |         IWMProfile3 *This, | 
 |         DWORD *pcME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)( | 
 |         IWMProfile3 *This, | 
 |         DWORD dwMEIndex, | 
 |         IWMMutualExclusion **ppME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)( | 
 |         IWMProfile3 *This, | 
 |         IWMMutualExclusion *pME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)( | 
 |         IWMProfile3 *This, | 
 |         IWMMutualExclusion *pME); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CreateNewMutualExclusion)( | 
 |         IWMProfile3 *This, | 
 |         IWMMutualExclusion **ppME); | 
 |  | 
 |     /*** IWMProfile2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetProfileID)( | 
 |         IWMProfile3 *This, | 
 |         GUID *guid); | 
 |  | 
 |     /*** IWMProfile3 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetStorageFormat)( | 
 |         IWMProfile3 *This, | 
 |         WMT_STORAGE_FORMAT *storage); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStorageFormat)( | 
 |         IWMProfile3 *This, | 
 |         WMT_STORAGE_FORMAT storage); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetBandwidthSharingCount)( | 
 |         IWMProfile3 *This, | 
 |         DWORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetBandwidthSharing)( | 
 |         IWMProfile3 *This, | 
 |         DWORD index, | 
 |         IWMBandwidthSharing **bandwidth); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveBandwidthSharing)( | 
 |         IWMProfile3 *This, | 
 |         IWMBandwidthSharing *bandwidth); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddBandwidthSharing)( | 
 |         IWMProfile3 *This, | 
 |         IWMBandwidthSharing *bandwidth); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CreateNewBandwidthSharing)( | 
 |         IWMProfile3 *This, | 
 |         IWMBandwidthSharing **bandwidth); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamPrioritization)( | 
 |         IWMProfile3 *This, | 
 |         IWMStreamPrioritization **stream); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStreamPrioritization)( | 
 |         IWMProfile3 *This, | 
 |         IWMStreamPrioritization *stream); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveStreamPrioritization)( | 
 |         IWMProfile3 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CreateNewStreamPrioritization)( | 
 |         IWMProfile3 *This, | 
 |         IWMStreamPrioritization **stream); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetExpectedPacketCount)( | 
 |         IWMProfile3 *This, | 
 |         QWORD duration, | 
 |         QWORD *packets); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMProfile3Vtbl; | 
 |  | 
 | interface IWMProfile3 { | 
 |     CONST_VTBL IWMProfile3Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMProfile3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMProfile3_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMProfile3_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMProfile methods ***/ | 
 | #define IWMProfile3_GetVersion(This,pdwVersion) (This)->lpVtbl->GetVersion(This,pdwVersion) | 
 | #define IWMProfile3_GetName(This,pwszName,pcchName) (This)->lpVtbl->GetName(This,pwszName,pcchName) | 
 | #define IWMProfile3_SetName(This,pwszName) (This)->lpVtbl->SetName(This,pwszName) | 
 | #define IWMProfile3_GetDescription(This,pwszDescription,pcchDescription) (This)->lpVtbl->GetDescription(This,pwszDescription,pcchDescription) | 
 | #define IWMProfile3_SetDescription(This,pwszDescription) (This)->lpVtbl->SetDescription(This,pwszDescription) | 
 | #define IWMProfile3_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) | 
 | #define IWMProfile3_GetStream(This,dwStreamIndex,ppConfig) (This)->lpVtbl->GetStream(This,dwStreamIndex,ppConfig) | 
 | #define IWMProfile3_GetStreamByNumber(This,wStreamNum,ppConfig) (This)->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig) | 
 | #define IWMProfile3_RemoveStream(This,pConfig) (This)->lpVtbl->RemoveStream(This,pConfig) | 
 | #define IWMProfile3_RemoveStreamByNumber(This,wStreamNum) (This)->lpVtbl->RemoveStreamByNumber(This,wStreamNum) | 
 | #define IWMProfile3_AddStream(This,pConfig) (This)->lpVtbl->AddStream(This,pConfig) | 
 | #define IWMProfile3_ReconfigStream(This,pConfig) (This)->lpVtbl->ReconfigStream(This,pConfig) | 
 | #define IWMProfile3_CreateNewStream(This,guidStreamType,ppConfig) (This)->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig) | 
 | #define IWMProfile3_GetMutualExclusionCount(This,pcME) (This)->lpVtbl->GetMutualExclusionCount(This,pcME) | 
 | #define IWMProfile3_GetMutualExclusion(This,dwMEIndex,ppME) (This)->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME) | 
 | #define IWMProfile3_RemoveMutualExclusion(This,pME) (This)->lpVtbl->RemoveMutualExclusion(This,pME) | 
 | #define IWMProfile3_AddMutualExclusion(This,pME) (This)->lpVtbl->AddMutualExclusion(This,pME) | 
 | #define IWMProfile3_CreateNewMutualExclusion(This,ppME) (This)->lpVtbl->CreateNewMutualExclusion(This,ppME) | 
 | /*** IWMProfile2 methods ***/ | 
 | #define IWMProfile3_GetProfileID(This,guid) (This)->lpVtbl->GetProfileID(This,guid) | 
 | /*** IWMProfile3 methods ***/ | 
 | #define IWMProfile3_GetStorageFormat(This,storage) (This)->lpVtbl->GetStorageFormat(This,storage) | 
 | #define IWMProfile3_SetStorageFormat(This,storage) (This)->lpVtbl->SetStorageFormat(This,storage) | 
 | #define IWMProfile3_GetBandwidthSharingCount(This,count) (This)->lpVtbl->GetBandwidthSharingCount(This,count) | 
 | #define IWMProfile3_GetBandwidthSharing(This,index,bandwidth) (This)->lpVtbl->GetBandwidthSharing(This,index,bandwidth) | 
 | #define IWMProfile3_RemoveBandwidthSharing(This,bandwidth) (This)->lpVtbl->RemoveBandwidthSharing(This,bandwidth) | 
 | #define IWMProfile3_AddBandwidthSharing(This,bandwidth) (This)->lpVtbl->AddBandwidthSharing(This,bandwidth) | 
 | #define IWMProfile3_CreateNewBandwidthSharing(This,bandwidth) (This)->lpVtbl->CreateNewBandwidthSharing(This,bandwidth) | 
 | #define IWMProfile3_GetStreamPrioritization(This,stream) (This)->lpVtbl->GetStreamPrioritization(This,stream) | 
 | #define IWMProfile3_SetStreamPrioritization(This,stream) (This)->lpVtbl->SetStreamPrioritization(This,stream) | 
 | #define IWMProfile3_RemoveStreamPrioritization(This) (This)->lpVtbl->RemoveStreamPrioritization(This) | 
 | #define IWMProfile3_CreateNewStreamPrioritization(This,stream) (This)->lpVtbl->CreateNewStreamPrioritization(This,stream) | 
 | #define IWMProfile3_GetExpectedPacketCount(This,duration,packets) (This)->lpVtbl->GetExpectedPacketCount(This,duration,packets) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfile3_QueryInterface(IWMProfile3* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMProfile3_AddRef(IWMProfile3* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMProfile3_Release(IWMProfile3* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMProfile methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfile3_GetVersion(IWMProfile3* This,WMT_VERSION *pdwVersion) { | 
 |     return This->lpVtbl->GetVersion(This,pdwVersion); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_GetName(IWMProfile3* This,WCHAR *pwszName,DWORD *pcchName) { | 
 |     return This->lpVtbl->GetName(This,pwszName,pcchName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_SetName(IWMProfile3* This,const WCHAR *pwszName) { | 
 |     return This->lpVtbl->SetName(This,pwszName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_GetDescription(IWMProfile3* This,WCHAR *pwszDescription,DWORD *pcchDescription) { | 
 |     return This->lpVtbl->GetDescription(This,pwszDescription,pcchDescription); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_SetDescription(IWMProfile3* This,const WCHAR *pwszDescription) { | 
 |     return This->lpVtbl->SetDescription(This,pwszDescription); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_GetStreamCount(IWMProfile3* This,DWORD *pcStreams) { | 
 |     return This->lpVtbl->GetStreamCount(This,pcStreams); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_GetStream(IWMProfile3* This,DWORD dwStreamIndex,IWMStreamConfig **ppConfig) { | 
 |     return This->lpVtbl->GetStream(This,dwStreamIndex,ppConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_GetStreamByNumber(IWMProfile3* This,WORD wStreamNum,IWMStreamConfig **ppConfig) { | 
 |     return This->lpVtbl->GetStreamByNumber(This,wStreamNum,ppConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_RemoveStream(IWMProfile3* This,IWMStreamConfig *pConfig) { | 
 |     return This->lpVtbl->RemoveStream(This,pConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_RemoveStreamByNumber(IWMProfile3* This,WORD wStreamNum) { | 
 |     return This->lpVtbl->RemoveStreamByNumber(This,wStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_AddStream(IWMProfile3* This,IWMStreamConfig *pConfig) { | 
 |     return This->lpVtbl->AddStream(This,pConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_ReconfigStream(IWMProfile3* This,IWMStreamConfig *pConfig) { | 
 |     return This->lpVtbl->ReconfigStream(This,pConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_CreateNewStream(IWMProfile3* This,REFGUID guidStreamType,IWMStreamConfig **ppConfig) { | 
 |     return This->lpVtbl->CreateNewStream(This,guidStreamType,ppConfig); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_GetMutualExclusionCount(IWMProfile3* This,DWORD *pcME) { | 
 |     return This->lpVtbl->GetMutualExclusionCount(This,pcME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_GetMutualExclusion(IWMProfile3* This,DWORD dwMEIndex,IWMMutualExclusion **ppME) { | 
 |     return This->lpVtbl->GetMutualExclusion(This,dwMEIndex,ppME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_RemoveMutualExclusion(IWMProfile3* This,IWMMutualExclusion *pME) { | 
 |     return This->lpVtbl->RemoveMutualExclusion(This,pME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_AddMutualExclusion(IWMProfile3* This,IWMMutualExclusion *pME) { | 
 |     return This->lpVtbl->AddMutualExclusion(This,pME); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_CreateNewMutualExclusion(IWMProfile3* This,IWMMutualExclusion **ppME) { | 
 |     return This->lpVtbl->CreateNewMutualExclusion(This,ppME); | 
 | } | 
 | /*** IWMProfile2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfile3_GetProfileID(IWMProfile3* This,GUID *guid) { | 
 |     return This->lpVtbl->GetProfileID(This,guid); | 
 | } | 
 | /*** IWMProfile3 methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfile3_GetStorageFormat(IWMProfile3* This,WMT_STORAGE_FORMAT *storage) { | 
 |     return This->lpVtbl->GetStorageFormat(This,storage); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_SetStorageFormat(IWMProfile3* This,WMT_STORAGE_FORMAT storage) { | 
 |     return This->lpVtbl->SetStorageFormat(This,storage); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_GetBandwidthSharingCount(IWMProfile3* This,DWORD *count) { | 
 |     return This->lpVtbl->GetBandwidthSharingCount(This,count); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_GetBandwidthSharing(IWMProfile3* This,DWORD index,IWMBandwidthSharing **bandwidth) { | 
 |     return This->lpVtbl->GetBandwidthSharing(This,index,bandwidth); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_RemoveBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing *bandwidth) { | 
 |     return This->lpVtbl->RemoveBandwidthSharing(This,bandwidth); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_AddBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing *bandwidth) { | 
 |     return This->lpVtbl->AddBandwidthSharing(This,bandwidth); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_CreateNewBandwidthSharing(IWMProfile3* This,IWMBandwidthSharing **bandwidth) { | 
 |     return This->lpVtbl->CreateNewBandwidthSharing(This,bandwidth); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_GetStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization **stream) { | 
 |     return This->lpVtbl->GetStreamPrioritization(This,stream); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_SetStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization *stream) { | 
 |     return This->lpVtbl->SetStreamPrioritization(This,stream); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_RemoveStreamPrioritization(IWMProfile3* This) { | 
 |     return This->lpVtbl->RemoveStreamPrioritization(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_CreateNewStreamPrioritization(IWMProfile3* This,IWMStreamPrioritization **stream) { | 
 |     return This->lpVtbl->CreateNewStreamPrioritization(This,stream); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfile3_GetExpectedPacketCount(IWMProfile3* This,QWORD duration,QWORD *packets) { | 
 |     return This->lpVtbl->GetExpectedPacketCount(This,duration,packets); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMProfile3_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMProfileManager interface | 
 |  */ | 
 | #ifndef __IWMProfileManager_INTERFACE_DEFINED__ | 
 | #define __IWMProfileManager_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMProfileManager, 0xd16679f2, 0x6ca0, 0x472d, 0x8d,0x31, 0x2f,0x5d,0x55,0xae,0xe1,0x55); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("d16679f2-6ca0-472d-8d31-2f5d55aee155") | 
 | IWMProfileManager : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE CreateEmptyProfile( | 
 |         WMT_VERSION dwVersion, | 
 |         IWMProfile **ppProfile) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE LoadProfileByID( | 
 |         REFGUID guidProfile, | 
 |         IWMProfile **ppProfile) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE LoadProfileByData( | 
 |         const WCHAR *pwszProfile, | 
 |         IWMProfile **ppProfile) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SaveProfile( | 
 |         IWMProfile *pIWMProfile, | 
 |         WCHAR *pwszProfile, | 
 |         DWORD *pdwLength) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetSystemProfileCount( | 
 |         DWORD *pcProfiles) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE LoadSystemProfile( | 
 |         DWORD dwProfileIndex, | 
 |         IWMProfile **ppProfile) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMProfileManager, 0xd16679f2, 0x6ca0, 0x472d, 0x8d,0x31, 0x2f,0x5d,0x55,0xae,0xe1,0x55) | 
 | #endif | 
 | #else | 
 | typedef struct IWMProfileManagerVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMProfileManager *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMProfileManager *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMProfileManager *This); | 
 |  | 
 |     /*** IWMProfileManager methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *CreateEmptyProfile)( | 
 |         IWMProfileManager *This, | 
 |         WMT_VERSION dwVersion, | 
 |         IWMProfile **ppProfile); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *LoadProfileByID)( | 
 |         IWMProfileManager *This, | 
 |         REFGUID guidProfile, | 
 |         IWMProfile **ppProfile); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *LoadProfileByData)( | 
 |         IWMProfileManager *This, | 
 |         const WCHAR *pwszProfile, | 
 |         IWMProfile **ppProfile); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SaveProfile)( | 
 |         IWMProfileManager *This, | 
 |         IWMProfile *pIWMProfile, | 
 |         WCHAR *pwszProfile, | 
 |         DWORD *pdwLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSystemProfileCount)( | 
 |         IWMProfileManager *This, | 
 |         DWORD *pcProfiles); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *LoadSystemProfile)( | 
 |         IWMProfileManager *This, | 
 |         DWORD dwProfileIndex, | 
 |         IWMProfile **ppProfile); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMProfileManagerVtbl; | 
 |  | 
 | interface IWMProfileManager { | 
 |     CONST_VTBL IWMProfileManagerVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMProfileManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMProfileManager_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMProfileManager_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMProfileManager methods ***/ | 
 | #define IWMProfileManager_CreateEmptyProfile(This,dwVersion,ppProfile) (This)->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile) | 
 | #define IWMProfileManager_LoadProfileByID(This,guidProfile,ppProfile) (This)->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile) | 
 | #define IWMProfileManager_LoadProfileByData(This,pwszProfile,ppProfile) (This)->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile) | 
 | #define IWMProfileManager_SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) (This)->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) | 
 | #define IWMProfileManager_GetSystemProfileCount(This,pcProfiles) (This)->lpVtbl->GetSystemProfileCount(This,pcProfiles) | 
 | #define IWMProfileManager_LoadSystemProfile(This,dwProfileIndex,ppProfile) (This)->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfileManager_QueryInterface(IWMProfileManager* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMProfileManager_AddRef(IWMProfileManager* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMProfileManager_Release(IWMProfileManager* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMProfileManager methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfileManager_CreateEmptyProfile(IWMProfileManager* This,WMT_VERSION dwVersion,IWMProfile **ppProfile) { | 
 |     return This->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfileManager_LoadProfileByID(IWMProfileManager* This,REFGUID guidProfile,IWMProfile **ppProfile) { | 
 |     return This->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfileManager_LoadProfileByData(IWMProfileManager* This,const WCHAR *pwszProfile,IWMProfile **ppProfile) { | 
 |     return This->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfileManager_SaveProfile(IWMProfileManager* This,IWMProfile *pIWMProfile,WCHAR *pwszProfile,DWORD *pdwLength) { | 
 |     return This->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfileManager_GetSystemProfileCount(IWMProfileManager* This,DWORD *pcProfiles) { | 
 |     return This->lpVtbl->GetSystemProfileCount(This,pcProfiles); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfileManager_LoadSystemProfile(IWMProfileManager* This,DWORD dwProfileIndex,IWMProfile **ppProfile) { | 
 |     return This->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMProfileManager_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMProfileManager2 interface | 
 |  */ | 
 | #ifndef __IWMProfileManager2_INTERFACE_DEFINED__ | 
 | #define __IWMProfileManager2_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMProfileManager2, 0x7a924e51, 0x73c1, 0x494d, 0x80,0x19, 0x23,0xd3,0x7e,0xd9,0xb8,0x9a); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("7a924e51-73c1-494d-8019-23d37ed9b89a") | 
 | IWMProfileManager2 : public IWMProfileManager | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetSystemProfileVersion( | 
 |         WMT_VERSION *version) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetSystemProfileVersion( | 
 |         WMT_VERSION version) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMProfileManager2, 0x7a924e51, 0x73c1, 0x494d, 0x80,0x19, 0x23,0xd3,0x7e,0xd9,0xb8,0x9a) | 
 | #endif | 
 | #else | 
 | typedef struct IWMProfileManager2Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMProfileManager2 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMProfileManager2 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMProfileManager2 *This); | 
 |  | 
 |     /*** IWMProfileManager methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *CreateEmptyProfile)( | 
 |         IWMProfileManager2 *This, | 
 |         WMT_VERSION dwVersion, | 
 |         IWMProfile **ppProfile); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *LoadProfileByID)( | 
 |         IWMProfileManager2 *This, | 
 |         REFGUID guidProfile, | 
 |         IWMProfile **ppProfile); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *LoadProfileByData)( | 
 |         IWMProfileManager2 *This, | 
 |         const WCHAR *pwszProfile, | 
 |         IWMProfile **ppProfile); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SaveProfile)( | 
 |         IWMProfileManager2 *This, | 
 |         IWMProfile *pIWMProfile, | 
 |         WCHAR *pwszProfile, | 
 |         DWORD *pdwLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSystemProfileCount)( | 
 |         IWMProfileManager2 *This, | 
 |         DWORD *pcProfiles); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *LoadSystemProfile)( | 
 |         IWMProfileManager2 *This, | 
 |         DWORD dwProfileIndex, | 
 |         IWMProfile **ppProfile); | 
 |  | 
 |     /*** IWMProfileManager2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetSystemProfileVersion)( | 
 |         IWMProfileManager2 *This, | 
 |         WMT_VERSION *version); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetSystemProfileVersion)( | 
 |         IWMProfileManager2 *This, | 
 |         WMT_VERSION version); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMProfileManager2Vtbl; | 
 |  | 
 | interface IWMProfileManager2 { | 
 |     CONST_VTBL IWMProfileManager2Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMProfileManager2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMProfileManager2_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMProfileManager2_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMProfileManager methods ***/ | 
 | #define IWMProfileManager2_CreateEmptyProfile(This,dwVersion,ppProfile) (This)->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile) | 
 | #define IWMProfileManager2_LoadProfileByID(This,guidProfile,ppProfile) (This)->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile) | 
 | #define IWMProfileManager2_LoadProfileByData(This,pwszProfile,ppProfile) (This)->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile) | 
 | #define IWMProfileManager2_SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) (This)->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength) | 
 | #define IWMProfileManager2_GetSystemProfileCount(This,pcProfiles) (This)->lpVtbl->GetSystemProfileCount(This,pcProfiles) | 
 | #define IWMProfileManager2_LoadSystemProfile(This,dwProfileIndex,ppProfile) (This)->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile) | 
 | /*** IWMProfileManager2 methods ***/ | 
 | #define IWMProfileManager2_GetSystemProfileVersion(This,version) (This)->lpVtbl->GetSystemProfileVersion(This,version) | 
 | #define IWMProfileManager2_SetSystemProfileVersion(This,version) (This)->lpVtbl->SetSystemProfileVersion(This,version) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfileManager2_QueryInterface(IWMProfileManager2* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMProfileManager2_AddRef(IWMProfileManager2* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMProfileManager2_Release(IWMProfileManager2* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMProfileManager methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfileManager2_CreateEmptyProfile(IWMProfileManager2* This,WMT_VERSION dwVersion,IWMProfile **ppProfile) { | 
 |     return This->lpVtbl->CreateEmptyProfile(This,dwVersion,ppProfile); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfileManager2_LoadProfileByID(IWMProfileManager2* This,REFGUID guidProfile,IWMProfile **ppProfile) { | 
 |     return This->lpVtbl->LoadProfileByID(This,guidProfile,ppProfile); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfileManager2_LoadProfileByData(IWMProfileManager2* This,const WCHAR *pwszProfile,IWMProfile **ppProfile) { | 
 |     return This->lpVtbl->LoadProfileByData(This,pwszProfile,ppProfile); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfileManager2_SaveProfile(IWMProfileManager2* This,IWMProfile *pIWMProfile,WCHAR *pwszProfile,DWORD *pdwLength) { | 
 |     return This->lpVtbl->SaveProfile(This,pIWMProfile,pwszProfile,pdwLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfileManager2_GetSystemProfileCount(IWMProfileManager2* This,DWORD *pcProfiles) { | 
 |     return This->lpVtbl->GetSystemProfileCount(This,pcProfiles); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfileManager2_LoadSystemProfile(IWMProfileManager2* This,DWORD dwProfileIndex,IWMProfile **ppProfile) { | 
 |     return This->lpVtbl->LoadSystemProfile(This,dwProfileIndex,ppProfile); | 
 | } | 
 | /*** IWMProfileManager2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMProfileManager2_GetSystemProfileVersion(IWMProfileManager2* This,WMT_VERSION *version) { | 
 |     return This->lpVtbl->GetSystemProfileVersion(This,version); | 
 | } | 
 | static FORCEINLINE HRESULT IWMProfileManager2_SetSystemProfileVersion(IWMProfileManager2* This,WMT_VERSION version) { | 
 |     return This->lpVtbl->SetSystemProfileVersion(This,version); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMProfileManager2_INTERFACE_DEFINED__ */ | 
 |  | 
 | HRESULT WINAPI WMCreateProfileManager(IWMProfileManager**); | 
 | /***************************************************************************** | 
 |  * IWMCodecInfo interface | 
 |  */ | 
 | #ifndef __IWMCodecInfo_INTERFACE_DEFINED__ | 
 | #define __IWMCodecInfo_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMCodecInfo, 0xa970f41e, 0x34de, 0x4a98, 0xb3,0xba, 0xe4,0xb3,0xca,0x75,0x28,0xf0); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("a970f41e-34de-4a98-b3ba-e4b3ca7528f0") | 
 | IWMCodecInfo : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCodecInfoCount( | 
 |         REFGUID guid, | 
 |         DWORD *count) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCodecFormatCount( | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD *formatcount) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCodecFormat( | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD formatindex, | 
 |         IWMStreamConfig **streamconfig) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMCodecInfo, 0xa970f41e, 0x34de, 0x4a98, 0xb3,0xba, 0xe4,0xb3,0xca,0x75,0x28,0xf0) | 
 | #endif | 
 | #else | 
 | typedef struct IWMCodecInfoVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMCodecInfo *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMCodecInfo *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMCodecInfo *This); | 
 |  | 
 |     /*** IWMCodecInfo methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)( | 
 |         IWMCodecInfo *This, | 
 |         REFGUID guid, | 
 |         DWORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)( | 
 |         IWMCodecInfo *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD *formatcount); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecFormat)( | 
 |         IWMCodecInfo *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD formatindex, | 
 |         IWMStreamConfig **streamconfig); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMCodecInfoVtbl; | 
 |  | 
 | interface IWMCodecInfo { | 
 |     CONST_VTBL IWMCodecInfoVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMCodecInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMCodecInfo_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMCodecInfo_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMCodecInfo methods ***/ | 
 | #define IWMCodecInfo_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count) | 
 | #define IWMCodecInfo_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount) | 
 | #define IWMCodecInfo_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMCodecInfo_QueryInterface(IWMCodecInfo* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMCodecInfo_AddRef(IWMCodecInfo* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMCodecInfo_Release(IWMCodecInfo* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMCodecInfo methods ***/ | 
 | static FORCEINLINE HRESULT IWMCodecInfo_GetCodecInfoCount(IWMCodecInfo* This,REFGUID guid,DWORD *count) { | 
 |     return This->lpVtbl->GetCodecInfoCount(This,guid,count); | 
 | } | 
 | static FORCEINLINE HRESULT IWMCodecInfo_GetCodecFormatCount(IWMCodecInfo* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) { | 
 |     return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount); | 
 | } | 
 | static FORCEINLINE HRESULT IWMCodecInfo_GetCodecFormat(IWMCodecInfo* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) { | 
 |     return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMCodecInfo_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMCodecInfo2 interface | 
 |  */ | 
 | #ifndef __IWMCodecInfo2_INTERFACE_DEFINED__ | 
 | #define __IWMCodecInfo2_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMCodecInfo2, 0xaa65e273, 0xb686, 0x4056, 0x91,0xec, 0xdd,0x76,0x8d,0x4d,0xf7,0x10); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("aa65e273-b686-4056-91ec-dd768d4df710") | 
 | IWMCodecInfo2 : public IWMCodecInfo | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCodecName( | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         WCHAR *name, | 
 |         DWORD *namesize) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCodecFormatDesc( | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD formatindex, | 
 |         IWMStreamConfig **streamconfig, | 
 |         WCHAR *description, | 
 |         DWORD *descrsize) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMCodecInfo2, 0xaa65e273, 0xb686, 0x4056, 0x91,0xec, 0xdd,0x76,0x8d,0x4d,0xf7,0x10) | 
 | #endif | 
 | #else | 
 | typedef struct IWMCodecInfo2Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMCodecInfo2 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMCodecInfo2 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMCodecInfo2 *This); | 
 |  | 
 |     /*** IWMCodecInfo methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)( | 
 |         IWMCodecInfo2 *This, | 
 |         REFGUID guid, | 
 |         DWORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)( | 
 |         IWMCodecInfo2 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD *formatcount); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecFormat)( | 
 |         IWMCodecInfo2 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD formatindex, | 
 |         IWMStreamConfig **streamconfig); | 
 |  | 
 |     /*** IWMCodecInfo2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecName)( | 
 |         IWMCodecInfo2 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         WCHAR *name, | 
 |         DWORD *namesize); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecFormatDesc)( | 
 |         IWMCodecInfo2 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD formatindex, | 
 |         IWMStreamConfig **streamconfig, | 
 |         WCHAR *description, | 
 |         DWORD *descrsize); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMCodecInfo2Vtbl; | 
 |  | 
 | interface IWMCodecInfo2 { | 
 |     CONST_VTBL IWMCodecInfo2Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMCodecInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMCodecInfo2_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMCodecInfo2_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMCodecInfo methods ***/ | 
 | #define IWMCodecInfo2_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count) | 
 | #define IWMCodecInfo2_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount) | 
 | #define IWMCodecInfo2_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) | 
 | /*** IWMCodecInfo2 methods ***/ | 
 | #define IWMCodecInfo2_GetCodecName(This,guid,codecindex,name,namesize) (This)->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize) | 
 | #define IWMCodecInfo2_GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) (This)->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMCodecInfo2_QueryInterface(IWMCodecInfo2* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMCodecInfo2_AddRef(IWMCodecInfo2* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMCodecInfo2_Release(IWMCodecInfo2* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMCodecInfo methods ***/ | 
 | static FORCEINLINE HRESULT IWMCodecInfo2_GetCodecInfoCount(IWMCodecInfo2* This,REFGUID guid,DWORD *count) { | 
 |     return This->lpVtbl->GetCodecInfoCount(This,guid,count); | 
 | } | 
 | static FORCEINLINE HRESULT IWMCodecInfo2_GetCodecFormatCount(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) { | 
 |     return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount); | 
 | } | 
 | static FORCEINLINE HRESULT IWMCodecInfo2_GetCodecFormat(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) { | 
 |     return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig); | 
 | } | 
 | /*** IWMCodecInfo2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMCodecInfo2_GetCodecName(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,WCHAR *name,DWORD *namesize) { | 
 |     return This->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize); | 
 | } | 
 | static FORCEINLINE HRESULT IWMCodecInfo2_GetCodecFormatDesc(IWMCodecInfo2* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig,WCHAR *description,DWORD *descrsize) { | 
 |     return This->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMCodecInfo2_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMCodecInfo3 interface | 
 |  */ | 
 | #ifndef __IWMCodecInfo3_INTERFACE_DEFINED__ | 
 | #define __IWMCodecInfo3_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMCodecInfo3, 0x7e51f487, 0x4d93, 0x4f98, 0x8a,0xb4, 0x27,0xd0,0x56,0x5a,0xdc,0x51); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("7e51f487-4d93-4f98-8ab4-27d0565adc51") | 
 | IWMCodecInfo3 : public IWMCodecInfo2 | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCodecFormatProp( | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD formatindex, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         DWORD *size) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCodecProp( | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         DWORD *size) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetCodecEnumerationSetting( | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         const BYTE *value, | 
 |         DWORD size) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCodecEnumerationSetting( | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         DWORD *size) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMCodecInfo3, 0x7e51f487, 0x4d93, 0x4f98, 0x8a,0xb4, 0x27,0xd0,0x56,0x5a,0xdc,0x51) | 
 | #endif | 
 | #else | 
 | typedef struct IWMCodecInfo3Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMCodecInfo3 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMCodecInfo3 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMCodecInfo3 *This); | 
 |  | 
 |     /*** IWMCodecInfo methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)( | 
 |         IWMCodecInfo3 *This, | 
 |         REFGUID guid, | 
 |         DWORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecFormatCount)( | 
 |         IWMCodecInfo3 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD *formatcount); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecFormat)( | 
 |         IWMCodecInfo3 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD formatindex, | 
 |         IWMStreamConfig **streamconfig); | 
 |  | 
 |     /*** IWMCodecInfo2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecName)( | 
 |         IWMCodecInfo3 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         WCHAR *name, | 
 |         DWORD *namesize); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecFormatDesc)( | 
 |         IWMCodecInfo3 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD formatindex, | 
 |         IWMStreamConfig **streamconfig, | 
 |         WCHAR *description, | 
 |         DWORD *descrsize); | 
 |  | 
 |     /*** IWMCodecInfo3 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecFormatProp)( | 
 |         IWMCodecInfo3 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         DWORD formatindex, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecProp)( | 
 |         IWMCodecInfo3 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetCodecEnumerationSetting)( | 
 |         IWMCodecInfo3 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         const BYTE *value, | 
 |         DWORD size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecEnumerationSetting)( | 
 |         IWMCodecInfo3 *This, | 
 |         REFGUID guid, | 
 |         DWORD codecindex, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         DWORD *size); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMCodecInfo3Vtbl; | 
 |  | 
 | interface IWMCodecInfo3 { | 
 |     CONST_VTBL IWMCodecInfo3Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMCodecInfo3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMCodecInfo3_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMCodecInfo3_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMCodecInfo methods ***/ | 
 | #define IWMCodecInfo3_GetCodecInfoCount(This,guid,count) (This)->lpVtbl->GetCodecInfoCount(This,guid,count) | 
 | #define IWMCodecInfo3_GetCodecFormatCount(This,guid,codecindex,formatcount) (This)->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount) | 
 | #define IWMCodecInfo3_GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) (This)->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig) | 
 | /*** IWMCodecInfo2 methods ***/ | 
 | #define IWMCodecInfo3_GetCodecName(This,guid,codecindex,name,namesize) (This)->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize) | 
 | #define IWMCodecInfo3_GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) (This)->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize) | 
 | /*** IWMCodecInfo3 methods ***/ | 
 | #define IWMCodecInfo3_GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size) (This)->lpVtbl->GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size) | 
 | #define IWMCodecInfo3_GetCodecProp(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->GetCodecProp(This,guid,codecindex,name,type,value,size) | 
 | #define IWMCodecInfo3_SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) | 
 | #define IWMCodecInfo3_GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) (This)->lpVtbl->GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMCodecInfo3_QueryInterface(IWMCodecInfo3* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMCodecInfo3_AddRef(IWMCodecInfo3* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMCodecInfo3_Release(IWMCodecInfo3* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMCodecInfo methods ***/ | 
 | static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecInfoCount(IWMCodecInfo3* This,REFGUID guid,DWORD *count) { | 
 |     return This->lpVtbl->GetCodecInfoCount(This,guid,count); | 
 | } | 
 | static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecFormatCount(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD *formatcount) { | 
 |     return This->lpVtbl->GetCodecFormatCount(This,guid,codecindex,formatcount); | 
 | } | 
 | static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecFormat(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig) { | 
 |     return This->lpVtbl->GetCodecFormat(This,guid,codecindex,formatindex,streamconfig); | 
 | } | 
 | /*** IWMCodecInfo2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecName(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,WCHAR *name,DWORD *namesize) { | 
 |     return This->lpVtbl->GetCodecName(This,guid,codecindex,name,namesize); | 
 | } | 
 | static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecFormatDesc(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,IWMStreamConfig **streamconfig,WCHAR *description,DWORD *descrsize) { | 
 |     return This->lpVtbl->GetCodecFormatDesc(This,guid,codecindex,formatindex,streamconfig,description,descrsize); | 
 | } | 
 | /*** IWMCodecInfo3 methods ***/ | 
 | static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecFormatProp(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,DWORD formatindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) { | 
 |     return This->lpVtbl->GetCodecFormatProp(This,guid,codecindex,formatindex,name,type,value,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecProp(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) { | 
 |     return This->lpVtbl->GetCodecProp(This,guid,codecindex,name,type,value,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMCodecInfo3_SetCodecEnumerationSetting(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,DWORD size) { | 
 |     return This->lpVtbl->SetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMCodecInfo3_GetCodecEnumerationSetting(IWMCodecInfo3* This,REFGUID guid,DWORD codecindex,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) { | 
 |     return This->lpVtbl->GetCodecEnumerationSetting(This,guid,codecindex,name,type,value,size); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMCodecInfo3_INTERFACE_DEFINED__ */ | 
 |  | 
 | static const WCHAR g_wszNumPasses[] = {'_','P','A','S','S','E','S','U','S','E','D',0}; | 
 | static const WCHAR g_wszVBREnabled[] = {'_','V','B','R','E','N','A','B','L','E','D',0}; | 
 | /***************************************************************************** | 
 |  * IWMMediaProps interface | 
 |  */ | 
 | #ifndef __IWMMediaProps_INTERFACE_DEFINED__ | 
 | #define __IWMMediaProps_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMMediaProps, 0x96406bce, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bce-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMMediaProps : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetType( | 
 |         GUID *pguidType) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMediaType( | 
 |         WM_MEDIA_TYPE *pType, | 
 |         DWORD *pcbType) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetMediaType( | 
 |         WM_MEDIA_TYPE *pType) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMMediaProps, 0x96406bce, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMMediaPropsVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMMediaProps *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMMediaProps *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMMediaProps *This); | 
 |  | 
 |     /*** IWMMediaProps methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetType)( | 
 |         IWMMediaProps *This, | 
 |         GUID *pguidType); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMediaType)( | 
 |         IWMMediaProps *This, | 
 |         WM_MEDIA_TYPE *pType, | 
 |         DWORD *pcbType); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetMediaType)( | 
 |         IWMMediaProps *This, | 
 |         WM_MEDIA_TYPE *pType); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMMediaPropsVtbl; | 
 |  | 
 | interface IWMMediaProps { | 
 |     CONST_VTBL IWMMediaPropsVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMMediaProps_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMMediaProps methods ***/ | 
 | #define IWMMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) | 
 | #define IWMMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType) | 
 | #define IWMMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMMediaProps_QueryInterface(IWMMediaProps* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMMediaProps_AddRef(IWMMediaProps* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMMediaProps_Release(IWMMediaProps* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMMediaProps methods ***/ | 
 | static FORCEINLINE HRESULT IWMMediaProps_GetType(IWMMediaProps* This,GUID *pguidType) { | 
 |     return This->lpVtbl->GetType(This,pguidType); | 
 | } | 
 | static FORCEINLINE HRESULT IWMMediaProps_GetMediaType(IWMMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) { | 
 |     return This->lpVtbl->GetMediaType(This,pType,pcbType); | 
 | } | 
 | static FORCEINLINE HRESULT IWMMediaProps_SetMediaType(IWMMediaProps* This,WM_MEDIA_TYPE *pType) { | 
 |     return This->lpVtbl->SetMediaType(This,pType); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMMediaProps_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMOutputMediaProps interface | 
 |  */ | 
 | #ifndef __IWMOutputMediaProps_INTERFACE_DEFINED__ | 
 | #define __IWMOutputMediaProps_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMOutputMediaProps, 0x96406bd7, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bd7-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMOutputMediaProps : public IWMMediaProps | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStreamGroupName( | 
 |         WCHAR *pwszName, | 
 |         WORD *pcchName) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetConnectionName( | 
 |         WCHAR *pwszName, | 
 |         WORD *pcchName) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMOutputMediaProps, 0x96406bd7, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMOutputMediaPropsVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMOutputMediaProps *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMOutputMediaProps *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMOutputMediaProps *This); | 
 |  | 
 |     /*** IWMMediaProps methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetType)( | 
 |         IWMOutputMediaProps *This, | 
 |         GUID *pguidType); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMediaType)( | 
 |         IWMOutputMediaProps *This, | 
 |         WM_MEDIA_TYPE *pType, | 
 |         DWORD *pcbType); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetMediaType)( | 
 |         IWMOutputMediaProps *This, | 
 |         WM_MEDIA_TYPE *pType); | 
 |  | 
 |     /*** IWMOutputMediaProps methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamGroupName)( | 
 |         IWMOutputMediaProps *This, | 
 |         WCHAR *pwszName, | 
 |         WORD *pcchName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetConnectionName)( | 
 |         IWMOutputMediaProps *This, | 
 |         WCHAR *pwszName, | 
 |         WORD *pcchName); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMOutputMediaPropsVtbl; | 
 |  | 
 | interface IWMOutputMediaProps { | 
 |     CONST_VTBL IWMOutputMediaPropsVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMOutputMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMOutputMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMOutputMediaProps_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMMediaProps methods ***/ | 
 | #define IWMOutputMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) | 
 | #define IWMOutputMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType) | 
 | #define IWMOutputMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType) | 
 | /*** IWMOutputMediaProps methods ***/ | 
 | #define IWMOutputMediaProps_GetStreamGroupName(This,pwszName,pcchName) (This)->lpVtbl->GetStreamGroupName(This,pwszName,pcchName) | 
 | #define IWMOutputMediaProps_GetConnectionName(This,pwszName,pcchName) (This)->lpVtbl->GetConnectionName(This,pwszName,pcchName) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMOutputMediaProps_QueryInterface(IWMOutputMediaProps* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMOutputMediaProps_AddRef(IWMOutputMediaProps* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMOutputMediaProps_Release(IWMOutputMediaProps* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMMediaProps methods ***/ | 
 | static FORCEINLINE HRESULT IWMOutputMediaProps_GetType(IWMOutputMediaProps* This,GUID *pguidType) { | 
 |     return This->lpVtbl->GetType(This,pguidType); | 
 | } | 
 | static FORCEINLINE HRESULT IWMOutputMediaProps_GetMediaType(IWMOutputMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) { | 
 |     return This->lpVtbl->GetMediaType(This,pType,pcbType); | 
 | } | 
 | static FORCEINLINE HRESULT IWMOutputMediaProps_SetMediaType(IWMOutputMediaProps* This,WM_MEDIA_TYPE *pType) { | 
 |     return This->lpVtbl->SetMediaType(This,pType); | 
 | } | 
 | /*** IWMOutputMediaProps methods ***/ | 
 | static FORCEINLINE HRESULT IWMOutputMediaProps_GetStreamGroupName(IWMOutputMediaProps* This,WCHAR *pwszName,WORD *pcchName) { | 
 |     return This->lpVtbl->GetStreamGroupName(This,pwszName,pcchName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMOutputMediaProps_GetConnectionName(IWMOutputMediaProps* This,WCHAR *pwszName,WORD *pcchName) { | 
 |     return This->lpVtbl->GetConnectionName(This,pwszName,pcchName); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMOutputMediaProps_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMMetadataEditor interface | 
 |  */ | 
 | #ifndef __IWMMetadataEditor_INTERFACE_DEFINED__ | 
 | #define __IWMMetadataEditor_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMMetadataEditor, 0x96406bd9, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bd9-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMMetadataEditor : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE Open( | 
 |         const WCHAR *pwszFilename) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Close( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Flush( | 
 |         ) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMMetadataEditor, 0x96406bd9, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMMetadataEditorVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMMetadataEditor *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMMetadataEditor *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMMetadataEditor *This); | 
 |  | 
 |     /*** IWMMetadataEditor methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *Open)( | 
 |         IWMMetadataEditor *This, | 
 |         const WCHAR *pwszFilename); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Close)( | 
 |         IWMMetadataEditor *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Flush)( | 
 |         IWMMetadataEditor *This); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMMetadataEditorVtbl; | 
 |  | 
 | interface IWMMetadataEditor { | 
 |     CONST_VTBL IWMMetadataEditorVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMMetadataEditor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMMetadataEditor_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMMetadataEditor_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMMetadataEditor methods ***/ | 
 | #define IWMMetadataEditor_Open(This,pwszFilename) (This)->lpVtbl->Open(This,pwszFilename) | 
 | #define IWMMetadataEditor_Close(This) (This)->lpVtbl->Close(This) | 
 | #define IWMMetadataEditor_Flush(This) (This)->lpVtbl->Flush(This) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMMetadataEditor_QueryInterface(IWMMetadataEditor* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMMetadataEditor_AddRef(IWMMetadataEditor* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMMetadataEditor_Release(IWMMetadataEditor* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMMetadataEditor methods ***/ | 
 | static FORCEINLINE HRESULT IWMMetadataEditor_Open(IWMMetadataEditor* This,const WCHAR *pwszFilename) { | 
 |     return This->lpVtbl->Open(This,pwszFilename); | 
 | } | 
 | static FORCEINLINE HRESULT IWMMetadataEditor_Close(IWMMetadataEditor* This) { | 
 |     return This->lpVtbl->Close(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMMetadataEditor_Flush(IWMMetadataEditor* This) { | 
 |     return This->lpVtbl->Flush(This); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMMetadataEditor_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReader interface | 
 |  */ | 
 | #ifndef __IWMReader_INTERFACE_DEFINED__ | 
 | #define __IWMReader_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReader, 0x96406bd6, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bd6-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMReader : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE Open( | 
 |         const WCHAR *pwszURL, | 
 |         IWMReaderCallback *pCallback, | 
 |         void *pvContext) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Close( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetOutputCount( | 
 |         DWORD *pcOutputs) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetOutputProps( | 
 |         DWORD dwOutputNum, | 
 |         IWMOutputMediaProps **ppOutput) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetOutputProps( | 
 |         DWORD dwOutputNum, | 
 |         IWMOutputMediaProps *pOutput) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetOutputFormatCount( | 
 |         DWORD dwOutputNumber, | 
 |         DWORD *pcFormats) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetOutputFormat( | 
 |         DWORD dwOutputNumber, | 
 |         DWORD dwFormatNumber, | 
 |         IWMOutputMediaProps **ppProps) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Start( | 
 |         QWORD cnsStart, | 
 |         QWORD cnsDuration, | 
 |         float fRate, | 
 |         void *pvContext) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Stop( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Pause( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Resume( | 
 |         ) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReader, 0x96406bd6, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReader *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReader *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReader *This); | 
 |  | 
 |     /*** IWMReader methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *Open)( | 
 |         IWMReader *This, | 
 |         const WCHAR *pwszURL, | 
 |         IWMReaderCallback *pCallback, | 
 |         void *pvContext); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Close)( | 
 |         IWMReader *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputCount)( | 
 |         IWMReader *This, | 
 |         DWORD *pcOutputs); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputProps)( | 
 |         IWMReader *This, | 
 |         DWORD dwOutputNum, | 
 |         IWMOutputMediaProps **ppOutput); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetOutputProps)( | 
 |         IWMReader *This, | 
 |         DWORD dwOutputNum, | 
 |         IWMOutputMediaProps *pOutput); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputFormatCount)( | 
 |         IWMReader *This, | 
 |         DWORD dwOutputNumber, | 
 |         DWORD *pcFormats); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputFormat)( | 
 |         IWMReader *This, | 
 |         DWORD dwOutputNumber, | 
 |         DWORD dwFormatNumber, | 
 |         IWMOutputMediaProps **ppProps); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Start)( | 
 |         IWMReader *This, | 
 |         QWORD cnsStart, | 
 |         QWORD cnsDuration, | 
 |         float fRate, | 
 |         void *pvContext); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Stop)( | 
 |         IWMReader *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Pause)( | 
 |         IWMReader *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Resume)( | 
 |         IWMReader *This); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderVtbl; | 
 |  | 
 | interface IWMReader { | 
 |     CONST_VTBL IWMReaderVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReader_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReader_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReader methods ***/ | 
 | #define IWMReader_Open(This,pwszURL,pCallback,pvContext) (This)->lpVtbl->Open(This,pwszURL,pCallback,pvContext) | 
 | #define IWMReader_Close(This) (This)->lpVtbl->Close(This) | 
 | #define IWMReader_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs) | 
 | #define IWMReader_GetOutputProps(This,dwOutputNum,ppOutput) (This)->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput) | 
 | #define IWMReader_SetOutputProps(This,dwOutputNum,pOutput) (This)->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput) | 
 | #define IWMReader_GetOutputFormatCount(This,dwOutputNumber,pcFormats) (This)->lpVtbl->GetOutputFormatCount(This,dwOutputNumber,pcFormats) | 
 | #define IWMReader_GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps) (This)->lpVtbl->GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps) | 
 | #define IWMReader_Start(This,cnsStart,cnsDuration,fRate,pvContext) (This)->lpVtbl->Start(This,cnsStart,cnsDuration,fRate,pvContext) | 
 | #define IWMReader_Stop(This) (This)->lpVtbl->Stop(This) | 
 | #define IWMReader_Pause(This) (This)->lpVtbl->Pause(This) | 
 | #define IWMReader_Resume(This) (This)->lpVtbl->Resume(This) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReader_QueryInterface(IWMReader* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReader_AddRef(IWMReader* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReader_Release(IWMReader* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReader methods ***/ | 
 | static FORCEINLINE HRESULT IWMReader_Open(IWMReader* This,const WCHAR *pwszURL,IWMReaderCallback *pCallback,void *pvContext) { | 
 |     return This->lpVtbl->Open(This,pwszURL,pCallback,pvContext); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReader_Close(IWMReader* This) { | 
 |     return This->lpVtbl->Close(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReader_GetOutputCount(IWMReader* This,DWORD *pcOutputs) { | 
 |     return This->lpVtbl->GetOutputCount(This,pcOutputs); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReader_GetOutputProps(IWMReader* This,DWORD dwOutputNum,IWMOutputMediaProps **ppOutput) { | 
 |     return This->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReader_SetOutputProps(IWMReader* This,DWORD dwOutputNum,IWMOutputMediaProps *pOutput) { | 
 |     return This->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReader_GetOutputFormatCount(IWMReader* This,DWORD dwOutputNumber,DWORD *pcFormats) { | 
 |     return This->lpVtbl->GetOutputFormatCount(This,dwOutputNumber,pcFormats); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReader_GetOutputFormat(IWMReader* This,DWORD dwOutputNumber,DWORD dwFormatNumber,IWMOutputMediaProps **ppProps) { | 
 |     return This->lpVtbl->GetOutputFormat(This,dwOutputNumber,dwFormatNumber,ppProps); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReader_Start(IWMReader* This,QWORD cnsStart,QWORD cnsDuration,float fRate,void *pvContext) { | 
 |     return This->lpVtbl->Start(This,cnsStart,cnsDuration,fRate,pvContext); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReader_Stop(IWMReader* This) { | 
 |     return This->lpVtbl->Stop(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReader_Pause(IWMReader* This) { | 
 |     return This->lpVtbl->Pause(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReader_Resume(IWMReader* This) { | 
 |     return This->lpVtbl->Resume(This); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReader_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMPlayerHook interface | 
 |  */ | 
 | #ifndef __IWMPlayerHook_INTERFACE_DEFINED__ | 
 | #define __IWMPlayerHook_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMPlayerHook, 0xe5b7ca9a, 0x0f1c, 0x4f66, 0x90,0x02, 0x74,0xec,0x50,0xd8,0xb3,0x04); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("e5b7ca9a-0f1c-4f66-9002-74ec50d8b304") | 
 | IWMPlayerHook : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE PreDecode( | 
 |         ) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMPlayerHook, 0xe5b7ca9a, 0x0f1c, 0x4f66, 0x90,0x02, 0x74,0xec,0x50,0xd8,0xb3,0x04) | 
 | #endif | 
 | #else | 
 | typedef struct IWMPlayerHookVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMPlayerHook *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMPlayerHook *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMPlayerHook *This); | 
 |  | 
 |     /*** IWMPlayerHook methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *PreDecode)( | 
 |         IWMPlayerHook *This); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMPlayerHookVtbl; | 
 |  | 
 | interface IWMPlayerHook { | 
 |     CONST_VTBL IWMPlayerHookVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMPlayerHook_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMPlayerHook_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMPlayerHook_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMPlayerHook methods ***/ | 
 | #define IWMPlayerHook_PreDecode(This) (This)->lpVtbl->PreDecode(This) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMPlayerHook_QueryInterface(IWMPlayerHook* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMPlayerHook_AddRef(IWMPlayerHook* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMPlayerHook_Release(IWMPlayerHook* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMPlayerHook methods ***/ | 
 | static FORCEINLINE HRESULT IWMPlayerHook_PreDecode(IWMPlayerHook* This) { | 
 |     return This->lpVtbl->PreDecode(This); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMPlayerHook_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderAdvanced interface | 
 |  */ | 
 | #ifndef __IWMReaderAdvanced_INTERFACE_DEFINED__ | 
 | #define __IWMReaderAdvanced_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderAdvanced, 0x96406bea, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bea-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMReaderAdvanced : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE SetUserProvidedClock( | 
 |         WINBOOL fUserClock) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetUserProvidedClock( | 
 |         WINBOOL *pfUserClock) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE DeliverTime( | 
 |         QWORD cnsTime) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetManualStreamSelection( | 
 |         WINBOOL fSelection) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetManualStreamSelection( | 
 |         WINBOOL *pfSelection) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected( | 
 |         WORD cStreamCount, | 
 |         WORD *pwStreamNumbers, | 
 |         WMT_STREAM_SELECTION *pSelections) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStreamSelected( | 
 |         WORD wStreamNum, | 
 |         WMT_STREAM_SELECTION *pSelection) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetReceiveSelectionCallbacks( | 
 |         WINBOOL fGetCallbacks) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetReceiveSelectionCallbacks( | 
 |         WINBOOL *pfGetCallbacks) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetReceiveStreamSamples( | 
 |         WORD wStreamNum, | 
 |         WINBOOL fReceiveStreamSamples) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetReceiveStreamSamples( | 
 |         WORD wStreamNum, | 
 |         WINBOOL *pfReceiveStreamSamples) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput( | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL fAllocate) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput( | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL *pfAllocate) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream( | 
 |         WORD wStreamNum, | 
 |         WINBOOL fAllocate) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream( | 
 |         WORD dwStreamNum, | 
 |         WINBOOL *pfAllocate) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStatistics( | 
 |         WM_READER_STATISTICS *pStatistics) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetClientInfo( | 
 |         WM_READER_CLIENTINFO *pClientInfo) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize( | 
 |         DWORD dwOutput, | 
 |         DWORD *pcbMax) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize( | 
 |         WORD wStream, | 
 |         DWORD *pcbMax) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE NotifyLateDelivery( | 
 |         QWORD cnsLateness) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderAdvanced, 0x96406bea, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderAdvancedVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderAdvanced *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderAdvanced *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderAdvanced *This); | 
 |  | 
 |     /*** IWMReaderAdvanced methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( | 
 |         IWMReaderAdvanced *This, | 
 |         WINBOOL fUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( | 
 |         IWMReaderAdvanced *This, | 
 |         WINBOOL *pfUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *DeliverTime)( | 
 |         IWMReaderAdvanced *This, | 
 |         QWORD cnsTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( | 
 |         IWMReaderAdvanced *This, | 
 |         WINBOOL fSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( | 
 |         IWMReaderAdvanced *This, | 
 |         WINBOOL *pfSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( | 
 |         IWMReaderAdvanced *This, | 
 |         WORD cStreamCount, | 
 |         WORD *pwStreamNumbers, | 
 |         WMT_STREAM_SELECTION *pSelections); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( | 
 |         IWMReaderAdvanced *This, | 
 |         WORD wStreamNum, | 
 |         WMT_STREAM_SELECTION *pSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced *This, | 
 |         WINBOOL fGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced *This, | 
 |         WINBOOL *pfGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL *pfReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( | 
 |         IWMReaderAdvanced *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( | 
 |         IWMReaderAdvanced *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( | 
 |         IWMReaderAdvanced *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( | 
 |         IWMReaderAdvanced *This, | 
 |         WORD dwStreamNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStatistics)( | 
 |         IWMReaderAdvanced *This, | 
 |         WM_READER_STATISTICS *pStatistics); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetClientInfo)( | 
 |         IWMReaderAdvanced *This, | 
 |         WM_READER_CLIENTINFO *pClientInfo); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( | 
 |         IWMReaderAdvanced *This, | 
 |         DWORD dwOutput, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( | 
 |         IWMReaderAdvanced *This, | 
 |         WORD wStream, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( | 
 |         IWMReaderAdvanced *This, | 
 |         QWORD cnsLateness); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderAdvancedVtbl; | 
 |  | 
 | interface IWMReaderAdvanced { | 
 |     CONST_VTBL IWMReaderAdvancedVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderAdvanced_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | #define IWMReaderAdvanced_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) | 
 | #define IWMReaderAdvanced_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) | 
 | #define IWMReaderAdvanced_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) | 
 | #define IWMReaderAdvanced_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) | 
 | #define IWMReaderAdvanced_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) | 
 | #define IWMReaderAdvanced_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) | 
 | #define IWMReaderAdvanced_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) | 
 | #define IWMReaderAdvanced_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) | 
 | #define IWMReaderAdvanced_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) | 
 | #define IWMReaderAdvanced_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) | 
 | #define IWMReaderAdvanced_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) | 
 | #define IWMReaderAdvanced_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) | 
 | #define IWMReaderAdvanced_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) | 
 | #define IWMReaderAdvanced_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) | 
 | #define IWMReaderAdvanced_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) | 
 | #define IWMReaderAdvanced_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) | 
 | #define IWMReaderAdvanced_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) | 
 | #define IWMReaderAdvanced_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) | 
 | #define IWMReaderAdvanced_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) | 
 | #define IWMReaderAdvanced_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_QueryInterface(IWMReaderAdvanced* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced_AddRef(IWMReaderAdvanced* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced_Release(IWMReaderAdvanced* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_SetUserProvidedClock(IWMReaderAdvanced* This,WINBOOL fUserClock) { | 
 |     return This->lpVtbl->SetUserProvidedClock(This,fUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_GetUserProvidedClock(IWMReaderAdvanced* This,WINBOOL *pfUserClock) { | 
 |     return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_DeliverTime(IWMReaderAdvanced* This,QWORD cnsTime) { | 
 |     return This->lpVtbl->DeliverTime(This,cnsTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_SetManualStreamSelection(IWMReaderAdvanced* This,WINBOOL fSelection) { | 
 |     return This->lpVtbl->SetManualStreamSelection(This,fSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_GetManualStreamSelection(IWMReaderAdvanced* This,WINBOOL *pfSelection) { | 
 |     return This->lpVtbl->GetManualStreamSelection(This,pfSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_SetStreamsSelected(IWMReaderAdvanced* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { | 
 |     return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_GetStreamSelected(IWMReaderAdvanced* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { | 
 |     return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_SetReceiveSelectionCallbacks(IWMReaderAdvanced* This,WINBOOL fGetCallbacks) { | 
 |     return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_GetReceiveSelectionCallbacks(IWMReaderAdvanced* This,WINBOOL *pfGetCallbacks) { | 
 |     return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_SetReceiveStreamSamples(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { | 
 |     return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_GetReceiveStreamSamples(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { | 
 |     return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_SetAllocateForOutput(IWMReaderAdvanced* This,DWORD dwOutputNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_GetAllocateForOutput(IWMReaderAdvanced* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_SetAllocateForStream(IWMReaderAdvanced* This,WORD wStreamNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_GetAllocateForStream(IWMReaderAdvanced* This,WORD dwStreamNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_GetStatistics(IWMReaderAdvanced* This,WM_READER_STATISTICS *pStatistics) { | 
 |     return This->lpVtbl->GetStatistics(This,pStatistics); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_SetClientInfo(IWMReaderAdvanced* This,WM_READER_CLIENTINFO *pClientInfo) { | 
 |     return This->lpVtbl->SetClientInfo(This,pClientInfo); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_GetMaxOutputSampleSize(IWMReaderAdvanced* This,DWORD dwOutput,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_GetMaxStreamSampleSize(IWMReaderAdvanced* This,WORD wStream,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced_NotifyLateDelivery(IWMReaderAdvanced* This,QWORD cnsLateness) { | 
 |     return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderAdvanced_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderAdvanced2 interface | 
 |  */ | 
 | #ifndef __IWMReaderAdvanced2_INTERFACE_DEFINED__ | 
 | #define __IWMReaderAdvanced2_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderAdvanced2, 0xae14a945, 0xb90c, 0x4d0d, 0x91,0x27, 0x80,0xd6,0x65,0xf7,0xd7,0x3e); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("ae14a945-b90c-4d0d-9127-80d665f7d73e") | 
 | IWMReaderAdvanced2 : public IWMReaderAdvanced | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE SetPlayMode( | 
 |         WMT_PLAY_MODE Mode) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetPlayMode( | 
 |         WMT_PLAY_MODE *pMode) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetBufferProgress( | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pcnsBuffering) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetDownloadProgress( | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pqwBytesDownloaded, | 
 |         QWORD *pcnsDownload) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetSaveAsProgress( | 
 |         DWORD *pdwPercent) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SaveFileAs( | 
 |         const WCHAR *pwszFilename) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetProtocolName( | 
 |         WCHAR *pwszProtocol, | 
 |         DWORD *pcchProtocol) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE StartAtMarker( | 
 |         WORD wMarkerIndex, | 
 |         QWORD cnsDuration, | 
 |         float fRate, | 
 |         void *pvContext) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetOutputSetting( | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetOutputSetting( | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Preroll( | 
 |         QWORD cnsStart, | 
 |         QWORD cnsDuration, | 
 |         float fRate) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetLogClientID( | 
 |         WINBOOL fLogClientID) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetLogClientID( | 
 |         WINBOOL *pfLogClientID) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE StopBuffering( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE OpenStream( | 
 |         IStream *pStream, | 
 |         IWMReaderCallback *pCallback, | 
 |         void *pvContext) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderAdvanced2, 0xae14a945, 0xb90c, 0x4d0d, 0x91,0x27, 0x80,0xd6,0x65,0xf7,0xd7,0x3e) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderAdvanced2Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderAdvanced2 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderAdvanced2 *This); | 
 |  | 
 |     /*** IWMReaderAdvanced methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WINBOOL fUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WINBOOL *pfUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *DeliverTime)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         QWORD cnsTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WINBOOL fSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WINBOOL *pfSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WORD cStreamCount, | 
 |         WORD *pwStreamNumbers, | 
 |         WMT_STREAM_SELECTION *pSelections); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WORD wStreamNum, | 
 |         WMT_STREAM_SELECTION *pSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WINBOOL fGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WINBOOL *pfGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL *pfReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WORD dwStreamNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStatistics)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WM_READER_STATISTICS *pStatistics); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetClientInfo)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WM_READER_CLIENTINFO *pClientInfo); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         DWORD dwOutput, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WORD wStream, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         QWORD cnsLateness); | 
 |  | 
 |     /*** IWMReaderAdvanced2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetPlayMode)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WMT_PLAY_MODE Mode); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetPlayMode)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WMT_PLAY_MODE *pMode); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetBufferProgress)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pcnsBuffering); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pqwBytesDownloaded, | 
 |         QWORD *pcnsDownload); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         DWORD *pdwPercent); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SaveFileAs)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         const WCHAR *pwszFilename); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProtocolName)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WCHAR *pwszProtocol, | 
 |         DWORD *pcchProtocol); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StartAtMarker)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WORD wMarkerIndex, | 
 |         QWORD cnsDuration, | 
 |         float fRate, | 
 |         void *pvContext); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Preroll)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         QWORD cnsStart, | 
 |         QWORD cnsDuration, | 
 |         float fRate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetLogClientID)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WINBOOL fLogClientID); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLogClientID)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         WINBOOL *pfLogClientID); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StopBuffering)( | 
 |         IWMReaderAdvanced2 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *OpenStream)( | 
 |         IWMReaderAdvanced2 *This, | 
 |         IStream *pStream, | 
 |         IWMReaderCallback *pCallback, | 
 |         void *pvContext); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderAdvanced2Vtbl; | 
 |  | 
 | interface IWMReaderAdvanced2 { | 
 |     CONST_VTBL IWMReaderAdvanced2Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderAdvanced2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderAdvanced2_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderAdvanced2_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | #define IWMReaderAdvanced2_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) | 
 | #define IWMReaderAdvanced2_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) | 
 | #define IWMReaderAdvanced2_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) | 
 | #define IWMReaderAdvanced2_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) | 
 | #define IWMReaderAdvanced2_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) | 
 | #define IWMReaderAdvanced2_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) | 
 | #define IWMReaderAdvanced2_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) | 
 | #define IWMReaderAdvanced2_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) | 
 | #define IWMReaderAdvanced2_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) | 
 | #define IWMReaderAdvanced2_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) | 
 | #define IWMReaderAdvanced2_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) | 
 | #define IWMReaderAdvanced2_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) | 
 | #define IWMReaderAdvanced2_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) | 
 | #define IWMReaderAdvanced2_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) | 
 | #define IWMReaderAdvanced2_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) | 
 | #define IWMReaderAdvanced2_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) | 
 | #define IWMReaderAdvanced2_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) | 
 | #define IWMReaderAdvanced2_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) | 
 | #define IWMReaderAdvanced2_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) | 
 | #define IWMReaderAdvanced2_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) | 
 | /*** IWMReaderAdvanced2 methods ***/ | 
 | #define IWMReaderAdvanced2_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode) | 
 | #define IWMReaderAdvanced2_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode) | 
 | #define IWMReaderAdvanced2_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering) | 
 | #define IWMReaderAdvanced2_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) | 
 | #define IWMReaderAdvanced2_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent) | 
 | #define IWMReaderAdvanced2_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename) | 
 | #define IWMReaderAdvanced2_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol) | 
 | #define IWMReaderAdvanced2_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) | 
 | #define IWMReaderAdvanced2_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) | 
 | #define IWMReaderAdvanced2_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) | 
 | #define IWMReaderAdvanced2_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate) | 
 | #define IWMReaderAdvanced2_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID) | 
 | #define IWMReaderAdvanced2_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID) | 
 | #define IWMReaderAdvanced2_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) | 
 | #define IWMReaderAdvanced2_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_QueryInterface(IWMReaderAdvanced2* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced2_AddRef(IWMReaderAdvanced2* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced2_Release(IWMReaderAdvanced2* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SetUserProvidedClock(IWMReaderAdvanced2* This,WINBOOL fUserClock) { | 
 |     return This->lpVtbl->SetUserProvidedClock(This,fUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetUserProvidedClock(IWMReaderAdvanced2* This,WINBOOL *pfUserClock) { | 
 |     return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_DeliverTime(IWMReaderAdvanced2* This,QWORD cnsTime) { | 
 |     return This->lpVtbl->DeliverTime(This,cnsTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SetManualStreamSelection(IWMReaderAdvanced2* This,WINBOOL fSelection) { | 
 |     return This->lpVtbl->SetManualStreamSelection(This,fSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetManualStreamSelection(IWMReaderAdvanced2* This,WINBOOL *pfSelection) { | 
 |     return This->lpVtbl->GetManualStreamSelection(This,pfSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SetStreamsSelected(IWMReaderAdvanced2* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { | 
 |     return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetStreamSelected(IWMReaderAdvanced2* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { | 
 |     return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SetReceiveSelectionCallbacks(IWMReaderAdvanced2* This,WINBOOL fGetCallbacks) { | 
 |     return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetReceiveSelectionCallbacks(IWMReaderAdvanced2* This,WINBOOL *pfGetCallbacks) { | 
 |     return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SetReceiveStreamSamples(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { | 
 |     return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetReceiveStreamSamples(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { | 
 |     return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SetAllocateForOutput(IWMReaderAdvanced2* This,DWORD dwOutputNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetAllocateForOutput(IWMReaderAdvanced2* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SetAllocateForStream(IWMReaderAdvanced2* This,WORD wStreamNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetAllocateForStream(IWMReaderAdvanced2* This,WORD dwStreamNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetStatistics(IWMReaderAdvanced2* This,WM_READER_STATISTICS *pStatistics) { | 
 |     return This->lpVtbl->GetStatistics(This,pStatistics); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SetClientInfo(IWMReaderAdvanced2* This,WM_READER_CLIENTINFO *pClientInfo) { | 
 |     return This->lpVtbl->SetClientInfo(This,pClientInfo); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetMaxOutputSampleSize(IWMReaderAdvanced2* This,DWORD dwOutput,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetMaxStreamSampleSize(IWMReaderAdvanced2* This,WORD wStream,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_NotifyLateDelivery(IWMReaderAdvanced2* This,QWORD cnsLateness) { | 
 |     return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); | 
 | } | 
 | /*** IWMReaderAdvanced2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SetPlayMode(IWMReaderAdvanced2* This,WMT_PLAY_MODE Mode) { | 
 |     return This->lpVtbl->SetPlayMode(This,Mode); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetPlayMode(IWMReaderAdvanced2* This,WMT_PLAY_MODE *pMode) { | 
 |     return This->lpVtbl->GetPlayMode(This,pMode); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetBufferProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent,QWORD *pcnsBuffering) { | 
 |     return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetDownloadProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) { | 
 |     return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetSaveAsProgress(IWMReaderAdvanced2* This,DWORD *pdwPercent) { | 
 |     return This->lpVtbl->GetSaveAsProgress(This,pdwPercent); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SaveFileAs(IWMReaderAdvanced2* This,const WCHAR *pwszFilename) { | 
 |     return This->lpVtbl->SaveFileAs(This,pwszFilename); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetProtocolName(IWMReaderAdvanced2* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) { | 
 |     return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_StartAtMarker(IWMReaderAdvanced2* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) { | 
 |     return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetOutputSetting(IWMReaderAdvanced2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { | 
 |     return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SetOutputSetting(IWMReaderAdvanced2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { | 
 |     return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_Preroll(IWMReaderAdvanced2* This,QWORD cnsStart,QWORD cnsDuration,float fRate) { | 
 |     return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_SetLogClientID(IWMReaderAdvanced2* This,WINBOOL fLogClientID) { | 
 |     return This->lpVtbl->SetLogClientID(This,fLogClientID); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_GetLogClientID(IWMReaderAdvanced2* This,WINBOOL *pfLogClientID) { | 
 |     return This->lpVtbl->GetLogClientID(This,pfLogClientID); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_StopBuffering(IWMReaderAdvanced2* This) { | 
 |     return This->lpVtbl->StopBuffering(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced2_OpenStream(IWMReaderAdvanced2* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) { | 
 |     return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderAdvanced2_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderAdvanced3 interface | 
 |  */ | 
 | #ifndef __IWMReaderAdvanced3_INTERFACE_DEFINED__ | 
 | #define __IWMReaderAdvanced3_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderAdvanced3, 0x5dc0674b, 0xf04b, 0x4a4e, 0x9f,0x2a, 0xb1,0xaf,0xde,0x2c,0x81,0x00); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("5dc0674b-f04b-4a4e-9f2a-b1afde2c8100") | 
 | IWMReaderAdvanced3 : public IWMReaderAdvanced2 | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE StopNetStreaming( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE StartAtPosition( | 
 |         WORD wStreamNum, | 
 |         void *pvOffsetStart, | 
 |         void *pvDuration, | 
 |         WMT_OFFSET_FORMAT dwOffsetFormat, | 
 |         float fRate, | 
 |         void *pvContext) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderAdvanced3, 0x5dc0674b, 0xf04b, 0x4a4e, 0x9f,0x2a, 0xb1,0xaf,0xde,0x2c,0x81,0x00) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderAdvanced3Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderAdvanced3 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderAdvanced3 *This); | 
 |  | 
 |     /*** IWMReaderAdvanced methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WINBOOL fUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WINBOOL *pfUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *DeliverTime)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         QWORD cnsTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WINBOOL fSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WINBOOL *pfSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WORD cStreamCount, | 
 |         WORD *pwStreamNumbers, | 
 |         WMT_STREAM_SELECTION *pSelections); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WORD wStreamNum, | 
 |         WMT_STREAM_SELECTION *pSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WINBOOL fGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WINBOOL *pfGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL *pfReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WORD dwStreamNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStatistics)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WM_READER_STATISTICS *pStatistics); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetClientInfo)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WM_READER_CLIENTINFO *pClientInfo); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         DWORD dwOutput, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WORD wStream, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         QWORD cnsLateness); | 
 |  | 
 |     /*** IWMReaderAdvanced2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetPlayMode)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WMT_PLAY_MODE Mode); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetPlayMode)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WMT_PLAY_MODE *pMode); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetBufferProgress)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pcnsBuffering); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pqwBytesDownloaded, | 
 |         QWORD *pcnsDownload); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         DWORD *pdwPercent); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SaveFileAs)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         const WCHAR *pwszFilename); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProtocolName)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WCHAR *pwszProtocol, | 
 |         DWORD *pcchProtocol); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StartAtMarker)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WORD wMarkerIndex, | 
 |         QWORD cnsDuration, | 
 |         float fRate, | 
 |         void *pvContext); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Preroll)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         QWORD cnsStart, | 
 |         QWORD cnsDuration, | 
 |         float fRate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetLogClientID)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WINBOOL fLogClientID); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLogClientID)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WINBOOL *pfLogClientID); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StopBuffering)( | 
 |         IWMReaderAdvanced3 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *OpenStream)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         IStream *pStream, | 
 |         IWMReaderCallback *pCallback, | 
 |         void *pvContext); | 
 |  | 
 |     /*** IWMReaderAdvanced3 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *StopNetStreaming)( | 
 |         IWMReaderAdvanced3 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StartAtPosition)( | 
 |         IWMReaderAdvanced3 *This, | 
 |         WORD wStreamNum, | 
 |         void *pvOffsetStart, | 
 |         void *pvDuration, | 
 |         WMT_OFFSET_FORMAT dwOffsetFormat, | 
 |         float fRate, | 
 |         void *pvContext); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderAdvanced3Vtbl; | 
 |  | 
 | interface IWMReaderAdvanced3 { | 
 |     CONST_VTBL IWMReaderAdvanced3Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderAdvanced3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderAdvanced3_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderAdvanced3_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | #define IWMReaderAdvanced3_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) | 
 | #define IWMReaderAdvanced3_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) | 
 | #define IWMReaderAdvanced3_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) | 
 | #define IWMReaderAdvanced3_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) | 
 | #define IWMReaderAdvanced3_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) | 
 | #define IWMReaderAdvanced3_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) | 
 | #define IWMReaderAdvanced3_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) | 
 | #define IWMReaderAdvanced3_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) | 
 | #define IWMReaderAdvanced3_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) | 
 | #define IWMReaderAdvanced3_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) | 
 | #define IWMReaderAdvanced3_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) | 
 | #define IWMReaderAdvanced3_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) | 
 | #define IWMReaderAdvanced3_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) | 
 | #define IWMReaderAdvanced3_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) | 
 | #define IWMReaderAdvanced3_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) | 
 | #define IWMReaderAdvanced3_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) | 
 | #define IWMReaderAdvanced3_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) | 
 | #define IWMReaderAdvanced3_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) | 
 | #define IWMReaderAdvanced3_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) | 
 | #define IWMReaderAdvanced3_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) | 
 | /*** IWMReaderAdvanced2 methods ***/ | 
 | #define IWMReaderAdvanced3_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode) | 
 | #define IWMReaderAdvanced3_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode) | 
 | #define IWMReaderAdvanced3_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering) | 
 | #define IWMReaderAdvanced3_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) | 
 | #define IWMReaderAdvanced3_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent) | 
 | #define IWMReaderAdvanced3_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename) | 
 | #define IWMReaderAdvanced3_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol) | 
 | #define IWMReaderAdvanced3_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) | 
 | #define IWMReaderAdvanced3_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) | 
 | #define IWMReaderAdvanced3_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) | 
 | #define IWMReaderAdvanced3_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate) | 
 | #define IWMReaderAdvanced3_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID) | 
 | #define IWMReaderAdvanced3_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID) | 
 | #define IWMReaderAdvanced3_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) | 
 | #define IWMReaderAdvanced3_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext) | 
 | /*** IWMReaderAdvanced3 methods ***/ | 
 | #define IWMReaderAdvanced3_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This) | 
 | #define IWMReaderAdvanced3_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_QueryInterface(IWMReaderAdvanced3* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced3_AddRef(IWMReaderAdvanced3* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced3_Release(IWMReaderAdvanced3* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SetUserProvidedClock(IWMReaderAdvanced3* This,WINBOOL fUserClock) { | 
 |     return This->lpVtbl->SetUserProvidedClock(This,fUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetUserProvidedClock(IWMReaderAdvanced3* This,WINBOOL *pfUserClock) { | 
 |     return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_DeliverTime(IWMReaderAdvanced3* This,QWORD cnsTime) { | 
 |     return This->lpVtbl->DeliverTime(This,cnsTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SetManualStreamSelection(IWMReaderAdvanced3* This,WINBOOL fSelection) { | 
 |     return This->lpVtbl->SetManualStreamSelection(This,fSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetManualStreamSelection(IWMReaderAdvanced3* This,WINBOOL *pfSelection) { | 
 |     return This->lpVtbl->GetManualStreamSelection(This,pfSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SetStreamsSelected(IWMReaderAdvanced3* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { | 
 |     return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetStreamSelected(IWMReaderAdvanced3* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { | 
 |     return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SetReceiveSelectionCallbacks(IWMReaderAdvanced3* This,WINBOOL fGetCallbacks) { | 
 |     return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetReceiveSelectionCallbacks(IWMReaderAdvanced3* This,WINBOOL *pfGetCallbacks) { | 
 |     return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SetReceiveStreamSamples(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { | 
 |     return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetReceiveStreamSamples(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { | 
 |     return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SetAllocateForOutput(IWMReaderAdvanced3* This,DWORD dwOutputNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetAllocateForOutput(IWMReaderAdvanced3* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SetAllocateForStream(IWMReaderAdvanced3* This,WORD wStreamNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetAllocateForStream(IWMReaderAdvanced3* This,WORD dwStreamNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetStatistics(IWMReaderAdvanced3* This,WM_READER_STATISTICS *pStatistics) { | 
 |     return This->lpVtbl->GetStatistics(This,pStatistics); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SetClientInfo(IWMReaderAdvanced3* This,WM_READER_CLIENTINFO *pClientInfo) { | 
 |     return This->lpVtbl->SetClientInfo(This,pClientInfo); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetMaxOutputSampleSize(IWMReaderAdvanced3* This,DWORD dwOutput,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetMaxStreamSampleSize(IWMReaderAdvanced3* This,WORD wStream,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_NotifyLateDelivery(IWMReaderAdvanced3* This,QWORD cnsLateness) { | 
 |     return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); | 
 | } | 
 | /*** IWMReaderAdvanced2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SetPlayMode(IWMReaderAdvanced3* This,WMT_PLAY_MODE Mode) { | 
 |     return This->lpVtbl->SetPlayMode(This,Mode); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetPlayMode(IWMReaderAdvanced3* This,WMT_PLAY_MODE *pMode) { | 
 |     return This->lpVtbl->GetPlayMode(This,pMode); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetBufferProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent,QWORD *pcnsBuffering) { | 
 |     return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetDownloadProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) { | 
 |     return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetSaveAsProgress(IWMReaderAdvanced3* This,DWORD *pdwPercent) { | 
 |     return This->lpVtbl->GetSaveAsProgress(This,pdwPercent); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SaveFileAs(IWMReaderAdvanced3* This,const WCHAR *pwszFilename) { | 
 |     return This->lpVtbl->SaveFileAs(This,pwszFilename); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetProtocolName(IWMReaderAdvanced3* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) { | 
 |     return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_StartAtMarker(IWMReaderAdvanced3* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) { | 
 |     return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetOutputSetting(IWMReaderAdvanced3* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { | 
 |     return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SetOutputSetting(IWMReaderAdvanced3* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { | 
 |     return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_Preroll(IWMReaderAdvanced3* This,QWORD cnsStart,QWORD cnsDuration,float fRate) { | 
 |     return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_SetLogClientID(IWMReaderAdvanced3* This,WINBOOL fLogClientID) { | 
 |     return This->lpVtbl->SetLogClientID(This,fLogClientID); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_GetLogClientID(IWMReaderAdvanced3* This,WINBOOL *pfLogClientID) { | 
 |     return This->lpVtbl->GetLogClientID(This,pfLogClientID); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_StopBuffering(IWMReaderAdvanced3* This) { | 
 |     return This->lpVtbl->StopBuffering(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_OpenStream(IWMReaderAdvanced3* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) { | 
 |     return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext); | 
 | } | 
 | /*** IWMReaderAdvanced3 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_StopNetStreaming(IWMReaderAdvanced3* This) { | 
 |     return This->lpVtbl->StopNetStreaming(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced3_StartAtPosition(IWMReaderAdvanced3* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) { | 
 |     return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderAdvanced3_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderAdvanced4 interface | 
 |  */ | 
 | #ifndef __IWMReaderAdvanced4_INTERFACE_DEFINED__ | 
 | #define __IWMReaderAdvanced4_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderAdvanced4, 0x945a76a2, 0x12ae, 0x4d48, 0xbd,0x3c, 0xcd,0x1d,0x90,0x39,0x9b,0x85); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("945a76a2-12ae-4d48-bd3c-cd1d90399b85") | 
 | IWMReaderAdvanced4 : public IWMReaderAdvanced3 | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetLanguageCount( | 
 |         DWORD dwOutputNum, | 
 |         WORD *pwLanguageCount) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetLanguage( | 
 |         DWORD dwOutputNum, | 
 |         WORD wLanguage, | 
 |         WCHAR *pwszLanguageString, | 
 |         WORD *pcchLanguageStringLength) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMaxSpeedFactor( | 
 |         double *pdblFactor) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE IsUsingFastCache( | 
 |         WINBOOL *pfUsingFastCache) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddLogParam( | 
 |         LPCWSTR wszNameSpace, | 
 |         LPCWSTR wszName, | 
 |         LPCWSTR wszValue) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SendLogParams( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CanSaveFileAs( | 
 |         WINBOOL *pfCanSave) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CancelSaveFileAs( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetURL( | 
 |         WCHAR *pwszURL, | 
 |         DWORD *pcchURL) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderAdvanced4, 0x945a76a2, 0x12ae, 0x4d48, 0xbd,0x3c, 0xcd,0x1d,0x90,0x39,0x9b,0x85) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderAdvanced4Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderAdvanced4 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderAdvanced4 *This); | 
 |  | 
 |     /*** IWMReaderAdvanced methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WINBOOL fUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WINBOOL *pfUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *DeliverTime)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         QWORD cnsTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WINBOOL fSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WINBOOL *pfSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WORD cStreamCount, | 
 |         WORD *pwStreamNumbers, | 
 |         WMT_STREAM_SELECTION *pSelections); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WORD wStreamNum, | 
 |         WMT_STREAM_SELECTION *pSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WINBOOL fGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WINBOOL *pfGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL *pfReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WORD dwStreamNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStatistics)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WM_READER_STATISTICS *pStatistics); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetClientInfo)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WM_READER_CLIENTINFO *pClientInfo); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         DWORD dwOutput, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WORD wStream, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         QWORD cnsLateness); | 
 |  | 
 |     /*** IWMReaderAdvanced2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetPlayMode)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WMT_PLAY_MODE Mode); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetPlayMode)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WMT_PLAY_MODE *pMode); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetBufferProgress)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pcnsBuffering); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pqwBytesDownloaded, | 
 |         QWORD *pcnsDownload); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         DWORD *pdwPercent); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SaveFileAs)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         const WCHAR *pwszFilename); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProtocolName)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WCHAR *pwszProtocol, | 
 |         DWORD *pcchProtocol); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StartAtMarker)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WORD wMarkerIndex, | 
 |         QWORD cnsDuration, | 
 |         float fRate, | 
 |         void *pvContext); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Preroll)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         QWORD cnsStart, | 
 |         QWORD cnsDuration, | 
 |         float fRate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetLogClientID)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WINBOOL fLogClientID); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLogClientID)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WINBOOL *pfLogClientID); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StopBuffering)( | 
 |         IWMReaderAdvanced4 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *OpenStream)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         IStream *pStream, | 
 |         IWMReaderCallback *pCallback, | 
 |         void *pvContext); | 
 |  | 
 |     /*** IWMReaderAdvanced3 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *StopNetStreaming)( | 
 |         IWMReaderAdvanced4 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StartAtPosition)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WORD wStreamNum, | 
 |         void *pvOffsetStart, | 
 |         void *pvDuration, | 
 |         WMT_OFFSET_FORMAT dwOffsetFormat, | 
 |         float fRate, | 
 |         void *pvContext); | 
 |  | 
 |     /*** IWMReaderAdvanced4 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetLanguageCount)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         DWORD dwOutputNum, | 
 |         WORD *pwLanguageCount); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLanguage)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         DWORD dwOutputNum, | 
 |         WORD wLanguage, | 
 |         WCHAR *pwszLanguageString, | 
 |         WORD *pcchLanguageStringLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         double *pdblFactor); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WINBOOL *pfUsingFastCache); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddLogParam)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         LPCWSTR wszNameSpace, | 
 |         LPCWSTR wszName, | 
 |         LPCWSTR wszValue); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SendLogParams)( | 
 |         IWMReaderAdvanced4 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WINBOOL *pfCanSave); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)( | 
 |         IWMReaderAdvanced4 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetURL)( | 
 |         IWMReaderAdvanced4 *This, | 
 |         WCHAR *pwszURL, | 
 |         DWORD *pcchURL); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderAdvanced4Vtbl; | 
 |  | 
 | interface IWMReaderAdvanced4 { | 
 |     CONST_VTBL IWMReaderAdvanced4Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderAdvanced4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderAdvanced4_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderAdvanced4_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | #define IWMReaderAdvanced4_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) | 
 | #define IWMReaderAdvanced4_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) | 
 | #define IWMReaderAdvanced4_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) | 
 | #define IWMReaderAdvanced4_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) | 
 | #define IWMReaderAdvanced4_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) | 
 | #define IWMReaderAdvanced4_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) | 
 | #define IWMReaderAdvanced4_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) | 
 | #define IWMReaderAdvanced4_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) | 
 | #define IWMReaderAdvanced4_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) | 
 | #define IWMReaderAdvanced4_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) | 
 | #define IWMReaderAdvanced4_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) | 
 | #define IWMReaderAdvanced4_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) | 
 | #define IWMReaderAdvanced4_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) | 
 | #define IWMReaderAdvanced4_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) | 
 | #define IWMReaderAdvanced4_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) | 
 | #define IWMReaderAdvanced4_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) | 
 | #define IWMReaderAdvanced4_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) | 
 | #define IWMReaderAdvanced4_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) | 
 | #define IWMReaderAdvanced4_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) | 
 | #define IWMReaderAdvanced4_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) | 
 | /*** IWMReaderAdvanced2 methods ***/ | 
 | #define IWMReaderAdvanced4_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode) | 
 | #define IWMReaderAdvanced4_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode) | 
 | #define IWMReaderAdvanced4_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering) | 
 | #define IWMReaderAdvanced4_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) | 
 | #define IWMReaderAdvanced4_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent) | 
 | #define IWMReaderAdvanced4_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename) | 
 | #define IWMReaderAdvanced4_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol) | 
 | #define IWMReaderAdvanced4_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) | 
 | #define IWMReaderAdvanced4_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) | 
 | #define IWMReaderAdvanced4_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) | 
 | #define IWMReaderAdvanced4_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate) | 
 | #define IWMReaderAdvanced4_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID) | 
 | #define IWMReaderAdvanced4_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID) | 
 | #define IWMReaderAdvanced4_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) | 
 | #define IWMReaderAdvanced4_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext) | 
 | /*** IWMReaderAdvanced3 methods ***/ | 
 | #define IWMReaderAdvanced4_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This) | 
 | #define IWMReaderAdvanced4_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) | 
 | /*** IWMReaderAdvanced4 methods ***/ | 
 | #define IWMReaderAdvanced4_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount) | 
 | #define IWMReaderAdvanced4_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) | 
 | #define IWMReaderAdvanced4_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor) | 
 | #define IWMReaderAdvanced4_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache) | 
 | #define IWMReaderAdvanced4_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue) | 
 | #define IWMReaderAdvanced4_SendLogParams(This) (This)->lpVtbl->SendLogParams(This) | 
 | #define IWMReaderAdvanced4_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave) | 
 | #define IWMReaderAdvanced4_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This) | 
 | #define IWMReaderAdvanced4_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_QueryInterface(IWMReaderAdvanced4* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced4_AddRef(IWMReaderAdvanced4* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced4_Release(IWMReaderAdvanced4* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SetUserProvidedClock(IWMReaderAdvanced4* This,WINBOOL fUserClock) { | 
 |     return This->lpVtbl->SetUserProvidedClock(This,fUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetUserProvidedClock(IWMReaderAdvanced4* This,WINBOOL *pfUserClock) { | 
 |     return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_DeliverTime(IWMReaderAdvanced4* This,QWORD cnsTime) { | 
 |     return This->lpVtbl->DeliverTime(This,cnsTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SetManualStreamSelection(IWMReaderAdvanced4* This,WINBOOL fSelection) { | 
 |     return This->lpVtbl->SetManualStreamSelection(This,fSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetManualStreamSelection(IWMReaderAdvanced4* This,WINBOOL *pfSelection) { | 
 |     return This->lpVtbl->GetManualStreamSelection(This,pfSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SetStreamsSelected(IWMReaderAdvanced4* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { | 
 |     return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetStreamSelected(IWMReaderAdvanced4* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { | 
 |     return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SetReceiveSelectionCallbacks(IWMReaderAdvanced4* This,WINBOOL fGetCallbacks) { | 
 |     return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetReceiveSelectionCallbacks(IWMReaderAdvanced4* This,WINBOOL *pfGetCallbacks) { | 
 |     return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SetReceiveStreamSamples(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { | 
 |     return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetReceiveStreamSamples(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { | 
 |     return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SetAllocateForOutput(IWMReaderAdvanced4* This,DWORD dwOutputNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetAllocateForOutput(IWMReaderAdvanced4* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SetAllocateForStream(IWMReaderAdvanced4* This,WORD wStreamNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetAllocateForStream(IWMReaderAdvanced4* This,WORD dwStreamNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetStatistics(IWMReaderAdvanced4* This,WM_READER_STATISTICS *pStatistics) { | 
 |     return This->lpVtbl->GetStatistics(This,pStatistics); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SetClientInfo(IWMReaderAdvanced4* This,WM_READER_CLIENTINFO *pClientInfo) { | 
 |     return This->lpVtbl->SetClientInfo(This,pClientInfo); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetMaxOutputSampleSize(IWMReaderAdvanced4* This,DWORD dwOutput,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetMaxStreamSampleSize(IWMReaderAdvanced4* This,WORD wStream,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_NotifyLateDelivery(IWMReaderAdvanced4* This,QWORD cnsLateness) { | 
 |     return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); | 
 | } | 
 | /*** IWMReaderAdvanced2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SetPlayMode(IWMReaderAdvanced4* This,WMT_PLAY_MODE Mode) { | 
 |     return This->lpVtbl->SetPlayMode(This,Mode); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetPlayMode(IWMReaderAdvanced4* This,WMT_PLAY_MODE *pMode) { | 
 |     return This->lpVtbl->GetPlayMode(This,pMode); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetBufferProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent,QWORD *pcnsBuffering) { | 
 |     return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetDownloadProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) { | 
 |     return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetSaveAsProgress(IWMReaderAdvanced4* This,DWORD *pdwPercent) { | 
 |     return This->lpVtbl->GetSaveAsProgress(This,pdwPercent); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SaveFileAs(IWMReaderAdvanced4* This,const WCHAR *pwszFilename) { | 
 |     return This->lpVtbl->SaveFileAs(This,pwszFilename); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetProtocolName(IWMReaderAdvanced4* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) { | 
 |     return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_StartAtMarker(IWMReaderAdvanced4* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) { | 
 |     return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetOutputSetting(IWMReaderAdvanced4* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { | 
 |     return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SetOutputSetting(IWMReaderAdvanced4* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { | 
 |     return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_Preroll(IWMReaderAdvanced4* This,QWORD cnsStart,QWORD cnsDuration,float fRate) { | 
 |     return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SetLogClientID(IWMReaderAdvanced4* This,WINBOOL fLogClientID) { | 
 |     return This->lpVtbl->SetLogClientID(This,fLogClientID); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetLogClientID(IWMReaderAdvanced4* This,WINBOOL *pfLogClientID) { | 
 |     return This->lpVtbl->GetLogClientID(This,pfLogClientID); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_StopBuffering(IWMReaderAdvanced4* This) { | 
 |     return This->lpVtbl->StopBuffering(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_OpenStream(IWMReaderAdvanced4* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) { | 
 |     return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext); | 
 | } | 
 | /*** IWMReaderAdvanced3 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_StopNetStreaming(IWMReaderAdvanced4* This) { | 
 |     return This->lpVtbl->StopNetStreaming(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_StartAtPosition(IWMReaderAdvanced4* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) { | 
 |     return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext); | 
 | } | 
 | /*** IWMReaderAdvanced4 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetLanguageCount(IWMReaderAdvanced4* This,DWORD dwOutputNum,WORD *pwLanguageCount) { | 
 |     return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetLanguage(IWMReaderAdvanced4* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) { | 
 |     return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetMaxSpeedFactor(IWMReaderAdvanced4* This,double *pdblFactor) { | 
 |     return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_IsUsingFastCache(IWMReaderAdvanced4* This,WINBOOL *pfUsingFastCache) { | 
 |     return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_AddLogParam(IWMReaderAdvanced4* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) { | 
 |     return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_SendLogParams(IWMReaderAdvanced4* This) { | 
 |     return This->lpVtbl->SendLogParams(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_CanSaveFileAs(IWMReaderAdvanced4* This,WINBOOL *pfCanSave) { | 
 |     return This->lpVtbl->CanSaveFileAs(This,pfCanSave); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_CancelSaveFileAs(IWMReaderAdvanced4* This) { | 
 |     return This->lpVtbl->CancelSaveFileAs(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced4_GetURL(IWMReaderAdvanced4* This,WCHAR *pwszURL,DWORD *pcchURL) { | 
 |     return This->lpVtbl->GetURL(This,pwszURL,pcchURL); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderAdvanced4_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderAdvanced5 interface | 
 |  */ | 
 | #ifndef __IWMReaderAdvanced5_INTERFACE_DEFINED__ | 
 | #define __IWMReaderAdvanced5_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderAdvanced5, 0x24c44db0, 0x55d1, 0x49ae, 0xa5,0xcc, 0xf1,0x38,0x15,0xe3,0x63,0x63); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("24c44db0-55d1-49ae-a5cc-f13815e36363") | 
 | IWMReaderAdvanced5 : public IWMReaderAdvanced4 | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE SetPlayerHook( | 
 |         DWORD dwOutputNum, | 
 |         IWMPlayerHook *pHook) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderAdvanced5, 0x24c44db0, 0x55d1, 0x49ae, 0xa5,0xcc, 0xf1,0x38,0x15,0xe3,0x63,0x63) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderAdvanced5Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderAdvanced5 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderAdvanced5 *This); | 
 |  | 
 |     /*** IWMReaderAdvanced methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WINBOOL fUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WINBOOL *pfUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *DeliverTime)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         QWORD cnsTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WINBOOL fSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WINBOOL *pfSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WORD cStreamCount, | 
 |         WORD *pwStreamNumbers, | 
 |         WMT_STREAM_SELECTION *pSelections); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WORD wStreamNum, | 
 |         WMT_STREAM_SELECTION *pSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WINBOOL fGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WINBOOL *pfGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL *pfReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WORD dwStreamNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStatistics)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WM_READER_STATISTICS *pStatistics); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetClientInfo)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WM_READER_CLIENTINFO *pClientInfo); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         DWORD dwOutput, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WORD wStream, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         QWORD cnsLateness); | 
 |  | 
 |     /*** IWMReaderAdvanced2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetPlayMode)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WMT_PLAY_MODE Mode); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetPlayMode)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WMT_PLAY_MODE *pMode); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetBufferProgress)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pcnsBuffering); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pqwBytesDownloaded, | 
 |         QWORD *pcnsDownload); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         DWORD *pdwPercent); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SaveFileAs)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         const WCHAR *pwszFilename); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProtocolName)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WCHAR *pwszProtocol, | 
 |         DWORD *pcchProtocol); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StartAtMarker)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WORD wMarkerIndex, | 
 |         QWORD cnsDuration, | 
 |         float fRate, | 
 |         void *pvContext); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Preroll)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         QWORD cnsStart, | 
 |         QWORD cnsDuration, | 
 |         float fRate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetLogClientID)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WINBOOL fLogClientID); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLogClientID)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WINBOOL *pfLogClientID); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StopBuffering)( | 
 |         IWMReaderAdvanced5 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *OpenStream)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         IStream *pStream, | 
 |         IWMReaderCallback *pCallback, | 
 |         void *pvContext); | 
 |  | 
 |     /*** IWMReaderAdvanced3 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *StopNetStreaming)( | 
 |         IWMReaderAdvanced5 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StartAtPosition)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WORD wStreamNum, | 
 |         void *pvOffsetStart, | 
 |         void *pvDuration, | 
 |         WMT_OFFSET_FORMAT dwOffsetFormat, | 
 |         float fRate, | 
 |         void *pvContext); | 
 |  | 
 |     /*** IWMReaderAdvanced4 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetLanguageCount)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         DWORD dwOutputNum, | 
 |         WORD *pwLanguageCount); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLanguage)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         DWORD dwOutputNum, | 
 |         WORD wLanguage, | 
 |         WCHAR *pwszLanguageString, | 
 |         WORD *pcchLanguageStringLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         double *pdblFactor); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WINBOOL *pfUsingFastCache); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddLogParam)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         LPCWSTR wszNameSpace, | 
 |         LPCWSTR wszName, | 
 |         LPCWSTR wszValue); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SendLogParams)( | 
 |         IWMReaderAdvanced5 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WINBOOL *pfCanSave); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)( | 
 |         IWMReaderAdvanced5 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetURL)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         WCHAR *pwszURL, | 
 |         DWORD *pcchURL); | 
 |  | 
 |     /*** IWMReaderAdvanced5 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetPlayerHook)( | 
 |         IWMReaderAdvanced5 *This, | 
 |         DWORD dwOutputNum, | 
 |         IWMPlayerHook *pHook); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderAdvanced5Vtbl; | 
 |  | 
 | interface IWMReaderAdvanced5 { | 
 |     CONST_VTBL IWMReaderAdvanced5Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderAdvanced5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderAdvanced5_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderAdvanced5_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | #define IWMReaderAdvanced5_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) | 
 | #define IWMReaderAdvanced5_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) | 
 | #define IWMReaderAdvanced5_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) | 
 | #define IWMReaderAdvanced5_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) | 
 | #define IWMReaderAdvanced5_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) | 
 | #define IWMReaderAdvanced5_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) | 
 | #define IWMReaderAdvanced5_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) | 
 | #define IWMReaderAdvanced5_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) | 
 | #define IWMReaderAdvanced5_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) | 
 | #define IWMReaderAdvanced5_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) | 
 | #define IWMReaderAdvanced5_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) | 
 | #define IWMReaderAdvanced5_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) | 
 | #define IWMReaderAdvanced5_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) | 
 | #define IWMReaderAdvanced5_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) | 
 | #define IWMReaderAdvanced5_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) | 
 | #define IWMReaderAdvanced5_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) | 
 | #define IWMReaderAdvanced5_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) | 
 | #define IWMReaderAdvanced5_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) | 
 | #define IWMReaderAdvanced5_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) | 
 | #define IWMReaderAdvanced5_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) | 
 | /*** IWMReaderAdvanced2 methods ***/ | 
 | #define IWMReaderAdvanced5_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode) | 
 | #define IWMReaderAdvanced5_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode) | 
 | #define IWMReaderAdvanced5_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering) | 
 | #define IWMReaderAdvanced5_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) | 
 | #define IWMReaderAdvanced5_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent) | 
 | #define IWMReaderAdvanced5_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename) | 
 | #define IWMReaderAdvanced5_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol) | 
 | #define IWMReaderAdvanced5_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) | 
 | #define IWMReaderAdvanced5_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) | 
 | #define IWMReaderAdvanced5_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) | 
 | #define IWMReaderAdvanced5_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate) | 
 | #define IWMReaderAdvanced5_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID) | 
 | #define IWMReaderAdvanced5_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID) | 
 | #define IWMReaderAdvanced5_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) | 
 | #define IWMReaderAdvanced5_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext) | 
 | /*** IWMReaderAdvanced3 methods ***/ | 
 | #define IWMReaderAdvanced5_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This) | 
 | #define IWMReaderAdvanced5_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) | 
 | /*** IWMReaderAdvanced4 methods ***/ | 
 | #define IWMReaderAdvanced5_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount) | 
 | #define IWMReaderAdvanced5_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) | 
 | #define IWMReaderAdvanced5_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor) | 
 | #define IWMReaderAdvanced5_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache) | 
 | #define IWMReaderAdvanced5_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue) | 
 | #define IWMReaderAdvanced5_SendLogParams(This) (This)->lpVtbl->SendLogParams(This) | 
 | #define IWMReaderAdvanced5_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave) | 
 | #define IWMReaderAdvanced5_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This) | 
 | #define IWMReaderAdvanced5_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL) | 
 | /*** IWMReaderAdvanced5 methods ***/ | 
 | #define IWMReaderAdvanced5_SetPlayerHook(This,dwOutputNum,pHook) (This)->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_QueryInterface(IWMReaderAdvanced5* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced5_AddRef(IWMReaderAdvanced5* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced5_Release(IWMReaderAdvanced5* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetUserProvidedClock(IWMReaderAdvanced5* This,WINBOOL fUserClock) { | 
 |     return This->lpVtbl->SetUserProvidedClock(This,fUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetUserProvidedClock(IWMReaderAdvanced5* This,WINBOOL *pfUserClock) { | 
 |     return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_DeliverTime(IWMReaderAdvanced5* This,QWORD cnsTime) { | 
 |     return This->lpVtbl->DeliverTime(This,cnsTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetManualStreamSelection(IWMReaderAdvanced5* This,WINBOOL fSelection) { | 
 |     return This->lpVtbl->SetManualStreamSelection(This,fSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetManualStreamSelection(IWMReaderAdvanced5* This,WINBOOL *pfSelection) { | 
 |     return This->lpVtbl->GetManualStreamSelection(This,pfSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetStreamsSelected(IWMReaderAdvanced5* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { | 
 |     return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetStreamSelected(IWMReaderAdvanced5* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { | 
 |     return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetReceiveSelectionCallbacks(IWMReaderAdvanced5* This,WINBOOL fGetCallbacks) { | 
 |     return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetReceiveSelectionCallbacks(IWMReaderAdvanced5* This,WINBOOL *pfGetCallbacks) { | 
 |     return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetReceiveStreamSamples(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { | 
 |     return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetReceiveStreamSamples(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { | 
 |     return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetAllocateForOutput(IWMReaderAdvanced5* This,DWORD dwOutputNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetAllocateForOutput(IWMReaderAdvanced5* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetAllocateForStream(IWMReaderAdvanced5* This,WORD wStreamNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetAllocateForStream(IWMReaderAdvanced5* This,WORD dwStreamNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetStatistics(IWMReaderAdvanced5* This,WM_READER_STATISTICS *pStatistics) { | 
 |     return This->lpVtbl->GetStatistics(This,pStatistics); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetClientInfo(IWMReaderAdvanced5* This,WM_READER_CLIENTINFO *pClientInfo) { | 
 |     return This->lpVtbl->SetClientInfo(This,pClientInfo); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetMaxOutputSampleSize(IWMReaderAdvanced5* This,DWORD dwOutput,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetMaxStreamSampleSize(IWMReaderAdvanced5* This,WORD wStream,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_NotifyLateDelivery(IWMReaderAdvanced5* This,QWORD cnsLateness) { | 
 |     return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); | 
 | } | 
 | /*** IWMReaderAdvanced2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetPlayMode(IWMReaderAdvanced5* This,WMT_PLAY_MODE Mode) { | 
 |     return This->lpVtbl->SetPlayMode(This,Mode); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetPlayMode(IWMReaderAdvanced5* This,WMT_PLAY_MODE *pMode) { | 
 |     return This->lpVtbl->GetPlayMode(This,pMode); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetBufferProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent,QWORD *pcnsBuffering) { | 
 |     return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetDownloadProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) { | 
 |     return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetSaveAsProgress(IWMReaderAdvanced5* This,DWORD *pdwPercent) { | 
 |     return This->lpVtbl->GetSaveAsProgress(This,pdwPercent); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SaveFileAs(IWMReaderAdvanced5* This,const WCHAR *pwszFilename) { | 
 |     return This->lpVtbl->SaveFileAs(This,pwszFilename); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetProtocolName(IWMReaderAdvanced5* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) { | 
 |     return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_StartAtMarker(IWMReaderAdvanced5* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) { | 
 |     return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetOutputSetting(IWMReaderAdvanced5* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { | 
 |     return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetOutputSetting(IWMReaderAdvanced5* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { | 
 |     return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_Preroll(IWMReaderAdvanced5* This,QWORD cnsStart,QWORD cnsDuration,float fRate) { | 
 |     return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetLogClientID(IWMReaderAdvanced5* This,WINBOOL fLogClientID) { | 
 |     return This->lpVtbl->SetLogClientID(This,fLogClientID); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetLogClientID(IWMReaderAdvanced5* This,WINBOOL *pfLogClientID) { | 
 |     return This->lpVtbl->GetLogClientID(This,pfLogClientID); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_StopBuffering(IWMReaderAdvanced5* This) { | 
 |     return This->lpVtbl->StopBuffering(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_OpenStream(IWMReaderAdvanced5* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) { | 
 |     return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext); | 
 | } | 
 | /*** IWMReaderAdvanced3 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_StopNetStreaming(IWMReaderAdvanced5* This) { | 
 |     return This->lpVtbl->StopNetStreaming(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_StartAtPosition(IWMReaderAdvanced5* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) { | 
 |     return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext); | 
 | } | 
 | /*** IWMReaderAdvanced4 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetLanguageCount(IWMReaderAdvanced5* This,DWORD dwOutputNum,WORD *pwLanguageCount) { | 
 |     return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetLanguage(IWMReaderAdvanced5* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) { | 
 |     return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetMaxSpeedFactor(IWMReaderAdvanced5* This,double *pdblFactor) { | 
 |     return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_IsUsingFastCache(IWMReaderAdvanced5* This,WINBOOL *pfUsingFastCache) { | 
 |     return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_AddLogParam(IWMReaderAdvanced5* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) { | 
 |     return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SendLogParams(IWMReaderAdvanced5* This) { | 
 |     return This->lpVtbl->SendLogParams(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_CanSaveFileAs(IWMReaderAdvanced5* This,WINBOOL *pfCanSave) { | 
 |     return This->lpVtbl->CanSaveFileAs(This,pfCanSave); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_CancelSaveFileAs(IWMReaderAdvanced5* This) { | 
 |     return This->lpVtbl->CancelSaveFileAs(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_GetURL(IWMReaderAdvanced5* This,WCHAR *pwszURL,DWORD *pcchURL) { | 
 |     return This->lpVtbl->GetURL(This,pwszURL,pcchURL); | 
 | } | 
 | /*** IWMReaderAdvanced5 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced5_SetPlayerHook(IWMReaderAdvanced5* This,DWORD dwOutputNum,IWMPlayerHook *pHook) { | 
 |     return This->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderAdvanced5_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderAdvanced6 interface | 
 |  */ | 
 | #ifndef __IWMReaderAdvanced6_INTERFACE_DEFINED__ | 
 | #define __IWMReaderAdvanced6_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderAdvanced6, 0x18a2e7f8, 0x428f, 0x4acd, 0x8a,0x00, 0xe6,0x46,0x39,0xbc,0x93,0xde); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("18a2e7f8-428f-4acd-8a00-e64639bc93de") | 
 | IWMReaderAdvanced6 : public IWMReaderAdvanced5 | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE SetProtectStreamSamples( | 
 |         BYTE *pbCertificate, | 
 |         DWORD cbCertificate, | 
 |         DWORD dwCertificateType, | 
 |         DWORD dwFlags, | 
 |         BYTE *pbInitializationVector, | 
 |         DWORD *pcbInitializationVector) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderAdvanced6, 0x18a2e7f8, 0x428f, 0x4acd, 0x8a,0x00, 0xe6,0x46,0x39,0xbc,0x93,0xde) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderAdvanced6Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderAdvanced6 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderAdvanced6 *This); | 
 |  | 
 |     /*** IWMReaderAdvanced methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetUserProvidedClock)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WINBOOL fUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetUserProvidedClock)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WINBOOL *pfUserClock); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *DeliverTime)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         QWORD cnsTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetManualStreamSelection)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WINBOOL fSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetManualStreamSelection)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WINBOOL *pfSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WORD cStreamCount, | 
 |         WORD *pwStreamNumbers, | 
 |         WMT_STREAM_SELECTION *pSelections); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WORD wStreamNum, | 
 |         WMT_STREAM_SELECTION *pSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WINBOOL fGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveSelectionCallbacks)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WINBOOL *pfGetCallbacks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReceiveStreamSamples)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL *pfReceiveStreamSamples); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         DWORD dwOutputNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WORD dwStreamNum, | 
 |         WINBOOL *pfAllocate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStatistics)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WM_READER_STATISTICS *pStatistics); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetClientInfo)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WM_READER_CLIENTINFO *pClientInfo); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         DWORD dwOutput, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WORD wStream, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *NotifyLateDelivery)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         QWORD cnsLateness); | 
 |  | 
 |     /*** IWMReaderAdvanced2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetPlayMode)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WMT_PLAY_MODE Mode); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetPlayMode)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WMT_PLAY_MODE *pMode); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetBufferProgress)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pcnsBuffering); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetDownloadProgress)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         DWORD *pdwPercent, | 
 |         QWORD *pqwBytesDownloaded, | 
 |         QWORD *pcnsDownload); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSaveAsProgress)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         DWORD *pdwPercent); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SaveFileAs)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         const WCHAR *pwszFilename); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProtocolName)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WCHAR *pwszProtocol, | 
 |         DWORD *pcchProtocol); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StartAtMarker)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WORD wMarkerIndex, | 
 |         QWORD cnsDuration, | 
 |         float fRate, | 
 |         void *pvContext); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Preroll)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         QWORD cnsStart, | 
 |         QWORD cnsDuration, | 
 |         float fRate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetLogClientID)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WINBOOL fLogClientID); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLogClientID)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WINBOOL *pfLogClientID); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StopBuffering)( | 
 |         IWMReaderAdvanced6 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *OpenStream)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         IStream *pStream, | 
 |         IWMReaderCallback *pCallback, | 
 |         void *pvContext); | 
 |  | 
 |     /*** IWMReaderAdvanced3 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *StopNetStreaming)( | 
 |         IWMReaderAdvanced6 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *StartAtPosition)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WORD wStreamNum, | 
 |         void *pvOffsetStart, | 
 |         void *pvDuration, | 
 |         WMT_OFFSET_FORMAT dwOffsetFormat, | 
 |         float fRate, | 
 |         void *pvContext); | 
 |  | 
 |     /*** IWMReaderAdvanced4 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetLanguageCount)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         DWORD dwOutputNum, | 
 |         WORD *pwLanguageCount); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLanguage)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         DWORD dwOutputNum, | 
 |         WORD wLanguage, | 
 |         WCHAR *pwszLanguageString, | 
 |         WORD *pcchLanguageStringLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxSpeedFactor)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         double *pdblFactor); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *IsUsingFastCache)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WINBOOL *pfUsingFastCache); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddLogParam)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         LPCWSTR wszNameSpace, | 
 |         LPCWSTR wszName, | 
 |         LPCWSTR wszValue); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SendLogParams)( | 
 |         IWMReaderAdvanced6 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CanSaveFileAs)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WINBOOL *pfCanSave); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelSaveFileAs)( | 
 |         IWMReaderAdvanced6 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetURL)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         WCHAR *pwszURL, | 
 |         DWORD *pcchURL); | 
 |  | 
 |     /*** IWMReaderAdvanced5 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetPlayerHook)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         DWORD dwOutputNum, | 
 |         IWMPlayerHook *pHook); | 
 |  | 
 |     /*** IWMReaderAdvanced6 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetProtectStreamSamples)( | 
 |         IWMReaderAdvanced6 *This, | 
 |         BYTE *pbCertificate, | 
 |         DWORD cbCertificate, | 
 |         DWORD dwCertificateType, | 
 |         DWORD dwFlags, | 
 |         BYTE *pbInitializationVector, | 
 |         DWORD *pcbInitializationVector); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderAdvanced6Vtbl; | 
 |  | 
 | interface IWMReaderAdvanced6 { | 
 |     CONST_VTBL IWMReaderAdvanced6Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderAdvanced6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderAdvanced6_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderAdvanced6_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | #define IWMReaderAdvanced6_SetUserProvidedClock(This,fUserClock) (This)->lpVtbl->SetUserProvidedClock(This,fUserClock) | 
 | #define IWMReaderAdvanced6_GetUserProvidedClock(This,pfUserClock) (This)->lpVtbl->GetUserProvidedClock(This,pfUserClock) | 
 | #define IWMReaderAdvanced6_DeliverTime(This,cnsTime) (This)->lpVtbl->DeliverTime(This,cnsTime) | 
 | #define IWMReaderAdvanced6_SetManualStreamSelection(This,fSelection) (This)->lpVtbl->SetManualStreamSelection(This,fSelection) | 
 | #define IWMReaderAdvanced6_GetManualStreamSelection(This,pfSelection) (This)->lpVtbl->GetManualStreamSelection(This,pfSelection) | 
 | #define IWMReaderAdvanced6_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) | 
 | #define IWMReaderAdvanced6_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) | 
 | #define IWMReaderAdvanced6_SetReceiveSelectionCallbacks(This,fGetCallbacks) (This)->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks) | 
 | #define IWMReaderAdvanced6_GetReceiveSelectionCallbacks(This,pfGetCallbacks) (This)->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks) | 
 | #define IWMReaderAdvanced6_SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) (This)->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples) | 
 | #define IWMReaderAdvanced6_GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) (This)->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples) | 
 | #define IWMReaderAdvanced6_SetAllocateForOutput(This,dwOutputNum,fAllocate) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate) | 
 | #define IWMReaderAdvanced6_GetAllocateForOutput(This,dwOutputNum,pfAllocate) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate) | 
 | #define IWMReaderAdvanced6_SetAllocateForStream(This,wStreamNum,fAllocate) (This)->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate) | 
 | #define IWMReaderAdvanced6_GetAllocateForStream(This,dwStreamNum,pfAllocate) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate) | 
 | #define IWMReaderAdvanced6_GetStatistics(This,pStatistics) (This)->lpVtbl->GetStatistics(This,pStatistics) | 
 | #define IWMReaderAdvanced6_SetClientInfo(This,pClientInfo) (This)->lpVtbl->SetClientInfo(This,pClientInfo) | 
 | #define IWMReaderAdvanced6_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) | 
 | #define IWMReaderAdvanced6_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) | 
 | #define IWMReaderAdvanced6_NotifyLateDelivery(This,cnsLateness) (This)->lpVtbl->NotifyLateDelivery(This,cnsLateness) | 
 | /*** IWMReaderAdvanced2 methods ***/ | 
 | #define IWMReaderAdvanced6_SetPlayMode(This,Mode) (This)->lpVtbl->SetPlayMode(This,Mode) | 
 | #define IWMReaderAdvanced6_GetPlayMode(This,pMode) (This)->lpVtbl->GetPlayMode(This,pMode) | 
 | #define IWMReaderAdvanced6_GetBufferProgress(This,pdwPercent,pcnsBuffering) (This)->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering) | 
 | #define IWMReaderAdvanced6_GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) (This)->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload) | 
 | #define IWMReaderAdvanced6_GetSaveAsProgress(This,pdwPercent) (This)->lpVtbl->GetSaveAsProgress(This,pdwPercent) | 
 | #define IWMReaderAdvanced6_SaveFileAs(This,pwszFilename) (This)->lpVtbl->SaveFileAs(This,pwszFilename) | 
 | #define IWMReaderAdvanced6_GetProtocolName(This,pwszProtocol,pcchProtocol) (This)->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol) | 
 | #define IWMReaderAdvanced6_StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) (This)->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext) | 
 | #define IWMReaderAdvanced6_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) | 
 | #define IWMReaderAdvanced6_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) | 
 | #define IWMReaderAdvanced6_Preroll(This,cnsStart,cnsDuration,fRate) (This)->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate) | 
 | #define IWMReaderAdvanced6_SetLogClientID(This,fLogClientID) (This)->lpVtbl->SetLogClientID(This,fLogClientID) | 
 | #define IWMReaderAdvanced6_GetLogClientID(This,pfLogClientID) (This)->lpVtbl->GetLogClientID(This,pfLogClientID) | 
 | #define IWMReaderAdvanced6_StopBuffering(This) (This)->lpVtbl->StopBuffering(This) | 
 | #define IWMReaderAdvanced6_OpenStream(This,pStream,pCallback,pvContext) (This)->lpVtbl->OpenStream(This,pStream,pCallback,pvContext) | 
 | /*** IWMReaderAdvanced3 methods ***/ | 
 | #define IWMReaderAdvanced6_StopNetStreaming(This) (This)->lpVtbl->StopNetStreaming(This) | 
 | #define IWMReaderAdvanced6_StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) (This)->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext) | 
 | /*** IWMReaderAdvanced4 methods ***/ | 
 | #define IWMReaderAdvanced6_GetLanguageCount(This,dwOutputNum,pwLanguageCount) (This)->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount) | 
 | #define IWMReaderAdvanced6_GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) (This)->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength) | 
 | #define IWMReaderAdvanced6_GetMaxSpeedFactor(This,pdblFactor) (This)->lpVtbl->GetMaxSpeedFactor(This,pdblFactor) | 
 | #define IWMReaderAdvanced6_IsUsingFastCache(This,pfUsingFastCache) (This)->lpVtbl->IsUsingFastCache(This,pfUsingFastCache) | 
 | #define IWMReaderAdvanced6_AddLogParam(This,wszNameSpace,wszName,wszValue) (This)->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue) | 
 | #define IWMReaderAdvanced6_SendLogParams(This) (This)->lpVtbl->SendLogParams(This) | 
 | #define IWMReaderAdvanced6_CanSaveFileAs(This,pfCanSave) (This)->lpVtbl->CanSaveFileAs(This,pfCanSave) | 
 | #define IWMReaderAdvanced6_CancelSaveFileAs(This) (This)->lpVtbl->CancelSaveFileAs(This) | 
 | #define IWMReaderAdvanced6_GetURL(This,pwszURL,pcchURL) (This)->lpVtbl->GetURL(This,pwszURL,pcchURL) | 
 | /*** IWMReaderAdvanced5 methods ***/ | 
 | #define IWMReaderAdvanced6_SetPlayerHook(This,dwOutputNum,pHook) (This)->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook) | 
 | /*** IWMReaderAdvanced6 methods ***/ | 
 | #define IWMReaderAdvanced6_SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector) (This)->lpVtbl->SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_QueryInterface(IWMReaderAdvanced6* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced6_AddRef(IWMReaderAdvanced6* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAdvanced6_Release(IWMReaderAdvanced6* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderAdvanced methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetUserProvidedClock(IWMReaderAdvanced6* This,WINBOOL fUserClock) { | 
 |     return This->lpVtbl->SetUserProvidedClock(This,fUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetUserProvidedClock(IWMReaderAdvanced6* This,WINBOOL *pfUserClock) { | 
 |     return This->lpVtbl->GetUserProvidedClock(This,pfUserClock); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_DeliverTime(IWMReaderAdvanced6* This,QWORD cnsTime) { | 
 |     return This->lpVtbl->DeliverTime(This,cnsTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetManualStreamSelection(IWMReaderAdvanced6* This,WINBOOL fSelection) { | 
 |     return This->lpVtbl->SetManualStreamSelection(This,fSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetManualStreamSelection(IWMReaderAdvanced6* This,WINBOOL *pfSelection) { | 
 |     return This->lpVtbl->GetManualStreamSelection(This,pfSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetStreamsSelected(IWMReaderAdvanced6* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { | 
 |     return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetStreamSelected(IWMReaderAdvanced6* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { | 
 |     return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetReceiveSelectionCallbacks(IWMReaderAdvanced6* This,WINBOOL fGetCallbacks) { | 
 |     return This->lpVtbl->SetReceiveSelectionCallbacks(This,fGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetReceiveSelectionCallbacks(IWMReaderAdvanced6* This,WINBOOL *pfGetCallbacks) { | 
 |     return This->lpVtbl->GetReceiveSelectionCallbacks(This,pfGetCallbacks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetReceiveStreamSamples(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL fReceiveStreamSamples) { | 
 |     return This->lpVtbl->SetReceiveStreamSamples(This,wStreamNum,fReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetReceiveStreamSamples(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL *pfReceiveStreamSamples) { | 
 |     return This->lpVtbl->GetReceiveStreamSamples(This,wStreamNum,pfReceiveStreamSamples); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetAllocateForOutput(IWMReaderAdvanced6* This,DWORD dwOutputNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetAllocateForOutput(IWMReaderAdvanced6* This,DWORD dwOutputNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetAllocateForStream(IWMReaderAdvanced6* This,WORD wStreamNum,WINBOOL fAllocate) { | 
 |     return This->lpVtbl->SetAllocateForStream(This,wStreamNum,fAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetAllocateForStream(IWMReaderAdvanced6* This,WORD dwStreamNum,WINBOOL *pfAllocate) { | 
 |     return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,pfAllocate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetStatistics(IWMReaderAdvanced6* This,WM_READER_STATISTICS *pStatistics) { | 
 |     return This->lpVtbl->GetStatistics(This,pStatistics); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetClientInfo(IWMReaderAdvanced6* This,WM_READER_CLIENTINFO *pClientInfo) { | 
 |     return This->lpVtbl->SetClientInfo(This,pClientInfo); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetMaxOutputSampleSize(IWMReaderAdvanced6* This,DWORD dwOutput,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetMaxStreamSampleSize(IWMReaderAdvanced6* This,WORD wStream,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_NotifyLateDelivery(IWMReaderAdvanced6* This,QWORD cnsLateness) { | 
 |     return This->lpVtbl->NotifyLateDelivery(This,cnsLateness); | 
 | } | 
 | /*** IWMReaderAdvanced2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetPlayMode(IWMReaderAdvanced6* This,WMT_PLAY_MODE Mode) { | 
 |     return This->lpVtbl->SetPlayMode(This,Mode); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetPlayMode(IWMReaderAdvanced6* This,WMT_PLAY_MODE *pMode) { | 
 |     return This->lpVtbl->GetPlayMode(This,pMode); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetBufferProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent,QWORD *pcnsBuffering) { | 
 |     return This->lpVtbl->GetBufferProgress(This,pdwPercent,pcnsBuffering); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetDownloadProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent,QWORD *pqwBytesDownloaded,QWORD *pcnsDownload) { | 
 |     return This->lpVtbl->GetDownloadProgress(This,pdwPercent,pqwBytesDownloaded,pcnsDownload); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetSaveAsProgress(IWMReaderAdvanced6* This,DWORD *pdwPercent) { | 
 |     return This->lpVtbl->GetSaveAsProgress(This,pdwPercent); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SaveFileAs(IWMReaderAdvanced6* This,const WCHAR *pwszFilename) { | 
 |     return This->lpVtbl->SaveFileAs(This,pwszFilename); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetProtocolName(IWMReaderAdvanced6* This,WCHAR *pwszProtocol,DWORD *pcchProtocol) { | 
 |     return This->lpVtbl->GetProtocolName(This,pwszProtocol,pcchProtocol); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_StartAtMarker(IWMReaderAdvanced6* This,WORD wMarkerIndex,QWORD cnsDuration,float fRate,void *pvContext) { | 
 |     return This->lpVtbl->StartAtMarker(This,wMarkerIndex,cnsDuration,fRate,pvContext); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetOutputSetting(IWMReaderAdvanced6* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { | 
 |     return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetOutputSetting(IWMReaderAdvanced6* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { | 
 |     return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_Preroll(IWMReaderAdvanced6* This,QWORD cnsStart,QWORD cnsDuration,float fRate) { | 
 |     return This->lpVtbl->Preroll(This,cnsStart,cnsDuration,fRate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetLogClientID(IWMReaderAdvanced6* This,WINBOOL fLogClientID) { | 
 |     return This->lpVtbl->SetLogClientID(This,fLogClientID); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetLogClientID(IWMReaderAdvanced6* This,WINBOOL *pfLogClientID) { | 
 |     return This->lpVtbl->GetLogClientID(This,pfLogClientID); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_StopBuffering(IWMReaderAdvanced6* This) { | 
 |     return This->lpVtbl->StopBuffering(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_OpenStream(IWMReaderAdvanced6* This,IStream *pStream,IWMReaderCallback *pCallback,void *pvContext) { | 
 |     return This->lpVtbl->OpenStream(This,pStream,pCallback,pvContext); | 
 | } | 
 | /*** IWMReaderAdvanced3 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_StopNetStreaming(IWMReaderAdvanced6* This) { | 
 |     return This->lpVtbl->StopNetStreaming(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_StartAtPosition(IWMReaderAdvanced6* This,WORD wStreamNum,void *pvOffsetStart,void *pvDuration,WMT_OFFSET_FORMAT dwOffsetFormat,float fRate,void *pvContext) { | 
 |     return This->lpVtbl->StartAtPosition(This,wStreamNum,pvOffsetStart,pvDuration,dwOffsetFormat,fRate,pvContext); | 
 | } | 
 | /*** IWMReaderAdvanced4 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetLanguageCount(IWMReaderAdvanced6* This,DWORD dwOutputNum,WORD *pwLanguageCount) { | 
 |     return This->lpVtbl->GetLanguageCount(This,dwOutputNum,pwLanguageCount); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetLanguage(IWMReaderAdvanced6* This,DWORD dwOutputNum,WORD wLanguage,WCHAR *pwszLanguageString,WORD *pcchLanguageStringLength) { | 
 |     return This->lpVtbl->GetLanguage(This,dwOutputNum,wLanguage,pwszLanguageString,pcchLanguageStringLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetMaxSpeedFactor(IWMReaderAdvanced6* This,double *pdblFactor) { | 
 |     return This->lpVtbl->GetMaxSpeedFactor(This,pdblFactor); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_IsUsingFastCache(IWMReaderAdvanced6* This,WINBOOL *pfUsingFastCache) { | 
 |     return This->lpVtbl->IsUsingFastCache(This,pfUsingFastCache); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_AddLogParam(IWMReaderAdvanced6* This,LPCWSTR wszNameSpace,LPCWSTR wszName,LPCWSTR wszValue) { | 
 |     return This->lpVtbl->AddLogParam(This,wszNameSpace,wszName,wszValue); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SendLogParams(IWMReaderAdvanced6* This) { | 
 |     return This->lpVtbl->SendLogParams(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_CanSaveFileAs(IWMReaderAdvanced6* This,WINBOOL *pfCanSave) { | 
 |     return This->lpVtbl->CanSaveFileAs(This,pfCanSave); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_CancelSaveFileAs(IWMReaderAdvanced6* This) { | 
 |     return This->lpVtbl->CancelSaveFileAs(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_GetURL(IWMReaderAdvanced6* This,WCHAR *pwszURL,DWORD *pcchURL) { | 
 |     return This->lpVtbl->GetURL(This,pwszURL,pcchURL); | 
 | } | 
 | /*** IWMReaderAdvanced5 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetPlayerHook(IWMReaderAdvanced6* This,DWORD dwOutputNum,IWMPlayerHook *pHook) { | 
 |     return This->lpVtbl->SetPlayerHook(This,dwOutputNum,pHook); | 
 | } | 
 | /*** IWMReaderAdvanced6 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAdvanced6_SetProtectStreamSamples(IWMReaderAdvanced6* This,BYTE *pbCertificate,DWORD cbCertificate,DWORD dwCertificateType,DWORD dwFlags,BYTE *pbInitializationVector,DWORD *pcbInitializationVector) { | 
 |     return This->lpVtbl->SetProtectStreamSamples(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderAdvanced6_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMSyncReader interface | 
 |  */ | 
 | #ifndef __IWMSyncReader_INTERFACE_DEFINED__ | 
 | #define __IWMSyncReader_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMSyncReader, 0x9397f121, 0x7705, 0x4dc9, 0xb0,0x49, 0x98,0xb6,0x98,0x18,0x84,0x14); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("9397f121-7705-4dc9-b049-98b698188414") | 
 | IWMSyncReader : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE Open( | 
 |         const WCHAR *pwszFilename) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Close( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetRange( | 
 |         QWORD cnsStartTime, | 
 |         LONGLONG cnsDuration) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetRangeByFrame( | 
 |         WORD wStreamNum, | 
 |         QWORD qwFrameNumber, | 
 |         LONGLONG cFramesToRead) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetNextSample( | 
 |         WORD wStreamNum, | 
 |         INSSBuffer **ppSample, | 
 |         QWORD *pcnsSampleTime, | 
 |         QWORD *pcnsDuration, | 
 |         DWORD *pdwFlags, | 
 |         DWORD *pdwOutputNum, | 
 |         WORD *pwStreamNum) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetStreamsSelected( | 
 |         WORD cStreamCount, | 
 |         WORD *pwStreamNumbers, | 
 |         WMT_STREAM_SELECTION *pSelections) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStreamSelected( | 
 |         WORD wStreamNum, | 
 |         WMT_STREAM_SELECTION *pSelection) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetReadStreamSamples( | 
 |         WORD wStreamNum, | 
 |         WINBOOL fCompressed) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetReadStreamSamples( | 
 |         WORD wStreamNum, | 
 |         WINBOOL *pfCompressed) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetOutputSetting( | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetOutputSetting( | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetOutputCount( | 
 |         DWORD *pcOutputs) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetOutputProps( | 
 |         DWORD dwOutputNum, | 
 |         IWMOutputMediaProps **ppOutput) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetOutputProps( | 
 |         DWORD dwOutputNum, | 
 |         IWMOutputMediaProps *pOutput) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetOutputFormatCount( | 
 |         DWORD dwOutputNum, | 
 |         DWORD *pcFormats) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetOutputFormat( | 
 |         DWORD dwOutputNum, | 
 |         DWORD dwFormatNum, | 
 |         IWMOutputMediaProps **ppProps) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetOutputNumberForStream( | 
 |         WORD wStreamNum, | 
 |         DWORD *pdwOutputNum) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStreamNumberForOutput( | 
 |         DWORD dwOutputNum, | 
 |         WORD *pwStreamNum) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMaxOutputSampleSize( | 
 |         DWORD dwOutput, | 
 |         DWORD *pcbMax) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMaxStreamSampleSize( | 
 |         WORD wStream, | 
 |         DWORD *pcbMax) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE OpenStream( | 
 |         IStream *pStream) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMSyncReader, 0x9397f121, 0x7705, 0x4dc9, 0xb0,0x49, 0x98,0xb6,0x98,0x18,0x84,0x14) | 
 | #endif | 
 | #else | 
 | typedef struct IWMSyncReaderVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMSyncReader *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMSyncReader *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMSyncReader *This); | 
 |  | 
 |     /*** IWMSyncReader methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *Open)( | 
 |         IWMSyncReader *This, | 
 |         const WCHAR *pwszFilename); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Close)( | 
 |         IWMSyncReader *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetRange)( | 
 |         IWMSyncReader *This, | 
 |         QWORD cnsStartTime, | 
 |         LONGLONG cnsDuration); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetRangeByFrame)( | 
 |         IWMSyncReader *This, | 
 |         WORD wStreamNum, | 
 |         QWORD qwFrameNumber, | 
 |         LONGLONG cFramesToRead); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetNextSample)( | 
 |         IWMSyncReader *This, | 
 |         WORD wStreamNum, | 
 |         INSSBuffer **ppSample, | 
 |         QWORD *pcnsSampleTime, | 
 |         QWORD *pcnsDuration, | 
 |         DWORD *pdwFlags, | 
 |         DWORD *pdwOutputNum, | 
 |         WORD *pwStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( | 
 |         IWMSyncReader *This, | 
 |         WORD cStreamCount, | 
 |         WORD *pwStreamNumbers, | 
 |         WMT_STREAM_SELECTION *pSelections); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( | 
 |         IWMSyncReader *This, | 
 |         WORD wStreamNum, | 
 |         WMT_STREAM_SELECTION *pSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReadStreamSamples)( | 
 |         IWMSyncReader *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fCompressed); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReadStreamSamples)( | 
 |         IWMSyncReader *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL *pfCompressed); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( | 
 |         IWMSyncReader *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( | 
 |         IWMSyncReader *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputCount)( | 
 |         IWMSyncReader *This, | 
 |         DWORD *pcOutputs); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputProps)( | 
 |         IWMSyncReader *This, | 
 |         DWORD dwOutputNum, | 
 |         IWMOutputMediaProps **ppOutput); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetOutputProps)( | 
 |         IWMSyncReader *This, | 
 |         DWORD dwOutputNum, | 
 |         IWMOutputMediaProps *pOutput); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputFormatCount)( | 
 |         IWMSyncReader *This, | 
 |         DWORD dwOutputNum, | 
 |         DWORD *pcFormats); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputFormat)( | 
 |         IWMSyncReader *This, | 
 |         DWORD dwOutputNum, | 
 |         DWORD dwFormatNum, | 
 |         IWMOutputMediaProps **ppProps); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputNumberForStream)( | 
 |         IWMSyncReader *This, | 
 |         WORD wStreamNum, | 
 |         DWORD *pdwOutputNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamNumberForOutput)( | 
 |         IWMSyncReader *This, | 
 |         DWORD dwOutputNum, | 
 |         WORD *pwStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( | 
 |         IWMSyncReader *This, | 
 |         DWORD dwOutput, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( | 
 |         IWMSyncReader *This, | 
 |         WORD wStream, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *OpenStream)( | 
 |         IWMSyncReader *This, | 
 |         IStream *pStream); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMSyncReaderVtbl; | 
 |  | 
 | interface IWMSyncReader { | 
 |     CONST_VTBL IWMSyncReaderVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMSyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMSyncReader_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMSyncReader_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMSyncReader methods ***/ | 
 | #define IWMSyncReader_Open(This,pwszFilename) (This)->lpVtbl->Open(This,pwszFilename) | 
 | #define IWMSyncReader_Close(This) (This)->lpVtbl->Close(This) | 
 | #define IWMSyncReader_SetRange(This,cnsStartTime,cnsDuration) (This)->lpVtbl->SetRange(This,cnsStartTime,cnsDuration) | 
 | #define IWMSyncReader_SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead) (This)->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead) | 
 | #define IWMSyncReader_GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum) (This)->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum) | 
 | #define IWMSyncReader_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) | 
 | #define IWMSyncReader_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) | 
 | #define IWMSyncReader_SetReadStreamSamples(This,wStreamNum,fCompressed) (This)->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed) | 
 | #define IWMSyncReader_GetReadStreamSamples(This,wStreamNum,pfCompressed) (This)->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed) | 
 | #define IWMSyncReader_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) | 
 | #define IWMSyncReader_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) | 
 | #define IWMSyncReader_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs) | 
 | #define IWMSyncReader_GetOutputProps(This,dwOutputNum,ppOutput) (This)->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput) | 
 | #define IWMSyncReader_SetOutputProps(This,dwOutputNum,pOutput) (This)->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput) | 
 | #define IWMSyncReader_GetOutputFormatCount(This,dwOutputNum,pcFormats) (This)->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats) | 
 | #define IWMSyncReader_GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps) (This)->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps) | 
 | #define IWMSyncReader_GetOutputNumberForStream(This,wStreamNum,pdwOutputNum) (This)->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum) | 
 | #define IWMSyncReader_GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum) (This)->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum) | 
 | #define IWMSyncReader_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) | 
 | #define IWMSyncReader_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) | 
 | #define IWMSyncReader_OpenStream(This,pStream) (This)->lpVtbl->OpenStream(This,pStream) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMSyncReader_QueryInterface(IWMSyncReader* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMSyncReader_AddRef(IWMSyncReader* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMSyncReader_Release(IWMSyncReader* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMSyncReader methods ***/ | 
 | static FORCEINLINE HRESULT IWMSyncReader_Open(IWMSyncReader* This,const WCHAR *pwszFilename) { | 
 |     return This->lpVtbl->Open(This,pwszFilename); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_Close(IWMSyncReader* This) { | 
 |     return This->lpVtbl->Close(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_SetRange(IWMSyncReader* This,QWORD cnsStartTime,LONGLONG cnsDuration) { | 
 |     return This->lpVtbl->SetRange(This,cnsStartTime,cnsDuration); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_SetRangeByFrame(IWMSyncReader* This,WORD wStreamNum,QWORD qwFrameNumber,LONGLONG cFramesToRead) { | 
 |     return This->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetNextSample(IWMSyncReader* This,WORD wStreamNum,INSSBuffer **ppSample,QWORD *pcnsSampleTime,QWORD *pcnsDuration,DWORD *pdwFlags,DWORD *pdwOutputNum,WORD *pwStreamNum) { | 
 |     return This->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_SetStreamsSelected(IWMSyncReader* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { | 
 |     return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetStreamSelected(IWMSyncReader* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { | 
 |     return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_SetReadStreamSamples(IWMSyncReader* This,WORD wStreamNum,WINBOOL fCompressed) { | 
 |     return This->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetReadStreamSamples(IWMSyncReader* This,WORD wStreamNum,WINBOOL *pfCompressed) { | 
 |     return This->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetOutputSetting(IWMSyncReader* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { | 
 |     return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_SetOutputSetting(IWMSyncReader* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { | 
 |     return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetOutputCount(IWMSyncReader* This,DWORD *pcOutputs) { | 
 |     return This->lpVtbl->GetOutputCount(This,pcOutputs); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetOutputProps(IWMSyncReader* This,DWORD dwOutputNum,IWMOutputMediaProps **ppOutput) { | 
 |     return This->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_SetOutputProps(IWMSyncReader* This,DWORD dwOutputNum,IWMOutputMediaProps *pOutput) { | 
 |     return This->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetOutputFormatCount(IWMSyncReader* This,DWORD dwOutputNum,DWORD *pcFormats) { | 
 |     return This->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetOutputFormat(IWMSyncReader* This,DWORD dwOutputNum,DWORD dwFormatNum,IWMOutputMediaProps **ppProps) { | 
 |     return This->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetOutputNumberForStream(IWMSyncReader* This,WORD wStreamNum,DWORD *pdwOutputNum) { | 
 |     return This->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetStreamNumberForOutput(IWMSyncReader* This,DWORD dwOutputNum,WORD *pwStreamNum) { | 
 |     return This->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetMaxOutputSampleSize(IWMSyncReader* This,DWORD dwOutput,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_GetMaxStreamSampleSize(IWMSyncReader* This,WORD wStream,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader_OpenStream(IWMSyncReader* This,IStream *pStream) { | 
 |     return This->lpVtbl->OpenStream(This,pStream); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMSyncReader_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderAllocatorEx interface | 
 |  */ | 
 | #ifndef __IWMReaderAllocatorEx_INTERFACE_DEFINED__ | 
 | #define __IWMReaderAllocatorEx_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderAllocatorEx, 0x9f762fa7, 0xa22e, 0x428d, 0x93,0xc9, 0xac,0x82,0xf3,0xaa,0xfe,0x5a); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("9f762fa7-a22e-428d-93c9-ac82f3aafe5a") | 
 | IWMReaderAllocatorEx : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE AllocateForStreamEx( | 
 |         WORD wStreamNum, | 
 |         DWORD cbBuffer, | 
 |         INSSBuffer **ppBuffer, | 
 |         DWORD dwFlags, | 
 |         QWORD cnsSampleTime, | 
 |         QWORD cnsSampleDuration, | 
 |         void *pvContext) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AllocateForOutputEx( | 
 |         WORD wOutputNum, | 
 |         DWORD cbBuffer, | 
 |         INSSBuffer **ppBuffer, | 
 |         DWORD dwFlags, | 
 |         QWORD cnsSampleTime, | 
 |         QWORD cnsSampleDuration, | 
 |         void *pvContext) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderAllocatorEx, 0x9f762fa7, 0xa22e, 0x428d, 0x93,0xc9, 0xac,0x82,0xf3,0xaa,0xfe,0x5a) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderAllocatorExVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderAllocatorEx *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderAllocatorEx *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderAllocatorEx *This); | 
 |  | 
 |     /*** IWMReaderAllocatorEx methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *AllocateForStreamEx)( | 
 |         IWMReaderAllocatorEx *This, | 
 |         WORD wStreamNum, | 
 |         DWORD cbBuffer, | 
 |         INSSBuffer **ppBuffer, | 
 |         DWORD dwFlags, | 
 |         QWORD cnsSampleTime, | 
 |         QWORD cnsSampleDuration, | 
 |         void *pvContext); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AllocateForOutputEx)( | 
 |         IWMReaderAllocatorEx *This, | 
 |         WORD wOutputNum, | 
 |         DWORD cbBuffer, | 
 |         INSSBuffer **ppBuffer, | 
 |         DWORD dwFlags, | 
 |         QWORD cnsSampleTime, | 
 |         QWORD cnsSampleDuration, | 
 |         void *pvContext); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderAllocatorExVtbl; | 
 |  | 
 | interface IWMReaderAllocatorEx { | 
 |     CONST_VTBL IWMReaderAllocatorExVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderAllocatorEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderAllocatorEx_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderAllocatorEx_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderAllocatorEx methods ***/ | 
 | #define IWMReaderAllocatorEx_AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) (This)->lpVtbl->AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) | 
 | #define IWMReaderAllocatorEx_AllocateForOutputEx(This,wOutputNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) (This)->lpVtbl->AllocateForOutputEx(This,wOutputNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAllocatorEx_QueryInterface(IWMReaderAllocatorEx* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAllocatorEx_AddRef(IWMReaderAllocatorEx* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAllocatorEx_Release(IWMReaderAllocatorEx* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderAllocatorEx methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAllocatorEx_AllocateForStreamEx(IWMReaderAllocatorEx* This,WORD wStreamNum,DWORD cbBuffer,INSSBuffer **ppBuffer,DWORD dwFlags,QWORD cnsSampleTime,QWORD cnsSampleDuration,void *pvContext) { | 
 |     return This->lpVtbl->AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAllocatorEx_AllocateForOutputEx(IWMReaderAllocatorEx* This,WORD wOutputNum,DWORD cbBuffer,INSSBuffer **ppBuffer,DWORD dwFlags,QWORD cnsSampleTime,QWORD cnsSampleDuration,void *pvContext) { | 
 |     return This->lpVtbl->AllocateForOutputEx(This,wOutputNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderAllocatorEx_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMSyncReader2 interface | 
 |  */ | 
 | #ifndef __IWMSyncReader2_INTERFACE_DEFINED__ | 
 | #define __IWMSyncReader2_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMSyncReader2, 0xfaed3d21, 0x1b6b, 0x4af7, 0x8b,0xc6, 0x3e,0x18,0x9b,0xbc,0x18,0x7b); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("faed3d21-1b6b-4af7-8bc6-3e189bbc187b") | 
 | IWMSyncReader2 : public IWMSyncReader | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE SetRangeByTimecode( | 
 |         WORD wStreamNum, | 
 |         WMT_TIMECODE_EXTENSION_DATA *pStart, | 
 |         WMT_TIMECODE_EXTENSION_DATA *pEnd) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetRangeByFrameEx( | 
 |         WORD wStreamNum, | 
 |         QWORD qwFrameNumber, | 
 |         LONGLONG cFramesToRead, | 
 |         QWORD *pcnsStartTime) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetAllocateForOutput( | 
 |         DWORD dwOutputNum, | 
 |         IWMReaderAllocatorEx *pAllocator) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAllocateForOutput( | 
 |         DWORD dwOutputNum, | 
 |         IWMReaderAllocatorEx **ppAllocator) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetAllocateForStream( | 
 |         DWORD dwStreamNum, | 
 |         IWMReaderAllocatorEx *pAllocator) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAllocateForStream( | 
 |         DWORD dwStreamNum, | 
 |         IWMReaderAllocatorEx **ppAllocator) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMSyncReader2, 0xfaed3d21, 0x1b6b, 0x4af7, 0x8b,0xc6, 0x3e,0x18,0x9b,0xbc,0x18,0x7b) | 
 | #endif | 
 | #else | 
 | typedef struct IWMSyncReader2Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMSyncReader2 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMSyncReader2 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMSyncReader2 *This); | 
 |  | 
 |     /*** IWMSyncReader methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *Open)( | 
 |         IWMSyncReader2 *This, | 
 |         const WCHAR *pwszFilename); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Close)( | 
 |         IWMSyncReader2 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetRange)( | 
 |         IWMSyncReader2 *This, | 
 |         QWORD cnsStartTime, | 
 |         LONGLONG cnsDuration); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetRangeByFrame)( | 
 |         IWMSyncReader2 *This, | 
 |         WORD wStreamNum, | 
 |         QWORD qwFrameNumber, | 
 |         LONGLONG cFramesToRead); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetNextSample)( | 
 |         IWMSyncReader2 *This, | 
 |         WORD wStreamNum, | 
 |         INSSBuffer **ppSample, | 
 |         QWORD *pcnsSampleTime, | 
 |         QWORD *pcnsDuration, | 
 |         DWORD *pdwFlags, | 
 |         DWORD *pdwOutputNum, | 
 |         WORD *pwStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetStreamsSelected)( | 
 |         IWMSyncReader2 *This, | 
 |         WORD cStreamCount, | 
 |         WORD *pwStreamNumbers, | 
 |         WMT_STREAM_SELECTION *pSelections); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamSelected)( | 
 |         IWMSyncReader2 *This, | 
 |         WORD wStreamNum, | 
 |         WMT_STREAM_SELECTION *pSelection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetReadStreamSamples)( | 
 |         IWMSyncReader2 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL fCompressed); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetReadStreamSamples)( | 
 |         IWMSyncReader2 *This, | 
 |         WORD wStreamNum, | 
 |         WINBOOL *pfCompressed); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputSetting)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetOutputSetting)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwOutputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputCount)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD *pcOutputs); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputProps)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwOutputNum, | 
 |         IWMOutputMediaProps **ppOutput); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetOutputProps)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwOutputNum, | 
 |         IWMOutputMediaProps *pOutput); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputFormatCount)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwOutputNum, | 
 |         DWORD *pcFormats); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputFormat)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwOutputNum, | 
 |         DWORD dwFormatNum, | 
 |         IWMOutputMediaProps **ppProps); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetOutputNumberForStream)( | 
 |         IWMSyncReader2 *This, | 
 |         WORD wStreamNum, | 
 |         DWORD *pdwOutputNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStreamNumberForOutput)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwOutputNum, | 
 |         WORD *pwStreamNum); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxOutputSampleSize)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwOutput, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxStreamSampleSize)( | 
 |         IWMSyncReader2 *This, | 
 |         WORD wStream, | 
 |         DWORD *pcbMax); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *OpenStream)( | 
 |         IWMSyncReader2 *This, | 
 |         IStream *pStream); | 
 |  | 
 |     /*** IWMSyncReader2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetRangeByTimecode)( | 
 |         IWMSyncReader2 *This, | 
 |         WORD wStreamNum, | 
 |         WMT_TIMECODE_EXTENSION_DATA *pStart, | 
 |         WMT_TIMECODE_EXTENSION_DATA *pEnd); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetRangeByFrameEx)( | 
 |         IWMSyncReader2 *This, | 
 |         WORD wStreamNum, | 
 |         QWORD qwFrameNumber, | 
 |         LONGLONG cFramesToRead, | 
 |         QWORD *pcnsStartTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForOutput)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwOutputNum, | 
 |         IWMReaderAllocatorEx *pAllocator); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForOutput)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwOutputNum, | 
 |         IWMReaderAllocatorEx **ppAllocator); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAllocateForStream)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwStreamNum, | 
 |         IWMReaderAllocatorEx *pAllocator); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAllocateForStream)( | 
 |         IWMSyncReader2 *This, | 
 |         DWORD dwStreamNum, | 
 |         IWMReaderAllocatorEx **ppAllocator); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMSyncReader2Vtbl; | 
 |  | 
 | interface IWMSyncReader2 { | 
 |     CONST_VTBL IWMSyncReader2Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMSyncReader2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMSyncReader2_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMSyncReader2_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMSyncReader methods ***/ | 
 | #define IWMSyncReader2_Open(This,pwszFilename) (This)->lpVtbl->Open(This,pwszFilename) | 
 | #define IWMSyncReader2_Close(This) (This)->lpVtbl->Close(This) | 
 | #define IWMSyncReader2_SetRange(This,cnsStartTime,cnsDuration) (This)->lpVtbl->SetRange(This,cnsStartTime,cnsDuration) | 
 | #define IWMSyncReader2_SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead) (This)->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead) | 
 | #define IWMSyncReader2_GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum) (This)->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum) | 
 | #define IWMSyncReader2_SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) (This)->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections) | 
 | #define IWMSyncReader2_GetStreamSelected(This,wStreamNum,pSelection) (This)->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection) | 
 | #define IWMSyncReader2_SetReadStreamSamples(This,wStreamNum,fCompressed) (This)->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed) | 
 | #define IWMSyncReader2_GetReadStreamSamples(This,wStreamNum,pfCompressed) (This)->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed) | 
 | #define IWMSyncReader2_GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength) | 
 | #define IWMSyncReader2_SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength) | 
 | #define IWMSyncReader2_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs) | 
 | #define IWMSyncReader2_GetOutputProps(This,dwOutputNum,ppOutput) (This)->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput) | 
 | #define IWMSyncReader2_SetOutputProps(This,dwOutputNum,pOutput) (This)->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput) | 
 | #define IWMSyncReader2_GetOutputFormatCount(This,dwOutputNum,pcFormats) (This)->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats) | 
 | #define IWMSyncReader2_GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps) (This)->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps) | 
 | #define IWMSyncReader2_GetOutputNumberForStream(This,wStreamNum,pdwOutputNum) (This)->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum) | 
 | #define IWMSyncReader2_GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum) (This)->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum) | 
 | #define IWMSyncReader2_GetMaxOutputSampleSize(This,dwOutput,pcbMax) (This)->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax) | 
 | #define IWMSyncReader2_GetMaxStreamSampleSize(This,wStream,pcbMax) (This)->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax) | 
 | #define IWMSyncReader2_OpenStream(This,pStream) (This)->lpVtbl->OpenStream(This,pStream) | 
 | /*** IWMSyncReader2 methods ***/ | 
 | #define IWMSyncReader2_SetRangeByTimecode(This,wStreamNum,pStart,pEnd) (This)->lpVtbl->SetRangeByTimecode(This,wStreamNum,pStart,pEnd) | 
 | #define IWMSyncReader2_SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime) (This)->lpVtbl->SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime) | 
 | #define IWMSyncReader2_SetAllocateForOutput(This,dwOutputNum,pAllocator) (This)->lpVtbl->SetAllocateForOutput(This,dwOutputNum,pAllocator) | 
 | #define IWMSyncReader2_GetAllocateForOutput(This,dwOutputNum,ppAllocator) (This)->lpVtbl->GetAllocateForOutput(This,dwOutputNum,ppAllocator) | 
 | #define IWMSyncReader2_SetAllocateForStream(This,dwStreamNum,pAllocator) (This)->lpVtbl->SetAllocateForStream(This,dwStreamNum,pAllocator) | 
 | #define IWMSyncReader2_GetAllocateForStream(This,dwStreamNum,ppAllocator) (This)->lpVtbl->GetAllocateForStream(This,dwStreamNum,ppAllocator) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMSyncReader2_QueryInterface(IWMSyncReader2* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMSyncReader2_AddRef(IWMSyncReader2* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMSyncReader2_Release(IWMSyncReader2* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMSyncReader methods ***/ | 
 | static FORCEINLINE HRESULT IWMSyncReader2_Open(IWMSyncReader2* This,const WCHAR *pwszFilename) { | 
 |     return This->lpVtbl->Open(This,pwszFilename); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_Close(IWMSyncReader2* This) { | 
 |     return This->lpVtbl->Close(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_SetRange(IWMSyncReader2* This,QWORD cnsStartTime,LONGLONG cnsDuration) { | 
 |     return This->lpVtbl->SetRange(This,cnsStartTime,cnsDuration); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_SetRangeByFrame(IWMSyncReader2* This,WORD wStreamNum,QWORD qwFrameNumber,LONGLONG cFramesToRead) { | 
 |     return This->lpVtbl->SetRangeByFrame(This,wStreamNum,qwFrameNumber,cFramesToRead); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetNextSample(IWMSyncReader2* This,WORD wStreamNum,INSSBuffer **ppSample,QWORD *pcnsSampleTime,QWORD *pcnsDuration,DWORD *pdwFlags,DWORD *pdwOutputNum,WORD *pwStreamNum) { | 
 |     return This->lpVtbl->GetNextSample(This,wStreamNum,ppSample,pcnsSampleTime,pcnsDuration,pdwFlags,pdwOutputNum,pwStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_SetStreamsSelected(IWMSyncReader2* This,WORD cStreamCount,WORD *pwStreamNumbers,WMT_STREAM_SELECTION *pSelections) { | 
 |     return This->lpVtbl->SetStreamsSelected(This,cStreamCount,pwStreamNumbers,pSelections); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetStreamSelected(IWMSyncReader2* This,WORD wStreamNum,WMT_STREAM_SELECTION *pSelection) { | 
 |     return This->lpVtbl->GetStreamSelected(This,wStreamNum,pSelection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_SetReadStreamSamples(IWMSyncReader2* This,WORD wStreamNum,WINBOOL fCompressed) { | 
 |     return This->lpVtbl->SetReadStreamSamples(This,wStreamNum,fCompressed); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetReadStreamSamples(IWMSyncReader2* This,WORD wStreamNum,WINBOOL *pfCompressed) { | 
 |     return This->lpVtbl->GetReadStreamSamples(This,wStreamNum,pfCompressed); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetOutputSetting(IWMSyncReader2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { | 
 |     return This->lpVtbl->GetOutputSetting(This,dwOutputNum,pszName,pType,pValue,pcbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_SetOutputSetting(IWMSyncReader2* This,DWORD dwOutputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { | 
 |     return This->lpVtbl->SetOutputSetting(This,dwOutputNum,pszName,Type,pValue,cbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetOutputCount(IWMSyncReader2* This,DWORD *pcOutputs) { | 
 |     return This->lpVtbl->GetOutputCount(This,pcOutputs); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetOutputProps(IWMSyncReader2* This,DWORD dwOutputNum,IWMOutputMediaProps **ppOutput) { | 
 |     return This->lpVtbl->GetOutputProps(This,dwOutputNum,ppOutput); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_SetOutputProps(IWMSyncReader2* This,DWORD dwOutputNum,IWMOutputMediaProps *pOutput) { | 
 |     return This->lpVtbl->SetOutputProps(This,dwOutputNum,pOutput); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetOutputFormatCount(IWMSyncReader2* This,DWORD dwOutputNum,DWORD *pcFormats) { | 
 |     return This->lpVtbl->GetOutputFormatCount(This,dwOutputNum,pcFormats); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetOutputFormat(IWMSyncReader2* This,DWORD dwOutputNum,DWORD dwFormatNum,IWMOutputMediaProps **ppProps) { | 
 |     return This->lpVtbl->GetOutputFormat(This,dwOutputNum,dwFormatNum,ppProps); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetOutputNumberForStream(IWMSyncReader2* This,WORD wStreamNum,DWORD *pdwOutputNum) { | 
 |     return This->lpVtbl->GetOutputNumberForStream(This,wStreamNum,pdwOutputNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetStreamNumberForOutput(IWMSyncReader2* This,DWORD dwOutputNum,WORD *pwStreamNum) { | 
 |     return This->lpVtbl->GetStreamNumberForOutput(This,dwOutputNum,pwStreamNum); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetMaxOutputSampleSize(IWMSyncReader2* This,DWORD dwOutput,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxOutputSampleSize(This,dwOutput,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetMaxStreamSampleSize(IWMSyncReader2* This,WORD wStream,DWORD *pcbMax) { | 
 |     return This->lpVtbl->GetMaxStreamSampleSize(This,wStream,pcbMax); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_OpenStream(IWMSyncReader2* This,IStream *pStream) { | 
 |     return This->lpVtbl->OpenStream(This,pStream); | 
 | } | 
 | /*** IWMSyncReader2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMSyncReader2_SetRangeByTimecode(IWMSyncReader2* This,WORD wStreamNum,WMT_TIMECODE_EXTENSION_DATA *pStart,WMT_TIMECODE_EXTENSION_DATA *pEnd) { | 
 |     return This->lpVtbl->SetRangeByTimecode(This,wStreamNum,pStart,pEnd); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_SetRangeByFrameEx(IWMSyncReader2* This,WORD wStreamNum,QWORD qwFrameNumber,LONGLONG cFramesToRead,QWORD *pcnsStartTime) { | 
 |     return This->lpVtbl->SetRangeByFrameEx(This,wStreamNum,qwFrameNumber,cFramesToRead,pcnsStartTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_SetAllocateForOutput(IWMSyncReader2* This,DWORD dwOutputNum,IWMReaderAllocatorEx *pAllocator) { | 
 |     return This->lpVtbl->SetAllocateForOutput(This,dwOutputNum,pAllocator); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetAllocateForOutput(IWMSyncReader2* This,DWORD dwOutputNum,IWMReaderAllocatorEx **ppAllocator) { | 
 |     return This->lpVtbl->GetAllocateForOutput(This,dwOutputNum,ppAllocator); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_SetAllocateForStream(IWMSyncReader2* This,DWORD dwStreamNum,IWMReaderAllocatorEx *pAllocator) { | 
 |     return This->lpVtbl->SetAllocateForStream(This,dwStreamNum,pAllocator); | 
 | } | 
 | static FORCEINLINE HRESULT IWMSyncReader2_GetAllocateForStream(IWMSyncReader2* This,DWORD dwStreamNum,IWMReaderAllocatorEx **ppAllocator) { | 
 |     return This->lpVtbl->GetAllocateForStream(This,dwStreamNum,ppAllocator); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMSyncReader2_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMInputMediaProps interface | 
 |  */ | 
 | #ifndef __IWMInputMediaProps_INTERFACE_DEFINED__ | 
 | #define __IWMInputMediaProps_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMInputMediaProps, 0x96406bd5, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bd5-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMInputMediaProps : public IWMMediaProps | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetConnectionName( | 
 |         WCHAR *pwszName, | 
 |         WORD *pcchName) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetGroupName( | 
 |         WCHAR *pwszName, | 
 |         WORD *pcchName) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMInputMediaProps, 0x96406bd5, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMInputMediaPropsVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMInputMediaProps *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMInputMediaProps *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMInputMediaProps *This); | 
 |  | 
 |     /*** IWMMediaProps methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetType)( | 
 |         IWMInputMediaProps *This, | 
 |         GUID *pguidType); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMediaType)( | 
 |         IWMInputMediaProps *This, | 
 |         WM_MEDIA_TYPE *pType, | 
 |         DWORD *pcbType); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetMediaType)( | 
 |         IWMInputMediaProps *This, | 
 |         WM_MEDIA_TYPE *pType); | 
 |  | 
 |     /*** IWMInputMediaProps methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetConnectionName)( | 
 |         IWMInputMediaProps *This, | 
 |         WCHAR *pwszName, | 
 |         WORD *pcchName); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetGroupName)( | 
 |         IWMInputMediaProps *This, | 
 |         WCHAR *pwszName, | 
 |         WORD *pcchName); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMInputMediaPropsVtbl; | 
 |  | 
 | interface IWMInputMediaProps { | 
 |     CONST_VTBL IWMInputMediaPropsVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMInputMediaProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMInputMediaProps_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMInputMediaProps_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMMediaProps methods ***/ | 
 | #define IWMInputMediaProps_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) | 
 | #define IWMInputMediaProps_GetMediaType(This,pType,pcbType) (This)->lpVtbl->GetMediaType(This,pType,pcbType) | 
 | #define IWMInputMediaProps_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType) | 
 | /*** IWMInputMediaProps methods ***/ | 
 | #define IWMInputMediaProps_GetConnectionName(This,pwszName,pcchName) (This)->lpVtbl->GetConnectionName(This,pwszName,pcchName) | 
 | #define IWMInputMediaProps_GetGroupName(This,pwszName,pcchName) (This)->lpVtbl->GetGroupName(This,pwszName,pcchName) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMInputMediaProps_QueryInterface(IWMInputMediaProps* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMInputMediaProps_AddRef(IWMInputMediaProps* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMInputMediaProps_Release(IWMInputMediaProps* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMMediaProps methods ***/ | 
 | static FORCEINLINE HRESULT IWMInputMediaProps_GetType(IWMInputMediaProps* This,GUID *pguidType) { | 
 |     return This->lpVtbl->GetType(This,pguidType); | 
 | } | 
 | static FORCEINLINE HRESULT IWMInputMediaProps_GetMediaType(IWMInputMediaProps* This,WM_MEDIA_TYPE *pType,DWORD *pcbType) { | 
 |     return This->lpVtbl->GetMediaType(This,pType,pcbType); | 
 | } | 
 | static FORCEINLINE HRESULT IWMInputMediaProps_SetMediaType(IWMInputMediaProps* This,WM_MEDIA_TYPE *pType) { | 
 |     return This->lpVtbl->SetMediaType(This,pType); | 
 | } | 
 | /*** IWMInputMediaProps methods ***/ | 
 | static FORCEINLINE HRESULT IWMInputMediaProps_GetConnectionName(IWMInputMediaProps* This,WCHAR *pwszName,WORD *pcchName) { | 
 |     return This->lpVtbl->GetConnectionName(This,pwszName,pcchName); | 
 | } | 
 | static FORCEINLINE HRESULT IWMInputMediaProps_GetGroupName(IWMInputMediaProps* This,WCHAR *pwszName,WORD *pcchName) { | 
 |     return This->lpVtbl->GetGroupName(This,pwszName,pcchName); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMInputMediaProps_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMWriterSink interface | 
 |  */ | 
 | #ifndef __IWMWriterSink_INTERFACE_DEFINED__ | 
 | #define __IWMWriterSink_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMWriterSink, 0x96406be4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406be4-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMWriterSink : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE OnHeader( | 
 |         INSSBuffer *pHeader) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE IsRealTime( | 
 |         WINBOOL *pfRealTime) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AllocateDataUnit( | 
 |         DWORD cbDataUnit, | 
 |         INSSBuffer **ppDataUnit) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE OnDataUnit( | 
 |         INSSBuffer *pDataUnit) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE OnEndWriting( | 
 |         ) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMWriterSink, 0x96406be4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMWriterSinkVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMWriterSink *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMWriterSink *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMWriterSink *This); | 
 |  | 
 |     /*** IWMWriterSink methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *OnHeader)( | 
 |         IWMWriterSink *This, | 
 |         INSSBuffer *pHeader); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *IsRealTime)( | 
 |         IWMWriterSink *This, | 
 |         WINBOOL *pfRealTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AllocateDataUnit)( | 
 |         IWMWriterSink *This, | 
 |         DWORD cbDataUnit, | 
 |         INSSBuffer **ppDataUnit); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *OnDataUnit)( | 
 |         IWMWriterSink *This, | 
 |         INSSBuffer *pDataUnit); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *OnEndWriting)( | 
 |         IWMWriterSink *This); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMWriterSinkVtbl; | 
 |  | 
 | interface IWMWriterSink { | 
 |     CONST_VTBL IWMWriterSinkVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMWriterSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMWriterSink_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMWriterSink_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMWriterSink methods ***/ | 
 | #define IWMWriterSink_OnHeader(This,pHeader) (This)->lpVtbl->OnHeader(This,pHeader) | 
 | #define IWMWriterSink_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime) | 
 | #define IWMWriterSink_AllocateDataUnit(This,cbDataUnit,ppDataUnit) (This)->lpVtbl->AllocateDataUnit(This,cbDataUnit,ppDataUnit) | 
 | #define IWMWriterSink_OnDataUnit(This,pDataUnit) (This)->lpVtbl->OnDataUnit(This,pDataUnit) | 
 | #define IWMWriterSink_OnEndWriting(This) (This)->lpVtbl->OnEndWriting(This) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterSink_QueryInterface(IWMWriterSink* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriterSink_AddRef(IWMWriterSink* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriterSink_Release(IWMWriterSink* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMWriterSink methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterSink_OnHeader(IWMWriterSink* This,INSSBuffer *pHeader) { | 
 |     return This->lpVtbl->OnHeader(This,pHeader); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterSink_IsRealTime(IWMWriterSink* This,WINBOOL *pfRealTime) { | 
 |     return This->lpVtbl->IsRealTime(This,pfRealTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterSink_AllocateDataUnit(IWMWriterSink* This,DWORD cbDataUnit,INSSBuffer **ppDataUnit) { | 
 |     return This->lpVtbl->AllocateDataUnit(This,cbDataUnit,ppDataUnit); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterSink_OnDataUnit(IWMWriterSink* This,INSSBuffer *pDataUnit) { | 
 |     return This->lpVtbl->OnDataUnit(This,pDataUnit); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterSink_OnEndWriting(IWMWriterSink* This) { | 
 |     return This->lpVtbl->OnEndWriting(This); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMWriterSink_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMWriter interface | 
 |  */ | 
 | #ifndef __IWMWriter_INTERFACE_DEFINED__ | 
 | #define __IWMWriter_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMWriter, 0x96406bd4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bd4-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMWriter : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE SetProfileByID( | 
 |         REFGUID guidProfile) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetProfile( | 
 |         IWMProfile *pProfile) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetOutputFilename( | 
 |         const WCHAR *pwszFilename) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetInputCount( | 
 |         DWORD *pcInputs) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetInputProps( | 
 |         DWORD dwInputNum, | 
 |         IWMInputMediaProps **ppInput) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetInputProps( | 
 |         DWORD dwInputNum, | 
 |         IWMInputMediaProps *pInput) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetInputFormatCount( | 
 |         DWORD dwInputNumber, | 
 |         DWORD *pcFormats) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetInputFormat( | 
 |         DWORD dwInputNumber, | 
 |         DWORD dwFormatNumber, | 
 |         IWMInputMediaProps **pProps) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE BeginWriting( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE EndWriting( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AllocateSample( | 
 |         DWORD dwSampleSize, | 
 |         INSSBuffer **ppSample) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE WriteSample( | 
 |         DWORD dwInputNum, | 
 |         QWORD cnsSampleTime, | 
 |         DWORD dwFlags, | 
 |         INSSBuffer *pSample) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Flush( | 
 |         ) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMWriter, 0x96406bd4, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMWriterVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMWriter *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMWriter *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMWriter *This); | 
 |  | 
 |     /*** IWMWriter methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetProfileByID)( | 
 |         IWMWriter *This, | 
 |         REFGUID guidProfile); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProfile)( | 
 |         IWMWriter *This, | 
 |         IWMProfile *pProfile); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetOutputFilename)( | 
 |         IWMWriter *This, | 
 |         const WCHAR *pwszFilename); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetInputCount)( | 
 |         IWMWriter *This, | 
 |         DWORD *pcInputs); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetInputProps)( | 
 |         IWMWriter *This, | 
 |         DWORD dwInputNum, | 
 |         IWMInputMediaProps **ppInput); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetInputProps)( | 
 |         IWMWriter *This, | 
 |         DWORD dwInputNum, | 
 |         IWMInputMediaProps *pInput); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetInputFormatCount)( | 
 |         IWMWriter *This, | 
 |         DWORD dwInputNumber, | 
 |         DWORD *pcFormats); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetInputFormat)( | 
 |         IWMWriter *This, | 
 |         DWORD dwInputNumber, | 
 |         DWORD dwFormatNumber, | 
 |         IWMInputMediaProps **pProps); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *BeginWriting)( | 
 |         IWMWriter *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *EndWriting)( | 
 |         IWMWriter *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AllocateSample)( | 
 |         IWMWriter *This, | 
 |         DWORD dwSampleSize, | 
 |         INSSBuffer **ppSample); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *WriteSample)( | 
 |         IWMWriter *This, | 
 |         DWORD dwInputNum, | 
 |         QWORD cnsSampleTime, | 
 |         DWORD dwFlags, | 
 |         INSSBuffer *pSample); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Flush)( | 
 |         IWMWriter *This); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMWriterVtbl; | 
 |  | 
 | interface IWMWriter { | 
 |     CONST_VTBL IWMWriterVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMWriter_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMWriter_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMWriter methods ***/ | 
 | #define IWMWriter_SetProfileByID(This,guidProfile) (This)->lpVtbl->SetProfileByID(This,guidProfile) | 
 | #define IWMWriter_SetProfile(This,pProfile) (This)->lpVtbl->SetProfile(This,pProfile) | 
 | #define IWMWriter_SetOutputFilename(This,pwszFilename) (This)->lpVtbl->SetOutputFilename(This,pwszFilename) | 
 | #define IWMWriter_GetInputCount(This,pcInputs) (This)->lpVtbl->GetInputCount(This,pcInputs) | 
 | #define IWMWriter_GetInputProps(This,dwInputNum,ppInput) (This)->lpVtbl->GetInputProps(This,dwInputNum,ppInput) | 
 | #define IWMWriter_SetInputProps(This,dwInputNum,pInput) (This)->lpVtbl->SetInputProps(This,dwInputNum,pInput) | 
 | #define IWMWriter_GetInputFormatCount(This,dwInputNumber,pcFormats) (This)->lpVtbl->GetInputFormatCount(This,dwInputNumber,pcFormats) | 
 | #define IWMWriter_GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps) (This)->lpVtbl->GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps) | 
 | #define IWMWriter_BeginWriting(This) (This)->lpVtbl->BeginWriting(This) | 
 | #define IWMWriter_EndWriting(This) (This)->lpVtbl->EndWriting(This) | 
 | #define IWMWriter_AllocateSample(This,dwSampleSize,ppSample) (This)->lpVtbl->AllocateSample(This,dwSampleSize,ppSample) | 
 | #define IWMWriter_WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample) (This)->lpVtbl->WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample) | 
 | #define IWMWriter_Flush(This) (This)->lpVtbl->Flush(This) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriter_QueryInterface(IWMWriter* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriter_AddRef(IWMWriter* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriter_Release(IWMWriter* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMWriter methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriter_SetProfileByID(IWMWriter* This,REFGUID guidProfile) { | 
 |     return This->lpVtbl->SetProfileByID(This,guidProfile); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_SetProfile(IWMWriter* This,IWMProfile *pProfile) { | 
 |     return This->lpVtbl->SetProfile(This,pProfile); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_SetOutputFilename(IWMWriter* This,const WCHAR *pwszFilename) { | 
 |     return This->lpVtbl->SetOutputFilename(This,pwszFilename); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_GetInputCount(IWMWriter* This,DWORD *pcInputs) { | 
 |     return This->lpVtbl->GetInputCount(This,pcInputs); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_GetInputProps(IWMWriter* This,DWORD dwInputNum,IWMInputMediaProps **ppInput) { | 
 |     return This->lpVtbl->GetInputProps(This,dwInputNum,ppInput); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_SetInputProps(IWMWriter* This,DWORD dwInputNum,IWMInputMediaProps *pInput) { | 
 |     return This->lpVtbl->SetInputProps(This,dwInputNum,pInput); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_GetInputFormatCount(IWMWriter* This,DWORD dwInputNumber,DWORD *pcFormats) { | 
 |     return This->lpVtbl->GetInputFormatCount(This,dwInputNumber,pcFormats); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_GetInputFormat(IWMWriter* This,DWORD dwInputNumber,DWORD dwFormatNumber,IWMInputMediaProps **pProps) { | 
 |     return This->lpVtbl->GetInputFormat(This,dwInputNumber,dwFormatNumber,pProps); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_BeginWriting(IWMWriter* This) { | 
 |     return This->lpVtbl->BeginWriting(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_EndWriting(IWMWriter* This) { | 
 |     return This->lpVtbl->EndWriting(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_AllocateSample(IWMWriter* This,DWORD dwSampleSize,INSSBuffer **ppSample) { | 
 |     return This->lpVtbl->AllocateSample(This,dwSampleSize,ppSample); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_WriteSample(IWMWriter* This,DWORD dwInputNum,QWORD cnsSampleTime,DWORD dwFlags,INSSBuffer *pSample) { | 
 |     return This->lpVtbl->WriteSample(This,dwInputNum,cnsSampleTime,dwFlags,pSample); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriter_Flush(IWMWriter* This) { | 
 |     return This->lpVtbl->Flush(This); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMWriter_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMWriterAdvanced interface | 
 |  */ | 
 | #ifndef __IWMWriterAdvanced_INTERFACE_DEFINED__ | 
 | #define __IWMWriterAdvanced_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMWriterAdvanced, 0x96406be3, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406be3-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMWriterAdvanced : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetSinkCount( | 
 |         DWORD *pcSinks) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetSink( | 
 |         DWORD dwSinkNum, | 
 |         IWMWriterSink **ppSink) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddSink( | 
 |         IWMWriterSink *pSink) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE RemoveSink( | 
 |         IWMWriterSink *pSink) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE WriteStreamSample( | 
 |         WORD wStreamNum, | 
 |         QWORD cnsSampleTime, | 
 |         DWORD msSampleSendTime, | 
 |         QWORD cnsSampleDuration, | 
 |         DWORD dwFlags, | 
 |         INSSBuffer *pSample) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetLiveSource( | 
 |         WINBOOL fIsLiveSource) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE IsRealTime( | 
 |         WINBOOL *pfRealTime) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetWriterTime( | 
 |         QWORD *pCurrentTime) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStatistics( | 
 |         WORD wStreamNum, | 
 |         WM_WRITER_STATISTICS *pStats) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance( | 
 |         DWORD msWindow) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetSyncTolerance( | 
 |         DWORD *pmsWindow) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMWriterAdvanced, 0x96406be3, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMWriterAdvancedVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMWriterAdvanced *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMWriterAdvanced *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMWriterAdvanced *This); | 
 |  | 
 |     /*** IWMWriterAdvanced methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetSinkCount)( | 
 |         IWMWriterAdvanced *This, | 
 |         DWORD *pcSinks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSink)( | 
 |         IWMWriterAdvanced *This, | 
 |         DWORD dwSinkNum, | 
 |         IWMWriterSink **ppSink); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddSink)( | 
 |         IWMWriterAdvanced *This, | 
 |         IWMWriterSink *pSink); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveSink)( | 
 |         IWMWriterAdvanced *This, | 
 |         IWMWriterSink *pSink); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *WriteStreamSample)( | 
 |         IWMWriterAdvanced *This, | 
 |         WORD wStreamNum, | 
 |         QWORD cnsSampleTime, | 
 |         DWORD msSampleSendTime, | 
 |         QWORD cnsSampleDuration, | 
 |         DWORD dwFlags, | 
 |         INSSBuffer *pSample); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetLiveSource)( | 
 |         IWMWriterAdvanced *This, | 
 |         WINBOOL fIsLiveSource); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *IsRealTime)( | 
 |         IWMWriterAdvanced *This, | 
 |         WINBOOL *pfRealTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetWriterTime)( | 
 |         IWMWriterAdvanced *This, | 
 |         QWORD *pCurrentTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStatistics)( | 
 |         IWMWriterAdvanced *This, | 
 |         WORD wStreamNum, | 
 |         WM_WRITER_STATISTICS *pStats); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)( | 
 |         IWMWriterAdvanced *This, | 
 |         DWORD msWindow); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)( | 
 |         IWMWriterAdvanced *This, | 
 |         DWORD *pmsWindow); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMWriterAdvancedVtbl; | 
 |  | 
 | interface IWMWriterAdvanced { | 
 |     CONST_VTBL IWMWriterAdvancedVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMWriterAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMWriterAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMWriterAdvanced_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMWriterAdvanced methods ***/ | 
 | #define IWMWriterAdvanced_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks) | 
 | #define IWMWriterAdvanced_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink) | 
 | #define IWMWriterAdvanced_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink) | 
 | #define IWMWriterAdvanced_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink) | 
 | #define IWMWriterAdvanced_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) | 
 | #define IWMWriterAdvanced_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource) | 
 | #define IWMWriterAdvanced_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime) | 
 | #define IWMWriterAdvanced_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime) | 
 | #define IWMWriterAdvanced_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats) | 
 | #define IWMWriterAdvanced_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow) | 
 | #define IWMWriterAdvanced_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_QueryInterface(IWMWriterAdvanced* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriterAdvanced_AddRef(IWMWriterAdvanced* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriterAdvanced_Release(IWMWriterAdvanced* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMWriterAdvanced methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_GetSinkCount(IWMWriterAdvanced* This,DWORD *pcSinks) { | 
 |     return This->lpVtbl->GetSinkCount(This,pcSinks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_GetSink(IWMWriterAdvanced* This,DWORD dwSinkNum,IWMWriterSink **ppSink) { | 
 |     return This->lpVtbl->GetSink(This,dwSinkNum,ppSink); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_AddSink(IWMWriterAdvanced* This,IWMWriterSink *pSink) { | 
 |     return This->lpVtbl->AddSink(This,pSink); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_RemoveSink(IWMWriterAdvanced* This,IWMWriterSink *pSink) { | 
 |     return This->lpVtbl->RemoveSink(This,pSink); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_WriteStreamSample(IWMWriterAdvanced* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) { | 
 |     return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_SetLiveSource(IWMWriterAdvanced* This,WINBOOL fIsLiveSource) { | 
 |     return This->lpVtbl->SetLiveSource(This,fIsLiveSource); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_IsRealTime(IWMWriterAdvanced* This,WINBOOL *pfRealTime) { | 
 |     return This->lpVtbl->IsRealTime(This,pfRealTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_GetWriterTime(IWMWriterAdvanced* This,QWORD *pCurrentTime) { | 
 |     return This->lpVtbl->GetWriterTime(This,pCurrentTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_GetStatistics(IWMWriterAdvanced* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) { | 
 |     return This->lpVtbl->GetStatistics(This,wStreamNum,pStats); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_SetSyncTolerance(IWMWriterAdvanced* This,DWORD msWindow) { | 
 |     return This->lpVtbl->SetSyncTolerance(This,msWindow); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced_GetSyncTolerance(IWMWriterAdvanced* This,DWORD *pmsWindow) { | 
 |     return This->lpVtbl->GetSyncTolerance(This,pmsWindow); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMWriterAdvanced_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMWriterAdvanced2 interface | 
 |  */ | 
 | #ifndef __IWMWriterAdvanced2_INTERFACE_DEFINED__ | 
 | #define __IWMWriterAdvanced2_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMWriterAdvanced2, 0x962dc1ec, 0xc046, 0x4db8, 0x9c,0xc7, 0x26,0xce,0xae,0x50,0x08,0x17); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("962dc1ec-c046-4db8-9cc7-26ceae500817") | 
 | IWMWriterAdvanced2 : public IWMWriterAdvanced | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetInputSetting( | 
 |         DWORD dwInputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetInputSetting( | 
 |         DWORD dwInputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMWriterAdvanced2, 0x962dc1ec, 0xc046, 0x4db8, 0x9c,0xc7, 0x26,0xce,0xae,0x50,0x08,0x17) | 
 | #endif | 
 | #else | 
 | typedef struct IWMWriterAdvanced2Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMWriterAdvanced2 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMWriterAdvanced2 *This); | 
 |  | 
 |     /*** IWMWriterAdvanced methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetSinkCount)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         DWORD *pcSinks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSink)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         DWORD dwSinkNum, | 
 |         IWMWriterSink **ppSink); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddSink)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         IWMWriterSink *pSink); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveSink)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         IWMWriterSink *pSink); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *WriteStreamSample)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         WORD wStreamNum, | 
 |         QWORD cnsSampleTime, | 
 |         DWORD msSampleSendTime, | 
 |         QWORD cnsSampleDuration, | 
 |         DWORD dwFlags, | 
 |         INSSBuffer *pSample); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetLiveSource)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         WINBOOL fIsLiveSource); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *IsRealTime)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         WINBOOL *pfRealTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetWriterTime)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         QWORD *pCurrentTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStatistics)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         WORD wStreamNum, | 
 |         WM_WRITER_STATISTICS *pStats); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         DWORD msWindow); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         DWORD *pmsWindow); | 
 |  | 
 |     /*** IWMWriterAdvanced2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetInputSetting)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         DWORD dwInputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetInputSetting)( | 
 |         IWMWriterAdvanced2 *This, | 
 |         DWORD dwInputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMWriterAdvanced2Vtbl; | 
 |  | 
 | interface IWMWriterAdvanced2 { | 
 |     CONST_VTBL IWMWriterAdvanced2Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMWriterAdvanced2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMWriterAdvanced2_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMWriterAdvanced2_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMWriterAdvanced methods ***/ | 
 | #define IWMWriterAdvanced2_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks) | 
 | #define IWMWriterAdvanced2_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink) | 
 | #define IWMWriterAdvanced2_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink) | 
 | #define IWMWriterAdvanced2_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink) | 
 | #define IWMWriterAdvanced2_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) | 
 | #define IWMWriterAdvanced2_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource) | 
 | #define IWMWriterAdvanced2_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime) | 
 | #define IWMWriterAdvanced2_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime) | 
 | #define IWMWriterAdvanced2_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats) | 
 | #define IWMWriterAdvanced2_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow) | 
 | #define IWMWriterAdvanced2_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow) | 
 | /*** IWMWriterAdvanced2 methods ***/ | 
 | #define IWMWriterAdvanced2_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) | 
 | #define IWMWriterAdvanced2_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_QueryInterface(IWMWriterAdvanced2* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriterAdvanced2_AddRef(IWMWriterAdvanced2* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriterAdvanced2_Release(IWMWriterAdvanced2* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMWriterAdvanced methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_GetSinkCount(IWMWriterAdvanced2* This,DWORD *pcSinks) { | 
 |     return This->lpVtbl->GetSinkCount(This,pcSinks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_GetSink(IWMWriterAdvanced2* This,DWORD dwSinkNum,IWMWriterSink **ppSink) { | 
 |     return This->lpVtbl->GetSink(This,dwSinkNum,ppSink); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_AddSink(IWMWriterAdvanced2* This,IWMWriterSink *pSink) { | 
 |     return This->lpVtbl->AddSink(This,pSink); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_RemoveSink(IWMWriterAdvanced2* This,IWMWriterSink *pSink) { | 
 |     return This->lpVtbl->RemoveSink(This,pSink); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_WriteStreamSample(IWMWriterAdvanced2* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) { | 
 |     return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_SetLiveSource(IWMWriterAdvanced2* This,WINBOOL fIsLiveSource) { | 
 |     return This->lpVtbl->SetLiveSource(This,fIsLiveSource); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_IsRealTime(IWMWriterAdvanced2* This,WINBOOL *pfRealTime) { | 
 |     return This->lpVtbl->IsRealTime(This,pfRealTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_GetWriterTime(IWMWriterAdvanced2* This,QWORD *pCurrentTime) { | 
 |     return This->lpVtbl->GetWriterTime(This,pCurrentTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_GetStatistics(IWMWriterAdvanced2* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) { | 
 |     return This->lpVtbl->GetStatistics(This,wStreamNum,pStats); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_SetSyncTolerance(IWMWriterAdvanced2* This,DWORD msWindow) { | 
 |     return This->lpVtbl->SetSyncTolerance(This,msWindow); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_GetSyncTolerance(IWMWriterAdvanced2* This,DWORD *pmsWindow) { | 
 |     return This->lpVtbl->GetSyncTolerance(This,pmsWindow); | 
 | } | 
 | /*** IWMWriterAdvanced2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_GetInputSetting(IWMWriterAdvanced2* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { | 
 |     return This->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced2_SetInputSetting(IWMWriterAdvanced2* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { | 
 |     return This->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMWriterAdvanced2_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMWriterAdvanced3 interface | 
 |  */ | 
 | #ifndef __IWMWriterAdvanced3_INTERFACE_DEFINED__ | 
 | #define __IWMWriterAdvanced3_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMWriterAdvanced3, 0x2cd6492d, 0x7c37, 0x4e76, 0x9d,0x3b, 0x59,0x26,0x11,0x83,0xa2,0x2e); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("2cd6492d-7c37-4e76-9d3b-59261183a22e") | 
 | IWMWriterAdvanced3 : public IWMWriterAdvanced2 | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetStatisticsEx( | 
 |         WORD wStreamNum, | 
 |         WM_WRITER_STATISTICS_EX *pStats) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetNonBlocking( | 
 |         ) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMWriterAdvanced3, 0x2cd6492d, 0x7c37, 0x4e76, 0x9d,0x3b, 0x59,0x26,0x11,0x83,0xa2,0x2e) | 
 | #endif | 
 | #else | 
 | typedef struct IWMWriterAdvanced3Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMWriterAdvanced3 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMWriterAdvanced3 *This); | 
 |  | 
 |     /*** IWMWriterAdvanced methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetSinkCount)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         DWORD *pcSinks); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSink)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         DWORD dwSinkNum, | 
 |         IWMWriterSink **ppSink); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddSink)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         IWMWriterSink *pSink); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveSink)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         IWMWriterSink *pSink); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *WriteStreamSample)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         WORD wStreamNum, | 
 |         QWORD cnsSampleTime, | 
 |         DWORD msSampleSendTime, | 
 |         QWORD cnsSampleDuration, | 
 |         DWORD dwFlags, | 
 |         INSSBuffer *pSample); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetLiveSource)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         WINBOOL fIsLiveSource); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *IsRealTime)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         WINBOOL *pfRealTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetWriterTime)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         QWORD *pCurrentTime); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetStatistics)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         WORD wStreamNum, | 
 |         WM_WRITER_STATISTICS *pStats); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         DWORD msWindow); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSyncTolerance)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         DWORD *pmsWindow); | 
 |  | 
 |     /*** IWMWriterAdvanced2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetInputSetting)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         DWORD dwInputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE *pType, | 
 |         BYTE *pValue, | 
 |         WORD *pcbLength); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetInputSetting)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         DWORD dwInputNum, | 
 |         LPCWSTR pszName, | 
 |         WMT_ATTR_DATATYPE Type, | 
 |         const BYTE *pValue, | 
 |         WORD cbLength); | 
 |  | 
 |     /*** IWMWriterAdvanced3 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetStatisticsEx)( | 
 |         IWMWriterAdvanced3 *This, | 
 |         WORD wStreamNum, | 
 |         WM_WRITER_STATISTICS_EX *pStats); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetNonBlocking)( | 
 |         IWMWriterAdvanced3 *This); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMWriterAdvanced3Vtbl; | 
 |  | 
 | interface IWMWriterAdvanced3 { | 
 |     CONST_VTBL IWMWriterAdvanced3Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMWriterAdvanced3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMWriterAdvanced3_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMWriterAdvanced3_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMWriterAdvanced methods ***/ | 
 | #define IWMWriterAdvanced3_GetSinkCount(This,pcSinks) (This)->lpVtbl->GetSinkCount(This,pcSinks) | 
 | #define IWMWriterAdvanced3_GetSink(This,dwSinkNum,ppSink) (This)->lpVtbl->GetSink(This,dwSinkNum,ppSink) | 
 | #define IWMWriterAdvanced3_AddSink(This,pSink) (This)->lpVtbl->AddSink(This,pSink) | 
 | #define IWMWriterAdvanced3_RemoveSink(This,pSink) (This)->lpVtbl->RemoveSink(This,pSink) | 
 | #define IWMWriterAdvanced3_WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) (This)->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample) | 
 | #define IWMWriterAdvanced3_SetLiveSource(This,fIsLiveSource) (This)->lpVtbl->SetLiveSource(This,fIsLiveSource) | 
 | #define IWMWriterAdvanced3_IsRealTime(This,pfRealTime) (This)->lpVtbl->IsRealTime(This,pfRealTime) | 
 | #define IWMWriterAdvanced3_GetWriterTime(This,pCurrentTime) (This)->lpVtbl->GetWriterTime(This,pCurrentTime) | 
 | #define IWMWriterAdvanced3_GetStatistics(This,wStreamNum,pStats) (This)->lpVtbl->GetStatistics(This,wStreamNum,pStats) | 
 | #define IWMWriterAdvanced3_SetSyncTolerance(This,msWindow) (This)->lpVtbl->SetSyncTolerance(This,msWindow) | 
 | #define IWMWriterAdvanced3_GetSyncTolerance(This,pmsWindow) (This)->lpVtbl->GetSyncTolerance(This,pmsWindow) | 
 | /*** IWMWriterAdvanced2 methods ***/ | 
 | #define IWMWriterAdvanced3_GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) (This)->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength) | 
 | #define IWMWriterAdvanced3_SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) (This)->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength) | 
 | /*** IWMWriterAdvanced3 methods ***/ | 
 | #define IWMWriterAdvanced3_GetStatisticsEx(This,wStreamNum,pStats) (This)->lpVtbl->GetStatisticsEx(This,wStreamNum,pStats) | 
 | #define IWMWriterAdvanced3_SetNonBlocking(This) (This)->lpVtbl->SetNonBlocking(This) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_QueryInterface(IWMWriterAdvanced3* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriterAdvanced3_AddRef(IWMWriterAdvanced3* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriterAdvanced3_Release(IWMWriterAdvanced3* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMWriterAdvanced methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_GetSinkCount(IWMWriterAdvanced3* This,DWORD *pcSinks) { | 
 |     return This->lpVtbl->GetSinkCount(This,pcSinks); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_GetSink(IWMWriterAdvanced3* This,DWORD dwSinkNum,IWMWriterSink **ppSink) { | 
 |     return This->lpVtbl->GetSink(This,dwSinkNum,ppSink); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_AddSink(IWMWriterAdvanced3* This,IWMWriterSink *pSink) { | 
 |     return This->lpVtbl->AddSink(This,pSink); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_RemoveSink(IWMWriterAdvanced3* This,IWMWriterSink *pSink) { | 
 |     return This->lpVtbl->RemoveSink(This,pSink); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_WriteStreamSample(IWMWriterAdvanced3* This,WORD wStreamNum,QWORD cnsSampleTime,DWORD msSampleSendTime,QWORD cnsSampleDuration,DWORD dwFlags,INSSBuffer *pSample) { | 
 |     return This->lpVtbl->WriteStreamSample(This,wStreamNum,cnsSampleTime,msSampleSendTime,cnsSampleDuration,dwFlags,pSample); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_SetLiveSource(IWMWriterAdvanced3* This,WINBOOL fIsLiveSource) { | 
 |     return This->lpVtbl->SetLiveSource(This,fIsLiveSource); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_IsRealTime(IWMWriterAdvanced3* This,WINBOOL *pfRealTime) { | 
 |     return This->lpVtbl->IsRealTime(This,pfRealTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_GetWriterTime(IWMWriterAdvanced3* This,QWORD *pCurrentTime) { | 
 |     return This->lpVtbl->GetWriterTime(This,pCurrentTime); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_GetStatistics(IWMWriterAdvanced3* This,WORD wStreamNum,WM_WRITER_STATISTICS *pStats) { | 
 |     return This->lpVtbl->GetStatistics(This,wStreamNum,pStats); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_SetSyncTolerance(IWMWriterAdvanced3* This,DWORD msWindow) { | 
 |     return This->lpVtbl->SetSyncTolerance(This,msWindow); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_GetSyncTolerance(IWMWriterAdvanced3* This,DWORD *pmsWindow) { | 
 |     return This->lpVtbl->GetSyncTolerance(This,pmsWindow); | 
 | } | 
 | /*** IWMWriterAdvanced2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_GetInputSetting(IWMWriterAdvanced3* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE *pType,BYTE *pValue,WORD *pcbLength) { | 
 |     return This->lpVtbl->GetInputSetting(This,dwInputNum,pszName,pType,pValue,pcbLength); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_SetInputSetting(IWMWriterAdvanced3* This,DWORD dwInputNum,LPCWSTR pszName,WMT_ATTR_DATATYPE Type,const BYTE *pValue,WORD cbLength) { | 
 |     return This->lpVtbl->SetInputSetting(This,dwInputNum,pszName,Type,pValue,cbLength); | 
 | } | 
 | /*** IWMWriterAdvanced3 methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_GetStatisticsEx(IWMWriterAdvanced3* This,WORD wStreamNum,WM_WRITER_STATISTICS_EX *pStats) { | 
 |     return This->lpVtbl->GetStatisticsEx(This,wStreamNum,pStats); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterAdvanced3_SetNonBlocking(IWMWriterAdvanced3* This) { | 
 |     return This->lpVtbl->SetNonBlocking(This); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMWriterAdvanced3_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMHeaderInfo interface | 
 |  */ | 
 | #ifndef __IWMHeaderInfo_INTERFACE_DEFINED__ | 
 | #define __IWMHeaderInfo_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMHeaderInfo, 0x96406bda, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bda-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMHeaderInfo : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAttributeCount( | 
 |         WORD stream_num, | 
 |         WORD *attributes) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndex( | 
 |         WORD index, | 
 |         WORD *stream_num, | 
 |         WCHAR *name, | 
 |         WORD *name_len, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAttributeByName( | 
 |         WORD *stream_num, | 
 |         LPCWSTR name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetAttribute( | 
 |         WORD stream_num, | 
 |         LPCWSTR name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         const BYTE *value, | 
 |         WORD length) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMarkerCount( | 
 |         WORD *markers) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMarker( | 
 |         WORD index, | 
 |         WCHAR *marker_name, | 
 |         WORD *marker_len, | 
 |         QWORD *marker_time) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddMarker( | 
 |         LPCWSTR_WMSDK_TYPE_SAFE marker_name, | 
 |         QWORD marker_time) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE RemoveMarker( | 
 |         WORD index) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetScriptCount( | 
 |         WORD *scripts) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetScript( | 
 |         WORD index, | 
 |         WCHAR *type, | 
 |         WORD *type_len, | 
 |         WCHAR *command, | 
 |         WORD *command_len, | 
 |         QWORD *script_time) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddScript( | 
 |         LPCWSTR_WMSDK_TYPE_SAFE type, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE command, | 
 |         QWORD script_time) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE RemoveScript( | 
 |         WORD index) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMHeaderInfo, 0x96406bda, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMHeaderInfoVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMHeaderInfo *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMHeaderInfo *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMHeaderInfo *This); | 
 |  | 
 |     /*** IWMHeaderInfo methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetAttributeCount)( | 
 |         IWMHeaderInfo *This, | 
 |         WORD stream_num, | 
 |         WORD *attributes); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)( | 
 |         IWMHeaderInfo *This, | 
 |         WORD index, | 
 |         WORD *stream_num, | 
 |         WCHAR *name, | 
 |         WORD *name_len, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAttributeByName)( | 
 |         IWMHeaderInfo *This, | 
 |         WORD *stream_num, | 
 |         LPCWSTR name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAttribute)( | 
 |         IWMHeaderInfo *This, | 
 |         WORD stream_num, | 
 |         LPCWSTR name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         const BYTE *value, | 
 |         WORD length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMarkerCount)( | 
 |         IWMHeaderInfo *This, | 
 |         WORD *markers); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMarker)( | 
 |         IWMHeaderInfo *This, | 
 |         WORD index, | 
 |         WCHAR *marker_name, | 
 |         WORD *marker_len, | 
 |         QWORD *marker_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddMarker)( | 
 |         IWMHeaderInfo *This, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE marker_name, | 
 |         QWORD marker_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveMarker)( | 
 |         IWMHeaderInfo *This, | 
 |         WORD index); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetScriptCount)( | 
 |         IWMHeaderInfo *This, | 
 |         WORD *scripts); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetScript)( | 
 |         IWMHeaderInfo *This, | 
 |         WORD index, | 
 |         WCHAR *type, | 
 |         WORD *type_len, | 
 |         WCHAR *command, | 
 |         WORD *command_len, | 
 |         QWORD *script_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddScript)( | 
 |         IWMHeaderInfo *This, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE type, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE command, | 
 |         QWORD script_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveScript)( | 
 |         IWMHeaderInfo *This, | 
 |         WORD index); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMHeaderInfoVtbl; | 
 |  | 
 | interface IWMHeaderInfo { | 
 |     CONST_VTBL IWMHeaderInfoVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMHeaderInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMHeaderInfo_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMHeaderInfo_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMHeaderInfo methods ***/ | 
 | #define IWMHeaderInfo_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes) | 
 | #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) | 
 | #define IWMHeaderInfo_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length) | 
 | #define IWMHeaderInfo_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length) | 
 | #define IWMHeaderInfo_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers) | 
 | #define IWMHeaderInfo_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time) | 
 | #define IWMHeaderInfo_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time) | 
 | #define IWMHeaderInfo_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index) | 
 | #define IWMHeaderInfo_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts) | 
 | #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) | 
 | #define IWMHeaderInfo_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time) | 
 | #define IWMHeaderInfo_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_QueryInterface(IWMHeaderInfo* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMHeaderInfo_AddRef(IWMHeaderInfo* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMHeaderInfo_Release(IWMHeaderInfo* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMHeaderInfo methods ***/ | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_GetAttributeCount(IWMHeaderInfo* This,WORD stream_num,WORD *attributes) { | 
 |     return This->lpVtbl->GetAttributeCount(This,stream_num,attributes); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_GetAttributeByIndex(IWMHeaderInfo* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { | 
 |     return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_GetAttributeByName(IWMHeaderInfo* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { | 
 |     return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_SetAttribute(IWMHeaderInfo* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { | 
 |     return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_GetMarkerCount(IWMHeaderInfo* This,WORD *markers) { | 
 |     return This->lpVtbl->GetMarkerCount(This,markers); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_GetMarker(IWMHeaderInfo* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) { | 
 |     return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_AddMarker(IWMHeaderInfo* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) { | 
 |     return This->lpVtbl->AddMarker(This,marker_name,marker_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_RemoveMarker(IWMHeaderInfo* This,WORD index) { | 
 |     return This->lpVtbl->RemoveMarker(This,index); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_GetScriptCount(IWMHeaderInfo* This,WORD *scripts) { | 
 |     return This->lpVtbl->GetScriptCount(This,scripts); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_GetScript(IWMHeaderInfo* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) { | 
 |     return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_AddScript(IWMHeaderInfo* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) { | 
 |     return This->lpVtbl->AddScript(This,type,command,script_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo_RemoveScript(IWMHeaderInfo* This,WORD index) { | 
 |     return This->lpVtbl->RemoveScript(This,index); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMHeaderInfo_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMHeaderInfo2 interface | 
 |  */ | 
 | #ifndef __IWMHeaderInfo2_INTERFACE_DEFINED__ | 
 | #define __IWMHeaderInfo2_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMHeaderInfo2, 0x15cf9781, 0x454e, 0x482e, 0xb3,0x93, 0x85,0xfa,0xe4,0x87,0xa8,0x10); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("15cf9781-454e-482e-b393-85fae487a810") | 
 | IWMHeaderInfo2 : public IWMHeaderInfo | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCodecInfoCount( | 
 |         DWORD *codec_infos) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCodecInfo( | 
 |         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) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMHeaderInfo2, 0x15cf9781, 0x454e, 0x482e, 0xb3,0x93, 0x85,0xfa,0xe4,0x87,0xa8,0x10) | 
 | #endif | 
 | #else | 
 | typedef struct IWMHeaderInfo2Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMHeaderInfo2 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMHeaderInfo2 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMHeaderInfo2 *This); | 
 |  | 
 |     /*** IWMHeaderInfo methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetAttributeCount)( | 
 |         IWMHeaderInfo2 *This, | 
 |         WORD stream_num, | 
 |         WORD *attributes); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)( | 
 |         IWMHeaderInfo2 *This, | 
 |         WORD index, | 
 |         WORD *stream_num, | 
 |         WCHAR *name, | 
 |         WORD *name_len, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAttributeByName)( | 
 |         IWMHeaderInfo2 *This, | 
 |         WORD *stream_num, | 
 |         LPCWSTR name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAttribute)( | 
 |         IWMHeaderInfo2 *This, | 
 |         WORD stream_num, | 
 |         LPCWSTR name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         const BYTE *value, | 
 |         WORD length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMarkerCount)( | 
 |         IWMHeaderInfo2 *This, | 
 |         WORD *markers); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMarker)( | 
 |         IWMHeaderInfo2 *This, | 
 |         WORD index, | 
 |         WCHAR *marker_name, | 
 |         WORD *marker_len, | 
 |         QWORD *marker_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddMarker)( | 
 |         IWMHeaderInfo2 *This, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE marker_name, | 
 |         QWORD marker_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveMarker)( | 
 |         IWMHeaderInfo2 *This, | 
 |         WORD index); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetScriptCount)( | 
 |         IWMHeaderInfo2 *This, | 
 |         WORD *scripts); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetScript)( | 
 |         IWMHeaderInfo2 *This, | 
 |         WORD index, | 
 |         WCHAR *type, | 
 |         WORD *type_len, | 
 |         WCHAR *command, | 
 |         WORD *command_len, | 
 |         QWORD *script_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddScript)( | 
 |         IWMHeaderInfo2 *This, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE type, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE command, | 
 |         QWORD script_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveScript)( | 
 |         IWMHeaderInfo2 *This, | 
 |         WORD index); | 
 |  | 
 |     /*** IWMHeaderInfo2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)( | 
 |         IWMHeaderInfo2 *This, | 
 |         DWORD *codec_infos); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *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); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMHeaderInfo2Vtbl; | 
 |  | 
 | interface IWMHeaderInfo2 { | 
 |     CONST_VTBL IWMHeaderInfo2Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMHeaderInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMHeaderInfo2_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMHeaderInfo2_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMHeaderInfo methods ***/ | 
 | #define IWMHeaderInfo2_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes) | 
 | #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) | 
 | #define IWMHeaderInfo2_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length) | 
 | #define IWMHeaderInfo2_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length) | 
 | #define IWMHeaderInfo2_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers) | 
 | #define IWMHeaderInfo2_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time) | 
 | #define IWMHeaderInfo2_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time) | 
 | #define IWMHeaderInfo2_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index) | 
 | #define IWMHeaderInfo2_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts) | 
 | #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) | 
 | #define IWMHeaderInfo2_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time) | 
 | #define IWMHeaderInfo2_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index) | 
 | /*** IWMHeaderInfo2 methods ***/ | 
 | #define IWMHeaderInfo2_GetCodecInfoCount(This,codec_infos) (This)->lpVtbl->GetCodecInfoCount(This,codec_infos) | 
 | #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) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_QueryInterface(IWMHeaderInfo2* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMHeaderInfo2_AddRef(IWMHeaderInfo2* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMHeaderInfo2_Release(IWMHeaderInfo2* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMHeaderInfo methods ***/ | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_GetAttributeCount(IWMHeaderInfo2* This,WORD stream_num,WORD *attributes) { | 
 |     return This->lpVtbl->GetAttributeCount(This,stream_num,attributes); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_GetAttributeByIndex(IWMHeaderInfo2* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { | 
 |     return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_GetAttributeByName(IWMHeaderInfo2* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { | 
 |     return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_SetAttribute(IWMHeaderInfo2* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { | 
 |     return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_GetMarkerCount(IWMHeaderInfo2* This,WORD *markers) { | 
 |     return This->lpVtbl->GetMarkerCount(This,markers); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_GetMarker(IWMHeaderInfo2* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) { | 
 |     return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_AddMarker(IWMHeaderInfo2* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) { | 
 |     return This->lpVtbl->AddMarker(This,marker_name,marker_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_RemoveMarker(IWMHeaderInfo2* This,WORD index) { | 
 |     return This->lpVtbl->RemoveMarker(This,index); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_GetScriptCount(IWMHeaderInfo2* This,WORD *scripts) { | 
 |     return This->lpVtbl->GetScriptCount(This,scripts); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_GetScript(IWMHeaderInfo2* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) { | 
 |     return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_AddScript(IWMHeaderInfo2* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) { | 
 |     return This->lpVtbl->AddScript(This,type,command,script_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_RemoveScript(IWMHeaderInfo2* This,WORD index) { | 
 |     return This->lpVtbl->RemoveScript(This,index); | 
 | } | 
 | /*** IWMHeaderInfo2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMHeaderInfo2_GetCodecInfoCount(IWMHeaderInfo2* This,DWORD *codec_infos) { | 
 |     return This->lpVtbl->GetCodecInfoCount(This,codec_infos); | 
 | } | 
 | static FORCEINLINE 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) { | 
 |     return This->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMHeaderInfo2_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMHeaderInfo3 interface | 
 |  */ | 
 | #ifndef __IWMHeaderInfo3_INTERFACE_DEFINED__ | 
 | #define __IWMHeaderInfo3_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMHeaderInfo3, 0x15cc68e3, 0x27cc, 0x4ecd, 0xb2,0x22, 0x3f,0x5d,0x02,0xd8,0x0b,0xd5); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("15cc68e3-27cc-4ecd-b222-3f5d02d80bd5") | 
 | IWMHeaderInfo3 : public IWMHeaderInfo2 | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAttributeCountEx( | 
 |         WORD stream_num, | 
 |         WORD *attributes) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAttributeIndices( | 
 |         WORD stream_num, | 
 |         LPCWSTR name, | 
 |         WORD *lang_index, | 
 |         WORD *indices, | 
 |         WORD *count) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAttributeByIndexEx( | 
 |         WORD stream_num, | 
 |         WORD index, | 
 |         LPWSTR name, | 
 |         WORD *name_len, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         WORD *lang_index, | 
 |         BYTE *value, | 
 |         DWORD *data_len) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE ModifyAttribute( | 
 |         WORD stream_num, | 
 |         WORD index, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         WORD lang_index, | 
 |         const BYTE *value, | 
 |         DWORD length) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddAttribute( | 
 |         WORD stream_num, | 
 |         LPCWSTR name, | 
 |         WORD *index, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         WORD lang_index, | 
 |         const BYTE *value, | 
 |         DWORD length) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE DeleteAttribute( | 
 |         WORD stream_num, | 
 |         WORD index) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddCodecInfo( | 
 |         LPCWSTR_WMSDK_TYPE_SAFE name, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE description, | 
 |         WMT_CODEC_INFO_TYPE codec_type, | 
 |         WORD codec_info_cnt, | 
 |         BYTE *codec_info) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMHeaderInfo3, 0x15cc68e3, 0x27cc, 0x4ecd, 0xb2,0x22, 0x3f,0x5d,0x02,0xd8,0x0b,0xd5) | 
 | #endif | 
 | #else | 
 | typedef struct IWMHeaderInfo3Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMHeaderInfo3 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMHeaderInfo3 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMHeaderInfo3 *This); | 
 |  | 
 |     /*** IWMHeaderInfo methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetAttributeCount)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD stream_num, | 
 |         WORD *attributes); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAttributeByIndex)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD index, | 
 |         WORD *stream_num, | 
 |         WCHAR *name, | 
 |         WORD *name_len, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAttributeByName)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD *stream_num, | 
 |         LPCWSTR name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAttribute)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD stream_num, | 
 |         LPCWSTR name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         const BYTE *value, | 
 |         WORD length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMarkerCount)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD *markers); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMarker)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD index, | 
 |         WCHAR *marker_name, | 
 |         WORD *marker_len, | 
 |         QWORD *marker_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddMarker)( | 
 |         IWMHeaderInfo3 *This, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE marker_name, | 
 |         QWORD marker_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveMarker)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD index); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetScriptCount)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD *scripts); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetScript)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD index, | 
 |         WCHAR *type, | 
 |         WORD *type_len, | 
 |         WCHAR *command, | 
 |         WORD *command_len, | 
 |         QWORD *script_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddScript)( | 
 |         IWMHeaderInfo3 *This, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE type, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE command, | 
 |         QWORD script_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *RemoveScript)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD index); | 
 |  | 
 |     /*** IWMHeaderInfo2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecInfoCount)( | 
 |         IWMHeaderInfo3 *This, | 
 |         DWORD *codec_infos); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *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); | 
 |  | 
 |     /*** IWMHeaderInfo3 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetAttributeCountEx)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD stream_num, | 
 |         WORD *attributes); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAttributeIndices)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD stream_num, | 
 |         LPCWSTR name, | 
 |         WORD *lang_index, | 
 |         WORD *indices, | 
 |         WORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *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); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *ModifyAttribute)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD stream_num, | 
 |         WORD index, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         WORD lang_index, | 
 |         const BYTE *value, | 
 |         DWORD length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddAttribute)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD stream_num, | 
 |         LPCWSTR name, | 
 |         WORD *index, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         WORD lang_index, | 
 |         const BYTE *value, | 
 |         DWORD length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *DeleteAttribute)( | 
 |         IWMHeaderInfo3 *This, | 
 |         WORD stream_num, | 
 |         WORD index); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *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); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMHeaderInfo3Vtbl; | 
 |  | 
 | interface IWMHeaderInfo3 { | 
 |     CONST_VTBL IWMHeaderInfo3Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMHeaderInfo3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMHeaderInfo3_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMHeaderInfo3_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMHeaderInfo methods ***/ | 
 | #define IWMHeaderInfo3_GetAttributeCount(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCount(This,stream_num,attributes) | 
 | #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) | 
 | #define IWMHeaderInfo3_GetAttributeByName(This,stream_num,name,type,value,length) (This)->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length) | 
 | #define IWMHeaderInfo3_SetAttribute(This,stream_num,name,type,value,length) (This)->lpVtbl->SetAttribute(This,stream_num,name,type,value,length) | 
 | #define IWMHeaderInfo3_GetMarkerCount(This,markers) (This)->lpVtbl->GetMarkerCount(This,markers) | 
 | #define IWMHeaderInfo3_GetMarker(This,index,marker_name,marker_len,marker_time) (This)->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time) | 
 | #define IWMHeaderInfo3_AddMarker(This,marker_name,marker_time) (This)->lpVtbl->AddMarker(This,marker_name,marker_time) | 
 | #define IWMHeaderInfo3_RemoveMarker(This,index) (This)->lpVtbl->RemoveMarker(This,index) | 
 | #define IWMHeaderInfo3_GetScriptCount(This,scripts) (This)->lpVtbl->GetScriptCount(This,scripts) | 
 | #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) | 
 | #define IWMHeaderInfo3_AddScript(This,type,command,script_time) (This)->lpVtbl->AddScript(This,type,command,script_time) | 
 | #define IWMHeaderInfo3_RemoveScript(This,index) (This)->lpVtbl->RemoveScript(This,index) | 
 | /*** IWMHeaderInfo2 methods ***/ | 
 | #define IWMHeaderInfo3_GetCodecInfoCount(This,codec_infos) (This)->lpVtbl->GetCodecInfoCount(This,codec_infos) | 
 | #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) | 
 | /*** IWMHeaderInfo3 methods ***/ | 
 | #define IWMHeaderInfo3_GetAttributeCountEx(This,stream_num,attributes) (This)->lpVtbl->GetAttributeCountEx(This,stream_num,attributes) | 
 | #define IWMHeaderInfo3_GetAttributeIndices(This,stream_num,name,lang_index,indices,count) (This)->lpVtbl->GetAttributeIndices(This,stream_num,name,lang_index,indices,count) | 
 | #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) | 
 | #define IWMHeaderInfo3_ModifyAttribute(This,stream_num,index,type,lang_index,value,length) (This)->lpVtbl->ModifyAttribute(This,stream_num,index,type,lang_index,value,length) | 
 | #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) | 
 | #define IWMHeaderInfo3_DeleteAttribute(This,stream_num,index) (This)->lpVtbl->DeleteAttribute(This,stream_num,index) | 
 | #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) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_QueryInterface(IWMHeaderInfo3* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMHeaderInfo3_AddRef(IWMHeaderInfo3* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMHeaderInfo3_Release(IWMHeaderInfo3* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMHeaderInfo methods ***/ | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_GetAttributeCount(IWMHeaderInfo3* This,WORD stream_num,WORD *attributes) { | 
 |     return This->lpVtbl->GetAttributeCount(This,stream_num,attributes); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_GetAttributeByIndex(IWMHeaderInfo3* This,WORD index,WORD *stream_num,WCHAR *name,WORD *name_len,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { | 
 |     return This->lpVtbl->GetAttributeByIndex(This,index,stream_num,name,name_len,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_GetAttributeByName(IWMHeaderInfo3* This,WORD *stream_num,LPCWSTR name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { | 
 |     return This->lpVtbl->GetAttributeByName(This,stream_num,name,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_SetAttribute(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { | 
 |     return This->lpVtbl->SetAttribute(This,stream_num,name,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_GetMarkerCount(IWMHeaderInfo3* This,WORD *markers) { | 
 |     return This->lpVtbl->GetMarkerCount(This,markers); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_GetMarker(IWMHeaderInfo3* This,WORD index,WCHAR *marker_name,WORD *marker_len,QWORD *marker_time) { | 
 |     return This->lpVtbl->GetMarker(This,index,marker_name,marker_len,marker_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_AddMarker(IWMHeaderInfo3* This,LPCWSTR_WMSDK_TYPE_SAFE marker_name,QWORD marker_time) { | 
 |     return This->lpVtbl->AddMarker(This,marker_name,marker_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_RemoveMarker(IWMHeaderInfo3* This,WORD index) { | 
 |     return This->lpVtbl->RemoveMarker(This,index); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_GetScriptCount(IWMHeaderInfo3* This,WORD *scripts) { | 
 |     return This->lpVtbl->GetScriptCount(This,scripts); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_GetScript(IWMHeaderInfo3* This,WORD index,WCHAR *type,WORD *type_len,WCHAR *command,WORD *command_len,QWORD *script_time) { | 
 |     return This->lpVtbl->GetScript(This,index,type,type_len,command,command_len,script_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_AddScript(IWMHeaderInfo3* This,LPCWSTR_WMSDK_TYPE_SAFE type,LPCWSTR_WMSDK_TYPE_SAFE command,QWORD script_time) { | 
 |     return This->lpVtbl->AddScript(This,type,command,script_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_RemoveScript(IWMHeaderInfo3* This,WORD index) { | 
 |     return This->lpVtbl->RemoveScript(This,index); | 
 | } | 
 | /*** IWMHeaderInfo2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_GetCodecInfoCount(IWMHeaderInfo3* This,DWORD *codec_infos) { | 
 |     return This->lpVtbl->GetCodecInfoCount(This,codec_infos); | 
 | } | 
 | static FORCEINLINE 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) { | 
 |     return This->lpVtbl->GetCodecInfo(This,index,name_len,name,description_len,description,codec_type,codec_info_cnt,codec_info); | 
 | } | 
 | /*** IWMHeaderInfo3 methods ***/ | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_GetAttributeCountEx(IWMHeaderInfo3* This,WORD stream_num,WORD *attributes) { | 
 |     return This->lpVtbl->GetAttributeCountEx(This,stream_num,attributes); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_GetAttributeIndices(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WORD *lang_index,WORD *indices,WORD *count) { | 
 |     return This->lpVtbl->GetAttributeIndices(This,stream_num,name,lang_index,indices,count); | 
 | } | 
 | static FORCEINLINE 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) { | 
 |     return This->lpVtbl->GetAttributeByIndexEx(This,stream_num,index,name,name_len,type,lang_index,value,data_len); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_ModifyAttribute(IWMHeaderInfo3* This,WORD stream_num,WORD index,WMT_ATTR_DATATYPE type,WORD lang_index,const BYTE *value,DWORD length) { | 
 |     return This->lpVtbl->ModifyAttribute(This,stream_num,index,type,lang_index,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_AddAttribute(IWMHeaderInfo3* This,WORD stream_num,LPCWSTR name,WORD *index,WMT_ATTR_DATATYPE type,WORD lang_index,const BYTE *value,DWORD length) { | 
 |     return This->lpVtbl->AddAttribute(This,stream_num,name,index,type,lang_index,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMHeaderInfo3_DeleteAttribute(IWMHeaderInfo3* This,WORD stream_num,WORD index) { | 
 |     return This->lpVtbl->DeleteAttribute(This,stream_num,index); | 
 | } | 
 | static FORCEINLINE 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) { | 
 |     return This->lpVtbl->AddCodecInfo(This,name,description,codec_type,codec_info_cnt,codec_info); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMHeaderInfo3_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderNetworkConfig interface | 
 |  */ | 
 | #ifndef __IWMReaderNetworkConfig_INTERFACE_DEFINED__ | 
 | #define __IWMReaderNetworkConfig_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderNetworkConfig, 0x96406bec, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bec-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMReaderNetworkConfig : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetBufferingTime( | 
 |         QWORD *buffering_time) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetBufferingTime( | 
 |         QWORD buffering_time) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetUDPPortRanges( | 
 |         WM_PORT_NUMBER_RANGE *array, | 
 |         DWORD *ranges) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetUDPPortRanges( | 
 |         WM_PORT_NUMBER_RANGE *array, | 
 |         DWORD ranges) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetProxySettings( | 
 |         const WCHAR *protocol, | 
 |         WMT_PROXY_SETTINGS *proxy) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetProxySettings( | 
 |         LPCWSTR protocol, | 
 |         WMT_PROXY_SETTINGS proxy) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetProxyHostName( | 
 |         const WCHAR *protocol, | 
 |         WCHAR *hostname, | 
 |         DWORD *size) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetProxyHostName( | 
 |         const WCHAR *protocol, | 
 |         const WCHAR *hostname) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetProxyPort( | 
 |         const WCHAR *protocol, | 
 |         DWORD *port) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetProxyPort( | 
 |         const WCHAR *protocol, | 
 |         DWORD port) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetProxyExceptionList( | 
 |         const WCHAR *protocol, | 
 |         WCHAR *exceptions, | 
 |         DWORD *count) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetProxyExceptionList( | 
 |         const WCHAR *protocol, | 
 |         const WCHAR *exceptions) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetProxyBypassForLocal( | 
 |         const WCHAR *protocol, | 
 |         WINBOOL *bypass) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetProxyBypassForLocal( | 
 |         const WCHAR *protocol, | 
 |         WINBOOL bypass) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetForceRerunAutoProxyDetection( | 
 |         WINBOOL *detection) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetForceRerunAutoProxyDetection( | 
 |         WINBOOL detection) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetEnableMulticast( | 
 |         WINBOOL *multicast) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetEnableMulticast( | 
 |         WINBOOL multicast) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetEnableHTTP( | 
 |         WINBOOL *enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetEnableHTTP( | 
 |         WINBOOL enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetEnableUDP( | 
 |         WINBOOL *enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetEnableUDP( | 
 |         WINBOOL enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetEnableTCP( | 
 |         WINBOOL *enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetEnableTCP( | 
 |         WINBOOL enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE ResetProtocolRollover( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetConnectionBandwidth( | 
 |         DWORD *bandwidth) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetConnectionBandwidth( | 
 |         DWORD bandwidth) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetNumProtocolsSupported( | 
 |         DWORD *protocols) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetSupportedProtocolName( | 
 |         DWORD protocol_num, | 
 |         WCHAR *protocol, | 
 |         DWORD *size) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddLoggingUrl( | 
 |         const WCHAR *url) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetLoggingUrl( | 
 |         DWORD index, | 
 |         WCHAR *url, | 
 |         DWORD *size) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetLoggingUrlCount( | 
 |         DWORD *count) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE ResetLoggingUrlList( | 
 |         ) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderNetworkConfig, 0x96406bec, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderNetworkConfigVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderNetworkConfig *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderNetworkConfig *This); | 
 |  | 
 |     /*** IWMReaderNetworkConfig methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetBufferingTime)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         QWORD *buffering_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetBufferingTime)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         QWORD buffering_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetUDPPortRanges)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WM_PORT_NUMBER_RANGE *array, | 
 |         DWORD *ranges); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetUDPPortRanges)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WM_PORT_NUMBER_RANGE *array, | 
 |         DWORD ranges); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProxySettings)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         const WCHAR *protocol, | 
 |         WMT_PROXY_SETTINGS *proxy); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProxySettings)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         LPCWSTR protocol, | 
 |         WMT_PROXY_SETTINGS proxy); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProxyHostName)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         const WCHAR *protocol, | 
 |         WCHAR *hostname, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProxyHostName)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         const WCHAR *protocol, | 
 |         const WCHAR *hostname); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProxyPort)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         const WCHAR *protocol, | 
 |         DWORD *port); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProxyPort)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         const WCHAR *protocol, | 
 |         DWORD port); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProxyExceptionList)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         const WCHAR *protocol, | 
 |         WCHAR *exceptions, | 
 |         DWORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProxyExceptionList)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         const WCHAR *protocol, | 
 |         const WCHAR *exceptions); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProxyBypassForLocal)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         const WCHAR *protocol, | 
 |         WINBOOL *bypass); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProxyBypassForLocal)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         const WCHAR *protocol, | 
 |         WINBOOL bypass); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetForceRerunAutoProxyDetection)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WINBOOL *detection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetForceRerunAutoProxyDetection)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WINBOOL detection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableMulticast)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WINBOOL *multicast); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableMulticast)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WINBOOL multicast); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableHTTP)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WINBOOL *enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableHTTP)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WINBOOL enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableUDP)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WINBOOL *enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableUDP)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WINBOOL enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableTCP)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WINBOOL *enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableTCP)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         WINBOOL enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *ResetProtocolRollover)( | 
 |         IWMReaderNetworkConfig *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetConnectionBandwidth)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         DWORD *bandwidth); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetConnectionBandwidth)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         DWORD bandwidth); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetNumProtocolsSupported)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         DWORD *protocols); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSupportedProtocolName)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         DWORD protocol_num, | 
 |         WCHAR *protocol, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddLoggingUrl)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         const WCHAR *url); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLoggingUrl)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         DWORD index, | 
 |         WCHAR *url, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLoggingUrlCount)( | 
 |         IWMReaderNetworkConfig *This, | 
 |         DWORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *ResetLoggingUrlList)( | 
 |         IWMReaderNetworkConfig *This); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderNetworkConfigVtbl; | 
 |  | 
 | interface IWMReaderNetworkConfig { | 
 |     CONST_VTBL IWMReaderNetworkConfigVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderNetworkConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderNetworkConfig_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderNetworkConfig_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderNetworkConfig methods ***/ | 
 | #define IWMReaderNetworkConfig_GetBufferingTime(This,buffering_time) (This)->lpVtbl->GetBufferingTime(This,buffering_time) | 
 | #define IWMReaderNetworkConfig_SetBufferingTime(This,buffering_time) (This)->lpVtbl->SetBufferingTime(This,buffering_time) | 
 | #define IWMReaderNetworkConfig_GetUDPPortRanges(This,array,ranges) (This)->lpVtbl->GetUDPPortRanges(This,array,ranges) | 
 | #define IWMReaderNetworkConfig_SetUDPPortRanges(This,array,ranges) (This)->lpVtbl->SetUDPPortRanges(This,array,ranges) | 
 | #define IWMReaderNetworkConfig_GetProxySettings(This,protocol,proxy) (This)->lpVtbl->GetProxySettings(This,protocol,proxy) | 
 | #define IWMReaderNetworkConfig_SetProxySettings(This,protocol,proxy) (This)->lpVtbl->SetProxySettings(This,protocol,proxy) | 
 | #define IWMReaderNetworkConfig_GetProxyHostName(This,protocol,hostname,size) (This)->lpVtbl->GetProxyHostName(This,protocol,hostname,size) | 
 | #define IWMReaderNetworkConfig_SetProxyHostName(This,protocol,hostname) (This)->lpVtbl->SetProxyHostName(This,protocol,hostname) | 
 | #define IWMReaderNetworkConfig_GetProxyPort(This,protocol,port) (This)->lpVtbl->GetProxyPort(This,protocol,port) | 
 | #define IWMReaderNetworkConfig_SetProxyPort(This,protocol,port) (This)->lpVtbl->SetProxyPort(This,protocol,port) | 
 | #define IWMReaderNetworkConfig_GetProxyExceptionList(This,protocol,exceptions,count) (This)->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count) | 
 | #define IWMReaderNetworkConfig_SetProxyExceptionList(This,protocol,exceptions) (This)->lpVtbl->SetProxyExceptionList(This,protocol,exceptions) | 
 | #define IWMReaderNetworkConfig_GetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass) | 
 | #define IWMReaderNetworkConfig_SetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass) | 
 | #define IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->GetForceRerunAutoProxyDetection(This,detection) | 
 | #define IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->SetForceRerunAutoProxyDetection(This,detection) | 
 | #define IWMReaderNetworkConfig_GetEnableMulticast(This,multicast) (This)->lpVtbl->GetEnableMulticast(This,multicast) | 
 | #define IWMReaderNetworkConfig_SetEnableMulticast(This,multicast) (This)->lpVtbl->SetEnableMulticast(This,multicast) | 
 | #define IWMReaderNetworkConfig_GetEnableHTTP(This,enable) (This)->lpVtbl->GetEnableHTTP(This,enable) | 
 | #define IWMReaderNetworkConfig_SetEnableHTTP(This,enable) (This)->lpVtbl->SetEnableHTTP(This,enable) | 
 | #define IWMReaderNetworkConfig_GetEnableUDP(This,enable) (This)->lpVtbl->GetEnableUDP(This,enable) | 
 | #define IWMReaderNetworkConfig_SetEnableUDP(This,enable) (This)->lpVtbl->SetEnableUDP(This,enable) | 
 | #define IWMReaderNetworkConfig_GetEnableTCP(This,enable) (This)->lpVtbl->GetEnableTCP(This,enable) | 
 | #define IWMReaderNetworkConfig_SetEnableTCP(This,enable) (This)->lpVtbl->SetEnableTCP(This,enable) | 
 | #define IWMReaderNetworkConfig_ResetProtocolRollover(This) (This)->lpVtbl->ResetProtocolRollover(This) | 
 | #define IWMReaderNetworkConfig_GetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->GetConnectionBandwidth(This,bandwidth) | 
 | #define IWMReaderNetworkConfig_SetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->SetConnectionBandwidth(This,bandwidth) | 
 | #define IWMReaderNetworkConfig_GetNumProtocolsSupported(This,protocols) (This)->lpVtbl->GetNumProtocolsSupported(This,protocols) | 
 | #define IWMReaderNetworkConfig_GetSupportedProtocolName(This,protocol_num,protocol,size) (This)->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size) | 
 | #define IWMReaderNetworkConfig_AddLoggingUrl(This,url) (This)->lpVtbl->AddLoggingUrl(This,url) | 
 | #define IWMReaderNetworkConfig_GetLoggingUrl(This,index,url,size) (This)->lpVtbl->GetLoggingUrl(This,index,url,size) | 
 | #define IWMReaderNetworkConfig_GetLoggingUrlCount(This,count) (This)->lpVtbl->GetLoggingUrlCount(This,count) | 
 | #define IWMReaderNetworkConfig_ResetLoggingUrlList(This) (This)->lpVtbl->ResetLoggingUrlList(This) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_QueryInterface(IWMReaderNetworkConfig* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderNetworkConfig_AddRef(IWMReaderNetworkConfig* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderNetworkConfig_Release(IWMReaderNetworkConfig* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderNetworkConfig methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetBufferingTime(IWMReaderNetworkConfig* This,QWORD *buffering_time) { | 
 |     return This->lpVtbl->GetBufferingTime(This,buffering_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetBufferingTime(IWMReaderNetworkConfig* This,QWORD buffering_time) { | 
 |     return This->lpVtbl->SetBufferingTime(This,buffering_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetUDPPortRanges(IWMReaderNetworkConfig* This,WM_PORT_NUMBER_RANGE *array,DWORD *ranges) { | 
 |     return This->lpVtbl->GetUDPPortRanges(This,array,ranges); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetUDPPortRanges(IWMReaderNetworkConfig* This,WM_PORT_NUMBER_RANGE *array,DWORD ranges) { | 
 |     return This->lpVtbl->SetUDPPortRanges(This,array,ranges); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetProxySettings(IWMReaderNetworkConfig* This,const WCHAR *protocol,WMT_PROXY_SETTINGS *proxy) { | 
 |     return This->lpVtbl->GetProxySettings(This,protocol,proxy); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetProxySettings(IWMReaderNetworkConfig* This,LPCWSTR protocol,WMT_PROXY_SETTINGS proxy) { | 
 |     return This->lpVtbl->SetProxySettings(This,protocol,proxy); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetProxyHostName(IWMReaderNetworkConfig* This,const WCHAR *protocol,WCHAR *hostname,DWORD *size) { | 
 |     return This->lpVtbl->GetProxyHostName(This,protocol,hostname,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetProxyHostName(IWMReaderNetworkConfig* This,const WCHAR *protocol,const WCHAR *hostname) { | 
 |     return This->lpVtbl->SetProxyHostName(This,protocol,hostname); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetProxyPort(IWMReaderNetworkConfig* This,const WCHAR *protocol,DWORD *port) { | 
 |     return This->lpVtbl->GetProxyPort(This,protocol,port); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetProxyPort(IWMReaderNetworkConfig* This,const WCHAR *protocol,DWORD port) { | 
 |     return This->lpVtbl->SetProxyPort(This,protocol,port); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetProxyExceptionList(IWMReaderNetworkConfig* This,const WCHAR *protocol,WCHAR *exceptions,DWORD *count) { | 
 |     return This->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetProxyExceptionList(IWMReaderNetworkConfig* This,const WCHAR *protocol,const WCHAR *exceptions) { | 
 |     return This->lpVtbl->SetProxyExceptionList(This,protocol,exceptions); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetProxyBypassForLocal(IWMReaderNetworkConfig* This,const WCHAR *protocol,WINBOOL *bypass) { | 
 |     return This->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetProxyBypassForLocal(IWMReaderNetworkConfig* This,const WCHAR *protocol,WINBOOL bypass) { | 
 |     return This->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetForceRerunAutoProxyDetection(IWMReaderNetworkConfig* This,WINBOOL *detection) { | 
 |     return This->lpVtbl->GetForceRerunAutoProxyDetection(This,detection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetForceRerunAutoProxyDetection(IWMReaderNetworkConfig* This,WINBOOL detection) { | 
 |     return This->lpVtbl->SetForceRerunAutoProxyDetection(This,detection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetEnableMulticast(IWMReaderNetworkConfig* This,WINBOOL *multicast) { | 
 |     return This->lpVtbl->GetEnableMulticast(This,multicast); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetEnableMulticast(IWMReaderNetworkConfig* This,WINBOOL multicast) { | 
 |     return This->lpVtbl->SetEnableMulticast(This,multicast); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetEnableHTTP(IWMReaderNetworkConfig* This,WINBOOL *enable) { | 
 |     return This->lpVtbl->GetEnableHTTP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetEnableHTTP(IWMReaderNetworkConfig* This,WINBOOL enable) { | 
 |     return This->lpVtbl->SetEnableHTTP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetEnableUDP(IWMReaderNetworkConfig* This,WINBOOL *enable) { | 
 |     return This->lpVtbl->GetEnableUDP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetEnableUDP(IWMReaderNetworkConfig* This,WINBOOL enable) { | 
 |     return This->lpVtbl->SetEnableUDP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetEnableTCP(IWMReaderNetworkConfig* This,WINBOOL *enable) { | 
 |     return This->lpVtbl->GetEnableTCP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetEnableTCP(IWMReaderNetworkConfig* This,WINBOOL enable) { | 
 |     return This->lpVtbl->SetEnableTCP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_ResetProtocolRollover(IWMReaderNetworkConfig* This) { | 
 |     return This->lpVtbl->ResetProtocolRollover(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetConnectionBandwidth(IWMReaderNetworkConfig* This,DWORD *bandwidth) { | 
 |     return This->lpVtbl->GetConnectionBandwidth(This,bandwidth); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_SetConnectionBandwidth(IWMReaderNetworkConfig* This,DWORD bandwidth) { | 
 |     return This->lpVtbl->SetConnectionBandwidth(This,bandwidth); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetNumProtocolsSupported(IWMReaderNetworkConfig* This,DWORD *protocols) { | 
 |     return This->lpVtbl->GetNumProtocolsSupported(This,protocols); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetSupportedProtocolName(IWMReaderNetworkConfig* This,DWORD protocol_num,WCHAR *protocol,DWORD *size) { | 
 |     return This->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_AddLoggingUrl(IWMReaderNetworkConfig* This,const WCHAR *url) { | 
 |     return This->lpVtbl->AddLoggingUrl(This,url); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetLoggingUrl(IWMReaderNetworkConfig* This,DWORD index,WCHAR *url,DWORD *size) { | 
 |     return This->lpVtbl->GetLoggingUrl(This,index,url,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_GetLoggingUrlCount(IWMReaderNetworkConfig* This,DWORD *count) { | 
 |     return This->lpVtbl->GetLoggingUrlCount(This,count); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig_ResetLoggingUrlList(IWMReaderNetworkConfig* This) { | 
 |     return This->lpVtbl->ResetLoggingUrlList(This); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderNetworkConfig_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderNetworkConfig2 interface | 
 |  */ | 
 | #ifndef __IWMReaderNetworkConfig2_INTERFACE_DEFINED__ | 
 | #define __IWMReaderNetworkConfig2_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderNetworkConfig2, 0xd979a853, 0x042b, 0x4050, 0x83,0x87, 0xc9,0x39,0xdb,0x22,0x01,0x3f); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("d979a853-042b-4050-8387-c939db22013f") | 
 | IWMReaderNetworkConfig2 : public IWMReaderNetworkConfig | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetEnableContentCaching( | 
 |         WINBOOL *enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetEnableContentCaching( | 
 |         WINBOOL enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetEnableFastCache( | 
 |         WINBOOL *enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetEnableFastCache( | 
 |         WINBOOL enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAcceleratedStreamingDuration( | 
 |         QWORD *duration) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetAcceleratedStreamingDuration( | 
 |         QWORD duration) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetAutoReconnectLimit( | 
 |         DWORD *limit) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetAutoReconnectLimit( | 
 |         DWORD limit) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetEnableResends( | 
 |         WINBOOL *enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetEnableResends( | 
 |         WINBOOL enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetEnableThinning( | 
 |         WINBOOL *enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetEnableThinning( | 
 |         WINBOOL enable) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMaxNetPacketSize( | 
 |         DWORD *packet_size) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderNetworkConfig2, 0xd979a853, 0x042b, 0x4050, 0x83,0x87, 0xc9,0x39,0xdb,0x22,0x01,0x3f) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderNetworkConfig2Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderNetworkConfig2 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderNetworkConfig2 *This); | 
 |  | 
 |     /*** IWMReaderNetworkConfig methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetBufferingTime)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         QWORD *buffering_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetBufferingTime)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         QWORD buffering_time); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetUDPPortRanges)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WM_PORT_NUMBER_RANGE *array, | 
 |         DWORD *ranges); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetUDPPortRanges)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WM_PORT_NUMBER_RANGE *array, | 
 |         DWORD ranges); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProxySettings)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         const WCHAR *protocol, | 
 |         WMT_PROXY_SETTINGS *proxy); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProxySettings)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         LPCWSTR protocol, | 
 |         WMT_PROXY_SETTINGS proxy); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProxyHostName)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         const WCHAR *protocol, | 
 |         WCHAR *hostname, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProxyHostName)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         const WCHAR *protocol, | 
 |         const WCHAR *hostname); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProxyPort)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         const WCHAR *protocol, | 
 |         DWORD *port); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProxyPort)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         const WCHAR *protocol, | 
 |         DWORD port); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProxyExceptionList)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         const WCHAR *protocol, | 
 |         WCHAR *exceptions, | 
 |         DWORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProxyExceptionList)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         const WCHAR *protocol, | 
 |         const WCHAR *exceptions); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetProxyBypassForLocal)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         const WCHAR *protocol, | 
 |         WINBOOL *bypass); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProxyBypassForLocal)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         const WCHAR *protocol, | 
 |         WINBOOL bypass); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetForceRerunAutoProxyDetection)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL *detection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetForceRerunAutoProxyDetection)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL detection); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableMulticast)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL *multicast); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableMulticast)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL multicast); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableHTTP)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL *enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableHTTP)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableUDP)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL *enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableUDP)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableTCP)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL *enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableTCP)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *ResetProtocolRollover)( | 
 |         IWMReaderNetworkConfig2 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetConnectionBandwidth)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         DWORD *bandwidth); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetConnectionBandwidth)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         DWORD bandwidth); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetNumProtocolsSupported)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         DWORD *protocols); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetSupportedProtocolName)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         DWORD protocol_num, | 
 |         WCHAR *protocol, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddLoggingUrl)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         const WCHAR *url); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLoggingUrl)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         DWORD index, | 
 |         WCHAR *url, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLoggingUrlCount)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         DWORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *ResetLoggingUrlList)( | 
 |         IWMReaderNetworkConfig2 *This); | 
 |  | 
 |     /*** IWMReaderNetworkConfig2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableContentCaching)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL *enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableContentCaching)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableFastCache)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL *enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableFastCache)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAcceleratedStreamingDuration)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         QWORD *duration); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAcceleratedStreamingDuration)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         QWORD duration); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetAutoReconnectLimit)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         DWORD *limit); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetAutoReconnectLimit)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         DWORD limit); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableResends)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL *enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableResends)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetEnableThinning)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL *enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetEnableThinning)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         WINBOOL enable); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxNetPacketSize)( | 
 |         IWMReaderNetworkConfig2 *This, | 
 |         DWORD *packet_size); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderNetworkConfig2Vtbl; | 
 |  | 
 | interface IWMReaderNetworkConfig2 { | 
 |     CONST_VTBL IWMReaderNetworkConfig2Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderNetworkConfig2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderNetworkConfig2_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderNetworkConfig2_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderNetworkConfig methods ***/ | 
 | #define IWMReaderNetworkConfig2_GetBufferingTime(This,buffering_time) (This)->lpVtbl->GetBufferingTime(This,buffering_time) | 
 | #define IWMReaderNetworkConfig2_SetBufferingTime(This,buffering_time) (This)->lpVtbl->SetBufferingTime(This,buffering_time) | 
 | #define IWMReaderNetworkConfig2_GetUDPPortRanges(This,array,ranges) (This)->lpVtbl->GetUDPPortRanges(This,array,ranges) | 
 | #define IWMReaderNetworkConfig2_SetUDPPortRanges(This,array,ranges) (This)->lpVtbl->SetUDPPortRanges(This,array,ranges) | 
 | #define IWMReaderNetworkConfig2_GetProxySettings(This,protocol,proxy) (This)->lpVtbl->GetProxySettings(This,protocol,proxy) | 
 | #define IWMReaderNetworkConfig2_SetProxySettings(This,protocol,proxy) (This)->lpVtbl->SetProxySettings(This,protocol,proxy) | 
 | #define IWMReaderNetworkConfig2_GetProxyHostName(This,protocol,hostname,size) (This)->lpVtbl->GetProxyHostName(This,protocol,hostname,size) | 
 | #define IWMReaderNetworkConfig2_SetProxyHostName(This,protocol,hostname) (This)->lpVtbl->SetProxyHostName(This,protocol,hostname) | 
 | #define IWMReaderNetworkConfig2_GetProxyPort(This,protocol,port) (This)->lpVtbl->GetProxyPort(This,protocol,port) | 
 | #define IWMReaderNetworkConfig2_SetProxyPort(This,protocol,port) (This)->lpVtbl->SetProxyPort(This,protocol,port) | 
 | #define IWMReaderNetworkConfig2_GetProxyExceptionList(This,protocol,exceptions,count) (This)->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count) | 
 | #define IWMReaderNetworkConfig2_SetProxyExceptionList(This,protocol,exceptions) (This)->lpVtbl->SetProxyExceptionList(This,protocol,exceptions) | 
 | #define IWMReaderNetworkConfig2_GetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass) | 
 | #define IWMReaderNetworkConfig2_SetProxyBypassForLocal(This,protocol,bypass) (This)->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass) | 
 | #define IWMReaderNetworkConfig2_GetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->GetForceRerunAutoProxyDetection(This,detection) | 
 | #define IWMReaderNetworkConfig2_SetForceRerunAutoProxyDetection(This,detection) (This)->lpVtbl->SetForceRerunAutoProxyDetection(This,detection) | 
 | #define IWMReaderNetworkConfig2_GetEnableMulticast(This,multicast) (This)->lpVtbl->GetEnableMulticast(This,multicast) | 
 | #define IWMReaderNetworkConfig2_SetEnableMulticast(This,multicast) (This)->lpVtbl->SetEnableMulticast(This,multicast) | 
 | #define IWMReaderNetworkConfig2_GetEnableHTTP(This,enable) (This)->lpVtbl->GetEnableHTTP(This,enable) | 
 | #define IWMReaderNetworkConfig2_SetEnableHTTP(This,enable) (This)->lpVtbl->SetEnableHTTP(This,enable) | 
 | #define IWMReaderNetworkConfig2_GetEnableUDP(This,enable) (This)->lpVtbl->GetEnableUDP(This,enable) | 
 | #define IWMReaderNetworkConfig2_SetEnableUDP(This,enable) (This)->lpVtbl->SetEnableUDP(This,enable) | 
 | #define IWMReaderNetworkConfig2_GetEnableTCP(This,enable) (This)->lpVtbl->GetEnableTCP(This,enable) | 
 | #define IWMReaderNetworkConfig2_SetEnableTCP(This,enable) (This)->lpVtbl->SetEnableTCP(This,enable) | 
 | #define IWMReaderNetworkConfig2_ResetProtocolRollover(This) (This)->lpVtbl->ResetProtocolRollover(This) | 
 | #define IWMReaderNetworkConfig2_GetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->GetConnectionBandwidth(This,bandwidth) | 
 | #define IWMReaderNetworkConfig2_SetConnectionBandwidth(This,bandwidth) (This)->lpVtbl->SetConnectionBandwidth(This,bandwidth) | 
 | #define IWMReaderNetworkConfig2_GetNumProtocolsSupported(This,protocols) (This)->lpVtbl->GetNumProtocolsSupported(This,protocols) | 
 | #define IWMReaderNetworkConfig2_GetSupportedProtocolName(This,protocol_num,protocol,size) (This)->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size) | 
 | #define IWMReaderNetworkConfig2_AddLoggingUrl(This,url) (This)->lpVtbl->AddLoggingUrl(This,url) | 
 | #define IWMReaderNetworkConfig2_GetLoggingUrl(This,index,url,size) (This)->lpVtbl->GetLoggingUrl(This,index,url,size) | 
 | #define IWMReaderNetworkConfig2_GetLoggingUrlCount(This,count) (This)->lpVtbl->GetLoggingUrlCount(This,count) | 
 | #define IWMReaderNetworkConfig2_ResetLoggingUrlList(This) (This)->lpVtbl->ResetLoggingUrlList(This) | 
 | /*** IWMReaderNetworkConfig2 methods ***/ | 
 | #define IWMReaderNetworkConfig2_GetEnableContentCaching(This,enable) (This)->lpVtbl->GetEnableContentCaching(This,enable) | 
 | #define IWMReaderNetworkConfig2_SetEnableContentCaching(This,enable) (This)->lpVtbl->SetEnableContentCaching(This,enable) | 
 | #define IWMReaderNetworkConfig2_GetEnableFastCache(This,enable) (This)->lpVtbl->GetEnableFastCache(This,enable) | 
 | #define IWMReaderNetworkConfig2_SetEnableFastCache(This,enable) (This)->lpVtbl->SetEnableFastCache(This,enable) | 
 | #define IWMReaderNetworkConfig2_GetAcceleratedStreamingDuration(This,duration) (This)->lpVtbl->GetAcceleratedStreamingDuration(This,duration) | 
 | #define IWMReaderNetworkConfig2_SetAcceleratedStreamingDuration(This,duration) (This)->lpVtbl->SetAcceleratedStreamingDuration(This,duration) | 
 | #define IWMReaderNetworkConfig2_GetAutoReconnectLimit(This,limit) (This)->lpVtbl->GetAutoReconnectLimit(This,limit) | 
 | #define IWMReaderNetworkConfig2_SetAutoReconnectLimit(This,limit) (This)->lpVtbl->SetAutoReconnectLimit(This,limit) | 
 | #define IWMReaderNetworkConfig2_GetEnableResends(This,enable) (This)->lpVtbl->GetEnableResends(This,enable) | 
 | #define IWMReaderNetworkConfig2_SetEnableResends(This,enable) (This)->lpVtbl->SetEnableResends(This,enable) | 
 | #define IWMReaderNetworkConfig2_GetEnableThinning(This,enable) (This)->lpVtbl->GetEnableThinning(This,enable) | 
 | #define IWMReaderNetworkConfig2_SetEnableThinning(This,enable) (This)->lpVtbl->SetEnableThinning(This,enable) | 
 | #define IWMReaderNetworkConfig2_GetMaxNetPacketSize(This,packet_size) (This)->lpVtbl->GetMaxNetPacketSize(This,packet_size) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_QueryInterface(IWMReaderNetworkConfig2* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderNetworkConfig2_AddRef(IWMReaderNetworkConfig2* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderNetworkConfig2_Release(IWMReaderNetworkConfig2* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderNetworkConfig methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetBufferingTime(IWMReaderNetworkConfig2* This,QWORD *buffering_time) { | 
 |     return This->lpVtbl->GetBufferingTime(This,buffering_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetBufferingTime(IWMReaderNetworkConfig2* This,QWORD buffering_time) { | 
 |     return This->lpVtbl->SetBufferingTime(This,buffering_time); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetUDPPortRanges(IWMReaderNetworkConfig2* This,WM_PORT_NUMBER_RANGE *array,DWORD *ranges) { | 
 |     return This->lpVtbl->GetUDPPortRanges(This,array,ranges); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetUDPPortRanges(IWMReaderNetworkConfig2* This,WM_PORT_NUMBER_RANGE *array,DWORD ranges) { | 
 |     return This->lpVtbl->SetUDPPortRanges(This,array,ranges); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetProxySettings(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WMT_PROXY_SETTINGS *proxy) { | 
 |     return This->lpVtbl->GetProxySettings(This,protocol,proxy); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetProxySettings(IWMReaderNetworkConfig2* This,LPCWSTR protocol,WMT_PROXY_SETTINGS proxy) { | 
 |     return This->lpVtbl->SetProxySettings(This,protocol,proxy); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetProxyHostName(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WCHAR *hostname,DWORD *size) { | 
 |     return This->lpVtbl->GetProxyHostName(This,protocol,hostname,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetProxyHostName(IWMReaderNetworkConfig2* This,const WCHAR *protocol,const WCHAR *hostname) { | 
 |     return This->lpVtbl->SetProxyHostName(This,protocol,hostname); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetProxyPort(IWMReaderNetworkConfig2* This,const WCHAR *protocol,DWORD *port) { | 
 |     return This->lpVtbl->GetProxyPort(This,protocol,port); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetProxyPort(IWMReaderNetworkConfig2* This,const WCHAR *protocol,DWORD port) { | 
 |     return This->lpVtbl->SetProxyPort(This,protocol,port); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetProxyExceptionList(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WCHAR *exceptions,DWORD *count) { | 
 |     return This->lpVtbl->GetProxyExceptionList(This,protocol,exceptions,count); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetProxyExceptionList(IWMReaderNetworkConfig2* This,const WCHAR *protocol,const WCHAR *exceptions) { | 
 |     return This->lpVtbl->SetProxyExceptionList(This,protocol,exceptions); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetProxyBypassForLocal(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WINBOOL *bypass) { | 
 |     return This->lpVtbl->GetProxyBypassForLocal(This,protocol,bypass); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetProxyBypassForLocal(IWMReaderNetworkConfig2* This,const WCHAR *protocol,WINBOOL bypass) { | 
 |     return This->lpVtbl->SetProxyBypassForLocal(This,protocol,bypass); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetForceRerunAutoProxyDetection(IWMReaderNetworkConfig2* This,WINBOOL *detection) { | 
 |     return This->lpVtbl->GetForceRerunAutoProxyDetection(This,detection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetForceRerunAutoProxyDetection(IWMReaderNetworkConfig2* This,WINBOOL detection) { | 
 |     return This->lpVtbl->SetForceRerunAutoProxyDetection(This,detection); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableMulticast(IWMReaderNetworkConfig2* This,WINBOOL *multicast) { | 
 |     return This->lpVtbl->GetEnableMulticast(This,multicast); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableMulticast(IWMReaderNetworkConfig2* This,WINBOOL multicast) { | 
 |     return This->lpVtbl->SetEnableMulticast(This,multicast); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableHTTP(IWMReaderNetworkConfig2* This,WINBOOL *enable) { | 
 |     return This->lpVtbl->GetEnableHTTP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableHTTP(IWMReaderNetworkConfig2* This,WINBOOL enable) { | 
 |     return This->lpVtbl->SetEnableHTTP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableUDP(IWMReaderNetworkConfig2* This,WINBOOL *enable) { | 
 |     return This->lpVtbl->GetEnableUDP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableUDP(IWMReaderNetworkConfig2* This,WINBOOL enable) { | 
 |     return This->lpVtbl->SetEnableUDP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableTCP(IWMReaderNetworkConfig2* This,WINBOOL *enable) { | 
 |     return This->lpVtbl->GetEnableTCP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableTCP(IWMReaderNetworkConfig2* This,WINBOOL enable) { | 
 |     return This->lpVtbl->SetEnableTCP(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_ResetProtocolRollover(IWMReaderNetworkConfig2* This) { | 
 |     return This->lpVtbl->ResetProtocolRollover(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetConnectionBandwidth(IWMReaderNetworkConfig2* This,DWORD *bandwidth) { | 
 |     return This->lpVtbl->GetConnectionBandwidth(This,bandwidth); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetConnectionBandwidth(IWMReaderNetworkConfig2* This,DWORD bandwidth) { | 
 |     return This->lpVtbl->SetConnectionBandwidth(This,bandwidth); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetNumProtocolsSupported(IWMReaderNetworkConfig2* This,DWORD *protocols) { | 
 |     return This->lpVtbl->GetNumProtocolsSupported(This,protocols); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetSupportedProtocolName(IWMReaderNetworkConfig2* This,DWORD protocol_num,WCHAR *protocol,DWORD *size) { | 
 |     return This->lpVtbl->GetSupportedProtocolName(This,protocol_num,protocol,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_AddLoggingUrl(IWMReaderNetworkConfig2* This,const WCHAR *url) { | 
 |     return This->lpVtbl->AddLoggingUrl(This,url); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetLoggingUrl(IWMReaderNetworkConfig2* This,DWORD index,WCHAR *url,DWORD *size) { | 
 |     return This->lpVtbl->GetLoggingUrl(This,index,url,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetLoggingUrlCount(IWMReaderNetworkConfig2* This,DWORD *count) { | 
 |     return This->lpVtbl->GetLoggingUrlCount(This,count); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_ResetLoggingUrlList(IWMReaderNetworkConfig2* This) { | 
 |     return This->lpVtbl->ResetLoggingUrlList(This); | 
 | } | 
 | /*** IWMReaderNetworkConfig2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableContentCaching(IWMReaderNetworkConfig2* This,WINBOOL *enable) { | 
 |     return This->lpVtbl->GetEnableContentCaching(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableContentCaching(IWMReaderNetworkConfig2* This,WINBOOL enable) { | 
 |     return This->lpVtbl->SetEnableContentCaching(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableFastCache(IWMReaderNetworkConfig2* This,WINBOOL *enable) { | 
 |     return This->lpVtbl->GetEnableFastCache(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableFastCache(IWMReaderNetworkConfig2* This,WINBOOL enable) { | 
 |     return This->lpVtbl->SetEnableFastCache(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetAcceleratedStreamingDuration(IWMReaderNetworkConfig2* This,QWORD *duration) { | 
 |     return This->lpVtbl->GetAcceleratedStreamingDuration(This,duration); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetAcceleratedStreamingDuration(IWMReaderNetworkConfig2* This,QWORD duration) { | 
 |     return This->lpVtbl->SetAcceleratedStreamingDuration(This,duration); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetAutoReconnectLimit(IWMReaderNetworkConfig2* This,DWORD *limit) { | 
 |     return This->lpVtbl->GetAutoReconnectLimit(This,limit); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetAutoReconnectLimit(IWMReaderNetworkConfig2* This,DWORD limit) { | 
 |     return This->lpVtbl->SetAutoReconnectLimit(This,limit); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableResends(IWMReaderNetworkConfig2* This,WINBOOL *enable) { | 
 |     return This->lpVtbl->GetEnableResends(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableResends(IWMReaderNetworkConfig2* This,WINBOOL enable) { | 
 |     return This->lpVtbl->SetEnableResends(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetEnableThinning(IWMReaderNetworkConfig2* This,WINBOOL *enable) { | 
 |     return This->lpVtbl->GetEnableThinning(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_SetEnableThinning(IWMReaderNetworkConfig2* This,WINBOOL enable) { | 
 |     return This->lpVtbl->SetEnableThinning(This,enable); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderNetworkConfig2_GetMaxNetPacketSize(IWMReaderNetworkConfig2* This,DWORD *packet_size) { | 
 |     return This->lpVtbl->GetMaxNetPacketSize(This,packet_size); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderNetworkConfig2_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderStreamClock interface | 
 |  */ | 
 | #ifndef __IWMReaderStreamClock_INTERFACE_DEFINED__ | 
 | #define __IWMReaderStreamClock_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderStreamClock, 0x96406bed, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("96406bed-2b2b-11d3-b36b-00c04f6108ff") | 
 | IWMReaderStreamClock : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetTime( | 
 |         QWORD *now) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetTimer( | 
 |         QWORD when, | 
 |         void *param, | 
 |         DWORD *id) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE KillTimer( | 
 |         DWORD id) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderStreamClock, 0x96406bed, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderStreamClockVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderStreamClock *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderStreamClock *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderStreamClock *This); | 
 |  | 
 |     /*** IWMReaderStreamClock methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetTime)( | 
 |         IWMReaderStreamClock *This, | 
 |         QWORD *now); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetTimer)( | 
 |         IWMReaderStreamClock *This, | 
 |         QWORD when, | 
 |         void *param, | 
 |         DWORD *id); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *KillTimer)( | 
 |         IWMReaderStreamClock *This, | 
 |         DWORD id); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderStreamClockVtbl; | 
 |  | 
 | interface IWMReaderStreamClock { | 
 |     CONST_VTBL IWMReaderStreamClockVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderStreamClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderStreamClock_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderStreamClock_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderStreamClock methods ***/ | 
 | #define IWMReaderStreamClock_GetTime(This,now) (This)->lpVtbl->GetTime(This,now) | 
 | #define IWMReaderStreamClock_SetTimer(This,when,param,id) (This)->lpVtbl->SetTimer(This,when,param,id) | 
 | #define IWMReaderStreamClock_KillTimer(This,id) (This)->lpVtbl->KillTimer(This,id) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderStreamClock_QueryInterface(IWMReaderStreamClock* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderStreamClock_AddRef(IWMReaderStreamClock* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderStreamClock_Release(IWMReaderStreamClock* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderStreamClock methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderStreamClock_GetTime(IWMReaderStreamClock* This,QWORD *now) { | 
 |     return This->lpVtbl->GetTime(This,now); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderStreamClock_SetTimer(IWMReaderStreamClock* This,QWORD when,void *param,DWORD *id) { | 
 |     return This->lpVtbl->SetTimer(This,when,param,id); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderStreamClock_KillTimer(IWMReaderStreamClock* This,DWORD id) { | 
 |     return This->lpVtbl->KillTimer(This,id); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderStreamClock_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMPacketSize interface | 
 |  */ | 
 | #ifndef __IWMPacketSize_INTERFACE_DEFINED__ | 
 | #define __IWMPacketSize_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMPacketSize, 0xcdfb97ab, 0x188f, 0x40b3, 0xb6,0x43, 0x5b,0x79,0x03,0x97,0x5c,0x59); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("cdfb97ab-188f-40b3-b643-5b7903975c59") | 
 | IWMPacketSize : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMaxPacketSize( | 
 |         DWORD *size) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetMaxPacketSize( | 
 |         DWORD size) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMPacketSize, 0xcdfb97ab, 0x188f, 0x40b3, 0xb6,0x43, 0x5b,0x79,0x03,0x97,0x5c,0x59) | 
 | #endif | 
 | #else | 
 | typedef struct IWMPacketSizeVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMPacketSize *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMPacketSize *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMPacketSize *This); | 
 |  | 
 |     /*** IWMPacketSize methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxPacketSize)( | 
 |         IWMPacketSize *This, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetMaxPacketSize)( | 
 |         IWMPacketSize *This, | 
 |         DWORD size); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMPacketSizeVtbl; | 
 |  | 
 | interface IWMPacketSize { | 
 |     CONST_VTBL IWMPacketSizeVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMPacketSize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMPacketSize_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMPacketSize_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMPacketSize methods ***/ | 
 | #define IWMPacketSize_GetMaxPacketSize(This,size) (This)->lpVtbl->GetMaxPacketSize(This,size) | 
 | #define IWMPacketSize_SetMaxPacketSize(This,size) (This)->lpVtbl->SetMaxPacketSize(This,size) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMPacketSize_QueryInterface(IWMPacketSize* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMPacketSize_AddRef(IWMPacketSize* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMPacketSize_Release(IWMPacketSize* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMPacketSize methods ***/ | 
 | static FORCEINLINE HRESULT IWMPacketSize_GetMaxPacketSize(IWMPacketSize* This,DWORD *size) { | 
 |     return This->lpVtbl->GetMaxPacketSize(This,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMPacketSize_SetMaxPacketSize(IWMPacketSize* This,DWORD size) { | 
 |     return This->lpVtbl->SetMaxPacketSize(This,size); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMPacketSize_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMPacketSize2 interface | 
 |  */ | 
 | #ifndef __IWMPacketSize2_INTERFACE_DEFINED__ | 
 | #define __IWMPacketSize2_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMPacketSize2, 0x8bfc2b9e, 0xb646, 0x4233, 0xa8,0x77, 0x1c,0x6a,0x07,0x96,0x69,0xdc); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("8bfc2b9e-b646-4233-a877-1c6a079669dc") | 
 | IWMPacketSize2 : public IWMPacketSize | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMinPacketSize( | 
 |         DWORD *size) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetMinPacketSize( | 
 |         DWORD size) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMPacketSize2, 0x8bfc2b9e, 0xb646, 0x4233, 0xa8,0x77, 0x1c,0x6a,0x07,0x96,0x69,0xdc) | 
 | #endif | 
 | #else | 
 | typedef struct IWMPacketSize2Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMPacketSize2 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMPacketSize2 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMPacketSize2 *This); | 
 |  | 
 |     /*** IWMPacketSize methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxPacketSize)( | 
 |         IWMPacketSize2 *This, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetMaxPacketSize)( | 
 |         IWMPacketSize2 *This, | 
 |         DWORD size); | 
 |  | 
 |     /*** IWMPacketSize2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetMinPacketSize)( | 
 |         IWMPacketSize2 *This, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetMinPacketSize)( | 
 |         IWMPacketSize2 *This, | 
 |         DWORD size); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMPacketSize2Vtbl; | 
 |  | 
 | interface IWMPacketSize2 { | 
 |     CONST_VTBL IWMPacketSize2Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMPacketSize2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMPacketSize2_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMPacketSize2_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMPacketSize methods ***/ | 
 | #define IWMPacketSize2_GetMaxPacketSize(This,size) (This)->lpVtbl->GetMaxPacketSize(This,size) | 
 | #define IWMPacketSize2_SetMaxPacketSize(This,size) (This)->lpVtbl->SetMaxPacketSize(This,size) | 
 | /*** IWMPacketSize2 methods ***/ | 
 | #define IWMPacketSize2_GetMinPacketSize(This,size) (This)->lpVtbl->GetMinPacketSize(This,size) | 
 | #define IWMPacketSize2_SetMinPacketSize(This,size) (This)->lpVtbl->SetMinPacketSize(This,size) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMPacketSize2_QueryInterface(IWMPacketSize2* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMPacketSize2_AddRef(IWMPacketSize2* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMPacketSize2_Release(IWMPacketSize2* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMPacketSize methods ***/ | 
 | static FORCEINLINE HRESULT IWMPacketSize2_GetMaxPacketSize(IWMPacketSize2* This,DWORD *size) { | 
 |     return This->lpVtbl->GetMaxPacketSize(This,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMPacketSize2_SetMaxPacketSize(IWMPacketSize2* This,DWORD size) { | 
 |     return This->lpVtbl->SetMaxPacketSize(This,size); | 
 | } | 
 | /*** IWMPacketSize2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMPacketSize2_GetMinPacketSize(IWMPacketSize2* This,DWORD *size) { | 
 |     return This->lpVtbl->GetMinPacketSize(This,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMPacketSize2_SetMinPacketSize(IWMPacketSize2* This,DWORD size) { | 
 |     return This->lpVtbl->SetMinPacketSize(This,size); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMPacketSize2_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMDRMReader interface | 
 |  */ | 
 | #ifndef __IWMDRMReader_INTERFACE_DEFINED__ | 
 | #define __IWMDRMReader_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMDRMReader, 0xd2827540, 0x3ee7, 0x432c, 0xb1,0x4c, 0xdc,0x17,0xf0,0x85,0xd3,0xb3); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("d2827540-3ee7-432c-b14c-dc17f085d3b3") | 
 | IWMDRMReader : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE AcquireLicense( | 
 |         DWORD flags) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CancelLicenseAcquisition( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Individualize( | 
 |         DWORD flags) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CancelIndividualization( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE MonitorLicenseAcquisition( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CancelMonitorLicenseAcquisition( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetDRMProperty( | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         const BYTE *value, | 
 |         WORD length) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetDRMProperty( | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMDRMReader, 0xd2827540, 0x3ee7, 0x432c, 0xb1,0x4c, 0xdc,0x17,0xf0,0x85,0xd3,0xb3) | 
 | #endif | 
 | #else | 
 | typedef struct IWMDRMReaderVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMDRMReader *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMDRMReader *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMDRMReader *This); | 
 |  | 
 |     /*** IWMDRMReader methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *AcquireLicense)( | 
 |         IWMDRMReader *This, | 
 |         DWORD flags); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)( | 
 |         IWMDRMReader *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Individualize)( | 
 |         IWMDRMReader *This, | 
 |         DWORD flags); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelIndividualization)( | 
 |         IWMDRMReader *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)( | 
 |         IWMDRMReader *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)( | 
 |         IWMDRMReader *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetDRMProperty)( | 
 |         IWMDRMReader *This, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         const BYTE *value, | 
 |         WORD length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetDRMProperty)( | 
 |         IWMDRMReader *This, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMDRMReaderVtbl; | 
 |  | 
 | interface IWMDRMReader { | 
 |     CONST_VTBL IWMDRMReaderVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMDRMReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMDRMReader_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMDRMReader_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMDRMReader methods ***/ | 
 | #define IWMDRMReader_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags) | 
 | #define IWMDRMReader_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This) | 
 | #define IWMDRMReader_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags) | 
 | #define IWMDRMReader_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This) | 
 | #define IWMDRMReader_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This) | 
 | #define IWMDRMReader_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This) | 
 | #define IWMDRMReader_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length) | 
 | #define IWMDRMReader_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMDRMReader_QueryInterface(IWMDRMReader* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMDRMReader_AddRef(IWMDRMReader* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMDRMReader_Release(IWMDRMReader* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMDRMReader methods ***/ | 
 | static FORCEINLINE HRESULT IWMDRMReader_AcquireLicense(IWMDRMReader* This,DWORD flags) { | 
 |     return This->lpVtbl->AcquireLicense(This,flags); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader_CancelLicenseAcquisition(IWMDRMReader* This) { | 
 |     return This->lpVtbl->CancelLicenseAcquisition(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader_Individualize(IWMDRMReader* This,DWORD flags) { | 
 |     return This->lpVtbl->Individualize(This,flags); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader_CancelIndividualization(IWMDRMReader* This) { | 
 |     return This->lpVtbl->CancelIndividualization(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader_MonitorLicenseAcquisition(IWMDRMReader* This) { | 
 |     return This->lpVtbl->MonitorLicenseAcquisition(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader_CancelMonitorLicenseAcquisition(IWMDRMReader* This) { | 
 |     return This->lpVtbl->CancelMonitorLicenseAcquisition(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader_SetDRMProperty(IWMDRMReader* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { | 
 |     return This->lpVtbl->SetDRMProperty(This,name,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader_GetDRMProperty(IWMDRMReader* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { | 
 |     return This->lpVtbl->GetDRMProperty(This,name,type,value,length); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMDRMReader_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMDRMReader2 interface | 
 |  */ | 
 | #ifndef __IWMDRMReader2_INTERFACE_DEFINED__ | 
 | #define __IWMDRMReader2_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMDRMReader2, 0xbefe7a75, 0x9f1d, 0x4075, 0xb9,0xd9, 0xa3,0xc3,0x7b,0xda,0x49,0xa0); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("befe7a75-9f1d-4075-b9d9-a3c37bda49a0") | 
 | IWMDRMReader2 : public IWMDRMReader | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE SetEvaluateOutputLevelLicenses( | 
 |         WINBOOL evaluate) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetPlayOutputLevels( | 
 |         DRM_PLAY_OPL *play, | 
 |         DWORD *length, | 
 |         DWORD *level) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCopyOutputLevels( | 
 |         DRM_COPY_OPL *copy, | 
 |         DWORD *length, | 
 |         DWORD *level) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE TryNextLicense( | 
 |         ) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMDRMReader2, 0xbefe7a75, 0x9f1d, 0x4075, 0xb9,0xd9, 0xa3,0xc3,0x7b,0xda,0x49,0xa0) | 
 | #endif | 
 | #else | 
 | typedef struct IWMDRMReader2Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMDRMReader2 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMDRMReader2 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMDRMReader2 *This); | 
 |  | 
 |     /*** IWMDRMReader methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *AcquireLicense)( | 
 |         IWMDRMReader2 *This, | 
 |         DWORD flags); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)( | 
 |         IWMDRMReader2 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Individualize)( | 
 |         IWMDRMReader2 *This, | 
 |         DWORD flags); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelIndividualization)( | 
 |         IWMDRMReader2 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)( | 
 |         IWMDRMReader2 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)( | 
 |         IWMDRMReader2 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetDRMProperty)( | 
 |         IWMDRMReader2 *This, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         const BYTE *value, | 
 |         WORD length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetDRMProperty)( | 
 |         IWMDRMReader2 *This, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length); | 
 |  | 
 |     /*** IWMDRMReader2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetEvaluateOutputLevelLicenses)( | 
 |         IWMDRMReader2 *This, | 
 |         WINBOOL evaluate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetPlayOutputLevels)( | 
 |         IWMDRMReader2 *This, | 
 |         DRM_PLAY_OPL *play, | 
 |         DWORD *length, | 
 |         DWORD *level); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCopyOutputLevels)( | 
 |         IWMDRMReader2 *This, | 
 |         DRM_COPY_OPL *copy, | 
 |         DWORD *length, | 
 |         DWORD *level); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *TryNextLicense)( | 
 |         IWMDRMReader2 *This); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMDRMReader2Vtbl; | 
 |  | 
 | interface IWMDRMReader2 { | 
 |     CONST_VTBL IWMDRMReader2Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMDRMReader2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMDRMReader2_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMDRMReader2_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMDRMReader methods ***/ | 
 | #define IWMDRMReader2_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags) | 
 | #define IWMDRMReader2_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This) | 
 | #define IWMDRMReader2_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags) | 
 | #define IWMDRMReader2_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This) | 
 | #define IWMDRMReader2_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This) | 
 | #define IWMDRMReader2_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This) | 
 | #define IWMDRMReader2_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length) | 
 | #define IWMDRMReader2_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length) | 
 | /*** IWMDRMReader2 methods ***/ | 
 | #define IWMDRMReader2_SetEvaluateOutputLevelLicenses(This,evaluate) (This)->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate) | 
 | #define IWMDRMReader2_GetPlayOutputLevels(This,play,length,level) (This)->lpVtbl->GetPlayOutputLevels(This,play,length,level) | 
 | #define IWMDRMReader2_GetCopyOutputLevels(This,copy,length,level) (This)->lpVtbl->GetCopyOutputLevels(This,copy,length,level) | 
 | #define IWMDRMReader2_TryNextLicense(This) (This)->lpVtbl->TryNextLicense(This) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMDRMReader2_QueryInterface(IWMDRMReader2* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMDRMReader2_AddRef(IWMDRMReader2* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMDRMReader2_Release(IWMDRMReader2* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMDRMReader methods ***/ | 
 | static FORCEINLINE HRESULT IWMDRMReader2_AcquireLicense(IWMDRMReader2* This,DWORD flags) { | 
 |     return This->lpVtbl->AcquireLicense(This,flags); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader2_CancelLicenseAcquisition(IWMDRMReader2* This) { | 
 |     return This->lpVtbl->CancelLicenseAcquisition(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader2_Individualize(IWMDRMReader2* This,DWORD flags) { | 
 |     return This->lpVtbl->Individualize(This,flags); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader2_CancelIndividualization(IWMDRMReader2* This) { | 
 |     return This->lpVtbl->CancelIndividualization(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader2_MonitorLicenseAcquisition(IWMDRMReader2* This) { | 
 |     return This->lpVtbl->MonitorLicenseAcquisition(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader2_CancelMonitorLicenseAcquisition(IWMDRMReader2* This) { | 
 |     return This->lpVtbl->CancelMonitorLicenseAcquisition(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader2_SetDRMProperty(IWMDRMReader2* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { | 
 |     return This->lpVtbl->SetDRMProperty(This,name,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader2_GetDRMProperty(IWMDRMReader2* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { | 
 |     return This->lpVtbl->GetDRMProperty(This,name,type,value,length); | 
 | } | 
 | /*** IWMDRMReader2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMDRMReader2_SetEvaluateOutputLevelLicenses(IWMDRMReader2* This,WINBOOL evaluate) { | 
 |     return This->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader2_GetPlayOutputLevels(IWMDRMReader2* This,DRM_PLAY_OPL *play,DWORD *length,DWORD *level) { | 
 |     return This->lpVtbl->GetPlayOutputLevels(This,play,length,level); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader2_GetCopyOutputLevels(IWMDRMReader2* This,DRM_COPY_OPL *copy,DWORD *length,DWORD *level) { | 
 |     return This->lpVtbl->GetCopyOutputLevels(This,copy,length,level); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader2_TryNextLicense(IWMDRMReader2* This) { | 
 |     return This->lpVtbl->TryNextLicense(This); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMDRMReader2_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMDRMReader3 interface | 
 |  */ | 
 | #ifndef __IWMDRMReader3_INTERFACE_DEFINED__ | 
 | #define __IWMDRMReader3_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMDRMReader3, 0xe08672de, 0xf1e7, 0x4ff4, 0xa0,0xa3, 0xfc,0x4b,0x08,0xe4,0xca,0xf8); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("e08672de-f1e7-4ff4-a0a3-fc4b08e4caf8") | 
 | IWMDRMReader3 : public IWMDRMReader2 | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetInclusionList( | 
 |         GUID **guids, | 
 |         DWORD *count) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMDRMReader3, 0xe08672de, 0xf1e7, 0x4ff4, 0xa0,0xa3, 0xfc,0x4b,0x08,0xe4,0xca,0xf8) | 
 | #endif | 
 | #else | 
 | typedef struct IWMDRMReader3Vtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMDRMReader3 *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMDRMReader3 *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMDRMReader3 *This); | 
 |  | 
 |     /*** IWMDRMReader methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *AcquireLicense)( | 
 |         IWMDRMReader3 *This, | 
 |         DWORD flags); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelLicenseAcquisition)( | 
 |         IWMDRMReader3 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Individualize)( | 
 |         IWMDRMReader3 *This, | 
 |         DWORD flags); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelIndividualization)( | 
 |         IWMDRMReader3 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *MonitorLicenseAcquisition)( | 
 |         IWMDRMReader3 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelMonitorLicenseAcquisition)( | 
 |         IWMDRMReader3 *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetDRMProperty)( | 
 |         IWMDRMReader3 *This, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         const BYTE *value, | 
 |         WORD length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetDRMProperty)( | 
 |         IWMDRMReader3 *This, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         WORD *length); | 
 |  | 
 |     /*** IWMDRMReader2 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *SetEvaluateOutputLevelLicenses)( | 
 |         IWMDRMReader3 *This, | 
 |         WINBOOL evaluate); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetPlayOutputLevels)( | 
 |         IWMDRMReader3 *This, | 
 |         DRM_PLAY_OPL *play, | 
 |         DWORD *length, | 
 |         DWORD *level); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetCopyOutputLevels)( | 
 |         IWMDRMReader3 *This, | 
 |         DRM_COPY_OPL *copy, | 
 |         DWORD *length, | 
 |         DWORD *level); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *TryNextLicense)( | 
 |         IWMDRMReader3 *This); | 
 |  | 
 |     /*** IWMDRMReader3 methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetInclusionList)( | 
 |         IWMDRMReader3 *This, | 
 |         GUID **guids, | 
 |         DWORD *count); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMDRMReader3Vtbl; | 
 |  | 
 | interface IWMDRMReader3 { | 
 |     CONST_VTBL IWMDRMReader3Vtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMDRMReader3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMDRMReader3_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMDRMReader3_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMDRMReader methods ***/ | 
 | #define IWMDRMReader3_AcquireLicense(This,flags) (This)->lpVtbl->AcquireLicense(This,flags) | 
 | #define IWMDRMReader3_CancelLicenseAcquisition(This) (This)->lpVtbl->CancelLicenseAcquisition(This) | 
 | #define IWMDRMReader3_Individualize(This,flags) (This)->lpVtbl->Individualize(This,flags) | 
 | #define IWMDRMReader3_CancelIndividualization(This) (This)->lpVtbl->CancelIndividualization(This) | 
 | #define IWMDRMReader3_MonitorLicenseAcquisition(This) (This)->lpVtbl->MonitorLicenseAcquisition(This) | 
 | #define IWMDRMReader3_CancelMonitorLicenseAcquisition(This) (This)->lpVtbl->CancelMonitorLicenseAcquisition(This) | 
 | #define IWMDRMReader3_SetDRMProperty(This,name,type,value,length) (This)->lpVtbl->SetDRMProperty(This,name,type,value,length) | 
 | #define IWMDRMReader3_GetDRMProperty(This,name,type,value,length) (This)->lpVtbl->GetDRMProperty(This,name,type,value,length) | 
 | /*** IWMDRMReader2 methods ***/ | 
 | #define IWMDRMReader3_SetEvaluateOutputLevelLicenses(This,evaluate) (This)->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate) | 
 | #define IWMDRMReader3_GetPlayOutputLevels(This,play,length,level) (This)->lpVtbl->GetPlayOutputLevels(This,play,length,level) | 
 | #define IWMDRMReader3_GetCopyOutputLevels(This,copy,length,level) (This)->lpVtbl->GetCopyOutputLevels(This,copy,length,level) | 
 | #define IWMDRMReader3_TryNextLicense(This) (This)->lpVtbl->TryNextLicense(This) | 
 | /*** IWMDRMReader3 methods ***/ | 
 | #define IWMDRMReader3_GetInclusionList(This,guids,count) (This)->lpVtbl->GetInclusionList(This,guids,count) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMDRMReader3_QueryInterface(IWMDRMReader3* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMDRMReader3_AddRef(IWMDRMReader3* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMDRMReader3_Release(IWMDRMReader3* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMDRMReader methods ***/ | 
 | static FORCEINLINE HRESULT IWMDRMReader3_AcquireLicense(IWMDRMReader3* This,DWORD flags) { | 
 |     return This->lpVtbl->AcquireLicense(This,flags); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader3_CancelLicenseAcquisition(IWMDRMReader3* This) { | 
 |     return This->lpVtbl->CancelLicenseAcquisition(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader3_Individualize(IWMDRMReader3* This,DWORD flags) { | 
 |     return This->lpVtbl->Individualize(This,flags); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader3_CancelIndividualization(IWMDRMReader3* This) { | 
 |     return This->lpVtbl->CancelIndividualization(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader3_MonitorLicenseAcquisition(IWMDRMReader3* This) { | 
 |     return This->lpVtbl->MonitorLicenseAcquisition(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader3_CancelMonitorLicenseAcquisition(IWMDRMReader3* This) { | 
 |     return This->lpVtbl->CancelMonitorLicenseAcquisition(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader3_SetDRMProperty(IWMDRMReader3* This,const WCHAR *name,WMT_ATTR_DATATYPE type,const BYTE *value,WORD length) { | 
 |     return This->lpVtbl->SetDRMProperty(This,name,type,value,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader3_GetDRMProperty(IWMDRMReader3* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,WORD *length) { | 
 |     return This->lpVtbl->GetDRMProperty(This,name,type,value,length); | 
 | } | 
 | /*** IWMDRMReader2 methods ***/ | 
 | static FORCEINLINE HRESULT IWMDRMReader3_SetEvaluateOutputLevelLicenses(IWMDRMReader3* This,WINBOOL evaluate) { | 
 |     return This->lpVtbl->SetEvaluateOutputLevelLicenses(This,evaluate); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader3_GetPlayOutputLevels(IWMDRMReader3* This,DRM_PLAY_OPL *play,DWORD *length,DWORD *level) { | 
 |     return This->lpVtbl->GetPlayOutputLevels(This,play,length,level); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader3_GetCopyOutputLevels(IWMDRMReader3* This,DRM_COPY_OPL *copy,DWORD *length,DWORD *level) { | 
 |     return This->lpVtbl->GetCopyOutputLevels(This,copy,length,level); | 
 | } | 
 | static FORCEINLINE HRESULT IWMDRMReader3_TryNextLicense(IWMDRMReader3* This) { | 
 |     return This->lpVtbl->TryNextLicense(This); | 
 | } | 
 | /*** IWMDRMReader3 methods ***/ | 
 | static FORCEINLINE HRESULT IWMDRMReader3_GetInclusionList(IWMDRMReader3* This,GUID **guids,DWORD *count) { | 
 |     return This->lpVtbl->GetInclusionList(This,guids,count); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMDRMReader3_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderAccelerator interface | 
 |  */ | 
 | #ifndef __IWMReaderAccelerator_INTERFACE_DEFINED__ | 
 | #define __IWMReaderAccelerator_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderAccelerator, 0xbddc4d08, 0x944d, 0x4d52, 0xa6,0x12, 0x46,0xc3,0xfd,0xa0,0x7d,0xd4); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("bddc4d08-944d-4d52-a612-46c3fda07dd4") | 
 | IWMReaderAccelerator : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetCodecInterface( | 
 |         DWORD output, | 
 |         REFIID riid, | 
 |         void **codec) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Notify( | 
 |         DWORD output, | 
 |         WM_MEDIA_TYPE *subtype) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderAccelerator, 0xbddc4d08, 0x944d, 0x4d52, 0xa6,0x12, 0x46,0xc3,0xfd,0xa0,0x7d,0xd4) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderAcceleratorVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderAccelerator *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderAccelerator *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderAccelerator *This); | 
 |  | 
 |     /*** IWMReaderAccelerator methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetCodecInterface)( | 
 |         IWMReaderAccelerator *This, | 
 |         DWORD output, | 
 |         REFIID riid, | 
 |         void **codec); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Notify)( | 
 |         IWMReaderAccelerator *This, | 
 |         DWORD output, | 
 |         WM_MEDIA_TYPE *subtype); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderAcceleratorVtbl; | 
 |  | 
 | interface IWMReaderAccelerator { | 
 |     CONST_VTBL IWMReaderAcceleratorVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderAccelerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderAccelerator_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderAccelerator_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderAccelerator methods ***/ | 
 | #define IWMReaderAccelerator_GetCodecInterface(This,output,riid,codec) (This)->lpVtbl->GetCodecInterface(This,output,riid,codec) | 
 | #define IWMReaderAccelerator_Notify(This,output,subtype) (This)->lpVtbl->Notify(This,output,subtype) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAccelerator_QueryInterface(IWMReaderAccelerator* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAccelerator_AddRef(IWMReaderAccelerator* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderAccelerator_Release(IWMReaderAccelerator* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderAccelerator methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderAccelerator_GetCodecInterface(IWMReaderAccelerator* This,DWORD output,REFIID riid,void **codec) { | 
 |     return This->lpVtbl->GetCodecInterface(This,output,riid,codec); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderAccelerator_Notify(IWMReaderAccelerator* This,DWORD output,WM_MEDIA_TYPE *subtype) { | 
 |     return This->lpVtbl->Notify(This,output,subtype); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderAccelerator_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderTimecode interface | 
 |  */ | 
 | #ifndef __IWMReaderTimecode_INTERFACE_DEFINED__ | 
 | #define __IWMReaderTimecode_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderTimecode, 0xf369e2f0, 0xe081, 0x4fe6, 0x84,0x50, 0xb8,0x10,0xb2,0xf4,0x10,0xd1); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("f369e2f0-e081-4fe6-8450-b810b2f410d1") | 
 | IWMReaderTimecode : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetTimecodeRangeCount( | 
 |         WORD num, | 
 |         WORD *count) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetTimecodeRangeBounds( | 
 |         WORD stream, | 
 |         WORD range, | 
 |         DWORD *start_timecode, | 
 |         DWORD *end_timecode) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderTimecode, 0xf369e2f0, 0xe081, 0x4fe6, 0x84,0x50, 0xb8,0x10,0xb2,0xf4,0x10,0xd1) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderTimecodeVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderTimecode *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderTimecode *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderTimecode *This); | 
 |  | 
 |     /*** IWMReaderTimecode methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetTimecodeRangeCount)( | 
 |         IWMReaderTimecode *This, | 
 |         WORD num, | 
 |         WORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetTimecodeRangeBounds)( | 
 |         IWMReaderTimecode *This, | 
 |         WORD stream, | 
 |         WORD range, | 
 |         DWORD *start_timecode, | 
 |         DWORD *end_timecode); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderTimecodeVtbl; | 
 |  | 
 | interface IWMReaderTimecode { | 
 |     CONST_VTBL IWMReaderTimecodeVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderTimecode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderTimecode_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderTimecode_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderTimecode methods ***/ | 
 | #define IWMReaderTimecode_GetTimecodeRangeCount(This,num,count) (This)->lpVtbl->GetTimecodeRangeCount(This,num,count) | 
 | #define IWMReaderTimecode_GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode) (This)->lpVtbl->GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderTimecode_QueryInterface(IWMReaderTimecode* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderTimecode_AddRef(IWMReaderTimecode* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderTimecode_Release(IWMReaderTimecode* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderTimecode methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderTimecode_GetTimecodeRangeCount(IWMReaderTimecode* This,WORD num,WORD *count) { | 
 |     return This->lpVtbl->GetTimecodeRangeCount(This,num,count); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderTimecode_GetTimecodeRangeBounds(IWMReaderTimecode* This,WORD stream,WORD range,DWORD *start_timecode,DWORD *end_timecode) { | 
 |     return This->lpVtbl->GetTimecodeRangeBounds(This,stream,range,start_timecode,end_timecode); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderTimecode_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderTypeNegotiation interface | 
 |  */ | 
 | #ifndef __IWMReaderTypeNegotiation_INTERFACE_DEFINED__ | 
 | #define __IWMReaderTypeNegotiation_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderTypeNegotiation, 0xfdbe5592, 0x81a1, 0x41ea, 0x93,0xbd, 0x73,0x5c,0xad,0x1a,0xdc,0x05); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("fdbe5592-81a1-41ea-93bd-735cad1adc05") | 
 | IWMReaderTypeNegotiation : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE TryOutputProps( | 
 |         DWORD output, | 
 |         IWMOutputMediaProps *props) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderTypeNegotiation, 0xfdbe5592, 0x81a1, 0x41ea, 0x93,0xbd, 0x73,0x5c,0xad,0x1a,0xdc,0x05) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderTypeNegotiationVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderTypeNegotiation *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderTypeNegotiation *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderTypeNegotiation *This); | 
 |  | 
 |     /*** IWMReaderTypeNegotiation methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *TryOutputProps)( | 
 |         IWMReaderTypeNegotiation *This, | 
 |         DWORD output, | 
 |         IWMOutputMediaProps *props); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderTypeNegotiationVtbl; | 
 |  | 
 | interface IWMReaderTypeNegotiation { | 
 |     CONST_VTBL IWMReaderTypeNegotiationVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderTypeNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderTypeNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderTypeNegotiation_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderTypeNegotiation methods ***/ | 
 | #define IWMReaderTypeNegotiation_TryOutputProps(This,output,props) (This)->lpVtbl->TryOutputProps(This,output,props) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderTypeNegotiation_QueryInterface(IWMReaderTypeNegotiation* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderTypeNegotiation_AddRef(IWMReaderTypeNegotiation* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderTypeNegotiation_Release(IWMReaderTypeNegotiation* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderTypeNegotiation methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderTypeNegotiation_TryOutputProps(IWMReaderTypeNegotiation* This,DWORD output,IWMOutputMediaProps *props) { | 
 |     return This->lpVtbl->TryOutputProps(This,output,props); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderTypeNegotiation_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMLanguageList interface | 
 |  */ | 
 | #ifndef __IWMLanguageList_INTERFACE_DEFINED__ | 
 | #define __IWMLanguageList_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMLanguageList, 0xdf683f00, 0x2d49, 0x4d8e, 0x92,0xb7, 0xfb,0x19,0xf6,0xa0,0xdc,0x57); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("df683f00-2d49-4d8e-92b7-fb19f6a0dc57") | 
 | IWMLanguageList : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetLanguageCount( | 
 |         WORD *count) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetLanguageDetails( | 
 |         WORD index, | 
 |         WCHAR *language, | 
 |         WORD *length) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE AddLanguageByRFC1766String( | 
 |         LPCWSTR_WMSDK_TYPE_SAFE language, | 
 |         WORD *index) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMLanguageList, 0xdf683f00, 0x2d49, 0x4d8e, 0x92,0xb7, 0xfb,0x19,0xf6,0xa0,0xdc,0x57) | 
 | #endif | 
 | #else | 
 | typedef struct IWMLanguageListVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMLanguageList *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMLanguageList *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMLanguageList *This); | 
 |  | 
 |     /*** IWMLanguageList methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetLanguageCount)( | 
 |         IWMLanguageList *This, | 
 |         WORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetLanguageDetails)( | 
 |         IWMLanguageList *This, | 
 |         WORD index, | 
 |         WCHAR *language, | 
 |         WORD *length); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *AddLanguageByRFC1766String)( | 
 |         IWMLanguageList *This, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE language, | 
 |         WORD *index); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMLanguageListVtbl; | 
 |  | 
 | interface IWMLanguageList { | 
 |     CONST_VTBL IWMLanguageListVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMLanguageList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMLanguageList_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMLanguageList_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMLanguageList methods ***/ | 
 | #define IWMLanguageList_GetLanguageCount(This,count) (This)->lpVtbl->GetLanguageCount(This,count) | 
 | #define IWMLanguageList_GetLanguageDetails(This,index,language,length) (This)->lpVtbl->GetLanguageDetails(This,index,language,length) | 
 | #define IWMLanguageList_AddLanguageByRFC1766String(This,language,index) (This)->lpVtbl->AddLanguageByRFC1766String(This,language,index) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMLanguageList_QueryInterface(IWMLanguageList* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMLanguageList_AddRef(IWMLanguageList* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMLanguageList_Release(IWMLanguageList* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMLanguageList methods ***/ | 
 | static FORCEINLINE HRESULT IWMLanguageList_GetLanguageCount(IWMLanguageList* This,WORD *count) { | 
 |     return This->lpVtbl->GetLanguageCount(This,count); | 
 | } | 
 | static FORCEINLINE HRESULT IWMLanguageList_GetLanguageDetails(IWMLanguageList* This,WORD index,WCHAR *language,WORD *length) { | 
 |     return This->lpVtbl->GetLanguageDetails(This,index,language,length); | 
 | } | 
 | static FORCEINLINE HRESULT IWMLanguageList_AddLanguageByRFC1766String(IWMLanguageList* This,LPCWSTR_WMSDK_TYPE_SAFE language,WORD *index) { | 
 |     return This->lpVtbl->AddLanguageByRFC1766String(This,language,index); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMLanguageList_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMReaderPlaylistBurn interface | 
 |  */ | 
 | #ifndef __IWMReaderPlaylistBurn_INTERFACE_DEFINED__ | 
 | #define __IWMReaderPlaylistBurn_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMReaderPlaylistBurn, 0xf28c0300, 0x9baa, 0x4477, 0xa8,0x46, 0x17,0x44,0xd9,0xcb,0xf5,0x33); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("f28c0300-9baa-4477-a846-1744d9cbf533") | 
 | IWMReaderPlaylistBurn : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE InitPlaylistBurn( | 
 |         DWORD count, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE *filenames, | 
 |         IWMStatusCallback *callback, | 
 |         void *context) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetInitResults( | 
 |         DWORD count, | 
 |         HRESULT *stat) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Cancel( | 
 |         ) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE EndPlaylistBurn( | 
 |         HRESULT result) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMReaderPlaylistBurn, 0xf28c0300, 0x9baa, 0x4477, 0xa8,0x46, 0x17,0x44,0xd9,0xcb,0xf5,0x33) | 
 | #endif | 
 | #else | 
 | typedef struct IWMReaderPlaylistBurnVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMReaderPlaylistBurn *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMReaderPlaylistBurn *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMReaderPlaylistBurn *This); | 
 |  | 
 |     /*** IWMReaderPlaylistBurn methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *InitPlaylistBurn)( | 
 |         IWMReaderPlaylistBurn *This, | 
 |         DWORD count, | 
 |         LPCWSTR_WMSDK_TYPE_SAFE *filenames, | 
 |         IWMStatusCallback *callback, | 
 |         void *context); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetInitResults)( | 
 |         IWMReaderPlaylistBurn *This, | 
 |         DWORD count, | 
 |         HRESULT *stat); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Cancel)( | 
 |         IWMReaderPlaylistBurn *This); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *EndPlaylistBurn)( | 
 |         IWMReaderPlaylistBurn *This, | 
 |         HRESULT result); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMReaderPlaylistBurnVtbl; | 
 |  | 
 | interface IWMReaderPlaylistBurn { | 
 |     CONST_VTBL IWMReaderPlaylistBurnVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMReaderPlaylistBurn_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMReaderPlaylistBurn_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMReaderPlaylistBurn_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMReaderPlaylistBurn methods ***/ | 
 | #define IWMReaderPlaylistBurn_InitPlaylistBurn(This,count,filenames,callback,context) (This)->lpVtbl->InitPlaylistBurn(This,count,filenames,callback,context) | 
 | #define IWMReaderPlaylistBurn_GetInitResults(This,count,stat) (This)->lpVtbl->GetInitResults(This,count,stat) | 
 | #define IWMReaderPlaylistBurn_Cancel(This) (This)->lpVtbl->Cancel(This) | 
 | #define IWMReaderPlaylistBurn_EndPlaylistBurn(This,result) (This)->lpVtbl->EndPlaylistBurn(This,result) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderPlaylistBurn_QueryInterface(IWMReaderPlaylistBurn* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderPlaylistBurn_AddRef(IWMReaderPlaylistBurn* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMReaderPlaylistBurn_Release(IWMReaderPlaylistBurn* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMReaderPlaylistBurn methods ***/ | 
 | static FORCEINLINE HRESULT IWMReaderPlaylistBurn_InitPlaylistBurn(IWMReaderPlaylistBurn* This,DWORD count,LPCWSTR_WMSDK_TYPE_SAFE *filenames,IWMStatusCallback *callback,void *context) { | 
 |     return This->lpVtbl->InitPlaylistBurn(This,count,filenames,callback,context); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderPlaylistBurn_GetInitResults(IWMReaderPlaylistBurn* This,DWORD count,HRESULT *stat) { | 
 |     return This->lpVtbl->GetInitResults(This,count,stat); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderPlaylistBurn_Cancel(IWMReaderPlaylistBurn* This) { | 
 |     return This->lpVtbl->Cancel(This); | 
 | } | 
 | static FORCEINLINE HRESULT IWMReaderPlaylistBurn_EndPlaylistBurn(IWMReaderPlaylistBurn* This,HRESULT result) { | 
 |     return This->lpVtbl->EndPlaylistBurn(This,result); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMReaderPlaylistBurn_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMPropertyVault interface | 
 |  */ | 
 | #ifndef __IWMPropertyVault_INTERFACE_DEFINED__ | 
 | #define __IWMPropertyVault_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMPropertyVault, 0x72995a79, 0x5090, 0x42a4, 0x9c,0x8c, 0xd9,0xd0,0xb6,0xd3,0x4b,0xe5); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("72995a79-5090-42a4-9c8c-d9d0b6d34be5") | 
 | IWMPropertyVault : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetPropertyCount( | 
 |         DWORD *count) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetPropertyByName( | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         DWORD *size) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetProperty( | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         BYTE *value, | 
 |         DWORD size) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE GetPropertyByIndex( | 
 |         DWORD index, | 
 |         WCHAR *name, | 
 |         DWORD *length, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         DWORD *size) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CopyPropertiesFrom( | 
 |         IWMPropertyVault *vault) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE Clear( | 
 |         ) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMPropertyVault, 0x72995a79, 0x5090, 0x42a4, 0x9c,0x8c, 0xd9,0xd0,0xb6,0xd3,0x4b,0xe5) | 
 | #endif | 
 | #else | 
 | typedef struct IWMPropertyVaultVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMPropertyVault *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMPropertyVault *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMPropertyVault *This); | 
 |  | 
 |     /*** IWMPropertyVault methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetPropertyCount)( | 
 |         IWMPropertyVault *This, | 
 |         DWORD *count); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetPropertyByName)( | 
 |         IWMPropertyVault *This, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetProperty)( | 
 |         IWMPropertyVault *This, | 
 |         const WCHAR *name, | 
 |         WMT_ATTR_DATATYPE type, | 
 |         BYTE *value, | 
 |         DWORD size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *GetPropertyByIndex)( | 
 |         IWMPropertyVault *This, | 
 |         DWORD index, | 
 |         WCHAR *name, | 
 |         DWORD *length, | 
 |         WMT_ATTR_DATATYPE *type, | 
 |         BYTE *value, | 
 |         DWORD *size); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CopyPropertiesFrom)( | 
 |         IWMPropertyVault *This, | 
 |         IWMPropertyVault *vault); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *Clear)( | 
 |         IWMPropertyVault *This); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMPropertyVaultVtbl; | 
 |  | 
 | interface IWMPropertyVault { | 
 |     CONST_VTBL IWMPropertyVaultVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMPropertyVault_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMPropertyVault_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMPropertyVault_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMPropertyVault methods ***/ | 
 | #define IWMPropertyVault_GetPropertyCount(This,count) (This)->lpVtbl->GetPropertyCount(This,count) | 
 | #define IWMPropertyVault_GetPropertyByName(This,name,type,value,size) (This)->lpVtbl->GetPropertyByName(This,name,type,value,size) | 
 | #define IWMPropertyVault_SetProperty(This,name,type,value,size) (This)->lpVtbl->SetProperty(This,name,type,value,size) | 
 | #define IWMPropertyVault_GetPropertyByIndex(This,index,name,length,type,value,size) (This)->lpVtbl->GetPropertyByIndex(This,index,name,length,type,value,size) | 
 | #define IWMPropertyVault_CopyPropertiesFrom(This,vault) (This)->lpVtbl->CopyPropertiesFrom(This,vault) | 
 | #define IWMPropertyVault_Clear(This) (This)->lpVtbl->Clear(This) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMPropertyVault_QueryInterface(IWMPropertyVault* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMPropertyVault_AddRef(IWMPropertyVault* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMPropertyVault_Release(IWMPropertyVault* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMPropertyVault methods ***/ | 
 | static FORCEINLINE HRESULT IWMPropertyVault_GetPropertyCount(IWMPropertyVault* This,DWORD *count) { | 
 |     return This->lpVtbl->GetPropertyCount(This,count); | 
 | } | 
 | static FORCEINLINE HRESULT IWMPropertyVault_GetPropertyByName(IWMPropertyVault* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) { | 
 |     return This->lpVtbl->GetPropertyByName(This,name,type,value,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMPropertyVault_SetProperty(IWMPropertyVault* This,const WCHAR *name,WMT_ATTR_DATATYPE type,BYTE *value,DWORD size) { | 
 |     return This->lpVtbl->SetProperty(This,name,type,value,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMPropertyVault_GetPropertyByIndex(IWMPropertyVault* This,DWORD index,WCHAR *name,DWORD *length,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) { | 
 |     return This->lpVtbl->GetPropertyByIndex(This,index,name,length,type,value,size); | 
 | } | 
 | static FORCEINLINE HRESULT IWMPropertyVault_CopyPropertiesFrom(IWMPropertyVault* This,IWMPropertyVault *vault) { | 
 |     return This->lpVtbl->CopyPropertiesFrom(This,vault); | 
 | } | 
 | static FORCEINLINE HRESULT IWMPropertyVault_Clear(IWMPropertyVault* This) { | 
 |     return This->lpVtbl->Clear(This); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMPropertyVault_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMWriterPreprocess interface | 
 |  */ | 
 | #ifndef __IWMWriterPreprocess_INTERFACE_DEFINED__ | 
 | #define __IWMWriterPreprocess_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMWriterPreprocess, 0xfc54a285, 0x38c4, 0x45b5, 0xaa,0x23, 0x85,0xb9,0xf7,0xcb,0x42,0x4b); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("fc54a285-38c4-45b5-aa23-85b9f7cb424b") | 
 | IWMWriterPreprocess : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE GetMaxPreprocessingPasses( | 
 |         DWORD input, | 
 |         DWORD flags, | 
 |         DWORD *passes) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE SetNumPreprocessingPasses( | 
 |         DWORD input, | 
 |         DWORD flags, | 
 |         DWORD passes) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE BeginPreprocessingPass( | 
 |         DWORD input, | 
 |         DWORD flags) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE PreprocessSample( | 
 |         DWORD input, | 
 |         QWORD sample_time, | 
 |         DWORD flags, | 
 |         INSSBuffer *sample) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE EndPreprocessingPass( | 
 |         DWORD input, | 
 |         DWORD flags) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMWriterPreprocess, 0xfc54a285, 0x38c4, 0x45b5, 0xaa,0x23, 0x85,0xb9,0xf7,0xcb,0x42,0x4b) | 
 | #endif | 
 | #else | 
 | typedef struct IWMWriterPreprocessVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMWriterPreprocess *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMWriterPreprocess *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMWriterPreprocess *This); | 
 |  | 
 |     /*** IWMWriterPreprocess methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *GetMaxPreprocessingPasses)( | 
 |         IWMWriterPreprocess *This, | 
 |         DWORD input, | 
 |         DWORD flags, | 
 |         DWORD *passes); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *SetNumPreprocessingPasses)( | 
 |         IWMWriterPreprocess *This, | 
 |         DWORD input, | 
 |         DWORD flags, | 
 |         DWORD passes); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *BeginPreprocessingPass)( | 
 |         IWMWriterPreprocess *This, | 
 |         DWORD input, | 
 |         DWORD flags); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *PreprocessSample)( | 
 |         IWMWriterPreprocess *This, | 
 |         DWORD input, | 
 |         QWORD sample_time, | 
 |         DWORD flags, | 
 |         INSSBuffer *sample); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *EndPreprocessingPass)( | 
 |         IWMWriterPreprocess *This, | 
 |         DWORD input, | 
 |         DWORD flags); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMWriterPreprocessVtbl; | 
 |  | 
 | interface IWMWriterPreprocess { | 
 |     CONST_VTBL IWMWriterPreprocessVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMWriterPreprocess_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMWriterPreprocess_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMWriterPreprocess_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMWriterPreprocess methods ***/ | 
 | #define IWMWriterPreprocess_GetMaxPreprocessingPasses(This,input,flags,passes) (This)->lpVtbl->GetMaxPreprocessingPasses(This,input,flags,passes) | 
 | #define IWMWriterPreprocess_SetNumPreprocessingPasses(This,input,flags,passes) (This)->lpVtbl->SetNumPreprocessingPasses(This,input,flags,passes) | 
 | #define IWMWriterPreprocess_BeginPreprocessingPass(This,input,flags) (This)->lpVtbl->BeginPreprocessingPass(This,input,flags) | 
 | #define IWMWriterPreprocess_PreprocessSample(This,input,sample_time,flags,sample) (This)->lpVtbl->PreprocessSample(This,input,sample_time,flags,sample) | 
 | #define IWMWriterPreprocess_EndPreprocessingPass(This,input,flags) (This)->lpVtbl->EndPreprocessingPass(This,input,flags) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterPreprocess_QueryInterface(IWMWriterPreprocess* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriterPreprocess_AddRef(IWMWriterPreprocess* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMWriterPreprocess_Release(IWMWriterPreprocess* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMWriterPreprocess methods ***/ | 
 | static FORCEINLINE HRESULT IWMWriterPreprocess_GetMaxPreprocessingPasses(IWMWriterPreprocess* This,DWORD input,DWORD flags,DWORD *passes) { | 
 |     return This->lpVtbl->GetMaxPreprocessingPasses(This,input,flags,passes); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterPreprocess_SetNumPreprocessingPasses(IWMWriterPreprocess* This,DWORD input,DWORD flags,DWORD passes) { | 
 |     return This->lpVtbl->SetNumPreprocessingPasses(This,input,flags,passes); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterPreprocess_BeginPreprocessingPass(IWMWriterPreprocess* This,DWORD input,DWORD flags) { | 
 |     return This->lpVtbl->BeginPreprocessingPass(This,input,flags); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterPreprocess_PreprocessSample(IWMWriterPreprocess* This,DWORD input,QWORD sample_time,DWORD flags,INSSBuffer *sample) { | 
 |     return This->lpVtbl->PreprocessSample(This,input,sample_time,flags,sample); | 
 | } | 
 | static FORCEINLINE HRESULT IWMWriterPreprocess_EndPreprocessingPass(IWMWriterPreprocess* This,DWORD input,DWORD flags) { | 
 |     return This->lpVtbl->EndPreprocessingPass(This,input,flags); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMWriterPreprocess_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMLicenseBackup interface | 
 |  */ | 
 | #ifndef __IWMLicenseBackup_INTERFACE_DEFINED__ | 
 | #define __IWMLicenseBackup_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMLicenseBackup, 0x05e5ac9f, 0x3fb6, 0x4508, 0xbb,0x43, 0xa4,0x06,0x7b,0xa1,0xeb,0xe8); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("05e5ac9f-3fb6-4508-bb43-a4067ba1ebe8") | 
 | IWMLicenseBackup : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE BackupLicenses( | 
 |         DWORD dwFlags, | 
 |         IWMStatusCallback *pCallback) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CancelLicenseBackup( | 
 |         ) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMLicenseBackup, 0x05e5ac9f, 0x3fb6, 0x4508, 0xbb,0x43, 0xa4,0x06,0x7b,0xa1,0xeb,0xe8) | 
 | #endif | 
 | #else | 
 | typedef struct IWMLicenseBackupVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMLicenseBackup *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMLicenseBackup *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMLicenseBackup *This); | 
 |  | 
 |     /*** IWMLicenseBackup methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *BackupLicenses)( | 
 |         IWMLicenseBackup *This, | 
 |         DWORD dwFlags, | 
 |         IWMStatusCallback *pCallback); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelLicenseBackup)( | 
 |         IWMLicenseBackup *This); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMLicenseBackupVtbl; | 
 |  | 
 | interface IWMLicenseBackup { | 
 |     CONST_VTBL IWMLicenseBackupVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMLicenseBackup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMLicenseBackup_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMLicenseBackup_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMLicenseBackup methods ***/ | 
 | #define IWMLicenseBackup_BackupLicenses(This,dwFlags,pCallback) (This)->lpVtbl->BackupLicenses(This,dwFlags,pCallback) | 
 | #define IWMLicenseBackup_CancelLicenseBackup(This) (This)->lpVtbl->CancelLicenseBackup(This) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMLicenseBackup_QueryInterface(IWMLicenseBackup* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMLicenseBackup_AddRef(IWMLicenseBackup* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMLicenseBackup_Release(IWMLicenseBackup* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMLicenseBackup methods ***/ | 
 | static FORCEINLINE HRESULT IWMLicenseBackup_BackupLicenses(IWMLicenseBackup* This,DWORD dwFlags,IWMStatusCallback *pCallback) { | 
 |     return This->lpVtbl->BackupLicenses(This,dwFlags,pCallback); | 
 | } | 
 | static FORCEINLINE HRESULT IWMLicenseBackup_CancelLicenseBackup(IWMLicenseBackup* This) { | 
 |     return This->lpVtbl->CancelLicenseBackup(This); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMLicenseBackup_INTERFACE_DEFINED__ */ | 
 |  | 
 | /***************************************************************************** | 
 |  * IWMLicenseRestore interface | 
 |  */ | 
 | #ifndef __IWMLicenseRestore_INTERFACE_DEFINED__ | 
 | #define __IWMLicenseRestore_INTERFACE_DEFINED__ | 
 |  | 
 | DEFINE_GUID(IID_IWMLicenseRestore, 0xc70b6334, 0xa22e, 0x4efb, 0xa2,0x45, 0x15,0xe6,0x5a,0x00,0x4a,0x13); | 
 | #if defined(__cplusplus) && !defined(CINTERFACE) | 
 | MIDL_INTERFACE("c70b6334-a22e-4efb-a245-15e65a004a13") | 
 | IWMLicenseRestore : public IUnknown | 
 | { | 
 |     virtual HRESULT STDMETHODCALLTYPE RestoreLicenses( | 
 |         DWORD dwFlags, | 
 |         IWMStatusCallback *pCallback) = 0; | 
 |  | 
 |     virtual HRESULT STDMETHODCALLTYPE CancelLicenseRestore( | 
 |         ) = 0; | 
 |  | 
 | }; | 
 | #ifdef __CRT_UUID_DECL | 
 | __CRT_UUID_DECL(IWMLicenseRestore, 0xc70b6334, 0xa22e, 0x4efb, 0xa2,0x45, 0x15,0xe6,0x5a,0x00,0x4a,0x13) | 
 | #endif | 
 | #else | 
 | typedef struct IWMLicenseRestoreVtbl { | 
 |     BEGIN_INTERFACE | 
 |  | 
 |     /*** IUnknown methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
 |         IWMLicenseRestore *This, | 
 |         REFIID riid, | 
 |         void **ppvObject); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *AddRef)( | 
 |         IWMLicenseRestore *This); | 
 |  | 
 |     ULONG (STDMETHODCALLTYPE *Release)( | 
 |         IWMLicenseRestore *This); | 
 |  | 
 |     /*** IWMLicenseRestore methods ***/ | 
 |     HRESULT (STDMETHODCALLTYPE *RestoreLicenses)( | 
 |         IWMLicenseRestore *This, | 
 |         DWORD dwFlags, | 
 |         IWMStatusCallback *pCallback); | 
 |  | 
 |     HRESULT (STDMETHODCALLTYPE *CancelLicenseRestore)( | 
 |         IWMLicenseRestore *This); | 
 |  | 
 |     END_INTERFACE | 
 | } IWMLicenseRestoreVtbl; | 
 |  | 
 | interface IWMLicenseRestore { | 
 |     CONST_VTBL IWMLicenseRestoreVtbl* lpVtbl; | 
 | }; | 
 |  | 
 | #ifdef COBJMACROS | 
 | #ifndef WIDL_C_INLINE_WRAPPERS | 
 | /*** IUnknown methods ***/ | 
 | #define IWMLicenseRestore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
 | #define IWMLicenseRestore_AddRef(This) (This)->lpVtbl->AddRef(This) | 
 | #define IWMLicenseRestore_Release(This) (This)->lpVtbl->Release(This) | 
 | /*** IWMLicenseRestore methods ***/ | 
 | #define IWMLicenseRestore_RestoreLicenses(This,dwFlags,pCallback) (This)->lpVtbl->RestoreLicenses(This,dwFlags,pCallback) | 
 | #define IWMLicenseRestore_CancelLicenseRestore(This) (This)->lpVtbl->CancelLicenseRestore(This) | 
 | #else | 
 | /*** IUnknown methods ***/ | 
 | static FORCEINLINE HRESULT IWMLicenseRestore_QueryInterface(IWMLicenseRestore* This,REFIID riid,void **ppvObject) { | 
 |     return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
 | } | 
 | static FORCEINLINE ULONG IWMLicenseRestore_AddRef(IWMLicenseRestore* This) { | 
 |     return This->lpVtbl->AddRef(This); | 
 | } | 
 | static FORCEINLINE ULONG IWMLicenseRestore_Release(IWMLicenseRestore* This) { | 
 |     return This->lpVtbl->Release(This); | 
 | } | 
 | /*** IWMLicenseRestore methods ***/ | 
 | static FORCEINLINE HRESULT IWMLicenseRestore_RestoreLicenses(IWMLicenseRestore* This,DWORD dwFlags,IWMStatusCallback *pCallback) { | 
 |     return This->lpVtbl->RestoreLicenses(This,dwFlags,pCallback); | 
 | } | 
 | static FORCEINLINE HRESULT IWMLicenseRestore_CancelLicenseRestore(IWMLicenseRestore* This) { | 
 |     return This->lpVtbl->CancelLicenseRestore(This); | 
 | } | 
 | #endif | 
 | #endif | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 | #endif  /* __IWMLicenseRestore_INTERFACE_DEFINED__ */ | 
 |  | 
 | HRESULT WINAPI WMCheckURLExtension(LPCWSTR); | 
 | HRESULT WINAPI WMCheckURLScheme(LPCWSTR); | 
 | HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**); | 
 | HRESULT WINAPI WMCreateReader(IUnknown*,DWORD,IWMReader**); | 
 | HRESULT WINAPI WMCreateSyncReader(IUnknown*,DWORD,IWMSyncReader**); | 
 | HRESULT WINAPI WMCreateEditor(IWMMetadataEditor**); | 
 | HRESULT WINAPI WMCreateBackupRestorer(IUnknown*,IWMLicenseBackup**); | 
 | HRESULT WINAPI WMCreateProfileManager(IWMProfileManager**); | 
 | HRESULT WINAPI WMIsContentProtected(const WCHAR*, WINBOOL*); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_Base,   0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIATYPE_Video,     0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_RGB1,   0xe436eb78,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_RGB4,   0xe436eb79,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_RGB8,   0xe436eb7a,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_RGB565, 0xe436eb7b,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_RGB555, 0xe436eb7c,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_RGB24,  0xe436eb7d,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_RGB32,  0xe436eb7e,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_I420,   0x30323449,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_IYUV,   0x56555949,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_YV12,   0x32315659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_YUY2,   0x32595559,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_P422,   0x32323450,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_UYVY,   0x59565955,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_YVYU,   0x55595659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_YVU9,   0x39555659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_VIDEOIMAGE, 0x1d4a45f2,0xe5f6,0x4b44,0x83,0x88,0xf0,0xae,0x5c,0x0e,0x0c,0x37); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_MP43,   0x3334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_MP4S,   0x5334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_M4S2,   0x3253344d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_WMV1,   0x31564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_WMV2,   0x32564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_MSS1,   0x3153534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_MPEG2_VIDEO, 0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea); | 
 | EXTERN_GUID(WMMEDIATYPE_Audio,     0x73647561,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_PCM,    0x00000001,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_DRM,    0x00000009,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_WMAudioV9,        0x00000162,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_WMAudio_Lossless, 0x00000163,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_MSS2,   0x3253534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_WMSP1,  0x0000000a,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_WMSP2,  0x0000000b,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_WMV3,   0x33564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_WMVP,   0x50564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_WVP2,   0x32505657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_WMVA,   0x41564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | EXTERN_GUID(WMMEDIASUBTYPE_WVC1,   0x31435657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71); | 
 | /* Begin additional prototypes for all interfaces */ | 
 |  | 
 |  | 
 | /* End additional prototypes */ | 
 |  | 
 | #ifdef __cplusplus | 
 | } | 
 | #endif | 
 |  | 
 | #endif /* __wmsdkidl_h__ */ |