Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.6 from include/wmcontainer.idl - Do not edit ***/
      2 
      3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      5 #endif
      6 
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 
     10 #ifndef COM_NO_WINDOWS_H
     11 #include <windows.h>
     12 #include <ole2.h>
     13 #endif
     14 
     15 #ifndef __wmcontainer_h__
     16 #define __wmcontainer_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __IMFASFContentInfo_FWD_DEFINED__
     21 #define __IMFASFContentInfo_FWD_DEFINED__
     22 typedef interface IMFASFContentInfo IMFASFContentInfo;
     23 #endif
     24 
     25 #ifndef __IMFASFMutualExclusion_FWD_DEFINED__
     26 #define __IMFASFMutualExclusion_FWD_DEFINED__
     27 typedef interface IMFASFMutualExclusion IMFASFMutualExclusion;
     28 #endif
     29 
     30 #ifndef __IMFASFStreamPrioritization_FWD_DEFINED__
     31 #define __IMFASFStreamPrioritization_FWD_DEFINED__
     32 typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization;
     33 #endif
     34 
     35 #ifndef __IMFASFSplitter_FWD_DEFINED__
     36 #define __IMFASFSplitter_FWD_DEFINED__
     37 typedef interface IMFASFSplitter IMFASFSplitter;
     38 #endif
     39 
     40 #ifndef __IMFASFMultiplexer_FWD_DEFINED__
     41 #define __IMFASFMultiplexer_FWD_DEFINED__
     42 typedef interface IMFASFMultiplexer IMFASFMultiplexer;
     43 #endif
     44 
     45 #ifndef __IMFASFIndexer_FWD_DEFINED__
     46 #define __IMFASFIndexer_FWD_DEFINED__
     47 typedef interface IMFASFIndexer IMFASFIndexer;
     48 #endif
     49 
     50 #ifndef __IMFASFStreamSelector_FWD_DEFINED__
     51 #define __IMFASFStreamSelector_FWD_DEFINED__
     52 typedef interface IMFASFStreamSelector IMFASFStreamSelector;
     53 #endif
     54 
     55 #ifndef __IMFDRMNetHelper_FWD_DEFINED__
     56 #define __IMFDRMNetHelper_FWD_DEFINED__
     57 typedef interface IMFDRMNetHelper IMFDRMNetHelper;
     58 #endif
     59 
     60 #ifndef __IMFASFProfile_FWD_DEFINED__
     61 #define __IMFASFProfile_FWD_DEFINED__
     62 typedef interface IMFASFProfile IMFASFProfile;
     63 #endif
     64 
     65 #ifndef __IMFASFStreamConfig_FWD_DEFINED__
     66 #define __IMFASFStreamConfig_FWD_DEFINED__
     67 typedef interface IMFASFStreamConfig IMFASFStreamConfig;
     68 #endif
     69 
     70 /* Headers for imported files */
     71 
     72 #include <mfidl.h>
     73 
     74 #ifdef __cplusplus
     75 extern "C" {
     76 #endif
     77 
     78 #include <winapifamily.h>
     79 
     80 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
     81 
     82 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FILE_ID, 0x3de649b4, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
     83 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_CREATION_TIME, 0x3de649b6, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
     84 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FLAGS, 0x3de649bb, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
     85 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_PACKET_SIZE, 0x3de649bd, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
     86 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_BITRATE, 0x3de649be, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
     87 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MIN_PACKET_SIZE, 0x3de649bc, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
     88 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PACKETS, 0x3de649b7, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
     89 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PLAY_DURATION, 0x3de649b8, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
     90 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PREROLL, 0x3de649ba, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
     91 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_SEND_DURATION, 0x3de649b9, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
     92 EXTERN_GUID(CLSID_WMDRMSystemID, 0x8948BB22, 0x11BD, 0x4796, 0x93, 0xE3, 0x97, 0x4D, 0x1B, 0x57, 0x56, 0x78);
     93 EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_KEYID, 0x8520fe3e, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
     94 EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_LICENSE_URL, 0x8520fe40, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
     95 EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_SECRET_DATA, 0x8520fe3f, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
     96 EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_TYPE, 0x8520fe3d, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
     97 EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTIONEX_ENCRYPTION_DATA, 0x62508be5, 0xecdf, 0x4924, 0xa3, 0x59, 0x72, 0xba, 0xb3, 0x39, 0x7b, 0x9d);
     98 EXTERN_GUID(MF_PD_ASF_LANGLIST, 0xf23de43c, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d);
     99 EXTERN_GUID(MF_PD_ASF_MARKER, 0x5134330e, 0x83a6, 0x475e, 0xa9, 0xd5, 0x4f, 0xb8, 0x75, 0xfb, 0x2e, 0x31);
    100 EXTERN_GUID(MF_PD_ASF_SCRIPT, 0xe29cd0d7, 0xd602, 0x4923, 0xa7, 0xfe, 0x73, 0xfd, 0x97, 0xec, 0xc6, 0x50);
    101 EXTERN_GUID(MF_PD_ASF_CODECLIST, 0xe4bb3509, 0xc18d, 0x4df1, 0xbb, 0x99, 0x7a, 0x36, 0xb3, 0xcc, 0x41, 0x19);
    102 EXTERN_GUID(MF_PD_ASF_METADATA_IS_VBR, 0x5fc6947a, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
    103 EXTERN_GUID(MF_PD_ASF_METADATA_V8_VBRPEAK, 0x5fc6947b, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
    104 EXTERN_GUID(MF_PD_ASF_METADATA_V8_BUFFERAVERAGE, 0x5fc6947c, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
    105 EXTERN_GUID(MF_PD_ASF_METADATA_LEAKY_BUCKET_PAIRS, 0x5fc6947d, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
    106 EXTERN_GUID(MF_PD_ASF_DATA_START_OFFSET, 0xe7d5b3e7, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed);
    107 EXTERN_GUID(MF_PD_ASF_DATA_LENGTH, 0xe7d5b3e8, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed);
    108 EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_LANGUAGE_ID_INDEX, 0x48f8a522, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
    109 EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_DATA_BITRATE, 0x48f8a523, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
    110 EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_BUFFERSIZE, 0x48f8a524, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
    111 EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_DATA_BITRATE, 0x48f8a525, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
    112 EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_BUFFERSIZE, 0x48f8a526, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
    113 EXTERN_GUID(MF_SD_ASF_STREAMBITRATES_BITRATE, 0xa8e182ed, 0xafc8, 0x43d0, 0xb0, 0xd1, 0xf6, 0x5b, 0xad, 0x9d, 0xa5, 0x58);
    114 EXTERN_GUID(MF_SD_ASF_METADATA_DEVICE_CONFORMANCE_TEMPLATE, 0x245e929d, 0xc44e, 0x4f7e, 0xbb, 0x3c, 0x77, 0xd4, 0xdf, 0xd2, 0x7f, 0x8a);
    115 EXTERN_GUID(MF_PD_ASF_INFO_HAS_AUDIO, 0x80e62295, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);
    116 EXTERN_GUID(MF_PD_ASF_INFO_HAS_VIDEO, 0x80e62296, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);
    117 EXTERN_GUID(MF_PD_ASF_INFO_HAS_NON_AUDIO_VIDEO, 0x80e62297, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);
    118 #if WINVER >= 0x0601
    119 EXTERN_GUID(MFASFINDEXER_TYPE_TIMECODE, 0x49815231, 0x6bad, 0x44fd, 0x81, 0xa, 0x3f, 0x60, 0x98, 0x4e, 0xc7, 0xfd);
    120 EXTERN_GUID(MF_PD_ASF_LANGLIST_LEGACYORDER, 0xf23de43d, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d);
    121 #endif
    122 
    123 EXTERN_GUID(MFASFMutexType_Bitrate, 0x72178C2C, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
    124 EXTERN_GUID(MFASFMutexType_Language, 0x72178C2B, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
    125 EXTERN_GUID(MFASFMutexType_Presentation, 0x72178C2D, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
    126 EXTERN_GUID(MFASFMutexType_Unknown, 0x72178C2E, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
    127 EXTERN_GUID(MFASFSampleExtension_ContentType, 0xd590dc20, 0x07bc, 0x436c, 0x9c, 0xf7, 0xf3, 0xbb, 0xfb, 0xf1, 0xa4, 0xdc);
    128 EXTERN_GUID(MFASFSampleExtension_Encryption_SampleID, 0x6698B84E, 0x0AFA, 0x4330, 0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D);
    129 EXTERN_GUID(MFASFSampleExtension_Encryption_KeyID, 0x76376591,  0x795f,  0x4da1, 0x86, 0xed, 0x9d, 0x46, 0xec, 0xa1, 0x09, 0xa9);
    130 EXTERN_GUID(MFASFSampleExtension_FileName, 0xe165ec0e, 0x19ed, 0x45d7, 0xb4, 0xa7, 0x25, 0xcb, 0xd1, 0xe2, 0x8e, 0x9b);
    131 EXTERN_GUID(MFASFSampleExtension_OutputCleanPoint, 0xf72a3c6f, 0x6eb4, 0x4ebc, 0xb1, 0x92, 0x9, 0xad, 0x97, 0x59, 0xe8, 0x28);
    132 EXTERN_GUID(MFASFSampleExtension_PixelAspectRatio, 0x1b1ee554, 0xf9ea, 0x4bc8, 0x82, 0x1a, 0x37, 0x6b, 0x74, 0xe4, 0xc4, 0xb8);
    133 EXTERN_GUID(MFASFSampleExtension_SampleDuration, 0xc6bd9450, 0x867f, 0x4907, 0x83, 0xa3, 0xc7, 0x79, 0x21, 0xb7, 0x33, 0xad);
    134 EXTERN_GUID(MFASFSampleExtension_SMPTE, 0x399595ec, 0x8667, 0x4e2d, 0x8f, 0xdb, 0x98, 0x81, 0x4c, 0xe7, 0x6c, 0x1e);
    135 EXTERN_GUID(MFASFSPLITTER_PACKET_BOUNDARY, 0xfe584a05, 0xe8d6, 0x42e3, 0xb1, 0x76, 0xf1, 0x21, 0x17, 0x5, 0xfb, 0x6f);
    136 EXTERN_GUID(MF_ASFPROFILE_MINPACKETSIZE, 0x22587626, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0);
    137 EXTERN_GUID(MF_ASFPROFILE_MAXPACKETSIZE, 0x22587627, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0);
    138 EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET1, 0xc69b5901, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd);
    139 EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET2, 0xc69b5902, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd);
    140 #ifndef __IMFASFProfile_FWD_DEFINED__
    141 #define __IMFASFProfile_FWD_DEFINED__
    142 typedef interface IMFASFProfile IMFASFProfile;
    143 #endif
    144 
    145 #ifndef __IMFASFStreamConfig_FWD_DEFINED__
    146 #define __IMFASFStreamConfig_FWD_DEFINED__
    147 typedef interface IMFASFStreamConfig IMFASFStreamConfig;
    148 #endif
    149 
    150 #ifndef __IMFASFMutualExclusion_FWD_DEFINED__
    151 #define __IMFASFMutualExclusion_FWD_DEFINED__
    152 typedef interface IMFASFMutualExclusion IMFASFMutualExclusion;
    153 #endif
    154 
    155 #ifndef __IMFASFStreamPrioritization_FWD_DEFINED__
    156 #define __IMFASFStreamPrioritization_FWD_DEFINED__
    157 typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization;
    158 #endif
    159 
    160 #define MFASFINDEXER_PER_ENTRY_BYTES_DYNAMIC 0xffff
    161 #define MFASFINDEXER_NO_FIXED_INTERVAL 0xffffffff
    162 #define MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT 0xffffffffffffffffll
    163 #define MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN 0xffffffffffffffffll
    164 
    165 #define MFASF_MIN_HEADER_BYTES (sizeof (GUID) + sizeof (QWORD))
    166 
    167 #define  MFASF_MAX_STREAM_NUMBER 127
    168 #define  MFASF_INVALID_STREAM_NUMBER (MFASF_MAX_STREAM_NUMBER + 1)
    169 #define  MFASF_PAYLOADEXTENSION_MAX_SIZE 0xff
    170 #define  MFASF_PAYLOADEXTENSION_VARIABLE_SIZE 0xffff
    171 #define  MFASF_DEFAULT_BUFFER_WINDOW_MS 3000
    172 
    173 typedef enum MFASF_SPLITTERFLAGS {
    174     MFASF_SPLITTER_REVERSE = 0x1,
    175     MFASF_SPLITTER_WMDRM = 0x2
    176 } MFASF_SPLITTERFLAGS;
    177 typedef enum ASF_STATUSFLAGS {
    178     ASF_STATUSFLAGS_INCOMPLETE = 0x1
    179 } ASF_STATUSFLAGS;
    180 typedef enum MFASF_MULTIPLEXERFLAGS {
    181     MFASF_MULTIPLEXER_AUTOADJUST_BITRATE = 0x1
    182 } MFASF_MULTIPLEXERFLAGS;
    183 typedef enum MFASF_INDEXERFLAGS {
    184     MFASF_INDEXER_WRITE_NEW_INDEX = 0x1,
    185     MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK = 0x2,
    186     MFASF_INDEXER_WRITE_FOR_LIVEREAD = 0x4
    187 } MFASF_INDEXER_FLAGS;
    188 typedef enum MFASF_STREAMSELECTORFLAGS {
    189     MFASF_STREAMSELECTOR_DISABLE_THINNING = 0x1,
    190     MFASF_STREAMSELECTOR_USE_AVERAGE_BITRATE = 0x2
    191 } MFASF_STREAMSELECTOR_FLAGS;
    192 typedef enum ASF_SELECTION_STATUS {
    193     ASF_STATUS_NOTSELECTED = 0,
    194     ASF_STATUS_CLEANPOINTSONLY = 1,
    195     ASF_STATUS_ALLDATAUNITS = 2
    196 } ASF_SELECTION_STATUS;
    197 typedef enum _MFSINK_WMDRMACTION {
    198     MFSINK_WMDRMACTION_UNDEFINED = 0,
    199     MFSINK_WMDRMACTION_ENCODE = 1,
    200     MFSINK_WMDRMACTION_TRANSCODE = 2,
    201     MFSINK_WMDRMACTION_TRANSCRYPT = 3,
    202     MFSINK_WMDRMACTION_LAST = 3
    203 } MFSINK_WMDRMACTION;
    204 
    205 typedef struct ASF_MUX_STATISTICS {
    206     DWORD cFramesWritten;
    207     DWORD cFramesDropped;
    208 } ASF_MUX_STATISTICS;
    209 typedef struct _ASF_INDEX_IDENTIFIER {
    210     GUID guidIndexType;
    211     WORD wStreamNumber;
    212 } ASF_INDEX_IDENTIFIER;
    213 typedef struct _ASF_INDEX_DESCRIPTOR {
    214     ASF_INDEX_IDENTIFIER Identifier;
    215     WORD cPerEntryBytes;
    216     WCHAR szDescription[32];
    217     DWORD dwInterval;
    218 } ASF_INDEX_DESCRIPTOR;
    219 
    220 /*****************************************************************************
    221  * IMFASFContentInfo interface
    222  */
    223 #ifndef __IMFASFContentInfo_INTERFACE_DEFINED__
    224 #define __IMFASFContentInfo_INTERFACE_DEFINED__
    225 
    226 DEFINE_GUID(IID_IMFASFContentInfo, 0xb1dca5cd, 0xd5da, 0x4451, 0x8e,0x9e, 0xdb,0x5c,0x59,0x91,0x4e,0xad);
    227 #if defined(__cplusplus) && !defined(CINTERFACE)
    228 MIDL_INTERFACE("b1dca5cd-d5da-4451-8e9e-db5c59914ead")
    229 IMFASFContentInfo : public IUnknown
    230 {
    231     virtual HRESULT STDMETHODCALLTYPE GetHeaderSize(
    232         IMFMediaBuffer *pIStartOfContent,
    233         QWORD *cbHeaderSize) = 0;
    234 
    235     virtual HRESULT STDMETHODCALLTYPE ParseHeader(
    236         IMFMediaBuffer *pIHeaderBuffer,
    237         QWORD cbOffsetWithinHeader) = 0;
    238 
    239     virtual HRESULT STDMETHODCALLTYPE GenerateHeader(
    240         IMFMediaBuffer *pIHeader,
    241         DWORD *pcbHeader) = 0;
    242 
    243     virtual HRESULT STDMETHODCALLTYPE GetProfile(
    244         IMFASFProfile **ppIProfile) = 0;
    245 
    246     virtual HRESULT STDMETHODCALLTYPE SetProfile(
    247         IMFASFProfile *pIProfile) = 0;
    248 
    249     virtual HRESULT STDMETHODCALLTYPE GeneratePresentationDescriptor(
    250         IMFPresentationDescriptor **ppIPresentationDescriptor) = 0;
    251 
    252     virtual HRESULT STDMETHODCALLTYPE GetEncodingConfigurationPropertyStore(
    253         WORD wStreamNumber,
    254         IPropertyStore **ppIStore) = 0;
    255 
    256 };
    257 #ifdef __CRT_UUID_DECL
    258 __CRT_UUID_DECL(IMFASFContentInfo, 0xb1dca5cd, 0xd5da, 0x4451, 0x8e,0x9e, 0xdb,0x5c,0x59,0x91,0x4e,0xad)
    259 #endif
    260 #else
    261 typedef struct IMFASFContentInfoVtbl {
    262     BEGIN_INTERFACE
    263 
    264     /*** IUnknown methods ***/
    265     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    266         IMFASFContentInfo* This,
    267         REFIID riid,
    268         void **ppvObject);
    269 
    270     ULONG (STDMETHODCALLTYPE *AddRef)(
    271         IMFASFContentInfo* This);
    272 
    273     ULONG (STDMETHODCALLTYPE *Release)(
    274         IMFASFContentInfo* This);
    275 
    276     /*** IMFASFContentInfo methods ***/
    277     HRESULT (STDMETHODCALLTYPE *GetHeaderSize)(
    278         IMFASFContentInfo* This,
    279         IMFMediaBuffer *pIStartOfContent,
    280         QWORD *cbHeaderSize);
    281 
    282     HRESULT (STDMETHODCALLTYPE *ParseHeader)(
    283         IMFASFContentInfo* This,
    284         IMFMediaBuffer *pIHeaderBuffer,
    285         QWORD cbOffsetWithinHeader);
    286 
    287     HRESULT (STDMETHODCALLTYPE *GenerateHeader)(
    288         IMFASFContentInfo* This,
    289         IMFMediaBuffer *pIHeader,
    290         DWORD *pcbHeader);
    291 
    292     HRESULT (STDMETHODCALLTYPE *GetProfile)(
    293         IMFASFContentInfo* This,
    294         IMFASFProfile **ppIProfile);
    295 
    296     HRESULT (STDMETHODCALLTYPE *SetProfile)(
    297         IMFASFContentInfo* This,
    298         IMFASFProfile *pIProfile);
    299 
    300     HRESULT (STDMETHODCALLTYPE *GeneratePresentationDescriptor)(
    301         IMFASFContentInfo* This,
    302         IMFPresentationDescriptor **ppIPresentationDescriptor);
    303 
    304     HRESULT (STDMETHODCALLTYPE *GetEncodingConfigurationPropertyStore)(
    305         IMFASFContentInfo* This,
    306         WORD wStreamNumber,
    307         IPropertyStore **ppIStore);
    308 
    309     END_INTERFACE
    310 } IMFASFContentInfoVtbl;
    311 interface IMFASFContentInfo {
    312     CONST_VTBL IMFASFContentInfoVtbl* lpVtbl;
    313 };
    314 
    315 #ifdef COBJMACROS
    316 #ifndef WIDL_C_INLINE_WRAPPERS
    317 /*** IUnknown methods ***/
    318 #define IMFASFContentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    319 #define IMFASFContentInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
    320 #define IMFASFContentInfo_Release(This) (This)->lpVtbl->Release(This)
    321 /*** IMFASFContentInfo methods ***/
    322 #define IMFASFContentInfo_GetHeaderSize(This,pIStartOfContent,cbHeaderSize) (This)->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize)
    323 #define IMFASFContentInfo_ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) (This)->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader)
    324 #define IMFASFContentInfo_GenerateHeader(This,pIHeader,pcbHeader) (This)->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader)
    325 #define IMFASFContentInfo_GetProfile(This,ppIProfile) (This)->lpVtbl->GetProfile(This,ppIProfile)
    326 #define IMFASFContentInfo_SetProfile(This,pIProfile) (This)->lpVtbl->SetProfile(This,pIProfile)
    327 #define IMFASFContentInfo_GeneratePresentationDescriptor(This,ppIPresentationDescriptor) (This)->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor)
    328 #define IMFASFContentInfo_GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) (This)->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore)
    329 #else
    330 /*** IUnknown methods ***/
    331 static FORCEINLINE HRESULT IMFASFContentInfo_QueryInterface(IMFASFContentInfo* This,REFIID riid,void **ppvObject) {
    332     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    333 }
    334 static FORCEINLINE ULONG IMFASFContentInfo_AddRef(IMFASFContentInfo* This) {
    335     return This->lpVtbl->AddRef(This);
    336 }
    337 static FORCEINLINE ULONG IMFASFContentInfo_Release(IMFASFContentInfo* This) {
    338     return This->lpVtbl->Release(This);
    339 }
    340 /*** IMFASFContentInfo methods ***/
    341 static FORCEINLINE HRESULT IMFASFContentInfo_GetHeaderSize(IMFASFContentInfo* This,IMFMediaBuffer *pIStartOfContent,QWORD *cbHeaderSize) {
    342     return This->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize);
    343 }
    344 static FORCEINLINE HRESULT IMFASFContentInfo_ParseHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeaderBuffer,QWORD cbOffsetWithinHeader) {
    345     return This->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader);
    346 }
    347 static FORCEINLINE HRESULT IMFASFContentInfo_GenerateHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeader,DWORD *pcbHeader) {
    348     return This->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader);
    349 }
    350 static FORCEINLINE HRESULT IMFASFContentInfo_GetProfile(IMFASFContentInfo* This,IMFASFProfile **ppIProfile) {
    351     return This->lpVtbl->GetProfile(This,ppIProfile);
    352 }
    353 static FORCEINLINE HRESULT IMFASFContentInfo_SetProfile(IMFASFContentInfo* This,IMFASFProfile *pIProfile) {
    354     return This->lpVtbl->SetProfile(This,pIProfile);
    355 }
    356 static FORCEINLINE HRESULT IMFASFContentInfo_GeneratePresentationDescriptor(IMFASFContentInfo* This,IMFPresentationDescriptor **ppIPresentationDescriptor) {
    357     return This->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor);
    358 }
    359 static FORCEINLINE HRESULT IMFASFContentInfo_GetEncodingConfigurationPropertyStore(IMFASFContentInfo* This,WORD wStreamNumber,IPropertyStore **ppIStore) {
    360     return This->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore);
    361 }
    362 #endif
    363 #endif
    364 
    365 #endif
    366 
    367 HRESULT STDMETHODCALLTYPE IMFASFContentInfo_GetHeaderSize_Proxy(
    368     IMFASFContentInfo* This,
    369     IMFMediaBuffer *pIStartOfContent,
    370     QWORD *cbHeaderSize);
    371 void __RPC_STUB IMFASFContentInfo_GetHeaderSize_Stub(
    372     IRpcStubBuffer* This,
    373     IRpcChannelBuffer* pRpcChannelBuffer,
    374     PRPC_MESSAGE pRpcMessage,
    375     DWORD* pdwStubPhase);
    376 HRESULT STDMETHODCALLTYPE IMFASFContentInfo_ParseHeader_Proxy(
    377     IMFASFContentInfo* This,
    378     IMFMediaBuffer *pIHeaderBuffer,
    379     QWORD cbOffsetWithinHeader);
    380 void __RPC_STUB IMFASFContentInfo_ParseHeader_Stub(
    381     IRpcStubBuffer* This,
    382     IRpcChannelBuffer* pRpcChannelBuffer,
    383     PRPC_MESSAGE pRpcMessage,
    384     DWORD* pdwStubPhase);
    385 HRESULT STDMETHODCALLTYPE IMFASFContentInfo_GenerateHeader_Proxy(
    386     IMFASFContentInfo* This,
    387     IMFMediaBuffer *pIHeader,
    388     DWORD *pcbHeader);
    389 void __RPC_STUB IMFASFContentInfo_GenerateHeader_Stub(
    390     IRpcStubBuffer* This,
    391     IRpcChannelBuffer* pRpcChannelBuffer,
    392     PRPC_MESSAGE pRpcMessage,
    393     DWORD* pdwStubPhase);
    394 HRESULT STDMETHODCALLTYPE IMFASFContentInfo_GetProfile_Proxy(
    395     IMFASFContentInfo* This,
    396     IMFASFProfile **ppIProfile);
    397 void __RPC_STUB IMFASFContentInfo_GetProfile_Stub(
    398     IRpcStubBuffer* This,
    399     IRpcChannelBuffer* pRpcChannelBuffer,
    400     PRPC_MESSAGE pRpcMessage,
    401     DWORD* pdwStubPhase);
    402 HRESULT STDMETHODCALLTYPE IMFASFContentInfo_SetProfile_Proxy(
    403     IMFASFContentInfo* This,
    404     IMFASFProfile *pIProfile);
    405 void __RPC_STUB IMFASFContentInfo_SetProfile_Stub(
    406     IRpcStubBuffer* This,
    407     IRpcChannelBuffer* pRpcChannelBuffer,
    408     PRPC_MESSAGE pRpcMessage,
    409     DWORD* pdwStubPhase);
    410 HRESULT STDMETHODCALLTYPE IMFASFContentInfo_GeneratePresentationDescriptor_Proxy(
    411     IMFASFContentInfo* This,
    412     IMFPresentationDescriptor **ppIPresentationDescriptor);
    413 void __RPC_STUB IMFASFContentInfo_GeneratePresentationDescriptor_Stub(
    414     IRpcStubBuffer* This,
    415     IRpcChannelBuffer* pRpcChannelBuffer,
    416     PRPC_MESSAGE pRpcMessage,
    417     DWORD* pdwStubPhase);
    418 HRESULT STDMETHODCALLTYPE IMFASFContentInfo_GetEncodingConfigurationPropertyStore_Proxy(
    419     IMFASFContentInfo* This,
    420     WORD wStreamNumber,
    421     IPropertyStore **ppIStore);
    422 void __RPC_STUB IMFASFContentInfo_GetEncodingConfigurationPropertyStore_Stub(
    423     IRpcStubBuffer* This,
    424     IRpcChannelBuffer* pRpcChannelBuffer,
    425     PRPC_MESSAGE pRpcMessage,
    426     DWORD* pdwStubPhase);
    427 
    428 #endif  /* __IMFASFContentInfo_INTERFACE_DEFINED__ */
    429 
    430 /*****************************************************************************
    431  * IMFASFMutualExclusion interface
    432  */
    433 #ifndef __IMFASFMutualExclusion_INTERFACE_DEFINED__
    434 #define __IMFASFMutualExclusion_INTERFACE_DEFINED__
    435 
    436 DEFINE_GUID(IID_IMFASFMutualExclusion, 0x12558291, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab);
    437 #if defined(__cplusplus) && !defined(CINTERFACE)
    438 MIDL_INTERFACE("12558291-e399-11d5-bc2a-00b0d0f3f4ab")
    439 IMFASFMutualExclusion : public IUnknown
    440 {
    441     virtual HRESULT STDMETHODCALLTYPE GetType(
    442         GUID *pguidType) = 0;
    443 
    444     virtual HRESULT STDMETHODCALLTYPE SetType(
    445         REFGUID guidType) = 0;
    446 
    447     virtual HRESULT STDMETHODCALLTYPE GetRecordCount(
    448         DWORD *pdwRecordCount) = 0;
    449 
    450     virtual HRESULT STDMETHODCALLTYPE GetStreamsForRecord(
    451         DWORD dwRecordNumber,
    452         WORD *pwStreamNumArray,
    453         DWORD *pcStreams) = 0;
    454 
    455     virtual HRESULT STDMETHODCALLTYPE AddStreamForRecord(
    456         DWORD dwRecordNumber,
    457         WORD wStreamNumber) = 0;
    458 
    459     virtual HRESULT STDMETHODCALLTYPE RemoveStreamFromRecord(
    460         DWORD dwRecordNumber,
    461         WORD wStreamNumber) = 0;
    462 
    463     virtual HRESULT STDMETHODCALLTYPE RemoveRecord(
    464         DWORD dwRecordNumber) = 0;
    465 
    466     virtual HRESULT STDMETHODCALLTYPE AddRecord(
    467         DWORD *pdwRecordNumber) = 0;
    468 
    469     virtual HRESULT STDMETHODCALLTYPE Clone(
    470         IMFASFMutualExclusion **ppIMutex) = 0;
    471 
    472 };
    473 #ifdef __CRT_UUID_DECL
    474 __CRT_UUID_DECL(IMFASFMutualExclusion, 0x12558291, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab)
    475 #endif
    476 #else
    477 typedef struct IMFASFMutualExclusionVtbl {
    478     BEGIN_INTERFACE
    479 
    480     /*** IUnknown methods ***/
    481     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    482         IMFASFMutualExclusion* This,
    483         REFIID riid,
    484         void **ppvObject);
    485 
    486     ULONG (STDMETHODCALLTYPE *AddRef)(
    487         IMFASFMutualExclusion* This);
    488 
    489     ULONG (STDMETHODCALLTYPE *Release)(
    490         IMFASFMutualExclusion* This);
    491 
    492     /*** IMFASFMutualExclusion methods ***/
    493     HRESULT (STDMETHODCALLTYPE *GetType)(
    494         IMFASFMutualExclusion* This,
    495         GUID *pguidType);
    496 
    497     HRESULT (STDMETHODCALLTYPE *SetType)(
    498         IMFASFMutualExclusion* This,
    499         REFGUID guidType);
    500 
    501     HRESULT (STDMETHODCALLTYPE *GetRecordCount)(
    502         IMFASFMutualExclusion* This,
    503         DWORD *pdwRecordCount);
    504 
    505     HRESULT (STDMETHODCALLTYPE *GetStreamsForRecord)(
    506         IMFASFMutualExclusion* This,
    507         DWORD dwRecordNumber,
    508         WORD *pwStreamNumArray,
    509         DWORD *pcStreams);
    510 
    511     HRESULT (STDMETHODCALLTYPE *AddStreamForRecord)(
    512         IMFASFMutualExclusion* This,
    513         DWORD dwRecordNumber,
    514         WORD wStreamNumber);
    515 
    516     HRESULT (STDMETHODCALLTYPE *RemoveStreamFromRecord)(
    517         IMFASFMutualExclusion* This,
    518         DWORD dwRecordNumber,
    519         WORD wStreamNumber);
    520 
    521     HRESULT (STDMETHODCALLTYPE *RemoveRecord)(
    522         IMFASFMutualExclusion* This,
    523         DWORD dwRecordNumber);
    524 
    525     HRESULT (STDMETHODCALLTYPE *AddRecord)(
    526         IMFASFMutualExclusion* This,
    527         DWORD *pdwRecordNumber);
    528 
    529     HRESULT (STDMETHODCALLTYPE *Clone)(
    530         IMFASFMutualExclusion* This,
    531         IMFASFMutualExclusion **ppIMutex);
    532 
    533     END_INTERFACE
    534 } IMFASFMutualExclusionVtbl;
    535 interface IMFASFMutualExclusion {
    536     CONST_VTBL IMFASFMutualExclusionVtbl* lpVtbl;
    537 };
    538 
    539 #ifdef COBJMACROS
    540 #ifndef WIDL_C_INLINE_WRAPPERS
    541 /*** IUnknown methods ***/
    542 #define IMFASFMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    543 #define IMFASFMutualExclusion_AddRef(This) (This)->lpVtbl->AddRef(This)
    544 #define IMFASFMutualExclusion_Release(This) (This)->lpVtbl->Release(This)
    545 /*** IMFASFMutualExclusion methods ***/
    546 #define IMFASFMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType)
    547 #define IMFASFMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType)
    548 #define IMFASFMutualExclusion_GetRecordCount(This,pdwRecordCount) (This)->lpVtbl->GetRecordCount(This,pdwRecordCount)
    549 #define IMFASFMutualExclusion_GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams)
    550 #define IMFASFMutualExclusion_AddStreamForRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber)
    551 #define IMFASFMutualExclusion_RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber)
    552 #define IMFASFMutualExclusion_RemoveRecord(This,dwRecordNumber) (This)->lpVtbl->RemoveRecord(This,dwRecordNumber)
    553 #define IMFASFMutualExclusion_AddRecord(This,pdwRecordNumber) (This)->lpVtbl->AddRecord(This,pdwRecordNumber)
    554 #define IMFASFMutualExclusion_Clone(This,ppIMutex) (This)->lpVtbl->Clone(This,ppIMutex)
    555 #else
    556 /*** IUnknown methods ***/
    557 static FORCEINLINE HRESULT IMFASFMutualExclusion_QueryInterface(IMFASFMutualExclusion* This,REFIID riid,void **ppvObject) {
    558     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    559 }
    560 static FORCEINLINE ULONG IMFASFMutualExclusion_AddRef(IMFASFMutualExclusion* This) {
    561     return This->lpVtbl->AddRef(This);
    562 }
    563 static FORCEINLINE ULONG IMFASFMutualExclusion_Release(IMFASFMutualExclusion* This) {
    564     return This->lpVtbl->Release(This);
    565 }
    566 /*** IMFASFMutualExclusion methods ***/
    567 static FORCEINLINE HRESULT IMFASFMutualExclusion_GetType(IMFASFMutualExclusion* This,GUID *pguidType) {
    568     return This->lpVtbl->GetType(This,pguidType);
    569 }
    570 static FORCEINLINE HRESULT IMFASFMutualExclusion_SetType(IMFASFMutualExclusion* This,REFGUID guidType) {
    571     return This->lpVtbl->SetType(This,guidType);
    572 }
    573 static FORCEINLINE HRESULT IMFASFMutualExclusion_GetRecordCount(IMFASFMutualExclusion* This,DWORD *pdwRecordCount) {
    574     return This->lpVtbl->GetRecordCount(This,pdwRecordCount);
    575 }
    576 static FORCEINLINE HRESULT IMFASFMutualExclusion_GetStreamsForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD *pwStreamNumArray,DWORD *pcStreams) {
    577     return This->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams);
    578 }
    579 static FORCEINLINE HRESULT IMFASFMutualExclusion_AddStreamForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) {
    580     return This->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber);
    581 }
    582 static FORCEINLINE HRESULT IMFASFMutualExclusion_RemoveStreamFromRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) {
    583     return This->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber);
    584 }
    585 static FORCEINLINE HRESULT IMFASFMutualExclusion_RemoveRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber) {
    586     return This->lpVtbl->RemoveRecord(This,dwRecordNumber);
    587 }
    588 static FORCEINLINE HRESULT IMFASFMutualExclusion_AddRecord(IMFASFMutualExclusion* This,DWORD *pdwRecordNumber) {
    589     return This->lpVtbl->AddRecord(This,pdwRecordNumber);
    590 }
    591 static FORCEINLINE HRESULT IMFASFMutualExclusion_Clone(IMFASFMutualExclusion* This,IMFASFMutualExclusion **ppIMutex) {
    592     return This->lpVtbl->Clone(This,ppIMutex);
    593 }
    594 #endif
    595 #endif
    596 
    597 #endif
    598 
    599 HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_GetType_Proxy(
    600     IMFASFMutualExclusion* This,
    601     GUID *pguidType);
    602 void __RPC_STUB IMFASFMutualExclusion_GetType_Stub(
    603     IRpcStubBuffer* This,
    604     IRpcChannelBuffer* pRpcChannelBuffer,
    605     PRPC_MESSAGE pRpcMessage,
    606     DWORD* pdwStubPhase);
    607 HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_SetType_Proxy(
    608     IMFASFMutualExclusion* This,
    609     REFGUID guidType);
    610 void __RPC_STUB IMFASFMutualExclusion_SetType_Stub(
    611     IRpcStubBuffer* This,
    612     IRpcChannelBuffer* pRpcChannelBuffer,
    613     PRPC_MESSAGE pRpcMessage,
    614     DWORD* pdwStubPhase);
    615 HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_GetRecordCount_Proxy(
    616     IMFASFMutualExclusion* This,
    617     DWORD *pdwRecordCount);
    618 void __RPC_STUB IMFASFMutualExclusion_GetRecordCount_Stub(
    619     IRpcStubBuffer* This,
    620     IRpcChannelBuffer* pRpcChannelBuffer,
    621     PRPC_MESSAGE pRpcMessage,
    622     DWORD* pdwStubPhase);
    623 HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_GetStreamsForRecord_Proxy(
    624     IMFASFMutualExclusion* This,
    625     DWORD dwRecordNumber,
    626     WORD *pwStreamNumArray,
    627     DWORD *pcStreams);
    628 void __RPC_STUB IMFASFMutualExclusion_GetStreamsForRecord_Stub(
    629     IRpcStubBuffer* This,
    630     IRpcChannelBuffer* pRpcChannelBuffer,
    631     PRPC_MESSAGE pRpcMessage,
    632     DWORD* pdwStubPhase);
    633 HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_AddStreamForRecord_Proxy(
    634     IMFASFMutualExclusion* This,
    635     DWORD dwRecordNumber,
    636     WORD wStreamNumber);
    637 void __RPC_STUB IMFASFMutualExclusion_AddStreamForRecord_Stub(
    638     IRpcStubBuffer* This,
    639     IRpcChannelBuffer* pRpcChannelBuffer,
    640     PRPC_MESSAGE pRpcMessage,
    641     DWORD* pdwStubPhase);
    642 HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_RemoveStreamFromRecord_Proxy(
    643     IMFASFMutualExclusion* This,
    644     DWORD dwRecordNumber,
    645     WORD wStreamNumber);
    646 void __RPC_STUB IMFASFMutualExclusion_RemoveStreamFromRecord_Stub(
    647     IRpcStubBuffer* This,
    648     IRpcChannelBuffer* pRpcChannelBuffer,
    649     PRPC_MESSAGE pRpcMessage,
    650     DWORD* pdwStubPhase);
    651 HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_RemoveRecord_Proxy(
    652     IMFASFMutualExclusion* This,
    653     DWORD dwRecordNumber);
    654 void __RPC_STUB IMFASFMutualExclusion_RemoveRecord_Stub(
    655     IRpcStubBuffer* This,
    656     IRpcChannelBuffer* pRpcChannelBuffer,
    657     PRPC_MESSAGE pRpcMessage,
    658     DWORD* pdwStubPhase);
    659 HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_AddRecord_Proxy(
    660     IMFASFMutualExclusion* This,
    661     DWORD *pdwRecordNumber);
    662 void __RPC_STUB IMFASFMutualExclusion_AddRecord_Stub(
    663     IRpcStubBuffer* This,
    664     IRpcChannelBuffer* pRpcChannelBuffer,
    665     PRPC_MESSAGE pRpcMessage,
    666     DWORD* pdwStubPhase);
    667 HRESULT STDMETHODCALLTYPE IMFASFMutualExclusion_Clone_Proxy(
    668     IMFASFMutualExclusion* This,
    669     IMFASFMutualExclusion **ppIMutex);
    670 void __RPC_STUB IMFASFMutualExclusion_Clone_Stub(
    671     IRpcStubBuffer* This,
    672     IRpcChannelBuffer* pRpcChannelBuffer,
    673     PRPC_MESSAGE pRpcMessage,
    674     DWORD* pdwStubPhase);
    675 
    676 #endif  /* __IMFASFMutualExclusion_INTERFACE_DEFINED__ */
    677 
    678 /*****************************************************************************
    679  * IMFASFStreamPrioritization interface
    680  */
    681 #ifndef __IMFASFStreamPrioritization_INTERFACE_DEFINED__
    682 #define __IMFASFStreamPrioritization_INTERFACE_DEFINED__
    683 
    684 DEFINE_GUID(IID_IMFASFStreamPrioritization, 0x699bdc27, 0xbbaf, 0x49ff, 0x8e,0x38, 0x9c,0x39,0xc9,0xb5,0xe0,0x88);
    685 #if defined(__cplusplus) && !defined(CINTERFACE)
    686 MIDL_INTERFACE("699bdc27-bbaf-49ff-8e38-9c39c9b5e088")
    687 IMFASFStreamPrioritization : public IUnknown
    688 {
    689     virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
    690         DWORD *pdwStreamCount) = 0;
    691 
    692     virtual HRESULT STDMETHODCALLTYPE GetStream(
    693         DWORD dwStreamIndex,
    694         WORD *pwStreamNumber,
    695         WORD *pwStreamFlags) = 0;
    696 
    697     virtual HRESULT STDMETHODCALLTYPE AddStream(
    698         WORD wStreamNumber,
    699         WORD wStreamFlags) = 0;
    700 
    701     virtual HRESULT STDMETHODCALLTYPE RemoveStream(
    702         DWORD dwStreamIndex) = 0;
    703 
    704     virtual HRESULT STDMETHODCALLTYPE Clone(
    705         IMFASFStreamPrioritization **ppIStreamPrioritization) = 0;
    706 
    707 };
    708 #ifdef __CRT_UUID_DECL
    709 __CRT_UUID_DECL(IMFASFStreamPrioritization, 0x699bdc27, 0xbbaf, 0x49ff, 0x8e,0x38, 0x9c,0x39,0xc9,0xb5,0xe0,0x88)
    710 #endif
    711 #else
    712 typedef struct IMFASFStreamPrioritizationVtbl {
    713     BEGIN_INTERFACE
    714 
    715     /*** IUnknown methods ***/
    716     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    717         IMFASFStreamPrioritization* This,
    718         REFIID riid,
    719         void **ppvObject);
    720 
    721     ULONG (STDMETHODCALLTYPE *AddRef)(
    722         IMFASFStreamPrioritization* This);
    723 
    724     ULONG (STDMETHODCALLTYPE *Release)(
    725         IMFASFStreamPrioritization* This);
    726 
    727     /*** IMFASFStreamPrioritization methods ***/
    728     HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
    729         IMFASFStreamPrioritization* This,
    730         DWORD *pdwStreamCount);
    731 
    732     HRESULT (STDMETHODCALLTYPE *GetStream)(
    733         IMFASFStreamPrioritization* This,
    734         DWORD dwStreamIndex,
    735         WORD *pwStreamNumber,
    736         WORD *pwStreamFlags);
    737 
    738     HRESULT (STDMETHODCALLTYPE *AddStream)(
    739         IMFASFStreamPrioritization* This,
    740         WORD wStreamNumber,
    741         WORD wStreamFlags);
    742 
    743     HRESULT (STDMETHODCALLTYPE *RemoveStream)(
    744         IMFASFStreamPrioritization* This,
    745         DWORD dwStreamIndex);
    746 
    747     HRESULT (STDMETHODCALLTYPE *Clone)(
    748         IMFASFStreamPrioritization* This,
    749         IMFASFStreamPrioritization **ppIStreamPrioritization);
    750 
    751     END_INTERFACE
    752 } IMFASFStreamPrioritizationVtbl;
    753 interface IMFASFStreamPrioritization {
    754     CONST_VTBL IMFASFStreamPrioritizationVtbl* lpVtbl;
    755 };
    756 
    757 #ifdef COBJMACROS
    758 #ifndef WIDL_C_INLINE_WRAPPERS
    759 /*** IUnknown methods ***/
    760 #define IMFASFStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    761 #define IMFASFStreamPrioritization_AddRef(This) (This)->lpVtbl->AddRef(This)
    762 #define IMFASFStreamPrioritization_Release(This) (This)->lpVtbl->Release(This)
    763 /*** IMFASFStreamPrioritization methods ***/
    764 #define IMFASFStreamPrioritization_GetStreamCount(This,pdwStreamCount) (This)->lpVtbl->GetStreamCount(This,pdwStreamCount)
    765 #define IMFASFStreamPrioritization_GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags)
    766 #define IMFASFStreamPrioritization_AddStream(This,wStreamNumber,wStreamFlags) (This)->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags)
    767 #define IMFASFStreamPrioritization_RemoveStream(This,dwStreamIndex) (This)->lpVtbl->RemoveStream(This,dwStreamIndex)
    768 #define IMFASFStreamPrioritization_Clone(This,ppIStreamPrioritization) (This)->lpVtbl->Clone(This,ppIStreamPrioritization)
    769 #else
    770 /*** IUnknown methods ***/
    771 static FORCEINLINE HRESULT IMFASFStreamPrioritization_QueryInterface(IMFASFStreamPrioritization* This,REFIID riid,void **ppvObject) {
    772     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    773 }
    774 static FORCEINLINE ULONG IMFASFStreamPrioritization_AddRef(IMFASFStreamPrioritization* This) {
    775     return This->lpVtbl->AddRef(This);
    776 }
    777 static FORCEINLINE ULONG IMFASFStreamPrioritization_Release(IMFASFStreamPrioritization* This) {
    778     return This->lpVtbl->Release(This);
    779 }
    780 /*** IMFASFStreamPrioritization methods ***/
    781 static FORCEINLINE HRESULT IMFASFStreamPrioritization_GetStreamCount(IMFASFStreamPrioritization* This,DWORD *pdwStreamCount) {
    782     return This->lpVtbl->GetStreamCount(This,pdwStreamCount);
    783 }
    784 static FORCEINLINE HRESULT IMFASFStreamPrioritization_GetStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex,WORD *pwStreamNumber,WORD *pwStreamFlags) {
    785     return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags);
    786 }
    787 static FORCEINLINE HRESULT IMFASFStreamPrioritization_AddStream(IMFASFStreamPrioritization* This,WORD wStreamNumber,WORD wStreamFlags) {
    788     return This->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags);
    789 }
    790 static FORCEINLINE HRESULT IMFASFStreamPrioritization_RemoveStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex) {
    791     return This->lpVtbl->RemoveStream(This,dwStreamIndex);
    792 }
    793 static FORCEINLINE HRESULT IMFASFStreamPrioritization_Clone(IMFASFStreamPrioritization* This,IMFASFStreamPrioritization **ppIStreamPrioritization) {
    794     return This->lpVtbl->Clone(This,ppIStreamPrioritization);
    795 }
    796 #endif
    797 #endif
    798 
    799 #endif
    800 
    801 HRESULT STDMETHODCALLTYPE IMFASFStreamPrioritization_GetStreamCount_Proxy(
    802     IMFASFStreamPrioritization* This,
    803     DWORD *pdwStreamCount);
    804 void __RPC_STUB IMFASFStreamPrioritization_GetStreamCount_Stub(
    805     IRpcStubBuffer* This,
    806     IRpcChannelBuffer* pRpcChannelBuffer,
    807     PRPC_MESSAGE pRpcMessage,
    808     DWORD* pdwStubPhase);
    809 HRESULT STDMETHODCALLTYPE IMFASFStreamPrioritization_GetStream_Proxy(
    810     IMFASFStreamPrioritization* This,
    811     DWORD dwStreamIndex,
    812     WORD *pwStreamNumber,
    813     WORD *pwStreamFlags);
    814 void __RPC_STUB IMFASFStreamPrioritization_GetStream_Stub(
    815     IRpcStubBuffer* This,
    816     IRpcChannelBuffer* pRpcChannelBuffer,
    817     PRPC_MESSAGE pRpcMessage,
    818     DWORD* pdwStubPhase);
    819 HRESULT STDMETHODCALLTYPE IMFASFStreamPrioritization_AddStream_Proxy(
    820     IMFASFStreamPrioritization* This,
    821     WORD wStreamNumber,
    822     WORD wStreamFlags);
    823 void __RPC_STUB IMFASFStreamPrioritization_AddStream_Stub(
    824     IRpcStubBuffer* This,
    825     IRpcChannelBuffer* pRpcChannelBuffer,
    826     PRPC_MESSAGE pRpcMessage,
    827     DWORD* pdwStubPhase);
    828 HRESULT STDMETHODCALLTYPE IMFASFStreamPrioritization_RemoveStream_Proxy(
    829     IMFASFStreamPrioritization* This,
    830     DWORD dwStreamIndex);
    831 void __RPC_STUB IMFASFStreamPrioritization_RemoveStream_Stub(
    832     IRpcStubBuffer* This,
    833     IRpcChannelBuffer* pRpcChannelBuffer,
    834     PRPC_MESSAGE pRpcMessage,
    835     DWORD* pdwStubPhase);
    836 HRESULT STDMETHODCALLTYPE IMFASFStreamPrioritization_Clone_Proxy(
    837     IMFASFStreamPrioritization* This,
    838     IMFASFStreamPrioritization **ppIStreamPrioritization);
    839 void __RPC_STUB IMFASFStreamPrioritization_Clone_Stub(
    840     IRpcStubBuffer* This,
    841     IRpcChannelBuffer* pRpcChannelBuffer,
    842     PRPC_MESSAGE pRpcMessage,
    843     DWORD* pdwStubPhase);
    844 
    845 #endif  /* __IMFASFStreamPrioritization_INTERFACE_DEFINED__ */
    846 
    847 /*****************************************************************************
    848  * IMFASFSplitter interface
    849  */
    850 #ifndef __IMFASFSplitter_INTERFACE_DEFINED__
    851 #define __IMFASFSplitter_INTERFACE_DEFINED__
    852 
    853 DEFINE_GUID(IID_IMFASFSplitter, 0x12558295, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab);
    854 #if defined(__cplusplus) && !defined(CINTERFACE)
    855 MIDL_INTERFACE("12558295-e399-11d5-bc2a-00b0d0f3f4ab")
    856 IMFASFSplitter : public IUnknown
    857 {
    858     virtual HRESULT STDMETHODCALLTYPE Initialize(
    859         IMFASFContentInfo *pIContentInfo) = 0;
    860 
    861     virtual HRESULT STDMETHODCALLTYPE SetFlags(
    862         DWORD dwFlags) = 0;
    863 
    864     virtual HRESULT STDMETHODCALLTYPE GetFlags(
    865         DWORD *pdwFlags) = 0;
    866 
    867     virtual HRESULT STDMETHODCALLTYPE SelectStreams(
    868         WORD *pwStreamNumbers,
    869         WORD wNumStreams) = 0;
    870 
    871     virtual HRESULT STDMETHODCALLTYPE GetSelectedStreams(
    872         WORD *pwStreamNumbers,
    873         WORD *pwNumStreams) = 0;
    874 
    875     virtual HRESULT STDMETHODCALLTYPE ParseData(
    876         IMFMediaBuffer *pIBuffer,
    877         DWORD cbBufferOffset,
    878         DWORD cbLength) = 0;
    879 
    880     virtual HRESULT STDMETHODCALLTYPE GetNextSample(
    881         DWORD *pdwStatusFlags,
    882         WORD *pwStreamNumber,
    883         IMFSample **ppISample) = 0;
    884 
    885     virtual HRESULT STDMETHODCALLTYPE Flush(
    886         ) = 0;
    887 
    888     virtual HRESULT STDMETHODCALLTYPE GetLastSendTime(
    889         DWORD *pdwLastSendTime) = 0;
    890 
    891 };
    892 #ifdef __CRT_UUID_DECL
    893 __CRT_UUID_DECL(IMFASFSplitter, 0x12558295, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab)
    894 #endif
    895 #else
    896 typedef struct IMFASFSplitterVtbl {
    897     BEGIN_INTERFACE
    898 
    899     /*** IUnknown methods ***/
    900     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    901         IMFASFSplitter* This,
    902         REFIID riid,
    903         void **ppvObject);
    904 
    905     ULONG (STDMETHODCALLTYPE *AddRef)(
    906         IMFASFSplitter* This);
    907 
    908     ULONG (STDMETHODCALLTYPE *Release)(
    909         IMFASFSplitter* This);
    910 
    911     /*** IMFASFSplitter methods ***/
    912     HRESULT (STDMETHODCALLTYPE *Initialize)(
    913         IMFASFSplitter* This,
    914         IMFASFContentInfo *pIContentInfo);
    915 
    916     HRESULT (STDMETHODCALLTYPE *SetFlags)(
    917         IMFASFSplitter* This,
    918         DWORD dwFlags);
    919 
    920     HRESULT (STDMETHODCALLTYPE *GetFlags)(
    921         IMFASFSplitter* This,
    922         DWORD *pdwFlags);
    923 
    924     HRESULT (STDMETHODCALLTYPE *SelectStreams)(
    925         IMFASFSplitter* This,
    926         WORD *pwStreamNumbers,
    927         WORD wNumStreams);
    928 
    929     HRESULT (STDMETHODCALLTYPE *GetSelectedStreams)(
    930         IMFASFSplitter* This,
    931         WORD *pwStreamNumbers,
    932         WORD *pwNumStreams);
    933 
    934     HRESULT (STDMETHODCALLTYPE *ParseData)(
    935         IMFASFSplitter* This,
    936         IMFMediaBuffer *pIBuffer,
    937         DWORD cbBufferOffset,
    938         DWORD cbLength);
    939 
    940     HRESULT (STDMETHODCALLTYPE *GetNextSample)(
    941         IMFASFSplitter* This,
    942         DWORD *pdwStatusFlags,
    943         WORD *pwStreamNumber,
    944         IMFSample **ppISample);
    945 
    946     HRESULT (STDMETHODCALLTYPE *Flush)(
    947         IMFASFSplitter* This);
    948 
    949     HRESULT (STDMETHODCALLTYPE *GetLastSendTime)(
    950         IMFASFSplitter* This,
    951         DWORD *pdwLastSendTime);
    952 
    953     END_INTERFACE
    954 } IMFASFSplitterVtbl;
    955 interface IMFASFSplitter {
    956     CONST_VTBL IMFASFSplitterVtbl* lpVtbl;
    957 };
    958 
    959 #ifdef COBJMACROS
    960 #ifndef WIDL_C_INLINE_WRAPPERS
    961 /*** IUnknown methods ***/
    962 #define IMFASFSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    963 #define IMFASFSplitter_AddRef(This) (This)->lpVtbl->AddRef(This)
    964 #define IMFASFSplitter_Release(This) (This)->lpVtbl->Release(This)
    965 /*** IMFASFSplitter methods ***/
    966 #define IMFASFSplitter_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo)
    967 #define IMFASFSplitter_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
    968 #define IMFASFSplitter_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
    969 #define IMFASFSplitter_SelectStreams(This,pwStreamNumbers,wNumStreams) (This)->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams)
    970 #define IMFASFSplitter_GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) (This)->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams)
    971 #define IMFASFSplitter_ParseData(This,pIBuffer,cbBufferOffset,cbLength) (This)->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength)
    972 #define IMFASFSplitter_GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) (This)->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample)
    973 #define IMFASFSplitter_Flush(This) (This)->lpVtbl->Flush(This)
    974 #define IMFASFSplitter_GetLastSendTime(This,pdwLastSendTime) (This)->lpVtbl->GetLastSendTime(This,pdwLastSendTime)
    975 #else
    976 /*** IUnknown methods ***/
    977 static FORCEINLINE HRESULT IMFASFSplitter_QueryInterface(IMFASFSplitter* This,REFIID riid,void **ppvObject) {
    978     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    979 }
    980 static FORCEINLINE ULONG IMFASFSplitter_AddRef(IMFASFSplitter* This) {
    981     return This->lpVtbl->AddRef(This);
    982 }
    983 static FORCEINLINE ULONG IMFASFSplitter_Release(IMFASFSplitter* This) {
    984     return This->lpVtbl->Release(This);
    985 }
    986 /*** IMFASFSplitter methods ***/
    987 static FORCEINLINE HRESULT IMFASFSplitter_Initialize(IMFASFSplitter* This,IMFASFContentInfo *pIContentInfo) {
    988     return This->lpVtbl->Initialize(This,pIContentInfo);
    989 }
    990 static FORCEINLINE HRESULT IMFASFSplitter_SetFlags(IMFASFSplitter* This,DWORD dwFlags) {
    991     return This->lpVtbl->SetFlags(This,dwFlags);
    992 }
    993 static FORCEINLINE HRESULT IMFASFSplitter_GetFlags(IMFASFSplitter* This,DWORD *pdwFlags) {
    994     return This->lpVtbl->GetFlags(This,pdwFlags);
    995 }
    996 static FORCEINLINE HRESULT IMFASFSplitter_SelectStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD wNumStreams) {
    997     return This->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams);
    998 }
    999 static FORCEINLINE HRESULT IMFASFSplitter_GetSelectedStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD *pwNumStreams) {
   1000     return This->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams);
   1001 }
   1002 static FORCEINLINE HRESULT IMFASFSplitter_ParseData(IMFASFSplitter* This,IMFMediaBuffer *pIBuffer,DWORD cbBufferOffset,DWORD cbLength) {
   1003     return This->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength);
   1004 }
   1005 static FORCEINLINE HRESULT IMFASFSplitter_GetNextSample(IMFASFSplitter* This,DWORD *pdwStatusFlags,WORD *pwStreamNumber,IMFSample **ppISample) {
   1006     return This->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample);
   1007 }
   1008 static FORCEINLINE HRESULT IMFASFSplitter_Flush(IMFASFSplitter* This) {
   1009     return This->lpVtbl->Flush(This);
   1010 }
   1011 static FORCEINLINE HRESULT IMFASFSplitter_GetLastSendTime(IMFASFSplitter* This,DWORD *pdwLastSendTime) {
   1012     return This->lpVtbl->GetLastSendTime(This,pdwLastSendTime);
   1013 }
   1014 #endif
   1015 #endif
   1016 
   1017 #endif
   1018 
   1019 HRESULT STDMETHODCALLTYPE IMFASFSplitter_Initialize_Proxy(
   1020     IMFASFSplitter* This,
   1021     IMFASFContentInfo *pIContentInfo);
   1022 void __RPC_STUB IMFASFSplitter_Initialize_Stub(
   1023     IRpcStubBuffer* This,
   1024     IRpcChannelBuffer* pRpcChannelBuffer,
   1025     PRPC_MESSAGE pRpcMessage,
   1026     DWORD* pdwStubPhase);
   1027 HRESULT STDMETHODCALLTYPE IMFASFSplitter_SetFlags_Proxy(
   1028     IMFASFSplitter* This,
   1029     DWORD dwFlags);
   1030 void __RPC_STUB IMFASFSplitter_SetFlags_Stub(
   1031     IRpcStubBuffer* This,
   1032     IRpcChannelBuffer* pRpcChannelBuffer,
   1033     PRPC_MESSAGE pRpcMessage,
   1034     DWORD* pdwStubPhase);
   1035 HRESULT STDMETHODCALLTYPE IMFASFSplitter_GetFlags_Proxy(
   1036     IMFASFSplitter* This,
   1037     DWORD *pdwFlags);
   1038 void __RPC_STUB IMFASFSplitter_GetFlags_Stub(
   1039     IRpcStubBuffer* This,
   1040     IRpcChannelBuffer* pRpcChannelBuffer,
   1041     PRPC_MESSAGE pRpcMessage,
   1042     DWORD* pdwStubPhase);
   1043 HRESULT STDMETHODCALLTYPE IMFASFSplitter_SelectStreams_Proxy(
   1044     IMFASFSplitter* This,
   1045     WORD *pwStreamNumbers,
   1046     WORD wNumStreams);
   1047 void __RPC_STUB IMFASFSplitter_SelectStreams_Stub(
   1048     IRpcStubBuffer* This,
   1049     IRpcChannelBuffer* pRpcChannelBuffer,
   1050     PRPC_MESSAGE pRpcMessage,
   1051     DWORD* pdwStubPhase);
   1052 HRESULT STDMETHODCALLTYPE IMFASFSplitter_GetSelectedStreams_Proxy(
   1053     IMFASFSplitter* This,
   1054     WORD *pwStreamNumbers,
   1055     WORD *pwNumStreams);
   1056 void __RPC_STUB IMFASFSplitter_GetSelectedStreams_Stub(
   1057     IRpcStubBuffer* This,
   1058     IRpcChannelBuffer* pRpcChannelBuffer,
   1059     PRPC_MESSAGE pRpcMessage,
   1060     DWORD* pdwStubPhase);
   1061 HRESULT STDMETHODCALLTYPE IMFASFSplitter_ParseData_Proxy(
   1062     IMFASFSplitter* This,
   1063     IMFMediaBuffer *pIBuffer,
   1064     DWORD cbBufferOffset,
   1065     DWORD cbLength);
   1066 void __RPC_STUB IMFASFSplitter_ParseData_Stub(
   1067     IRpcStubBuffer* This,
   1068     IRpcChannelBuffer* pRpcChannelBuffer,
   1069     PRPC_MESSAGE pRpcMessage,
   1070     DWORD* pdwStubPhase);
   1071 HRESULT STDMETHODCALLTYPE IMFASFSplitter_GetNextSample_Proxy(
   1072     IMFASFSplitter* This,
   1073     DWORD *pdwStatusFlags,
   1074     WORD *pwStreamNumber,
   1075     IMFSample **ppISample);
   1076 void __RPC_STUB IMFASFSplitter_GetNextSample_Stub(
   1077     IRpcStubBuffer* This,
   1078     IRpcChannelBuffer* pRpcChannelBuffer,
   1079     PRPC_MESSAGE pRpcMessage,
   1080     DWORD* pdwStubPhase);
   1081 HRESULT STDMETHODCALLTYPE IMFASFSplitter_Flush_Proxy(
   1082     IMFASFSplitter* This);
   1083 void __RPC_STUB IMFASFSplitter_Flush_Stub(
   1084     IRpcStubBuffer* This,
   1085     IRpcChannelBuffer* pRpcChannelBuffer,
   1086     PRPC_MESSAGE pRpcMessage,
   1087     DWORD* pdwStubPhase);
   1088 HRESULT STDMETHODCALLTYPE IMFASFSplitter_GetLastSendTime_Proxy(
   1089     IMFASFSplitter* This,
   1090     DWORD *pdwLastSendTime);
   1091 void __RPC_STUB IMFASFSplitter_GetLastSendTime_Stub(
   1092     IRpcStubBuffer* This,
   1093     IRpcChannelBuffer* pRpcChannelBuffer,
   1094     PRPC_MESSAGE pRpcMessage,
   1095     DWORD* pdwStubPhase);
   1096 
   1097 #endif  /* __IMFASFSplitter_INTERFACE_DEFINED__ */
   1098 
   1099 /*****************************************************************************
   1100  * IMFASFMultiplexer interface
   1101  */
   1102 #ifndef __IMFASFMultiplexer_INTERFACE_DEFINED__
   1103 #define __IMFASFMultiplexer_INTERFACE_DEFINED__
   1104 
   1105 DEFINE_GUID(IID_IMFASFMultiplexer, 0x57bdd80a, 0x9b38, 0x4838, 0xb7,0x37, 0xc5,0x8f,0x67,0x0d,0x7d,0x4f);
   1106 #if defined(__cplusplus) && !defined(CINTERFACE)
   1107 MIDL_INTERFACE("57bdd80a-9b38-4838-b737-c58f670d7d4f")
   1108 IMFASFMultiplexer : public IUnknown
   1109 {
   1110     virtual HRESULT STDMETHODCALLTYPE Initialize(
   1111         IMFASFContentInfo *pIContentInfo) = 0;
   1112 
   1113     virtual HRESULT STDMETHODCALLTYPE SetFlags(
   1114         DWORD dwFlags) = 0;
   1115 
   1116     virtual HRESULT STDMETHODCALLTYPE GetFlags(
   1117         DWORD *pdwFlags) = 0;
   1118 
   1119     virtual HRESULT STDMETHODCALLTYPE ProcessSample(
   1120         WORD wStreamNumber,
   1121         IMFSample *pISample,
   1122         LONGLONG hnsTimestampAdjust) = 0;
   1123 
   1124     virtual HRESULT STDMETHODCALLTYPE GetNextPacket(
   1125         DWORD *pdwStatusFlags,
   1126         IMFSample **ppIPacket) = 0;
   1127 
   1128     virtual HRESULT STDMETHODCALLTYPE Flush(
   1129         ) = 0;
   1130 
   1131     virtual HRESULT STDMETHODCALLTYPE End(
   1132         IMFASFContentInfo *pIContentInfo) = 0;
   1133 
   1134     virtual HRESULT STDMETHODCALLTYPE GetStatistics(
   1135         WORD wStreamNumber,
   1136         ASF_MUX_STATISTICS *pMuxStats) = 0;
   1137 
   1138     virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance(
   1139         DWORD msSyncTolerance) = 0;
   1140 
   1141 };
   1142 #ifdef __CRT_UUID_DECL
   1143 __CRT_UUID_DECL(IMFASFMultiplexer, 0x57bdd80a, 0x9b38, 0x4838, 0xb7,0x37, 0xc5,0x8f,0x67,0x0d,0x7d,0x4f)
   1144 #endif
   1145 #else
   1146 typedef struct IMFASFMultiplexerVtbl {
   1147     BEGIN_INTERFACE
   1148 
   1149     /*** IUnknown methods ***/
   1150     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1151         IMFASFMultiplexer* This,
   1152         REFIID riid,
   1153         void **ppvObject);
   1154 
   1155     ULONG (STDMETHODCALLTYPE *AddRef)(
   1156         IMFASFMultiplexer* This);
   1157 
   1158     ULONG (STDMETHODCALLTYPE *Release)(
   1159         IMFASFMultiplexer* This);
   1160 
   1161     /*** IMFASFMultiplexer methods ***/
   1162     HRESULT (STDMETHODCALLTYPE *Initialize)(
   1163         IMFASFMultiplexer* This,
   1164         IMFASFContentInfo *pIContentInfo);
   1165 
   1166     HRESULT (STDMETHODCALLTYPE *SetFlags)(
   1167         IMFASFMultiplexer* This,
   1168         DWORD dwFlags);
   1169 
   1170     HRESULT (STDMETHODCALLTYPE *GetFlags)(
   1171         IMFASFMultiplexer* This,
   1172         DWORD *pdwFlags);
   1173 
   1174     HRESULT (STDMETHODCALLTYPE *ProcessSample)(
   1175         IMFASFMultiplexer* This,
   1176         WORD wStreamNumber,
   1177         IMFSample *pISample,
   1178         LONGLONG hnsTimestampAdjust);
   1179 
   1180     HRESULT (STDMETHODCALLTYPE *GetNextPacket)(
   1181         IMFASFMultiplexer* This,
   1182         DWORD *pdwStatusFlags,
   1183         IMFSample **ppIPacket);
   1184 
   1185     HRESULT (STDMETHODCALLTYPE *Flush)(
   1186         IMFASFMultiplexer* This);
   1187 
   1188     HRESULT (STDMETHODCALLTYPE *End)(
   1189         IMFASFMultiplexer* This,
   1190         IMFASFContentInfo *pIContentInfo);
   1191 
   1192     HRESULT (STDMETHODCALLTYPE *GetStatistics)(
   1193         IMFASFMultiplexer* This,
   1194         WORD wStreamNumber,
   1195         ASF_MUX_STATISTICS *pMuxStats);
   1196 
   1197     HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)(
   1198         IMFASFMultiplexer* This,
   1199         DWORD msSyncTolerance);
   1200 
   1201     END_INTERFACE
   1202 } IMFASFMultiplexerVtbl;
   1203 interface IMFASFMultiplexer {
   1204     CONST_VTBL IMFASFMultiplexerVtbl* lpVtbl;
   1205 };
   1206 
   1207 #ifdef COBJMACROS
   1208 #ifndef WIDL_C_INLINE_WRAPPERS
   1209 /*** IUnknown methods ***/
   1210 #define IMFASFMultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1211 #define IMFASFMultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This)
   1212 #define IMFASFMultiplexer_Release(This) (This)->lpVtbl->Release(This)
   1213 /*** IMFASFMultiplexer methods ***/
   1214 #define IMFASFMultiplexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo)
   1215 #define IMFASFMultiplexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
   1216 #define IMFASFMultiplexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
   1217 #define IMFASFMultiplexer_ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) (This)->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust)
   1218 #define IMFASFMultiplexer_GetNextPacket(This,pdwStatusFlags,ppIPacket) (This)->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket)
   1219 #define IMFASFMultiplexer_Flush(This) (This)->lpVtbl->Flush(This)
   1220 #define IMFASFMultiplexer_End(This,pIContentInfo) (This)->lpVtbl->End(This,pIContentInfo)
   1221 #define IMFASFMultiplexer_GetStatistics(This,wStreamNumber,pMuxStats) (This)->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats)
   1222 #define IMFASFMultiplexer_SetSyncTolerance(This,msSyncTolerance) (This)->lpVtbl->SetSyncTolerance(This,msSyncTolerance)
   1223 #else
   1224 /*** IUnknown methods ***/
   1225 static FORCEINLINE HRESULT IMFASFMultiplexer_QueryInterface(IMFASFMultiplexer* This,REFIID riid,void **ppvObject) {
   1226     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1227 }
   1228 static FORCEINLINE ULONG IMFASFMultiplexer_AddRef(IMFASFMultiplexer* This) {
   1229     return This->lpVtbl->AddRef(This);
   1230 }
   1231 static FORCEINLINE ULONG IMFASFMultiplexer_Release(IMFASFMultiplexer* This) {
   1232     return This->lpVtbl->Release(This);
   1233 }
   1234 /*** IMFASFMultiplexer methods ***/
   1235 static FORCEINLINE HRESULT IMFASFMultiplexer_Initialize(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) {
   1236     return This->lpVtbl->Initialize(This,pIContentInfo);
   1237 }
   1238 static FORCEINLINE HRESULT IMFASFMultiplexer_SetFlags(IMFASFMultiplexer* This,DWORD dwFlags) {
   1239     return This->lpVtbl->SetFlags(This,dwFlags);
   1240 }
   1241 static FORCEINLINE HRESULT IMFASFMultiplexer_GetFlags(IMFASFMultiplexer* This,DWORD *pdwFlags) {
   1242     return This->lpVtbl->GetFlags(This,pdwFlags);
   1243 }
   1244 static FORCEINLINE HRESULT IMFASFMultiplexer_ProcessSample(IMFASFMultiplexer* This,WORD wStreamNumber,IMFSample *pISample,LONGLONG hnsTimestampAdjust) {
   1245     return This->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust);
   1246 }
   1247 static FORCEINLINE HRESULT IMFASFMultiplexer_GetNextPacket(IMFASFMultiplexer* This,DWORD *pdwStatusFlags,IMFSample **ppIPacket) {
   1248     return This->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket);
   1249 }
   1250 static FORCEINLINE HRESULT IMFASFMultiplexer_Flush(IMFASFMultiplexer* This) {
   1251     return This->lpVtbl->Flush(This);
   1252 }
   1253 static FORCEINLINE HRESULT IMFASFMultiplexer_End(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) {
   1254     return This->lpVtbl->End(This,pIContentInfo);
   1255 }
   1256 static FORCEINLINE HRESULT IMFASFMultiplexer_GetStatistics(IMFASFMultiplexer* This,WORD wStreamNumber,ASF_MUX_STATISTICS *pMuxStats) {
   1257     return This->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats);
   1258 }
   1259 static FORCEINLINE HRESULT IMFASFMultiplexer_SetSyncTolerance(IMFASFMultiplexer* This,DWORD msSyncTolerance) {
   1260     return This->lpVtbl->SetSyncTolerance(This,msSyncTolerance);
   1261 }
   1262 #endif
   1263 #endif
   1264 
   1265 #endif
   1266 
   1267 HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_Initialize_Proxy(
   1268     IMFASFMultiplexer* This,
   1269     IMFASFContentInfo *pIContentInfo);
   1270 void __RPC_STUB IMFASFMultiplexer_Initialize_Stub(
   1271     IRpcStubBuffer* This,
   1272     IRpcChannelBuffer* pRpcChannelBuffer,
   1273     PRPC_MESSAGE pRpcMessage,
   1274     DWORD* pdwStubPhase);
   1275 HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_SetFlags_Proxy(
   1276     IMFASFMultiplexer* This,
   1277     DWORD dwFlags);
   1278 void __RPC_STUB IMFASFMultiplexer_SetFlags_Stub(
   1279     IRpcStubBuffer* This,
   1280     IRpcChannelBuffer* pRpcChannelBuffer,
   1281     PRPC_MESSAGE pRpcMessage,
   1282     DWORD* pdwStubPhase);
   1283 HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_GetFlags_Proxy(
   1284     IMFASFMultiplexer* This,
   1285     DWORD *pdwFlags);
   1286 void __RPC_STUB IMFASFMultiplexer_GetFlags_Stub(
   1287     IRpcStubBuffer* This,
   1288     IRpcChannelBuffer* pRpcChannelBuffer,
   1289     PRPC_MESSAGE pRpcMessage,
   1290     DWORD* pdwStubPhase);
   1291 HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_ProcessSample_Proxy(
   1292     IMFASFMultiplexer* This,
   1293     WORD wStreamNumber,
   1294     IMFSample *pISample,
   1295     LONGLONG hnsTimestampAdjust);
   1296 void __RPC_STUB IMFASFMultiplexer_ProcessSample_Stub(
   1297     IRpcStubBuffer* This,
   1298     IRpcChannelBuffer* pRpcChannelBuffer,
   1299     PRPC_MESSAGE pRpcMessage,
   1300     DWORD* pdwStubPhase);
   1301 HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_GetNextPacket_Proxy(
   1302     IMFASFMultiplexer* This,
   1303     DWORD *pdwStatusFlags,
   1304     IMFSample **ppIPacket);
   1305 void __RPC_STUB IMFASFMultiplexer_GetNextPacket_Stub(
   1306     IRpcStubBuffer* This,
   1307     IRpcChannelBuffer* pRpcChannelBuffer,
   1308     PRPC_MESSAGE pRpcMessage,
   1309     DWORD* pdwStubPhase);
   1310 HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_Flush_Proxy(
   1311     IMFASFMultiplexer* This);
   1312 void __RPC_STUB IMFASFMultiplexer_Flush_Stub(
   1313     IRpcStubBuffer* This,
   1314     IRpcChannelBuffer* pRpcChannelBuffer,
   1315     PRPC_MESSAGE pRpcMessage,
   1316     DWORD* pdwStubPhase);
   1317 HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_End_Proxy(
   1318     IMFASFMultiplexer* This,
   1319     IMFASFContentInfo *pIContentInfo);
   1320 void __RPC_STUB IMFASFMultiplexer_End_Stub(
   1321     IRpcStubBuffer* This,
   1322     IRpcChannelBuffer* pRpcChannelBuffer,
   1323     PRPC_MESSAGE pRpcMessage,
   1324     DWORD* pdwStubPhase);
   1325 HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_GetStatistics_Proxy(
   1326     IMFASFMultiplexer* This,
   1327     WORD wStreamNumber,
   1328     ASF_MUX_STATISTICS *pMuxStats);
   1329 void __RPC_STUB IMFASFMultiplexer_GetStatistics_Stub(
   1330     IRpcStubBuffer* This,
   1331     IRpcChannelBuffer* pRpcChannelBuffer,
   1332     PRPC_MESSAGE pRpcMessage,
   1333     DWORD* pdwStubPhase);
   1334 HRESULT STDMETHODCALLTYPE IMFASFMultiplexer_SetSyncTolerance_Proxy(
   1335     IMFASFMultiplexer* This,
   1336     DWORD msSyncTolerance);
   1337 void __RPC_STUB IMFASFMultiplexer_SetSyncTolerance_Stub(
   1338     IRpcStubBuffer* This,
   1339     IRpcChannelBuffer* pRpcChannelBuffer,
   1340     PRPC_MESSAGE pRpcMessage,
   1341     DWORD* pdwStubPhase);
   1342 
   1343 #endif  /* __IMFASFMultiplexer_INTERFACE_DEFINED__ */
   1344 
   1345 /*****************************************************************************
   1346  * IMFASFIndexer interface
   1347  */
   1348 #ifndef __IMFASFIndexer_INTERFACE_DEFINED__
   1349 #define __IMFASFIndexer_INTERFACE_DEFINED__
   1350 
   1351 DEFINE_GUID(IID_IMFASFIndexer, 0x53590f48, 0xdc3b, 0x4297, 0x81,0x3f, 0x78,0x77,0x61,0xad,0x7b,0x3e);
   1352 #if defined(__cplusplus) && !defined(CINTERFACE)
   1353 MIDL_INTERFACE("53590f48-dc3b-4297-813f-787761ad7b3e")
   1354 IMFASFIndexer : public IUnknown
   1355 {
   1356     virtual HRESULT STDMETHODCALLTYPE SetFlags(
   1357         DWORD dwFlags) = 0;
   1358 
   1359     virtual HRESULT STDMETHODCALLTYPE GetFlags(
   1360         DWORD *pdwFlags) = 0;
   1361 
   1362     virtual HRESULT STDMETHODCALLTYPE Initialize(
   1363         IMFASFContentInfo *pIContentInfo) = 0;
   1364 
   1365     virtual HRESULT STDMETHODCALLTYPE GetIndexPosition(
   1366         IMFASFContentInfo *pIContentInfo,
   1367         QWORD *pcbIndexOffset) = 0;
   1368 
   1369     virtual HRESULT STDMETHODCALLTYPE SetIndexByteStreams(
   1370         IMFByteStream **ppIByteStreams,
   1371         DWORD cByteStreams) = 0;
   1372 
   1373     virtual HRESULT STDMETHODCALLTYPE GetIndexByteStreamCount(
   1374         DWORD *pcByteStreams) = 0;
   1375 
   1376     virtual HRESULT STDMETHODCALLTYPE GetIndexStatus(
   1377         ASF_INDEX_IDENTIFIER *pIndexIdentifier,
   1378         WINBOOL *pfIsIndexed,
   1379         BYTE *pbIndexDescriptor,
   1380         DWORD *pcbIndexDescriptor) = 0;
   1381 
   1382     virtual HRESULT STDMETHODCALLTYPE SetIndexStatus(
   1383         BYTE *pbIndexDescriptor,
   1384         DWORD cbIndexDescriptor,
   1385         WINBOOL fGenerateIndex) = 0;
   1386 
   1387     virtual HRESULT STDMETHODCALLTYPE GetSeekPositionForValue(
   1388         const PROPVARIANT *pvarValue,
   1389         ASF_INDEX_IDENTIFIER *pIndexIdentifier,
   1390         QWORD *pcbOffsetWithinData,
   1391         MFTIME *phnsApproxTime,
   1392         DWORD *pdwPayloadNumberOfStreamWithinPacket) = 0;
   1393 
   1394     virtual HRESULT STDMETHODCALLTYPE GenerateIndexEntries(
   1395         IMFSample *pIASFPacketSample) = 0;
   1396 
   1397     virtual HRESULT STDMETHODCALLTYPE CommitIndex(
   1398         IMFASFContentInfo *pIContentInfo) = 0;
   1399 
   1400     virtual HRESULT STDMETHODCALLTYPE GetIndexWriteSpace(
   1401         QWORD *pcbIndexWriteSpace) = 0;
   1402 
   1403     virtual HRESULT STDMETHODCALLTYPE GetCompletedIndex(
   1404         IMFMediaBuffer *pIIndexBuffer,
   1405         QWORD cbOffsetWithinIndex) = 0;
   1406 
   1407 };
   1408 #ifdef __CRT_UUID_DECL
   1409 __CRT_UUID_DECL(IMFASFIndexer, 0x53590f48, 0xdc3b, 0x4297, 0x81,0x3f, 0x78,0x77,0x61,0xad,0x7b,0x3e)
   1410 #endif
   1411 #else
   1412 typedef struct IMFASFIndexerVtbl {
   1413     BEGIN_INTERFACE
   1414 
   1415     /*** IUnknown methods ***/
   1416     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1417         IMFASFIndexer* This,
   1418         REFIID riid,
   1419         void **ppvObject);
   1420 
   1421     ULONG (STDMETHODCALLTYPE *AddRef)(
   1422         IMFASFIndexer* This);
   1423 
   1424     ULONG (STDMETHODCALLTYPE *Release)(
   1425         IMFASFIndexer* This);
   1426 
   1427     /*** IMFASFIndexer methods ***/
   1428     HRESULT (STDMETHODCALLTYPE *SetFlags)(
   1429         IMFASFIndexer* This,
   1430         DWORD dwFlags);
   1431 
   1432     HRESULT (STDMETHODCALLTYPE *GetFlags)(
   1433         IMFASFIndexer* This,
   1434         DWORD *pdwFlags);
   1435 
   1436     HRESULT (STDMETHODCALLTYPE *Initialize)(
   1437         IMFASFIndexer* This,
   1438         IMFASFContentInfo *pIContentInfo);
   1439 
   1440     HRESULT (STDMETHODCALLTYPE *GetIndexPosition)(
   1441         IMFASFIndexer* This,
   1442         IMFASFContentInfo *pIContentInfo,
   1443         QWORD *pcbIndexOffset);
   1444 
   1445     HRESULT (STDMETHODCALLTYPE *SetIndexByteStreams)(
   1446         IMFASFIndexer* This,
   1447         IMFByteStream **ppIByteStreams,
   1448         DWORD cByteStreams);
   1449 
   1450     HRESULT (STDMETHODCALLTYPE *GetIndexByteStreamCount)(
   1451         IMFASFIndexer* This,
   1452         DWORD *pcByteStreams);
   1453 
   1454     HRESULT (STDMETHODCALLTYPE *GetIndexStatus)(
   1455         IMFASFIndexer* This,
   1456         ASF_INDEX_IDENTIFIER *pIndexIdentifier,
   1457         WINBOOL *pfIsIndexed,
   1458         BYTE *pbIndexDescriptor,
   1459         DWORD *pcbIndexDescriptor);
   1460 
   1461     HRESULT (STDMETHODCALLTYPE *SetIndexStatus)(
   1462         IMFASFIndexer* This,
   1463         BYTE *pbIndexDescriptor,
   1464         DWORD cbIndexDescriptor,
   1465         WINBOOL fGenerateIndex);
   1466 
   1467     HRESULT (STDMETHODCALLTYPE *GetSeekPositionForValue)(
   1468         IMFASFIndexer* This,
   1469         const PROPVARIANT *pvarValue,
   1470         ASF_INDEX_IDENTIFIER *pIndexIdentifier,
   1471         QWORD *pcbOffsetWithinData,
   1472         MFTIME *phnsApproxTime,
   1473         DWORD *pdwPayloadNumberOfStreamWithinPacket);
   1474 
   1475     HRESULT (STDMETHODCALLTYPE *GenerateIndexEntries)(
   1476         IMFASFIndexer* This,
   1477         IMFSample *pIASFPacketSample);
   1478 
   1479     HRESULT (STDMETHODCALLTYPE *CommitIndex)(
   1480         IMFASFIndexer* This,
   1481         IMFASFContentInfo *pIContentInfo);
   1482 
   1483     HRESULT (STDMETHODCALLTYPE *GetIndexWriteSpace)(
   1484         IMFASFIndexer* This,
   1485         QWORD *pcbIndexWriteSpace);
   1486 
   1487     HRESULT (STDMETHODCALLTYPE *GetCompletedIndex)(
   1488         IMFASFIndexer* This,
   1489         IMFMediaBuffer *pIIndexBuffer,
   1490         QWORD cbOffsetWithinIndex);
   1491 
   1492     END_INTERFACE
   1493 } IMFASFIndexerVtbl;
   1494 interface IMFASFIndexer {
   1495     CONST_VTBL IMFASFIndexerVtbl* lpVtbl;
   1496 };
   1497 
   1498 #ifdef COBJMACROS
   1499 #ifndef WIDL_C_INLINE_WRAPPERS
   1500 /*** IUnknown methods ***/
   1501 #define IMFASFIndexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1502 #define IMFASFIndexer_AddRef(This) (This)->lpVtbl->AddRef(This)
   1503 #define IMFASFIndexer_Release(This) (This)->lpVtbl->Release(This)
   1504 /*** IMFASFIndexer methods ***/
   1505 #define IMFASFIndexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
   1506 #define IMFASFIndexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
   1507 #define IMFASFIndexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo)
   1508 #define IMFASFIndexer_GetIndexPosition(This,pIContentInfo,pcbIndexOffset) (This)->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset)
   1509 #define IMFASFIndexer_SetIndexByteStreams(This,ppIByteStreams,cByteStreams) (This)->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams)
   1510 #define IMFASFIndexer_GetIndexByteStreamCount(This,pcByteStreams) (This)->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams)
   1511 #define IMFASFIndexer_GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) (This)->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor)
   1512 #define IMFASFIndexer_SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex) (This)->lpVtbl->SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex)
   1513 #define IMFASFIndexer_GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) (This)->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket)
   1514 #define IMFASFIndexer_GenerateIndexEntries(This,pIASFPacketSample) (This)->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample)
   1515 #define IMFASFIndexer_CommitIndex(This,pIContentInfo) (This)->lpVtbl->CommitIndex(This,pIContentInfo)
   1516 #define IMFASFIndexer_GetIndexWriteSpace(This,pcbIndexWriteSpace) (This)->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace)
   1517 #define IMFASFIndexer_GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) (This)->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex)
   1518 #else
   1519 /*** IUnknown methods ***/
   1520 static FORCEINLINE HRESULT IMFASFIndexer_QueryInterface(IMFASFIndexer* This,REFIID riid,void **ppvObject) {
   1521     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1522 }
   1523 static FORCEINLINE ULONG IMFASFIndexer_AddRef(IMFASFIndexer* This) {
   1524     return This->lpVtbl->AddRef(This);
   1525 }
   1526 static FORCEINLINE ULONG IMFASFIndexer_Release(IMFASFIndexer* This) {
   1527     return This->lpVtbl->Release(This);
   1528 }
   1529 /*** IMFASFIndexer methods ***/
   1530 static FORCEINLINE HRESULT IMFASFIndexer_SetFlags(IMFASFIndexer* This,DWORD dwFlags) {
   1531     return This->lpVtbl->SetFlags(This,dwFlags);
   1532 }
   1533 static FORCEINLINE HRESULT IMFASFIndexer_GetFlags(IMFASFIndexer* This,DWORD *pdwFlags) {
   1534     return This->lpVtbl->GetFlags(This,pdwFlags);
   1535 }
   1536 static FORCEINLINE HRESULT IMFASFIndexer_Initialize(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) {
   1537     return This->lpVtbl->Initialize(This,pIContentInfo);
   1538 }
   1539 static FORCEINLINE HRESULT IMFASFIndexer_GetIndexPosition(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo,QWORD *pcbIndexOffset) {
   1540     return This->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset);
   1541 }
   1542 static FORCEINLINE HRESULT IMFASFIndexer_SetIndexByteStreams(IMFASFIndexer* This,IMFByteStream **ppIByteStreams,DWORD cByteStreams) {
   1543     return This->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams);
   1544 }
   1545 static FORCEINLINE HRESULT IMFASFIndexer_GetIndexByteStreamCount(IMFASFIndexer* This,DWORD *pcByteStreams) {
   1546     return This->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams);
   1547 }
   1548 static FORCEINLINE HRESULT IMFASFIndexer_GetIndexStatus(IMFASFIndexer* This,ASF_INDEX_IDENTIFIER *pIndexIdentifier,WINBOOL *pfIsIndexed,BYTE *pbIndexDescriptor,DWORD *pcbIndexDescriptor) {
   1549     return This->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor);
   1550 }
   1551 static FORCEINLINE HRESULT IMFASFIndexer_SetIndexStatus(IMFASFIndexer* This,BYTE *pbIndexDescriptor,DWORD cbIndexDescriptor,WINBOOL fGenerateIndex) {
   1552     return This->lpVtbl->SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex);
   1553 }
   1554 static FORCEINLINE HRESULT IMFASFIndexer_GetSeekPositionForValue(IMFASFIndexer* This,const PROPVARIANT *pvarValue,ASF_INDEX_IDENTIFIER *pIndexIdentifier,QWORD *pcbOffsetWithinData,MFTIME *phnsApproxTime,DWORD *pdwPayloadNumberOfStreamWithinPacket) {
   1555     return This->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket);
   1556 }
   1557 static FORCEINLINE HRESULT IMFASFIndexer_GenerateIndexEntries(IMFASFIndexer* This,IMFSample *pIASFPacketSample) {
   1558     return This->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample);
   1559 }
   1560 static FORCEINLINE HRESULT IMFASFIndexer_CommitIndex(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) {
   1561     return This->lpVtbl->CommitIndex(This,pIContentInfo);
   1562 }
   1563 static FORCEINLINE HRESULT IMFASFIndexer_GetIndexWriteSpace(IMFASFIndexer* This,QWORD *pcbIndexWriteSpace) {
   1564     return This->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace);
   1565 }
   1566 static FORCEINLINE HRESULT IMFASFIndexer_GetCompletedIndex(IMFASFIndexer* This,IMFMediaBuffer *pIIndexBuffer,QWORD cbOffsetWithinIndex) {
   1567     return This->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex);
   1568 }
   1569 #endif
   1570 #endif
   1571 
   1572 #endif
   1573 
   1574 HRESULT STDMETHODCALLTYPE IMFASFIndexer_SetFlags_Proxy(
   1575     IMFASFIndexer* This,
   1576     DWORD dwFlags);
   1577 void __RPC_STUB IMFASFIndexer_SetFlags_Stub(
   1578     IRpcStubBuffer* This,
   1579     IRpcChannelBuffer* pRpcChannelBuffer,
   1580     PRPC_MESSAGE pRpcMessage,
   1581     DWORD* pdwStubPhase);
   1582 HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetFlags_Proxy(
   1583     IMFASFIndexer* This,
   1584     DWORD *pdwFlags);
   1585 void __RPC_STUB IMFASFIndexer_GetFlags_Stub(
   1586     IRpcStubBuffer* This,
   1587     IRpcChannelBuffer* pRpcChannelBuffer,
   1588     PRPC_MESSAGE pRpcMessage,
   1589     DWORD* pdwStubPhase);
   1590 HRESULT STDMETHODCALLTYPE IMFASFIndexer_Initialize_Proxy(
   1591     IMFASFIndexer* This,
   1592     IMFASFContentInfo *pIContentInfo);
   1593 void __RPC_STUB IMFASFIndexer_Initialize_Stub(
   1594     IRpcStubBuffer* This,
   1595     IRpcChannelBuffer* pRpcChannelBuffer,
   1596     PRPC_MESSAGE pRpcMessage,
   1597     DWORD* pdwStubPhase);
   1598 HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetIndexPosition_Proxy(
   1599     IMFASFIndexer* This,
   1600     IMFASFContentInfo *pIContentInfo,
   1601     QWORD *pcbIndexOffset);
   1602 void __RPC_STUB IMFASFIndexer_GetIndexPosition_Stub(
   1603     IRpcStubBuffer* This,
   1604     IRpcChannelBuffer* pRpcChannelBuffer,
   1605     PRPC_MESSAGE pRpcMessage,
   1606     DWORD* pdwStubPhase);
   1607 HRESULT STDMETHODCALLTYPE IMFASFIndexer_SetIndexByteStreams_Proxy(
   1608     IMFASFIndexer* This,
   1609     IMFByteStream **ppIByteStreams,
   1610     DWORD cByteStreams);
   1611 void __RPC_STUB IMFASFIndexer_SetIndexByteStreams_Stub(
   1612     IRpcStubBuffer* This,
   1613     IRpcChannelBuffer* pRpcChannelBuffer,
   1614     PRPC_MESSAGE pRpcMessage,
   1615     DWORD* pdwStubPhase);
   1616 HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetIndexByteStreamCount_Proxy(
   1617     IMFASFIndexer* This,
   1618     DWORD *pcByteStreams);
   1619 void __RPC_STUB IMFASFIndexer_GetIndexByteStreamCount_Stub(
   1620     IRpcStubBuffer* This,
   1621     IRpcChannelBuffer* pRpcChannelBuffer,
   1622     PRPC_MESSAGE pRpcMessage,
   1623     DWORD* pdwStubPhase);
   1624 HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetIndexStatus_Proxy(
   1625     IMFASFIndexer* This,
   1626     ASF_INDEX_IDENTIFIER *pIndexIdentifier,
   1627     WINBOOL *pfIsIndexed,
   1628     BYTE *pbIndexDescriptor,
   1629     DWORD *pcbIndexDescriptor);
   1630 void __RPC_STUB IMFASFIndexer_GetIndexStatus_Stub(
   1631     IRpcStubBuffer* This,
   1632     IRpcChannelBuffer* pRpcChannelBuffer,
   1633     PRPC_MESSAGE pRpcMessage,
   1634     DWORD* pdwStubPhase);
   1635 HRESULT STDMETHODCALLTYPE IMFASFIndexer_SetIndexStatus_Proxy(
   1636     IMFASFIndexer* This,
   1637     BYTE *pbIndexDescriptor,
   1638     DWORD cbIndexDescriptor,
   1639     WINBOOL fGenerateIndex);
   1640 void __RPC_STUB IMFASFIndexer_SetIndexStatus_Stub(
   1641     IRpcStubBuffer* This,
   1642     IRpcChannelBuffer* pRpcChannelBuffer,
   1643     PRPC_MESSAGE pRpcMessage,
   1644     DWORD* pdwStubPhase);
   1645 HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetSeekPositionForValue_Proxy(
   1646     IMFASFIndexer* This,
   1647     const PROPVARIANT *pvarValue,
   1648     ASF_INDEX_IDENTIFIER *pIndexIdentifier,
   1649     QWORD *pcbOffsetWithinData,
   1650     MFTIME *phnsApproxTime,
   1651     DWORD *pdwPayloadNumberOfStreamWithinPacket);
   1652 void __RPC_STUB IMFASFIndexer_GetSeekPositionForValue_Stub(
   1653     IRpcStubBuffer* This,
   1654     IRpcChannelBuffer* pRpcChannelBuffer,
   1655     PRPC_MESSAGE pRpcMessage,
   1656     DWORD* pdwStubPhase);
   1657 HRESULT STDMETHODCALLTYPE IMFASFIndexer_GenerateIndexEntries_Proxy(
   1658     IMFASFIndexer* This,
   1659     IMFSample *pIASFPacketSample);
   1660 void __RPC_STUB IMFASFIndexer_GenerateIndexEntries_Stub(
   1661     IRpcStubBuffer* This,
   1662     IRpcChannelBuffer* pRpcChannelBuffer,
   1663     PRPC_MESSAGE pRpcMessage,
   1664     DWORD* pdwStubPhase);
   1665 HRESULT STDMETHODCALLTYPE IMFASFIndexer_CommitIndex_Proxy(
   1666     IMFASFIndexer* This,
   1667     IMFASFContentInfo *pIContentInfo);
   1668 void __RPC_STUB IMFASFIndexer_CommitIndex_Stub(
   1669     IRpcStubBuffer* This,
   1670     IRpcChannelBuffer* pRpcChannelBuffer,
   1671     PRPC_MESSAGE pRpcMessage,
   1672     DWORD* pdwStubPhase);
   1673 HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetIndexWriteSpace_Proxy(
   1674     IMFASFIndexer* This,
   1675     QWORD *pcbIndexWriteSpace);
   1676 void __RPC_STUB IMFASFIndexer_GetIndexWriteSpace_Stub(
   1677     IRpcStubBuffer* This,
   1678     IRpcChannelBuffer* pRpcChannelBuffer,
   1679     PRPC_MESSAGE pRpcMessage,
   1680     DWORD* pdwStubPhase);
   1681 HRESULT STDMETHODCALLTYPE IMFASFIndexer_GetCompletedIndex_Proxy(
   1682     IMFASFIndexer* This,
   1683     IMFMediaBuffer *pIIndexBuffer,
   1684     QWORD cbOffsetWithinIndex);
   1685 void __RPC_STUB IMFASFIndexer_GetCompletedIndex_Stub(
   1686     IRpcStubBuffer* This,
   1687     IRpcChannelBuffer* pRpcChannelBuffer,
   1688     PRPC_MESSAGE pRpcMessage,
   1689     DWORD* pdwStubPhase);
   1690 
   1691 #endif  /* __IMFASFIndexer_INTERFACE_DEFINED__ */
   1692 
   1693 /*****************************************************************************
   1694  * IMFASFStreamSelector interface
   1695  */
   1696 #ifndef __IMFASFStreamSelector_INTERFACE_DEFINED__
   1697 #define __IMFASFStreamSelector_INTERFACE_DEFINED__
   1698 
   1699 DEFINE_GUID(IID_IMFASFStreamSelector, 0xd01bad4a, 0x4fa0, 0x4a60, 0x93,0x49, 0xc2,0x7e,0x62,0xda,0x9d,0x41);
   1700 #if defined(__cplusplus) && !defined(CINTERFACE)
   1701 MIDL_INTERFACE("d01bad4a-4fa0-4a60-9349-c27e62da9d41")
   1702 IMFASFStreamSelector : public IUnknown
   1703 {
   1704     virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
   1705         DWORD *pcStreams) = 0;
   1706 
   1707     virtual HRESULT STDMETHODCALLTYPE GetOutputCount(
   1708         DWORD *pcOutputs) = 0;
   1709 
   1710     virtual HRESULT STDMETHODCALLTYPE GetOutputStreamCount(
   1711         DWORD dwOutputNum,
   1712         DWORD *pcStreams) = 0;
   1713 
   1714     virtual HRESULT STDMETHODCALLTYPE GetOutputStreamNumbers(
   1715         DWORD dwOutputNum,
   1716         WORD *rgwStreamNumbers) = 0;
   1717 
   1718     virtual HRESULT STDMETHODCALLTYPE GetOutputFromStream(
   1719         WORD wStreamNum,
   1720         DWORD *pdwOutput) = 0;
   1721 
   1722     virtual HRESULT STDMETHODCALLTYPE GetOutputOverride(
   1723         DWORD dwOutputNum,
   1724         ASF_SELECTION_STATUS *pSelection) = 0;
   1725 
   1726     virtual HRESULT STDMETHODCALLTYPE SetOutputOverride(
   1727         DWORD dwOutputNum,
   1728         ASF_SELECTION_STATUS Selection) = 0;
   1729 
   1730     virtual HRESULT STDMETHODCALLTYPE GetOutputMutexCount(
   1731         DWORD dwOutputNum,
   1732         DWORD *pcMutexes) = 0;
   1733 
   1734     virtual HRESULT STDMETHODCALLTYPE GetOutputMutex(
   1735         DWORD dwOutputNum,
   1736         DWORD dwMutexNum,
   1737         IUnknown **ppMutex) = 0;
   1738 
   1739     virtual HRESULT STDMETHODCALLTYPE SetOutputMutexSelection(
   1740         DWORD dwOutputNum,
   1741         DWORD dwMutexNum,
   1742         WORD wSelectedRecord) = 0;
   1743 
   1744     virtual HRESULT STDMETHODCALLTYPE GetBandwidthStepCount(
   1745         DWORD *pcStepCount) = 0;
   1746 
   1747     virtual HRESULT STDMETHODCALLTYPE GetBandwidthStep(
   1748         DWORD dwStepNum,
   1749         DWORD *pdwBitrate,
   1750         WORD *rgwStreamNumbers,
   1751         ASF_SELECTION_STATUS *rgSelections) = 0;
   1752 
   1753     virtual HRESULT STDMETHODCALLTYPE BitrateToStepNumber(
   1754         DWORD dwBitrate,
   1755         DWORD *pdwStepNum) = 0;
   1756 
   1757     virtual HRESULT STDMETHODCALLTYPE SetStreamSelectorFlags(
   1758         DWORD dwStreamSelectorFlags) = 0;
   1759 
   1760 };
   1761 #ifdef __CRT_UUID_DECL
   1762 __CRT_UUID_DECL(IMFASFStreamSelector, 0xd01bad4a, 0x4fa0, 0x4a60, 0x93,0x49, 0xc2,0x7e,0x62,0xda,0x9d,0x41)
   1763 #endif
   1764 #else
   1765 typedef struct IMFASFStreamSelectorVtbl {
   1766     BEGIN_INTERFACE
   1767 
   1768     /*** IUnknown methods ***/
   1769     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1770         IMFASFStreamSelector* This,
   1771         REFIID riid,
   1772         void **ppvObject);
   1773 
   1774     ULONG (STDMETHODCALLTYPE *AddRef)(
   1775         IMFASFStreamSelector* This);
   1776 
   1777     ULONG (STDMETHODCALLTYPE *Release)(
   1778         IMFASFStreamSelector* This);
   1779 
   1780     /*** IMFASFStreamSelector methods ***/
   1781     HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
   1782         IMFASFStreamSelector* This,
   1783         DWORD *pcStreams);
   1784 
   1785     HRESULT (STDMETHODCALLTYPE *GetOutputCount)(
   1786         IMFASFStreamSelector* This,
   1787         DWORD *pcOutputs);
   1788 
   1789     HRESULT (STDMETHODCALLTYPE *GetOutputStreamCount)(
   1790         IMFASFStreamSelector* This,
   1791         DWORD dwOutputNum,
   1792         DWORD *pcStreams);
   1793 
   1794     HRESULT (STDMETHODCALLTYPE *GetOutputStreamNumbers)(
   1795         IMFASFStreamSelector* This,
   1796         DWORD dwOutputNum,
   1797         WORD *rgwStreamNumbers);
   1798 
   1799     HRESULT (STDMETHODCALLTYPE *GetOutputFromStream)(
   1800         IMFASFStreamSelector* This,
   1801         WORD wStreamNum,
   1802         DWORD *pdwOutput);
   1803 
   1804     HRESULT (STDMETHODCALLTYPE *GetOutputOverride)(
   1805         IMFASFStreamSelector* This,
   1806         DWORD dwOutputNum,
   1807         ASF_SELECTION_STATUS *pSelection);
   1808 
   1809     HRESULT (STDMETHODCALLTYPE *SetOutputOverride)(
   1810         IMFASFStreamSelector* This,
   1811         DWORD dwOutputNum,
   1812         ASF_SELECTION_STATUS Selection);
   1813 
   1814     HRESULT (STDMETHODCALLTYPE *GetOutputMutexCount)(
   1815         IMFASFStreamSelector* This,
   1816         DWORD dwOutputNum,
   1817         DWORD *pcMutexes);
   1818 
   1819     HRESULT (STDMETHODCALLTYPE *GetOutputMutex)(
   1820         IMFASFStreamSelector* This,
   1821         DWORD dwOutputNum,
   1822         DWORD dwMutexNum,
   1823         IUnknown **ppMutex);
   1824 
   1825     HRESULT (STDMETHODCALLTYPE *SetOutputMutexSelection)(
   1826         IMFASFStreamSelector* This,
   1827         DWORD dwOutputNum,
   1828         DWORD dwMutexNum,
   1829         WORD wSelectedRecord);
   1830 
   1831     HRESULT (STDMETHODCALLTYPE *GetBandwidthStepCount)(
   1832         IMFASFStreamSelector* This,
   1833         DWORD *pcStepCount);
   1834 
   1835     HRESULT (STDMETHODCALLTYPE *GetBandwidthStep)(
   1836         IMFASFStreamSelector* This,
   1837         DWORD dwStepNum,
   1838         DWORD *pdwBitrate,
   1839         WORD *rgwStreamNumbers,
   1840         ASF_SELECTION_STATUS *rgSelections);
   1841 
   1842     HRESULT (STDMETHODCALLTYPE *BitrateToStepNumber)(
   1843         IMFASFStreamSelector* This,
   1844         DWORD dwBitrate,
   1845         DWORD *pdwStepNum);
   1846 
   1847     HRESULT (STDMETHODCALLTYPE *SetStreamSelectorFlags)(
   1848         IMFASFStreamSelector* This,
   1849         DWORD dwStreamSelectorFlags);
   1850 
   1851     END_INTERFACE
   1852 } IMFASFStreamSelectorVtbl;
   1853 interface IMFASFStreamSelector {
   1854     CONST_VTBL IMFASFStreamSelectorVtbl* lpVtbl;
   1855 };
   1856 
   1857 #ifdef COBJMACROS
   1858 #ifndef WIDL_C_INLINE_WRAPPERS
   1859 /*** IUnknown methods ***/
   1860 #define IMFASFStreamSelector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1861 #define IMFASFStreamSelector_AddRef(This) (This)->lpVtbl->AddRef(This)
   1862 #define IMFASFStreamSelector_Release(This) (This)->lpVtbl->Release(This)
   1863 /*** IMFASFStreamSelector methods ***/
   1864 #define IMFASFStreamSelector_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams)
   1865 #define IMFASFStreamSelector_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs)
   1866 #define IMFASFStreamSelector_GetOutputStreamCount(This,dwOutputNum,pcStreams) (This)->lpVtbl->GetOutputStreamCount(This,dwOutputNum,pcStreams)
   1867 #define IMFASFStreamSelector_GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers) (This)->lpVtbl->GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers)
   1868 #define IMFASFStreamSelector_GetOutputFromStream(This,wStreamNum,pdwOutput) (This)->lpVtbl->GetOutputFromStream(This,wStreamNum,pdwOutput)
   1869 #define IMFASFStreamSelector_GetOutputOverride(This,dwOutputNum,pSelection) (This)->lpVtbl->GetOutputOverride(This,dwOutputNum,pSelection)
   1870 #define IMFASFStreamSelector_SetOutputOverride(This,dwOutputNum,Selection) (This)->lpVtbl->SetOutputOverride(This,dwOutputNum,Selection)
   1871 #define IMFASFStreamSelector_GetOutputMutexCount(This,dwOutputNum,pcMutexes) (This)->lpVtbl->GetOutputMutexCount(This,dwOutputNum,pcMutexes)
   1872 #define IMFASFStreamSelector_GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex) (This)->lpVtbl->GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex)
   1873 #define IMFASFStreamSelector_SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord) (This)->lpVtbl->SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord)
   1874 #define IMFASFStreamSelector_GetBandwidthStepCount(This,pcStepCount) (This)->lpVtbl->GetBandwidthStepCount(This,pcStepCount)
   1875 #define IMFASFStreamSelector_GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections) (This)->lpVtbl->GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections)
   1876 #define IMFASFStreamSelector_BitrateToStepNumber(This,dwBitrate,pdwStepNum) (This)->lpVtbl->BitrateToStepNumber(This,dwBitrate,pdwStepNum)
   1877 #define IMFASFStreamSelector_SetStreamSelectorFlags(This,dwStreamSelectorFlags) (This)->lpVtbl->SetStreamSelectorFlags(This,dwStreamSelectorFlags)
   1878 #else
   1879 /*** IUnknown methods ***/
   1880 static FORCEINLINE HRESULT IMFASFStreamSelector_QueryInterface(IMFASFStreamSelector* This,REFIID riid,void **ppvObject) {
   1881     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1882 }
   1883 static FORCEINLINE ULONG IMFASFStreamSelector_AddRef(IMFASFStreamSelector* This) {
   1884     return This->lpVtbl->AddRef(This);
   1885 }
   1886 static FORCEINLINE ULONG IMFASFStreamSelector_Release(IMFASFStreamSelector* This) {
   1887     return This->lpVtbl->Release(This);
   1888 }
   1889 /*** IMFASFStreamSelector methods ***/
   1890 static FORCEINLINE HRESULT IMFASFStreamSelector_GetStreamCount(IMFASFStreamSelector* This,DWORD *pcStreams) {
   1891     return This->lpVtbl->GetStreamCount(This,pcStreams);
   1892 }
   1893 static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputCount(IMFASFStreamSelector* This,DWORD *pcOutputs) {
   1894     return This->lpVtbl->GetOutputCount(This,pcOutputs);
   1895 }
   1896 static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputStreamCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcStreams) {
   1897     return This->lpVtbl->GetOutputStreamCount(This,dwOutputNum,pcStreams);
   1898 }
   1899 static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputStreamNumbers(IMFASFStreamSelector* This,DWORD dwOutputNum,WORD *rgwStreamNumbers) {
   1900     return This->lpVtbl->GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers);
   1901 }
   1902 static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputFromStream(IMFASFStreamSelector* This,WORD wStreamNum,DWORD *pdwOutput) {
   1903     return This->lpVtbl->GetOutputFromStream(This,wStreamNum,pdwOutput);
   1904 }
   1905 static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS *pSelection) {
   1906     return This->lpVtbl->GetOutputOverride(This,dwOutputNum,pSelection);
   1907 }
   1908 static FORCEINLINE HRESULT IMFASFStreamSelector_SetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS Selection) {
   1909     return This->lpVtbl->SetOutputOverride(This,dwOutputNum,Selection);
   1910 }
   1911 static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputMutexCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcMutexes) {
   1912     return This->lpVtbl->GetOutputMutexCount(This,dwOutputNum,pcMutexes);
   1913 }
   1914 static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputMutex(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,IUnknown **ppMutex) {
   1915     return This->lpVtbl->GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex);
   1916 }
   1917 static FORCEINLINE HRESULT IMFASFStreamSelector_SetOutputMutexSelection(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,WORD wSelectedRecord) {
   1918     return This->lpVtbl->SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord);
   1919 }
   1920 static FORCEINLINE HRESULT IMFASFStreamSelector_GetBandwidthStepCount(IMFASFStreamSelector* This,DWORD *pcStepCount) {
   1921     return This->lpVtbl->GetBandwidthStepCount(This,pcStepCount);
   1922 }
   1923 static FORCEINLINE HRESULT IMFASFStreamSelector_GetBandwidthStep(IMFASFStreamSelector* This,DWORD dwStepNum,DWORD *pdwBitrate,WORD *rgwStreamNumbers,ASF_SELECTION_STATUS *rgSelections) {
   1924     return This->lpVtbl->GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections);
   1925 }
   1926 static FORCEINLINE HRESULT IMFASFStreamSelector_BitrateToStepNumber(IMFASFStreamSelector* This,DWORD dwBitrate,DWORD *pdwStepNum) {
   1927     return This->lpVtbl->BitrateToStepNumber(This,dwBitrate,pdwStepNum);
   1928 }
   1929 static FORCEINLINE HRESULT IMFASFStreamSelector_SetStreamSelectorFlags(IMFASFStreamSelector* This,DWORD dwStreamSelectorFlags) {
   1930     return This->lpVtbl->SetStreamSelectorFlags(This,dwStreamSelectorFlags);
   1931 }
   1932 #endif
   1933 #endif
   1934 
   1935 #endif
   1936 
   1937 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetStreamCount_Proxy(
   1938     IMFASFStreamSelector* This,
   1939     DWORD *pcStreams);
   1940 void __RPC_STUB IMFASFStreamSelector_GetStreamCount_Stub(
   1941     IRpcStubBuffer* This,
   1942     IRpcChannelBuffer* pRpcChannelBuffer,
   1943     PRPC_MESSAGE pRpcMessage,
   1944     DWORD* pdwStubPhase);
   1945 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputCount_Proxy(
   1946     IMFASFStreamSelector* This,
   1947     DWORD *pcOutputs);
   1948 void __RPC_STUB IMFASFStreamSelector_GetOutputCount_Stub(
   1949     IRpcStubBuffer* This,
   1950     IRpcChannelBuffer* pRpcChannelBuffer,
   1951     PRPC_MESSAGE pRpcMessage,
   1952     DWORD* pdwStubPhase);
   1953 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputStreamCount_Proxy(
   1954     IMFASFStreamSelector* This,
   1955     DWORD dwOutputNum,
   1956     DWORD *pcStreams);
   1957 void __RPC_STUB IMFASFStreamSelector_GetOutputStreamCount_Stub(
   1958     IRpcStubBuffer* This,
   1959     IRpcChannelBuffer* pRpcChannelBuffer,
   1960     PRPC_MESSAGE pRpcMessage,
   1961     DWORD* pdwStubPhase);
   1962 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputStreamNumbers_Proxy(
   1963     IMFASFStreamSelector* This,
   1964     DWORD dwOutputNum,
   1965     WORD *rgwStreamNumbers);
   1966 void __RPC_STUB IMFASFStreamSelector_GetOutputStreamNumbers_Stub(
   1967     IRpcStubBuffer* This,
   1968     IRpcChannelBuffer* pRpcChannelBuffer,
   1969     PRPC_MESSAGE pRpcMessage,
   1970     DWORD* pdwStubPhase);
   1971 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputFromStream_Proxy(
   1972     IMFASFStreamSelector* This,
   1973     WORD wStreamNum,
   1974     DWORD *pdwOutput);
   1975 void __RPC_STUB IMFASFStreamSelector_GetOutputFromStream_Stub(
   1976     IRpcStubBuffer* This,
   1977     IRpcChannelBuffer* pRpcChannelBuffer,
   1978     PRPC_MESSAGE pRpcMessage,
   1979     DWORD* pdwStubPhase);
   1980 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputOverride_Proxy(
   1981     IMFASFStreamSelector* This,
   1982     DWORD dwOutputNum,
   1983     ASF_SELECTION_STATUS *pSelection);
   1984 void __RPC_STUB IMFASFStreamSelector_GetOutputOverride_Stub(
   1985     IRpcStubBuffer* This,
   1986     IRpcChannelBuffer* pRpcChannelBuffer,
   1987     PRPC_MESSAGE pRpcMessage,
   1988     DWORD* pdwStubPhase);
   1989 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_SetOutputOverride_Proxy(
   1990     IMFASFStreamSelector* This,
   1991     DWORD dwOutputNum,
   1992     ASF_SELECTION_STATUS Selection);
   1993 void __RPC_STUB IMFASFStreamSelector_SetOutputOverride_Stub(
   1994     IRpcStubBuffer* This,
   1995     IRpcChannelBuffer* pRpcChannelBuffer,
   1996     PRPC_MESSAGE pRpcMessage,
   1997     DWORD* pdwStubPhase);
   1998 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputMutexCount_Proxy(
   1999     IMFASFStreamSelector* This,
   2000     DWORD dwOutputNum,
   2001     DWORD *pcMutexes);
   2002 void __RPC_STUB IMFASFStreamSelector_GetOutputMutexCount_Stub(
   2003     IRpcStubBuffer* This,
   2004     IRpcChannelBuffer* pRpcChannelBuffer,
   2005     PRPC_MESSAGE pRpcMessage,
   2006     DWORD* pdwStubPhase);
   2007 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetOutputMutex_Proxy(
   2008     IMFASFStreamSelector* This,
   2009     DWORD dwOutputNum,
   2010     DWORD dwMutexNum,
   2011     IUnknown **ppMutex);
   2012 void __RPC_STUB IMFASFStreamSelector_GetOutputMutex_Stub(
   2013     IRpcStubBuffer* This,
   2014     IRpcChannelBuffer* pRpcChannelBuffer,
   2015     PRPC_MESSAGE pRpcMessage,
   2016     DWORD* pdwStubPhase);
   2017 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_SetOutputMutexSelection_Proxy(
   2018     IMFASFStreamSelector* This,
   2019     DWORD dwOutputNum,
   2020     DWORD dwMutexNum,
   2021     WORD wSelectedRecord);
   2022 void __RPC_STUB IMFASFStreamSelector_SetOutputMutexSelection_Stub(
   2023     IRpcStubBuffer* This,
   2024     IRpcChannelBuffer* pRpcChannelBuffer,
   2025     PRPC_MESSAGE pRpcMessage,
   2026     DWORD* pdwStubPhase);
   2027 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetBandwidthStepCount_Proxy(
   2028     IMFASFStreamSelector* This,
   2029     DWORD *pcStepCount);
   2030 void __RPC_STUB IMFASFStreamSelector_GetBandwidthStepCount_Stub(
   2031     IRpcStubBuffer* This,
   2032     IRpcChannelBuffer* pRpcChannelBuffer,
   2033     PRPC_MESSAGE pRpcMessage,
   2034     DWORD* pdwStubPhase);
   2035 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_GetBandwidthStep_Proxy(
   2036     IMFASFStreamSelector* This,
   2037     DWORD dwStepNum,
   2038     DWORD *pdwBitrate,
   2039     WORD *rgwStreamNumbers,
   2040     ASF_SELECTION_STATUS *rgSelections);
   2041 void __RPC_STUB IMFASFStreamSelector_GetBandwidthStep_Stub(
   2042     IRpcStubBuffer* This,
   2043     IRpcChannelBuffer* pRpcChannelBuffer,
   2044     PRPC_MESSAGE pRpcMessage,
   2045     DWORD* pdwStubPhase);
   2046 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_BitrateToStepNumber_Proxy(
   2047     IMFASFStreamSelector* This,
   2048     DWORD dwBitrate,
   2049     DWORD *pdwStepNum);
   2050 void __RPC_STUB IMFASFStreamSelector_BitrateToStepNumber_Stub(
   2051     IRpcStubBuffer* This,
   2052     IRpcChannelBuffer* pRpcChannelBuffer,
   2053     PRPC_MESSAGE pRpcMessage,
   2054     DWORD* pdwStubPhase);
   2055 HRESULT STDMETHODCALLTYPE IMFASFStreamSelector_SetStreamSelectorFlags_Proxy(
   2056     IMFASFStreamSelector* This,
   2057     DWORD dwStreamSelectorFlags);
   2058 void __RPC_STUB IMFASFStreamSelector_SetStreamSelectorFlags_Stub(
   2059     IRpcStubBuffer* This,
   2060     IRpcChannelBuffer* pRpcChannelBuffer,
   2061     PRPC_MESSAGE pRpcMessage,
   2062     DWORD* pdwStubPhase);
   2063 
   2064 #endif  /* __IMFASFStreamSelector_INTERFACE_DEFINED__ */
   2065 
   2066 #if WINVER >= 0x0601
   2067 /*****************************************************************************
   2068  * IMFDRMNetHelper interface
   2069  */
   2070 #ifndef __IMFDRMNetHelper_INTERFACE_DEFINED__
   2071 #define __IMFDRMNetHelper_INTERFACE_DEFINED__
   2072 
   2073 DEFINE_GUID(IID_IMFDRMNetHelper, 0x3d1ff0ea, 0x679a, 0x4190, 0x8d,0x46, 0x7f,0xa6,0x9e,0x8c,0x7e,0x15);
   2074 #if defined(__cplusplus) && !defined(CINTERFACE)
   2075 MIDL_INTERFACE("3d1ff0ea-679a-4190-8d46-7fa69e8c7e15")
   2076 IMFDRMNetHelper : public IUnknown
   2077 {
   2078     virtual HRESULT STDMETHODCALLTYPE ProcessLicenseRequest(
   2079         BYTE *pLicenseRequest,
   2080         DWORD cbLicenseRequest,
   2081         BYTE **ppLicenseResponse,
   2082         DWORD *pcbLicenseResponse,
   2083         BSTR *pbstrKID) = 0;
   2084 
   2085     virtual HRESULT STDMETHODCALLTYPE GetChainedLicenseResponse(
   2086         BYTE **ppLicenseResponse,
   2087         DWORD *pcbLicenseResponse) = 0;
   2088 
   2089 };
   2090 #ifdef __CRT_UUID_DECL
   2091 __CRT_UUID_DECL(IMFDRMNetHelper, 0x3d1ff0ea, 0x679a, 0x4190, 0x8d,0x46, 0x7f,0xa6,0x9e,0x8c,0x7e,0x15)
   2092 #endif
   2093 #else
   2094 typedef struct IMFDRMNetHelperVtbl {
   2095     BEGIN_INTERFACE
   2096 
   2097     /*** IUnknown methods ***/
   2098     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2099         IMFDRMNetHelper* This,
   2100         REFIID riid,
   2101         void **ppvObject);
   2102 
   2103     ULONG (STDMETHODCALLTYPE *AddRef)(
   2104         IMFDRMNetHelper* This);
   2105 
   2106     ULONG (STDMETHODCALLTYPE *Release)(
   2107         IMFDRMNetHelper* This);
   2108 
   2109     /*** IMFDRMNetHelper methods ***/
   2110     HRESULT (STDMETHODCALLTYPE *ProcessLicenseRequest)(
   2111         IMFDRMNetHelper* This,
   2112         BYTE *pLicenseRequest,
   2113         DWORD cbLicenseRequest,
   2114         BYTE **ppLicenseResponse,
   2115         DWORD *pcbLicenseResponse,
   2116         BSTR *pbstrKID);
   2117 
   2118     HRESULT (STDMETHODCALLTYPE *GetChainedLicenseResponse)(
   2119         IMFDRMNetHelper* This,
   2120         BYTE **ppLicenseResponse,
   2121         DWORD *pcbLicenseResponse);
   2122 
   2123     END_INTERFACE
   2124 } IMFDRMNetHelperVtbl;
   2125 interface IMFDRMNetHelper {
   2126     CONST_VTBL IMFDRMNetHelperVtbl* lpVtbl;
   2127 };
   2128 
   2129 #ifdef COBJMACROS
   2130 #ifndef WIDL_C_INLINE_WRAPPERS
   2131 /*** IUnknown methods ***/
   2132 #define IMFDRMNetHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2133 #define IMFDRMNetHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
   2134 #define IMFDRMNetHelper_Release(This) (This)->lpVtbl->Release(This)
   2135 /*** IMFDRMNetHelper methods ***/
   2136 #define IMFDRMNetHelper_ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID) (This)->lpVtbl->ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID)
   2137 #define IMFDRMNetHelper_GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse) (This)->lpVtbl->GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse)
   2138 #else
   2139 /*** IUnknown methods ***/
   2140 static FORCEINLINE HRESULT IMFDRMNetHelper_QueryInterface(IMFDRMNetHelper* This,REFIID riid,void **ppvObject) {
   2141     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2142 }
   2143 static FORCEINLINE ULONG IMFDRMNetHelper_AddRef(IMFDRMNetHelper* This) {
   2144     return This->lpVtbl->AddRef(This);
   2145 }
   2146 static FORCEINLINE ULONG IMFDRMNetHelper_Release(IMFDRMNetHelper* This) {
   2147     return This->lpVtbl->Release(This);
   2148 }
   2149 /*** IMFDRMNetHelper methods ***/
   2150 static FORCEINLINE HRESULT IMFDRMNetHelper_ProcessLicenseRequest(IMFDRMNetHelper* This,BYTE *pLicenseRequest,DWORD cbLicenseRequest,BYTE **ppLicenseResponse,DWORD *pcbLicenseResponse,BSTR *pbstrKID) {
   2151     return This->lpVtbl->ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID);
   2152 }
   2153 static FORCEINLINE HRESULT IMFDRMNetHelper_GetChainedLicenseResponse(IMFDRMNetHelper* This,BYTE **ppLicenseResponse,DWORD *pcbLicenseResponse) {
   2154     return This->lpVtbl->GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse);
   2155 }
   2156 #endif
   2157 #endif
   2158 
   2159 #endif
   2160 
   2161 HRESULT STDMETHODCALLTYPE IMFDRMNetHelper_ProcessLicenseRequest_Proxy(
   2162     IMFDRMNetHelper* This,
   2163     BYTE *pLicenseRequest,
   2164     DWORD cbLicenseRequest,
   2165     BYTE **ppLicenseResponse,
   2166     DWORD *pcbLicenseResponse,
   2167     BSTR *pbstrKID);
   2168 void __RPC_STUB IMFDRMNetHelper_ProcessLicenseRequest_Stub(
   2169     IRpcStubBuffer* This,
   2170     IRpcChannelBuffer* pRpcChannelBuffer,
   2171     PRPC_MESSAGE pRpcMessage,
   2172     DWORD* pdwStubPhase);
   2173 HRESULT STDMETHODCALLTYPE IMFDRMNetHelper_GetChainedLicenseResponse_Proxy(
   2174     IMFDRMNetHelper* This,
   2175     BYTE **ppLicenseResponse,
   2176     DWORD *pcbLicenseResponse);
   2177 void __RPC_STUB IMFDRMNetHelper_GetChainedLicenseResponse_Stub(
   2178     IRpcStubBuffer* This,
   2179     IRpcChannelBuffer* pRpcChannelBuffer,
   2180     PRPC_MESSAGE pRpcMessage,
   2181     DWORD* pdwStubPhase);
   2182 
   2183 #endif  /* __IMFDRMNetHelper_INTERFACE_DEFINED__ */
   2184 
   2185 #endif
   2186 /*****************************************************************************
   2187  * IMFASFProfile interface
   2188  */
   2189 #ifndef __IMFASFProfile_INTERFACE_DEFINED__
   2190 #define __IMFASFProfile_INTERFACE_DEFINED__
   2191 
   2192 DEFINE_GUID(IID_IMFASFProfile, 0xd267bf6a, 0x028b, 0x4e0d, 0x90,0x3d, 0x43,0xf0,0xef,0x82,0xd0,0xd4);
   2193 #if defined(__cplusplus) && !defined(CINTERFACE)
   2194 MIDL_INTERFACE("d267bf6a-028b-4e0d-903d-43f0ef82d0d4")
   2195 IMFASFProfile : public IMFAttributes
   2196 {
   2197     virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
   2198         DWORD *pcStreams) = 0;
   2199 
   2200     virtual HRESULT STDMETHODCALLTYPE GetStream(
   2201         DWORD dwStreamIndex,
   2202         WORD *pwStreamNumber,
   2203         IMFASFStreamConfig **ppIStream) = 0;
   2204 
   2205     virtual HRESULT STDMETHODCALLTYPE GetStreamByNumber(
   2206         WORD wStreamNumber,
   2207         IMFASFStreamConfig **ppIStream) = 0;
   2208 
   2209     virtual HRESULT STDMETHODCALLTYPE SetStream(
   2210         IMFASFStreamConfig *pIStream) = 0;
   2211 
   2212     virtual HRESULT STDMETHODCALLTYPE RemoveStream(
   2213         WORD wStreamNumber) = 0;
   2214 
   2215     virtual HRESULT STDMETHODCALLTYPE CreateStream(
   2216         IMFMediaType *pIMediaType,
   2217         IMFASFStreamConfig **ppIStream) = 0;
   2218 
   2219     virtual HRESULT STDMETHODCALLTYPE GetMutualExclusionCount(
   2220         DWORD *pcMutexs) = 0;
   2221 
   2222     virtual HRESULT STDMETHODCALLTYPE GetMutualExclusion(
   2223         DWORD dwMutexIndex,
   2224         IMFASFMutualExclusion **ppIMutex) = 0;
   2225 
   2226     virtual HRESULT STDMETHODCALLTYPE AddMutualExclusion(
   2227         IMFASFMutualExclusion *pIMutex) = 0;
   2228 
   2229     virtual HRESULT STDMETHODCALLTYPE RemoveMutualExclusion(
   2230         DWORD dwMutexIndex) = 0;
   2231 
   2232     virtual HRESULT STDMETHODCALLTYPE CreateMutualExclusion(
   2233         IMFASFMutualExclusion **ppIMutex) = 0;
   2234 
   2235     virtual HRESULT STDMETHODCALLTYPE GetStreamPrioritization(
   2236         IMFASFStreamPrioritization **ppIStreamPrioritization) = 0;
   2237 
   2238     virtual HRESULT STDMETHODCALLTYPE AddStreamPrioritization(
   2239         IMFASFStreamPrioritization *pIStreamPrioritization) = 0;
   2240 
   2241     virtual HRESULT STDMETHODCALLTYPE RemoveStreamPrioritization(
   2242         ) = 0;
   2243 
   2244     virtual HRESULT STDMETHODCALLTYPE CreateStreamPrioritization(
   2245         IMFASFStreamPrioritization **ppIStreamPrioritization) = 0;
   2246 
   2247     virtual HRESULT STDMETHODCALLTYPE Clone(
   2248         IMFASFProfile **ppIProfile) = 0;
   2249 
   2250 };
   2251 #ifdef __CRT_UUID_DECL
   2252 __CRT_UUID_DECL(IMFASFProfile, 0xd267bf6a, 0x028b, 0x4e0d, 0x90,0x3d, 0x43,0xf0,0xef,0x82,0xd0,0xd4)
   2253 #endif
   2254 #else
   2255 typedef struct IMFASFProfileVtbl {
   2256     BEGIN_INTERFACE
   2257 
   2258     /*** IUnknown methods ***/
   2259     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2260         IMFASFProfile* This,
   2261         REFIID riid,
   2262         void **ppvObject);
   2263 
   2264     ULONG (STDMETHODCALLTYPE *AddRef)(
   2265         IMFASFProfile* This);
   2266 
   2267     ULONG (STDMETHODCALLTYPE *Release)(
   2268         IMFASFProfile* This);
   2269 
   2270     /*** IMFAttributes methods ***/
   2271     HRESULT (STDMETHODCALLTYPE *GetItem)(
   2272         IMFASFProfile* This,
   2273         REFGUID guidKey,
   2274         PROPVARIANT *pValue);
   2275 
   2276     HRESULT (STDMETHODCALLTYPE *GetItemType)(
   2277         IMFASFProfile* This,
   2278         REFGUID guidKey,
   2279         MF_ATTRIBUTE_TYPE *pType);
   2280 
   2281     HRESULT (STDMETHODCALLTYPE *CompareItem)(
   2282         IMFASFProfile* This,
   2283         REFGUID guidKey,
   2284         REFPROPVARIANT Value,
   2285         WINBOOL *pbResult);
   2286 
   2287     HRESULT (STDMETHODCALLTYPE *Compare)(
   2288         IMFASFProfile* This,
   2289         IMFAttributes *pTheirs,
   2290         MF_ATTRIBUTES_MATCH_TYPE MatchType,
   2291         WINBOOL *pbResult);
   2292 
   2293     HRESULT (STDMETHODCALLTYPE *GetUINT32)(
   2294         IMFASFProfile* This,
   2295         REFGUID guidKey,
   2296         UINT32 *punValue);
   2297 
   2298     HRESULT (STDMETHODCALLTYPE *GetUINT64)(
   2299         IMFASFProfile* This,
   2300         REFGUID guidKey,
   2301         UINT64 *punValue);
   2302 
   2303     HRESULT (STDMETHODCALLTYPE *GetDouble)(
   2304         IMFASFProfile* This,
   2305         REFGUID guidKey,
   2306         double *pfValue);
   2307 
   2308     HRESULT (STDMETHODCALLTYPE *GetGUID)(
   2309         IMFASFProfile* This,
   2310         REFGUID guidKey,
   2311         GUID *pguidValue);
   2312 
   2313     HRESULT (STDMETHODCALLTYPE *GetStringLength)(
   2314         IMFASFProfile* This,
   2315         REFGUID guidKey,
   2316         UINT32 *pcchLength);
   2317 
   2318     HRESULT (STDMETHODCALLTYPE *GetString)(
   2319         IMFASFProfile* This,
   2320         REFGUID guidKey,
   2321         LPWSTR pwszValue,
   2322         UINT32 cchBufSize,
   2323         UINT32 *pcchLength);
   2324 
   2325     HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
   2326         IMFASFProfile* This,
   2327         REFGUID guidKey,
   2328         LPWSTR *ppwszValue,
   2329         UINT32 *pcchLength);
   2330 
   2331     HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
   2332         IMFASFProfile* This,
   2333         REFGUID guidKey,
   2334         UINT32 *pcbBlobSize);
   2335 
   2336     HRESULT (STDMETHODCALLTYPE *GetBlob)(
   2337         IMFASFProfile* This,
   2338         REFGUID guidKey,
   2339         UINT8 *pBuf,
   2340         UINT32 cbBufSize,
   2341         UINT32 *pcbBlobSize);
   2342 
   2343     HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
   2344         IMFASFProfile* This,
   2345         REFGUID guidKey,
   2346         UINT8 **ppBuf,
   2347         UINT32 *pcbSize);
   2348 
   2349     HRESULT (STDMETHODCALLTYPE *GetUnknown)(
   2350         IMFASFProfile* This,
   2351         REFGUID guidKey,
   2352         REFIID riid,
   2353         LPVOID *ppv);
   2354 
   2355     HRESULT (STDMETHODCALLTYPE *SetItem)(
   2356         IMFASFProfile* This,
   2357         REFGUID guidKey,
   2358         REFPROPVARIANT Value);
   2359 
   2360     HRESULT (STDMETHODCALLTYPE *DeleteItem)(
   2361         IMFASFProfile* This,
   2362         REFGUID guidKey);
   2363 
   2364     HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
   2365         IMFASFProfile* This);
   2366 
   2367     HRESULT (STDMETHODCALLTYPE *SetUINT32)(
   2368         IMFASFProfile* This,
   2369         REFGUID guidKey,
   2370         UINT32 unValue);
   2371 
   2372     HRESULT (STDMETHODCALLTYPE *SetUINT64)(
   2373         IMFASFProfile* This,
   2374         REFGUID guidKey,
   2375         UINT64 unValue);
   2376 
   2377     HRESULT (STDMETHODCALLTYPE *SetDouble)(
   2378         IMFASFProfile* This,
   2379         REFGUID guidKey,
   2380         double fValue);
   2381 
   2382     HRESULT (STDMETHODCALLTYPE *SetGUID)(
   2383         IMFASFProfile* This,
   2384         REFGUID guidKey,
   2385         REFGUID guidValue);
   2386 
   2387     HRESULT (STDMETHODCALLTYPE *SetString)(
   2388         IMFASFProfile* This,
   2389         REFGUID guidKey,
   2390         LPCWSTR wszValue);
   2391 
   2392     HRESULT (STDMETHODCALLTYPE *SetBlob)(
   2393         IMFASFProfile* This,
   2394         REFGUID guidKey,
   2395         const UINT8 *pBuf,
   2396         UINT32 cbBufSize);
   2397 
   2398     HRESULT (STDMETHODCALLTYPE *SetUnknown)(
   2399         IMFASFProfile* This,
   2400         REFGUID guidKey,
   2401         IUnknown *pUnknown);
   2402 
   2403     HRESULT (STDMETHODCALLTYPE *LockStore)(
   2404         IMFASFProfile* This);
   2405 
   2406     HRESULT (STDMETHODCALLTYPE *UnlockStore)(
   2407         IMFASFProfile* This);
   2408 
   2409     HRESULT (STDMETHODCALLTYPE *GetCount)(
   2410         IMFASFProfile* This,
   2411         UINT32 *pcItems);
   2412 
   2413     HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
   2414         IMFASFProfile* This,
   2415         UINT32 unIndex,
   2416         GUID *pguidKey,
   2417         PROPVARIANT *pValue);
   2418 
   2419     HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
   2420         IMFASFProfile* This,
   2421         IMFAttributes *pDest);
   2422 
   2423     /*** IMFASFProfile methods ***/
   2424     HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
   2425         IMFASFProfile* This,
   2426         DWORD *pcStreams);
   2427 
   2428     HRESULT (STDMETHODCALLTYPE *GetStream)(
   2429         IMFASFProfile* This,
   2430         DWORD dwStreamIndex,
   2431         WORD *pwStreamNumber,
   2432         IMFASFStreamConfig **ppIStream);
   2433 
   2434     HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)(
   2435         IMFASFProfile* This,
   2436         WORD wStreamNumber,
   2437         IMFASFStreamConfig **ppIStream);
   2438 
   2439     HRESULT (STDMETHODCALLTYPE *SetStream)(
   2440         IMFASFProfile* This,
   2441         IMFASFStreamConfig *pIStream);
   2442 
   2443     HRESULT (STDMETHODCALLTYPE *RemoveStream)(
   2444         IMFASFProfile* This,
   2445         WORD wStreamNumber);
   2446 
   2447     HRESULT (STDMETHODCALLTYPE *CreateStream)(
   2448         IMFASFProfile* This,
   2449         IMFMediaType *pIMediaType,
   2450         IMFASFStreamConfig **ppIStream);
   2451 
   2452     HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)(
   2453         IMFASFProfile* This,
   2454         DWORD *pcMutexs);
   2455 
   2456     HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)(
   2457         IMFASFProfile* This,
   2458         DWORD dwMutexIndex,
   2459         IMFASFMutualExclusion **ppIMutex);
   2460 
   2461     HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)(
   2462         IMFASFProfile* This,
   2463         IMFASFMutualExclusion *pIMutex);
   2464 
   2465     HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)(
   2466         IMFASFProfile* This,
   2467         DWORD dwMutexIndex);
   2468 
   2469     HRESULT (STDMETHODCALLTYPE *CreateMutualExclusion)(
   2470         IMFASFProfile* This,
   2471         IMFASFMutualExclusion **ppIMutex);
   2472 
   2473     HRESULT (STDMETHODCALLTYPE *GetStreamPrioritization)(
   2474         IMFASFProfile* This,
   2475         IMFASFStreamPrioritization **ppIStreamPrioritization);
   2476 
   2477     HRESULT (STDMETHODCALLTYPE *AddStreamPrioritization)(
   2478         IMFASFProfile* This,
   2479         IMFASFStreamPrioritization *pIStreamPrioritization);
   2480 
   2481     HRESULT (STDMETHODCALLTYPE *RemoveStreamPrioritization)(
   2482         IMFASFProfile* This);
   2483 
   2484     HRESULT (STDMETHODCALLTYPE *CreateStreamPrioritization)(
   2485         IMFASFProfile* This,
   2486         IMFASFStreamPrioritization **ppIStreamPrioritization);
   2487 
   2488     HRESULT (STDMETHODCALLTYPE *Clone)(
   2489         IMFASFProfile* This,
   2490         IMFASFProfile **ppIProfile);
   2491 
   2492     END_INTERFACE
   2493 } IMFASFProfileVtbl;
   2494 interface IMFASFProfile {
   2495     CONST_VTBL IMFASFProfileVtbl* lpVtbl;
   2496 };
   2497 
   2498 #ifdef COBJMACROS
   2499 #ifndef WIDL_C_INLINE_WRAPPERS
   2500 /*** IUnknown methods ***/
   2501 #define IMFASFProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2502 #define IMFASFProfile_AddRef(This) (This)->lpVtbl->AddRef(This)
   2503 #define IMFASFProfile_Release(This) (This)->lpVtbl->Release(This)
   2504 /*** IMFAttributes methods ***/
   2505 #define IMFASFProfile_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
   2506 #define IMFASFProfile_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
   2507 #define IMFASFProfile_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
   2508 #define IMFASFProfile_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
   2509 #define IMFASFProfile_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
   2510 #define IMFASFProfile_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
   2511 #define IMFASFProfile_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
   2512 #define IMFASFProfile_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
   2513 #define IMFASFProfile_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
   2514 #define IMFASFProfile_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
   2515 #define IMFASFProfile_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
   2516 #define IMFASFProfile_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
   2517 #define IMFASFProfile_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
   2518 #define IMFASFProfile_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
   2519 #define IMFASFProfile_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
   2520 #define IMFASFProfile_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
   2521 #define IMFASFProfile_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
   2522 #define IMFASFProfile_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
   2523 #define IMFASFProfile_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
   2524 #define IMFASFProfile_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
   2525 #define IMFASFProfile_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
   2526 #define IMFASFProfile_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
   2527 #define IMFASFProfile_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
   2528 #define IMFASFProfile_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
   2529 #define IMFASFProfile_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
   2530 #define IMFASFProfile_LockStore(This) (This)->lpVtbl->LockStore(This)
   2531 #define IMFASFProfile_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
   2532 #define IMFASFProfile_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
   2533 #define IMFASFProfile_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
   2534 #define IMFASFProfile_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
   2535 /*** IMFASFProfile methods ***/
   2536 #define IMFASFProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams)
   2537 #define IMFASFProfile_GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream)
   2538 #define IMFASFProfile_GetStreamByNumber(This,wStreamNumber,ppIStream) (This)->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream)
   2539 #define IMFASFProfile_SetStream(This,pIStream) (This)->lpVtbl->SetStream(This,pIStream)
   2540 #define IMFASFProfile_RemoveStream(This,wStreamNumber) (This)->lpVtbl->RemoveStream(This,wStreamNumber)
   2541 #define IMFASFProfile_CreateStream(This,pIMediaType,ppIStream) (This)->lpVtbl->CreateStream(This,pIMediaType,ppIStream)
   2542 #define IMFASFProfile_GetMutualExclusionCount(This,pcMutexs) (This)->lpVtbl->GetMutualExclusionCount(This,pcMutexs)
   2543 #define IMFASFProfile_GetMutualExclusion(This,dwMutexIndex,ppIMutex) (This)->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex)
   2544 #define IMFASFProfile_AddMutualExclusion(This,pIMutex) (This)->lpVtbl->AddMutualExclusion(This,pIMutex)
   2545 #define IMFASFProfile_RemoveMutualExclusion(This,dwMutexIndex) (This)->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex)
   2546 #define IMFASFProfile_CreateMutualExclusion(This,ppIMutex) (This)->lpVtbl->CreateMutualExclusion(This,ppIMutex)
   2547 #define IMFASFProfile_GetStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization)
   2548 #define IMFASFProfile_AddStreamPrioritization(This,pIStreamPrioritization) (This)->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization)
   2549 #define IMFASFProfile_RemoveStreamPrioritization(This) (This)->lpVtbl->RemoveStreamPrioritization(This)
   2550 #define IMFASFProfile_CreateStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization)
   2551 #define IMFASFProfile_Clone(This,ppIProfile) (This)->lpVtbl->Clone(This,ppIProfile)
   2552 #else
   2553 /*** IUnknown methods ***/
   2554 static FORCEINLINE HRESULT IMFASFProfile_QueryInterface(IMFASFProfile* This,REFIID riid,void **ppvObject) {
   2555     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2556 }
   2557 static FORCEINLINE ULONG IMFASFProfile_AddRef(IMFASFProfile* This) {
   2558     return This->lpVtbl->AddRef(This);
   2559 }
   2560 static FORCEINLINE ULONG IMFASFProfile_Release(IMFASFProfile* This) {
   2561     return This->lpVtbl->Release(This);
   2562 }
   2563 /*** IMFAttributes methods ***/
   2564 static FORCEINLINE HRESULT IMFASFProfile_GetItem(IMFASFProfile* This,REFGUID guidKey,PROPVARIANT *pValue) {
   2565     return This->lpVtbl->GetItem(This,guidKey,pValue);
   2566 }
   2567 static FORCEINLINE HRESULT IMFASFProfile_GetItemType(IMFASFProfile* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
   2568     return This->lpVtbl->GetItemType(This,guidKey,pType);
   2569 }
   2570 static FORCEINLINE HRESULT IMFASFProfile_CompareItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
   2571     return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
   2572 }
   2573 static FORCEINLINE HRESULT IMFASFProfile_Compare(IMFASFProfile* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
   2574     return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
   2575 }
   2576 static FORCEINLINE HRESULT IMFASFProfile_GetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 *punValue) {
   2577     return This->lpVtbl->GetUINT32(This,guidKey,punValue);
   2578 }
   2579 static FORCEINLINE HRESULT IMFASFProfile_GetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 *punValue) {
   2580     return This->lpVtbl->GetUINT64(This,guidKey,punValue);
   2581 }
   2582 static FORCEINLINE HRESULT IMFASFProfile_GetDouble(IMFASFProfile* This,REFGUID guidKey,double *pfValue) {
   2583     return This->lpVtbl->GetDouble(This,guidKey,pfValue);
   2584 }
   2585 static FORCEINLINE HRESULT IMFASFProfile_GetGUID(IMFASFProfile* This,REFGUID guidKey,GUID *pguidValue) {
   2586     return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
   2587 }
   2588 static FORCEINLINE HRESULT IMFASFProfile_GetStringLength(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcchLength) {
   2589     return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
   2590 }
   2591 static FORCEINLINE HRESULT IMFASFProfile_GetString(IMFASFProfile* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
   2592     return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
   2593 }
   2594 static FORCEINLINE HRESULT IMFASFProfile_GetAllocatedString(IMFASFProfile* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
   2595     return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
   2596 }
   2597 static FORCEINLINE HRESULT IMFASFProfile_GetBlobSize(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
   2598     return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
   2599 }
   2600 static FORCEINLINE HRESULT IMFASFProfile_GetBlob(IMFASFProfile* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
   2601     return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
   2602 }
   2603 static FORCEINLINE HRESULT IMFASFProfile_GetAllocatedBlob(IMFASFProfile* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
   2604     return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
   2605 }
   2606 static FORCEINLINE HRESULT IMFASFProfile_GetUnknown(IMFASFProfile* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
   2607     return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
   2608 }
   2609 static FORCEINLINE HRESULT IMFASFProfile_SetItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value) {
   2610     return This->lpVtbl->SetItem(This,guidKey,Value);
   2611 }
   2612 static FORCEINLINE HRESULT IMFASFProfile_DeleteItem(IMFASFProfile* This,REFGUID guidKey) {
   2613     return This->lpVtbl->DeleteItem(This,guidKey);
   2614 }
   2615 static FORCEINLINE HRESULT IMFASFProfile_DeleteAllItems(IMFASFProfile* This) {
   2616     return This->lpVtbl->DeleteAllItems(This);
   2617 }
   2618 static FORCEINLINE HRESULT IMFASFProfile_SetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 unValue) {
   2619     return This->lpVtbl->SetUINT32(This,guidKey,unValue);
   2620 }
   2621 static FORCEINLINE HRESULT IMFASFProfile_SetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 unValue) {
   2622     return This->lpVtbl->SetUINT64(This,guidKey,unValue);
   2623 }
   2624 static FORCEINLINE HRESULT IMFASFProfile_SetDouble(IMFASFProfile* This,REFGUID guidKey,double fValue) {
   2625     return This->lpVtbl->SetDouble(This,guidKey,fValue);
   2626 }
   2627 static FORCEINLINE HRESULT IMFASFProfile_SetGUID(IMFASFProfile* This,REFGUID guidKey,REFGUID guidValue) {
   2628     return This->lpVtbl->SetGUID(This,guidKey,guidValue);
   2629 }
   2630 static FORCEINLINE HRESULT IMFASFProfile_SetString(IMFASFProfile* This,REFGUID guidKey,LPCWSTR wszValue) {
   2631     return This->lpVtbl->SetString(This,guidKey,wszValue);
   2632 }
   2633 static FORCEINLINE HRESULT IMFASFProfile_SetBlob(IMFASFProfile* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
   2634     return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
   2635 }
   2636 static FORCEINLINE HRESULT IMFASFProfile_SetUnknown(IMFASFProfile* This,REFGUID guidKey,IUnknown *pUnknown) {
   2637     return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
   2638 }
   2639 static FORCEINLINE HRESULT IMFASFProfile_LockStore(IMFASFProfile* This) {
   2640     return This->lpVtbl->LockStore(This);
   2641 }
   2642 static FORCEINLINE HRESULT IMFASFProfile_UnlockStore(IMFASFProfile* This) {
   2643     return This->lpVtbl->UnlockStore(This);
   2644 }
   2645 static FORCEINLINE HRESULT IMFASFProfile_GetCount(IMFASFProfile* This,UINT32 *pcItems) {
   2646     return This->lpVtbl->GetCount(This,pcItems);
   2647 }
   2648 static FORCEINLINE HRESULT IMFASFProfile_GetItemByIndex(IMFASFProfile* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
   2649     return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
   2650 }
   2651 static FORCEINLINE HRESULT IMFASFProfile_CopyAllItems(IMFASFProfile* This,IMFAttributes *pDest) {
   2652     return This->lpVtbl->CopyAllItems(This,pDest);
   2653 }
   2654 /*** IMFASFProfile methods ***/
   2655 static FORCEINLINE HRESULT IMFASFProfile_GetStreamCount(IMFASFProfile* This,DWORD *pcStreams) {
   2656     return This->lpVtbl->GetStreamCount(This,pcStreams);
   2657 }
   2658 static FORCEINLINE HRESULT IMFASFProfile_GetStream(IMFASFProfile* This,DWORD dwStreamIndex,WORD *pwStreamNumber,IMFASFStreamConfig **ppIStream) {
   2659     return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream);
   2660 }
   2661 static FORCEINLINE HRESULT IMFASFProfile_GetStreamByNumber(IMFASFProfile* This,WORD wStreamNumber,IMFASFStreamConfig **ppIStream) {
   2662     return This->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream);
   2663 }
   2664 static FORCEINLINE HRESULT IMFASFProfile_SetStream(IMFASFProfile* This,IMFASFStreamConfig *pIStream) {
   2665     return This->lpVtbl->SetStream(This,pIStream);
   2666 }
   2667 static FORCEINLINE HRESULT IMFASFProfile_RemoveStream(IMFASFProfile* This,WORD wStreamNumber) {
   2668     return This->lpVtbl->RemoveStream(This,wStreamNumber);
   2669 }
   2670 static FORCEINLINE HRESULT IMFASFProfile_CreateStream(IMFASFProfile* This,IMFMediaType *pIMediaType,IMFASFStreamConfig **ppIStream) {
   2671     return This->lpVtbl->CreateStream(This,pIMediaType,ppIStream);
   2672 }
   2673 static FORCEINLINE HRESULT IMFASFProfile_GetMutualExclusionCount(IMFASFProfile* This,DWORD *pcMutexs) {
   2674     return This->lpVtbl->GetMutualExclusionCount(This,pcMutexs);
   2675 }
   2676 static FORCEINLINE HRESULT IMFASFProfile_GetMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex,IMFASFMutualExclusion **ppIMutex) {
   2677     return This->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex);
   2678 }
   2679 static FORCEINLINE HRESULT IMFASFProfile_AddMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion *pIMutex) {
   2680     return This->lpVtbl->AddMutualExclusion(This,pIMutex);
   2681 }
   2682 static FORCEINLINE HRESULT IMFASFProfile_RemoveMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex) {
   2683     return This->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex);
   2684 }
   2685 static FORCEINLINE HRESULT IMFASFProfile_CreateMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion **ppIMutex) {
   2686     return This->lpVtbl->CreateMutualExclusion(This,ppIMutex);
   2687 }
   2688 static FORCEINLINE HRESULT IMFASFProfile_GetStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) {
   2689     return This->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization);
   2690 }
   2691 static FORCEINLINE HRESULT IMFASFProfile_AddStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization *pIStreamPrioritization) {
   2692     return This->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization);
   2693 }
   2694 static FORCEINLINE HRESULT IMFASFProfile_RemoveStreamPrioritization(IMFASFProfile* This) {
   2695     return This->lpVtbl->RemoveStreamPrioritization(This);
   2696 }
   2697 static FORCEINLINE HRESULT IMFASFProfile_CreateStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) {
   2698     return This->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization);
   2699 }
   2700 static FORCEINLINE HRESULT IMFASFProfile_Clone(IMFASFProfile* This,IMFASFProfile **ppIProfile) {
   2701     return This->lpVtbl->Clone(This,ppIProfile);
   2702 }
   2703 #endif
   2704 #endif
   2705 
   2706 #endif
   2707 
   2708 HRESULT STDMETHODCALLTYPE IMFASFProfile_GetStreamCount_Proxy(
   2709     IMFASFProfile* This,
   2710     DWORD *pcStreams);
   2711 void __RPC_STUB IMFASFProfile_GetStreamCount_Stub(
   2712     IRpcStubBuffer* This,
   2713     IRpcChannelBuffer* pRpcChannelBuffer,
   2714     PRPC_MESSAGE pRpcMessage,
   2715     DWORD* pdwStubPhase);
   2716 HRESULT STDMETHODCALLTYPE IMFASFProfile_GetStream_Proxy(
   2717     IMFASFProfile* This,
   2718     DWORD dwStreamIndex,
   2719     WORD *pwStreamNumber,
   2720     IMFASFStreamConfig **ppIStream);
   2721 void __RPC_STUB IMFASFProfile_GetStream_Stub(
   2722     IRpcStubBuffer* This,
   2723     IRpcChannelBuffer* pRpcChannelBuffer,
   2724     PRPC_MESSAGE pRpcMessage,
   2725     DWORD* pdwStubPhase);
   2726 HRESULT STDMETHODCALLTYPE IMFASFProfile_GetStreamByNumber_Proxy(
   2727     IMFASFProfile* This,
   2728     WORD wStreamNumber,
   2729     IMFASFStreamConfig **ppIStream);
   2730 void __RPC_STUB IMFASFProfile_GetStreamByNumber_Stub(
   2731     IRpcStubBuffer* This,
   2732     IRpcChannelBuffer* pRpcChannelBuffer,
   2733     PRPC_MESSAGE pRpcMessage,
   2734     DWORD* pdwStubPhase);
   2735 HRESULT STDMETHODCALLTYPE IMFASFProfile_SetStream_Proxy(
   2736     IMFASFProfile* This,
   2737     IMFASFStreamConfig *pIStream);
   2738 void __RPC_STUB IMFASFProfile_SetStream_Stub(
   2739     IRpcStubBuffer* This,
   2740     IRpcChannelBuffer* pRpcChannelBuffer,
   2741     PRPC_MESSAGE pRpcMessage,
   2742     DWORD* pdwStubPhase);
   2743 HRESULT STDMETHODCALLTYPE IMFASFProfile_RemoveStream_Proxy(
   2744     IMFASFProfile* This,
   2745     WORD wStreamNumber);
   2746 void __RPC_STUB IMFASFProfile_RemoveStream_Stub(
   2747     IRpcStubBuffer* This,
   2748     IRpcChannelBuffer* pRpcChannelBuffer,
   2749     PRPC_MESSAGE pRpcMessage,
   2750     DWORD* pdwStubPhase);
   2751 HRESULT STDMETHODCALLTYPE IMFASFProfile_CreateStream_Proxy(
   2752     IMFASFProfile* This,
   2753     IMFMediaType *pIMediaType,
   2754     IMFASFStreamConfig **ppIStream);
   2755 void __RPC_STUB IMFASFProfile_CreateStream_Stub(
   2756     IRpcStubBuffer* This,
   2757     IRpcChannelBuffer* pRpcChannelBuffer,
   2758     PRPC_MESSAGE pRpcMessage,
   2759     DWORD* pdwStubPhase);
   2760 HRESULT STDMETHODCALLTYPE IMFASFProfile_GetMutualExclusionCount_Proxy(
   2761     IMFASFProfile* This,
   2762     DWORD *pcMutexs);
   2763 void __RPC_STUB IMFASFProfile_GetMutualExclusionCount_Stub(
   2764     IRpcStubBuffer* This,
   2765     IRpcChannelBuffer* pRpcChannelBuffer,
   2766     PRPC_MESSAGE pRpcMessage,
   2767     DWORD* pdwStubPhase);
   2768 HRESULT STDMETHODCALLTYPE IMFASFProfile_GetMutualExclusion_Proxy(
   2769     IMFASFProfile* This,
   2770     DWORD dwMutexIndex,
   2771     IMFASFMutualExclusion **ppIMutex);
   2772 void __RPC_STUB IMFASFProfile_GetMutualExclusion_Stub(
   2773     IRpcStubBuffer* This,
   2774     IRpcChannelBuffer* pRpcChannelBuffer,
   2775     PRPC_MESSAGE pRpcMessage,
   2776     DWORD* pdwStubPhase);
   2777 HRESULT STDMETHODCALLTYPE IMFASFProfile_AddMutualExclusion_Proxy(
   2778     IMFASFProfile* This,
   2779     IMFASFMutualExclusion *pIMutex);
   2780 void __RPC_STUB IMFASFProfile_AddMutualExclusion_Stub(
   2781     IRpcStubBuffer* This,
   2782     IRpcChannelBuffer* pRpcChannelBuffer,
   2783     PRPC_MESSAGE pRpcMessage,
   2784     DWORD* pdwStubPhase);
   2785 HRESULT STDMETHODCALLTYPE IMFASFProfile_RemoveMutualExclusion_Proxy(
   2786     IMFASFProfile* This,
   2787     DWORD dwMutexIndex);
   2788 void __RPC_STUB IMFASFProfile_RemoveMutualExclusion_Stub(
   2789     IRpcStubBuffer* This,
   2790     IRpcChannelBuffer* pRpcChannelBuffer,
   2791     PRPC_MESSAGE pRpcMessage,
   2792     DWORD* pdwStubPhase);
   2793 HRESULT STDMETHODCALLTYPE IMFASFProfile_CreateMutualExclusion_Proxy(
   2794     IMFASFProfile* This,
   2795     IMFASFMutualExclusion **ppIMutex);
   2796 void __RPC_STUB IMFASFProfile_CreateMutualExclusion_Stub(
   2797     IRpcStubBuffer* This,
   2798     IRpcChannelBuffer* pRpcChannelBuffer,
   2799     PRPC_MESSAGE pRpcMessage,
   2800     DWORD* pdwStubPhase);
   2801 HRESULT STDMETHODCALLTYPE IMFASFProfile_GetStreamPrioritization_Proxy(
   2802     IMFASFProfile* This,
   2803     IMFASFStreamPrioritization **ppIStreamPrioritization);
   2804 void __RPC_STUB IMFASFProfile_GetStreamPrioritization_Stub(
   2805     IRpcStubBuffer* This,
   2806     IRpcChannelBuffer* pRpcChannelBuffer,
   2807     PRPC_MESSAGE pRpcMessage,
   2808     DWORD* pdwStubPhase);
   2809 HRESULT STDMETHODCALLTYPE IMFASFProfile_AddStreamPrioritization_Proxy(
   2810     IMFASFProfile* This,
   2811     IMFASFStreamPrioritization *pIStreamPrioritization);
   2812 void __RPC_STUB IMFASFProfile_AddStreamPrioritization_Stub(
   2813     IRpcStubBuffer* This,
   2814     IRpcChannelBuffer* pRpcChannelBuffer,
   2815     PRPC_MESSAGE pRpcMessage,
   2816     DWORD* pdwStubPhase);
   2817 HRESULT STDMETHODCALLTYPE IMFASFProfile_RemoveStreamPrioritization_Proxy(
   2818     IMFASFProfile* This);
   2819 void __RPC_STUB IMFASFProfile_RemoveStreamPrioritization_Stub(
   2820     IRpcStubBuffer* This,
   2821     IRpcChannelBuffer* pRpcChannelBuffer,
   2822     PRPC_MESSAGE pRpcMessage,
   2823     DWORD* pdwStubPhase);
   2824 HRESULT STDMETHODCALLTYPE IMFASFProfile_CreateStreamPrioritization_Proxy(
   2825     IMFASFProfile* This,
   2826     IMFASFStreamPrioritization **ppIStreamPrioritization);
   2827 void __RPC_STUB IMFASFProfile_CreateStreamPrioritization_Stub(
   2828     IRpcStubBuffer* This,
   2829     IRpcChannelBuffer* pRpcChannelBuffer,
   2830     PRPC_MESSAGE pRpcMessage,
   2831     DWORD* pdwStubPhase);
   2832 HRESULT STDMETHODCALLTYPE IMFASFProfile_Clone_Proxy(
   2833     IMFASFProfile* This,
   2834     IMFASFProfile **ppIProfile);
   2835 void __RPC_STUB IMFASFProfile_Clone_Stub(
   2836     IRpcStubBuffer* This,
   2837     IRpcChannelBuffer* pRpcChannelBuffer,
   2838     PRPC_MESSAGE pRpcMessage,
   2839     DWORD* pdwStubPhase);
   2840 
   2841 #endif  /* __IMFASFProfile_INTERFACE_DEFINED__ */
   2842 
   2843 /*****************************************************************************
   2844  * IMFASFStreamConfig interface
   2845  */
   2846 #ifndef __IMFASFStreamConfig_INTERFACE_DEFINED__
   2847 #define __IMFASFStreamConfig_INTERFACE_DEFINED__
   2848 
   2849 DEFINE_GUID(IID_IMFASFStreamConfig, 0x9e8ae8d2, 0xdbbd, 0x4200, 0x9a,0xca, 0x06,0xe6,0xdf,0x48,0x49,0x13);
   2850 #if defined(__cplusplus) && !defined(CINTERFACE)
   2851 MIDL_INTERFACE("9e8ae8d2-dbbd-4200-9aca-06e6df484913")
   2852 IMFASFStreamConfig : public IMFAttributes
   2853 {
   2854     virtual HRESULT STDMETHODCALLTYPE GetStreamType(
   2855         GUID *pguidStreamType) = 0;
   2856 
   2857     virtual WORD STDMETHODCALLTYPE GetStreamNumber(
   2858         ) = 0;
   2859 
   2860     virtual HRESULT STDMETHODCALLTYPE SetStreamNumber(
   2861         WORD wStreamNum) = 0;
   2862 
   2863     virtual HRESULT STDMETHODCALLTYPE GetMediaType(
   2864         IMFMediaType **ppIMediaType) = 0;
   2865 
   2866     virtual HRESULT STDMETHODCALLTYPE SetMediaType(
   2867         IMFMediaType *pIMediaType) = 0;
   2868 
   2869     virtual HRESULT STDMETHODCALLTYPE GetPayloadExtensionCount(
   2870         WORD *pcPayloadExtensions) = 0;
   2871 
   2872     virtual HRESULT STDMETHODCALLTYPE GetPayloadExtension(
   2873         WORD wPayloadExtensionNumber,
   2874         GUID *pguidExtensionSystemID,
   2875         WORD *pcbExtensionDataSize,
   2876         BYTE *pbExtensionSystemInfo,
   2877         DWORD *pcbExtensionSystemInfo) = 0;
   2878 
   2879     virtual HRESULT STDMETHODCALLTYPE AddPayloadExtension(
   2880         GUID guidExtensionSystemID,
   2881         WORD cbExtensionDataSize,
   2882         BYTE *pbExtensionSystemInfo,
   2883         DWORD cbExtensionSystemInfo) = 0;
   2884 
   2885     virtual HRESULT STDMETHODCALLTYPE RemoveAllPayloadExtensions(
   2886         ) = 0;
   2887 
   2888     virtual HRESULT STDMETHODCALLTYPE Clone(
   2889         IMFASFStreamConfig **ppIStreamConfig) = 0;
   2890 
   2891 };
   2892 #ifdef __CRT_UUID_DECL
   2893 __CRT_UUID_DECL(IMFASFStreamConfig, 0x9e8ae8d2, 0xdbbd, 0x4200, 0x9a,0xca, 0x06,0xe6,0xdf,0x48,0x49,0x13)
   2894 #endif
   2895 #else
   2896 typedef struct IMFASFStreamConfigVtbl {
   2897     BEGIN_INTERFACE
   2898 
   2899     /*** IUnknown methods ***/
   2900     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2901         IMFASFStreamConfig* This,
   2902         REFIID riid,
   2903         void **ppvObject);
   2904 
   2905     ULONG (STDMETHODCALLTYPE *AddRef)(
   2906         IMFASFStreamConfig* This);
   2907 
   2908     ULONG (STDMETHODCALLTYPE *Release)(
   2909         IMFASFStreamConfig* This);
   2910 
   2911     /*** IMFAttributes methods ***/
   2912     HRESULT (STDMETHODCALLTYPE *GetItem)(
   2913         IMFASFStreamConfig* This,
   2914         REFGUID guidKey,
   2915         PROPVARIANT *pValue);
   2916 
   2917     HRESULT (STDMETHODCALLTYPE *GetItemType)(
   2918         IMFASFStreamConfig* This,
   2919         REFGUID guidKey,
   2920         MF_ATTRIBUTE_TYPE *pType);
   2921 
   2922     HRESULT (STDMETHODCALLTYPE *CompareItem)(
   2923         IMFASFStreamConfig* This,
   2924         REFGUID guidKey,
   2925         REFPROPVARIANT Value,
   2926         WINBOOL *pbResult);
   2927 
   2928     HRESULT (STDMETHODCALLTYPE *Compare)(
   2929         IMFASFStreamConfig* This,
   2930         IMFAttributes *pTheirs,
   2931         MF_ATTRIBUTES_MATCH_TYPE MatchType,
   2932         WINBOOL *pbResult);
   2933 
   2934     HRESULT (STDMETHODCALLTYPE *GetUINT32)(
   2935         IMFASFStreamConfig* This,
   2936         REFGUID guidKey,
   2937         UINT32 *punValue);
   2938 
   2939     HRESULT (STDMETHODCALLTYPE *GetUINT64)(
   2940         IMFASFStreamConfig* This,
   2941         REFGUID guidKey,
   2942         UINT64 *punValue);
   2943 
   2944     HRESULT (STDMETHODCALLTYPE *GetDouble)(
   2945         IMFASFStreamConfig* This,
   2946         REFGUID guidKey,
   2947         double *pfValue);
   2948 
   2949     HRESULT (STDMETHODCALLTYPE *GetGUID)(
   2950         IMFASFStreamConfig* This,
   2951         REFGUID guidKey,
   2952         GUID *pguidValue);
   2953 
   2954     HRESULT (STDMETHODCALLTYPE *GetStringLength)(
   2955         IMFASFStreamConfig* This,
   2956         REFGUID guidKey,
   2957         UINT32 *pcchLength);
   2958 
   2959     HRESULT (STDMETHODCALLTYPE *GetString)(
   2960         IMFASFStreamConfig* This,
   2961         REFGUID guidKey,
   2962         LPWSTR pwszValue,
   2963         UINT32 cchBufSize,
   2964         UINT32 *pcchLength);
   2965 
   2966     HRESULT (STDMETHODCALLTYPE *GetAllocatedString)(
   2967         IMFASFStreamConfig* This,
   2968         REFGUID guidKey,
   2969         LPWSTR *ppwszValue,
   2970         UINT32 *pcchLength);
   2971 
   2972     HRESULT (STDMETHODCALLTYPE *GetBlobSize)(
   2973         IMFASFStreamConfig* This,
   2974         REFGUID guidKey,
   2975         UINT32 *pcbBlobSize);
   2976 
   2977     HRESULT (STDMETHODCALLTYPE *GetBlob)(
   2978         IMFASFStreamConfig* This,
   2979         REFGUID guidKey,
   2980         UINT8 *pBuf,
   2981         UINT32 cbBufSize,
   2982         UINT32 *pcbBlobSize);
   2983 
   2984     HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)(
   2985         IMFASFStreamConfig* This,
   2986         REFGUID guidKey,
   2987         UINT8 **ppBuf,
   2988         UINT32 *pcbSize);
   2989 
   2990     HRESULT (STDMETHODCALLTYPE *GetUnknown)(
   2991         IMFASFStreamConfig* This,
   2992         REFGUID guidKey,
   2993         REFIID riid,
   2994         LPVOID *ppv);
   2995 
   2996     HRESULT (STDMETHODCALLTYPE *SetItem)(
   2997         IMFASFStreamConfig* This,
   2998         REFGUID guidKey,
   2999         REFPROPVARIANT Value);
   3000 
   3001     HRESULT (STDMETHODCALLTYPE *DeleteItem)(
   3002         IMFASFStreamConfig* This,
   3003         REFGUID guidKey);
   3004 
   3005     HRESULT (STDMETHODCALLTYPE *DeleteAllItems)(
   3006         IMFASFStreamConfig* This);
   3007 
   3008     HRESULT (STDMETHODCALLTYPE *SetUINT32)(
   3009         IMFASFStreamConfig* This,
   3010         REFGUID guidKey,
   3011         UINT32 unValue);
   3012 
   3013     HRESULT (STDMETHODCALLTYPE *SetUINT64)(
   3014         IMFASFStreamConfig* This,
   3015         REFGUID guidKey,
   3016         UINT64 unValue);
   3017 
   3018     HRESULT (STDMETHODCALLTYPE *SetDouble)(
   3019         IMFASFStreamConfig* This,
   3020         REFGUID guidKey,
   3021         double fValue);
   3022 
   3023     HRESULT (STDMETHODCALLTYPE *SetGUID)(
   3024         IMFASFStreamConfig* This,
   3025         REFGUID guidKey,
   3026         REFGUID guidValue);
   3027 
   3028     HRESULT (STDMETHODCALLTYPE *SetString)(
   3029         IMFASFStreamConfig* This,
   3030         REFGUID guidKey,
   3031         LPCWSTR wszValue);
   3032 
   3033     HRESULT (STDMETHODCALLTYPE *SetBlob)(
   3034         IMFASFStreamConfig* This,
   3035         REFGUID guidKey,
   3036         const UINT8 *pBuf,
   3037         UINT32 cbBufSize);
   3038 
   3039     HRESULT (STDMETHODCALLTYPE *SetUnknown)(
   3040         IMFASFStreamConfig* This,
   3041         REFGUID guidKey,
   3042         IUnknown *pUnknown);
   3043 
   3044     HRESULT (STDMETHODCALLTYPE *LockStore)(
   3045         IMFASFStreamConfig* This);
   3046 
   3047     HRESULT (STDMETHODCALLTYPE *UnlockStore)(
   3048         IMFASFStreamConfig* This);
   3049 
   3050     HRESULT (STDMETHODCALLTYPE *GetCount)(
   3051         IMFASFStreamConfig* This,
   3052         UINT32 *pcItems);
   3053 
   3054     HRESULT (STDMETHODCALLTYPE *GetItemByIndex)(
   3055         IMFASFStreamConfig* This,
   3056         UINT32 unIndex,
   3057         GUID *pguidKey,
   3058         PROPVARIANT *pValue);
   3059 
   3060     HRESULT (STDMETHODCALLTYPE *CopyAllItems)(
   3061         IMFASFStreamConfig* This,
   3062         IMFAttributes *pDest);
   3063 
   3064     /*** IMFASFStreamConfig methods ***/
   3065     HRESULT (STDMETHODCALLTYPE *GetStreamType)(
   3066         IMFASFStreamConfig* This,
   3067         GUID *pguidStreamType);
   3068 
   3069     WORD (STDMETHODCALLTYPE *GetStreamNumber)(
   3070         IMFASFStreamConfig* This);
   3071 
   3072     HRESULT (STDMETHODCALLTYPE *SetStreamNumber)(
   3073         IMFASFStreamConfig* This,
   3074         WORD wStreamNum);
   3075 
   3076     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
   3077         IMFASFStreamConfig* This,
   3078         IMFMediaType **ppIMediaType);
   3079 
   3080     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
   3081         IMFASFStreamConfig* This,
   3082         IMFMediaType *pIMediaType);
   3083 
   3084     HRESULT (STDMETHODCALLTYPE *GetPayloadExtensionCount)(
   3085         IMFASFStreamConfig* This,
   3086         WORD *pcPayloadExtensions);
   3087 
   3088     HRESULT (STDMETHODCALLTYPE *GetPayloadExtension)(
   3089         IMFASFStreamConfig* This,
   3090         WORD wPayloadExtensionNumber,
   3091         GUID *pguidExtensionSystemID,
   3092         WORD *pcbExtensionDataSize,
   3093         BYTE *pbExtensionSystemInfo,
   3094         DWORD *pcbExtensionSystemInfo);
   3095 
   3096     HRESULT (STDMETHODCALLTYPE *AddPayloadExtension)(
   3097         IMFASFStreamConfig* This,
   3098         GUID guidExtensionSystemID,
   3099         WORD cbExtensionDataSize,
   3100         BYTE *pbExtensionSystemInfo,
   3101         DWORD cbExtensionSystemInfo);
   3102 
   3103     HRESULT (STDMETHODCALLTYPE *RemoveAllPayloadExtensions)(
   3104         IMFASFStreamConfig* This);
   3105 
   3106     HRESULT (STDMETHODCALLTYPE *Clone)(
   3107         IMFASFStreamConfig* This,
   3108         IMFASFStreamConfig **ppIStreamConfig);
   3109 
   3110     END_INTERFACE
   3111 } IMFASFStreamConfigVtbl;
   3112 interface IMFASFStreamConfig {
   3113     CONST_VTBL IMFASFStreamConfigVtbl* lpVtbl;
   3114 };
   3115 
   3116 #ifdef COBJMACROS
   3117 #ifndef WIDL_C_INLINE_WRAPPERS
   3118 /*** IUnknown methods ***/
   3119 #define IMFASFStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3120 #define IMFASFStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
   3121 #define IMFASFStreamConfig_Release(This) (This)->lpVtbl->Release(This)
   3122 /*** IMFAttributes methods ***/
   3123 #define IMFASFStreamConfig_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue)
   3124 #define IMFASFStreamConfig_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType)
   3125 #define IMFASFStreamConfig_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult)
   3126 #define IMFASFStreamConfig_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult)
   3127 #define IMFASFStreamConfig_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue)
   3128 #define IMFASFStreamConfig_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue)
   3129 #define IMFASFStreamConfig_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue)
   3130 #define IMFASFStreamConfig_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue)
   3131 #define IMFASFStreamConfig_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength)
   3132 #define IMFASFStreamConfig_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength)
   3133 #define IMFASFStreamConfig_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength)
   3134 #define IMFASFStreamConfig_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize)
   3135 #define IMFASFStreamConfig_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize)
   3136 #define IMFASFStreamConfig_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize)
   3137 #define IMFASFStreamConfig_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv)
   3138 #define IMFASFStreamConfig_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value)
   3139 #define IMFASFStreamConfig_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey)
   3140 #define IMFASFStreamConfig_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This)
   3141 #define IMFASFStreamConfig_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue)
   3142 #define IMFASFStreamConfig_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue)
   3143 #define IMFASFStreamConfig_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue)
   3144 #define IMFASFStreamConfig_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue)
   3145 #define IMFASFStreamConfig_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue)
   3146 #define IMFASFStreamConfig_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize)
   3147 #define IMFASFStreamConfig_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown)
   3148 #define IMFASFStreamConfig_LockStore(This) (This)->lpVtbl->LockStore(This)
   3149 #define IMFASFStreamConfig_UnlockStore(This) (This)->lpVtbl->UnlockStore(This)
   3150 #define IMFASFStreamConfig_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems)
   3151 #define IMFASFStreamConfig_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue)
   3152 #define IMFASFStreamConfig_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest)
   3153 /*** IMFASFStreamConfig methods ***/
   3154 #define IMFASFStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType)
   3155 #define IMFASFStreamConfig_GetStreamNumber(This) (This)->lpVtbl->GetStreamNumber(This)
   3156 #define IMFASFStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum)
   3157 #define IMFASFStreamConfig_GetMediaType(This,ppIMediaType) (This)->lpVtbl->GetMediaType(This,ppIMediaType)
   3158 #define IMFASFStreamConfig_SetMediaType(This,pIMediaType) (This)->lpVtbl->SetMediaType(This,pIMediaType)
   3159 #define IMFASFStreamConfig_GetPayloadExtensionCount(This,pcPayloadExtensions) (This)->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions)
   3160 #define IMFASFStreamConfig_GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) (This)->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo)
   3161 #define IMFASFStreamConfig_AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) (This)->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo)
   3162 #define IMFASFStreamConfig_RemoveAllPayloadExtensions(This) (This)->lpVtbl->RemoveAllPayloadExtensions(This)
   3163 #define IMFASFStreamConfig_Clone(This,ppIStreamConfig) (This)->lpVtbl->Clone(This,ppIStreamConfig)
   3164 #else
   3165 /*** IUnknown methods ***/
   3166 static FORCEINLINE HRESULT IMFASFStreamConfig_QueryInterface(IMFASFStreamConfig* This,REFIID riid,void **ppvObject) {
   3167     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3168 }
   3169 static FORCEINLINE ULONG IMFASFStreamConfig_AddRef(IMFASFStreamConfig* This) {
   3170     return This->lpVtbl->AddRef(This);
   3171 }
   3172 static FORCEINLINE ULONG IMFASFStreamConfig_Release(IMFASFStreamConfig* This) {
   3173     return This->lpVtbl->Release(This);
   3174 }
   3175 /*** IMFAttributes methods ***/
   3176 static FORCEINLINE HRESULT IMFASFStreamConfig_GetItem(IMFASFStreamConfig* This,REFGUID guidKey,PROPVARIANT *pValue) {
   3177     return This->lpVtbl->GetItem(This,guidKey,pValue);
   3178 }
   3179 static FORCEINLINE HRESULT IMFASFStreamConfig_GetItemType(IMFASFStreamConfig* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
   3180     return This->lpVtbl->GetItemType(This,guidKey,pType);
   3181 }
   3182 static FORCEINLINE HRESULT IMFASFStreamConfig_CompareItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
   3183     return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
   3184 }
   3185 static FORCEINLINE HRESULT IMFASFStreamConfig_Compare(IMFASFStreamConfig* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) {
   3186     return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult);
   3187 }
   3188 static FORCEINLINE HRESULT IMFASFStreamConfig_GetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *punValue) {
   3189     return This->lpVtbl->GetUINT32(This,guidKey,punValue);
   3190 }
   3191 static FORCEINLINE HRESULT IMFASFStreamConfig_GetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 *punValue) {
   3192     return This->lpVtbl->GetUINT64(This,guidKey,punValue);
   3193 }
   3194 static FORCEINLINE HRESULT IMFASFStreamConfig_GetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double *pfValue) {
   3195     return This->lpVtbl->GetDouble(This,guidKey,pfValue);
   3196 }
   3197 static FORCEINLINE HRESULT IMFASFStreamConfig_GetGUID(IMFASFStreamConfig* This,REFGUID guidKey,GUID *pguidValue) {
   3198     return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
   3199 }
   3200 static FORCEINLINE HRESULT IMFASFStreamConfig_GetStringLength(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcchLength) {
   3201     return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
   3202 }
   3203 static FORCEINLINE HRESULT IMFASFStreamConfig_GetString(IMFASFStreamConfig* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) {
   3204     return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength);
   3205 }
   3206 static FORCEINLINE HRESULT IMFASFStreamConfig_GetAllocatedString(IMFASFStreamConfig* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
   3207     return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
   3208 }
   3209 static FORCEINLINE HRESULT IMFASFStreamConfig_GetBlobSize(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
   3210     return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
   3211 }
   3212 static FORCEINLINE HRESULT IMFASFStreamConfig_GetBlob(IMFASFStreamConfig* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) {
   3213     return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize);
   3214 }
   3215 static FORCEINLINE HRESULT IMFASFStreamConfig_GetAllocatedBlob(IMFASFStreamConfig* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
   3216     return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
   3217 }
   3218 static FORCEINLINE HRESULT IMFASFStreamConfig_GetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
   3219     return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
   3220 }
   3221 static FORCEINLINE HRESULT IMFASFStreamConfig_SetItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value) {
   3222     return This->lpVtbl->SetItem(This,guidKey,Value);
   3223 }
   3224 static FORCEINLINE HRESULT IMFASFStreamConfig_DeleteItem(IMFASFStreamConfig* This,REFGUID guidKey) {
   3225     return This->lpVtbl->DeleteItem(This,guidKey);
   3226 }
   3227 static FORCEINLINE HRESULT IMFASFStreamConfig_DeleteAllItems(IMFASFStreamConfig* This) {
   3228     return This->lpVtbl->DeleteAllItems(This);
   3229 }
   3230 static FORCEINLINE HRESULT IMFASFStreamConfig_SetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 unValue) {
   3231     return This->lpVtbl->SetUINT32(This,guidKey,unValue);
   3232 }
   3233 static FORCEINLINE HRESULT IMFASFStreamConfig_SetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 unValue) {
   3234     return This->lpVtbl->SetUINT64(This,guidKey,unValue);
   3235 }
   3236 static FORCEINLINE HRESULT IMFASFStreamConfig_SetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double fValue) {
   3237     return This->lpVtbl->SetDouble(This,guidKey,fValue);
   3238 }
   3239 static FORCEINLINE HRESULT IMFASFStreamConfig_SetGUID(IMFASFStreamConfig* This,REFGUID guidKey,REFGUID guidValue) {
   3240     return This->lpVtbl->SetGUID(This,guidKey,guidValue);
   3241 }
   3242 static FORCEINLINE HRESULT IMFASFStreamConfig_SetString(IMFASFStreamConfig* This,REFGUID guidKey,LPCWSTR wszValue) {
   3243     return This->lpVtbl->SetString(This,guidKey,wszValue);
   3244 }
   3245 static FORCEINLINE HRESULT IMFASFStreamConfig_SetBlob(IMFASFStreamConfig* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
   3246     return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
   3247 }
   3248 static FORCEINLINE HRESULT IMFASFStreamConfig_SetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,IUnknown *pUnknown) {
   3249     return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
   3250 }
   3251 static FORCEINLINE HRESULT IMFASFStreamConfig_LockStore(IMFASFStreamConfig* This) {
   3252     return This->lpVtbl->LockStore(This);
   3253 }
   3254 static FORCEINLINE HRESULT IMFASFStreamConfig_UnlockStore(IMFASFStreamConfig* This) {
   3255     return This->lpVtbl->UnlockStore(This);
   3256 }
   3257 static FORCEINLINE HRESULT IMFASFStreamConfig_GetCount(IMFASFStreamConfig* This,UINT32 *pcItems) {
   3258     return This->lpVtbl->GetCount(This,pcItems);
   3259 }
   3260 static FORCEINLINE HRESULT IMFASFStreamConfig_GetItemByIndex(IMFASFStreamConfig* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
   3261     return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
   3262 }
   3263 static FORCEINLINE HRESULT IMFASFStreamConfig_CopyAllItems(IMFASFStreamConfig* This,IMFAttributes *pDest) {
   3264     return This->lpVtbl->CopyAllItems(This,pDest);
   3265 }
   3266 /*** IMFASFStreamConfig methods ***/
   3267 static FORCEINLINE HRESULT IMFASFStreamConfig_GetStreamType(IMFASFStreamConfig* This,GUID *pguidStreamType) {
   3268     return This->lpVtbl->GetStreamType(This,pguidStreamType);
   3269 }
   3270 static FORCEINLINE WORD IMFASFStreamConfig_GetStreamNumber(IMFASFStreamConfig* This) {
   3271     return This->lpVtbl->GetStreamNumber(This);
   3272 }
   3273 static FORCEINLINE HRESULT IMFASFStreamConfig_SetStreamNumber(IMFASFStreamConfig* This,WORD wStreamNum) {
   3274     return This->lpVtbl->SetStreamNumber(This,wStreamNum);
   3275 }
   3276 static FORCEINLINE HRESULT IMFASFStreamConfig_GetMediaType(IMFASFStreamConfig* This,IMFMediaType **ppIMediaType) {
   3277     return This->lpVtbl->GetMediaType(This,ppIMediaType);
   3278 }
   3279 static FORCEINLINE HRESULT IMFASFStreamConfig_SetMediaType(IMFASFStreamConfig* This,IMFMediaType *pIMediaType) {
   3280     return This->lpVtbl->SetMediaType(This,pIMediaType);
   3281 }
   3282 static FORCEINLINE HRESULT IMFASFStreamConfig_GetPayloadExtensionCount(IMFASFStreamConfig* This,WORD *pcPayloadExtensions) {
   3283     return This->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions);
   3284 }
   3285 static FORCEINLINE HRESULT IMFASFStreamConfig_GetPayloadExtension(IMFASFStreamConfig* This,WORD wPayloadExtensionNumber,GUID *pguidExtensionSystemID,WORD *pcbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD *pcbExtensionSystemInfo) {
   3286     return This->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo);
   3287 }
   3288 static FORCEINLINE HRESULT IMFASFStreamConfig_AddPayloadExtension(IMFASFStreamConfig* This,GUID guidExtensionSystemID,WORD cbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD cbExtensionSystemInfo) {
   3289     return This->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo);
   3290 }
   3291 static FORCEINLINE HRESULT IMFASFStreamConfig_RemoveAllPayloadExtensions(IMFASFStreamConfig* This) {
   3292     return This->lpVtbl->RemoveAllPayloadExtensions(This);
   3293 }
   3294 static FORCEINLINE HRESULT IMFASFStreamConfig_Clone(IMFASFStreamConfig* This,IMFASFStreamConfig **ppIStreamConfig) {
   3295     return This->lpVtbl->Clone(This,ppIStreamConfig);
   3296 }
   3297 #endif
   3298 #endif
   3299 
   3300 #endif
   3301 
   3302 HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_GetStreamType_Proxy(
   3303     IMFASFStreamConfig* This,
   3304     GUID *pguidStreamType);
   3305 void __RPC_STUB IMFASFStreamConfig_GetStreamType_Stub(
   3306     IRpcStubBuffer* This,
   3307     IRpcChannelBuffer* pRpcChannelBuffer,
   3308     PRPC_MESSAGE pRpcMessage,
   3309     DWORD* pdwStubPhase);
   3310 WORD STDMETHODCALLTYPE IMFASFStreamConfig_GetStreamNumber_Proxy(
   3311     IMFASFStreamConfig* This);
   3312 void __RPC_STUB IMFASFStreamConfig_GetStreamNumber_Stub(
   3313     IRpcStubBuffer* This,
   3314     IRpcChannelBuffer* pRpcChannelBuffer,
   3315     PRPC_MESSAGE pRpcMessage,
   3316     DWORD* pdwStubPhase);
   3317 HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_SetStreamNumber_Proxy(
   3318     IMFASFStreamConfig* This,
   3319     WORD wStreamNum);
   3320 void __RPC_STUB IMFASFStreamConfig_SetStreamNumber_Stub(
   3321     IRpcStubBuffer* This,
   3322     IRpcChannelBuffer* pRpcChannelBuffer,
   3323     PRPC_MESSAGE pRpcMessage,
   3324     DWORD* pdwStubPhase);
   3325 HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_GetMediaType_Proxy(
   3326     IMFASFStreamConfig* This,
   3327     IMFMediaType **ppIMediaType);
   3328 void __RPC_STUB IMFASFStreamConfig_GetMediaType_Stub(
   3329     IRpcStubBuffer* This,
   3330     IRpcChannelBuffer* pRpcChannelBuffer,
   3331     PRPC_MESSAGE pRpcMessage,
   3332     DWORD* pdwStubPhase);
   3333 HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_SetMediaType_Proxy(
   3334     IMFASFStreamConfig* This,
   3335     IMFMediaType *pIMediaType);
   3336 void __RPC_STUB IMFASFStreamConfig_SetMediaType_Stub(
   3337     IRpcStubBuffer* This,
   3338     IRpcChannelBuffer* pRpcChannelBuffer,
   3339     PRPC_MESSAGE pRpcMessage,
   3340     DWORD* pdwStubPhase);
   3341 HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_GetPayloadExtensionCount_Proxy(
   3342     IMFASFStreamConfig* This,
   3343     WORD *pcPayloadExtensions);
   3344 void __RPC_STUB IMFASFStreamConfig_GetPayloadExtensionCount_Stub(
   3345     IRpcStubBuffer* This,
   3346     IRpcChannelBuffer* pRpcChannelBuffer,
   3347     PRPC_MESSAGE pRpcMessage,
   3348     DWORD* pdwStubPhase);
   3349 HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_GetPayloadExtension_Proxy(
   3350     IMFASFStreamConfig* This,
   3351     WORD wPayloadExtensionNumber,
   3352     GUID *pguidExtensionSystemID,
   3353     WORD *pcbExtensionDataSize,
   3354     BYTE *pbExtensionSystemInfo,
   3355     DWORD *pcbExtensionSystemInfo);
   3356 void __RPC_STUB IMFASFStreamConfig_GetPayloadExtension_Stub(
   3357     IRpcStubBuffer* This,
   3358     IRpcChannelBuffer* pRpcChannelBuffer,
   3359     PRPC_MESSAGE pRpcMessage,
   3360     DWORD* pdwStubPhase);
   3361 HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_AddPayloadExtension_Proxy(
   3362     IMFASFStreamConfig* This,
   3363     GUID guidExtensionSystemID,
   3364     WORD cbExtensionDataSize,
   3365     BYTE *pbExtensionSystemInfo,
   3366     DWORD cbExtensionSystemInfo);
   3367 void __RPC_STUB IMFASFStreamConfig_AddPayloadExtension_Stub(
   3368     IRpcStubBuffer* This,
   3369     IRpcChannelBuffer* pRpcChannelBuffer,
   3370     PRPC_MESSAGE pRpcMessage,
   3371     DWORD* pdwStubPhase);
   3372 HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_RemoveAllPayloadExtensions_Proxy(
   3373     IMFASFStreamConfig* This);
   3374 void __RPC_STUB IMFASFStreamConfig_RemoveAllPayloadExtensions_Stub(
   3375     IRpcStubBuffer* This,
   3376     IRpcChannelBuffer* pRpcChannelBuffer,
   3377     PRPC_MESSAGE pRpcMessage,
   3378     DWORD* pdwStubPhase);
   3379 HRESULT STDMETHODCALLTYPE IMFASFStreamConfig_Clone_Proxy(
   3380     IMFASFStreamConfig* This,
   3381     IMFASFStreamConfig **ppIStreamConfig);
   3382 void __RPC_STUB IMFASFStreamConfig_Clone_Stub(
   3383     IRpcStubBuffer* This,
   3384     IRpcChannelBuffer* pRpcChannelBuffer,
   3385     PRPC_MESSAGE pRpcMessage,
   3386     DWORD* pdwStubPhase);
   3387 
   3388 #endif  /* __IMFASFStreamConfig_INTERFACE_DEFINED__ */
   3389 
   3390 
   3391 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_BASE_SENDTIME = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 3  };
   3392 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 4  };
   3393 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_DRMACTION = { { 0xa1db6f6c, 0x1d0a, 0x4cb6, 0x82, 0x54, 0xcb, 0x36, 0xbe, 0xed, 0xbc, 0x48}, 5  };
   3394 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET = { { 0xa2f152fb, 0x8ad9, 0x4a11, 0xb3, 0x45, 0x2c, 0xe2, 0xfa, 0xd8, 0x72, 0x3d}, 1  };
   3395 
   3396 STDAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo);
   3397 STDAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer);
   3398 STDAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream, QWORD cbIndexStartOffset, IMFByteStream **pIIndexByteStream);
   3399 STDAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink);
   3400 STDAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate);
   3401 STDAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer);
   3402 STDAPI MFCreateASFProfile(IMFASFProfile **ppIProfile);
   3403 STDAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor  *pIPD, IMFASFProfile **ppIProfile);
   3404 STDAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);
   3405 STDAPI MFCreateASFStreamingMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink);
   3406 STDAPI MFCreateASFStreamingMediaSinkActivate(IMFActivate *pByteStreamActivate, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate);
   3407 STDAPI MFCreateASFStreamSelector(IMFASFProfile *pIASFProfile, IMFASFStreamSelector **ppSelector);
   3408 STDAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile, IMFPresentationDescriptor **ppIPD);
   3409 HRESULT STDMETHODCALLTYPE MFCreateWMVEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate);
   3410 HRESULT STDMETHODCALLTYPE MFCreateWMAEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate);
   3411 #endif
   3412 /* Begin additional prototypes for all interfaces */
   3413 
   3414 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
   3415 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
   3416 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
   3417 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
   3418 
   3419 /* End additional prototypes */
   3420 
   3421 #ifdef __cplusplus
   3422 }
   3423 #endif
   3424 
   3425 #endif /* __wmcontainer_h__ */
   3426