|  | /*** Autogenerated by WIDL 9.8 from include/wmcontainer.idl - Do not edit ***/ | 
|  |  | 
|  | #ifdef _WIN32 | 
|  | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | 
|  | #define __REQUIRED_RPCNDR_H_VERSION__ 475 | 
|  | #endif | 
|  | #include <rpc.h> | 
|  | #include <rpcndr.h> | 
|  | #endif | 
|  |  | 
|  | #ifndef COM_NO_WINDOWS_H | 
|  | #include <windows.h> | 
|  | #include <ole2.h> | 
|  | #endif | 
|  |  | 
|  | #ifndef __wmcontainer_h__ | 
|  | #define __wmcontainer_h__ | 
|  |  | 
|  | #ifndef __WIDL_INLINE | 
|  | #if defined(__cplusplus) || defined(_MSC_VER) | 
|  | #define __WIDL_INLINE inline | 
|  | #elif defined(__GNUC__) | 
|  | #define __WIDL_INLINE __inline__ | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | /* Forward declarations */ | 
|  |  | 
|  | #ifndef __IMFASFContentInfo_FWD_DEFINED__ | 
|  | #define __IMFASFContentInfo_FWD_DEFINED__ | 
|  | typedef interface IMFASFContentInfo IMFASFContentInfo; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFContentInfo; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFASFMutualExclusion_FWD_DEFINED__ | 
|  | #define __IMFASFMutualExclusion_FWD_DEFINED__ | 
|  | typedef interface IMFASFMutualExclusion IMFASFMutualExclusion; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFMutualExclusion; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFASFStreamPrioritization_FWD_DEFINED__ | 
|  | #define __IMFASFStreamPrioritization_FWD_DEFINED__ | 
|  | typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFStreamPrioritization; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFASFSplitter_FWD_DEFINED__ | 
|  | #define __IMFASFSplitter_FWD_DEFINED__ | 
|  | typedef interface IMFASFSplitter IMFASFSplitter; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFSplitter; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFASFMultiplexer_FWD_DEFINED__ | 
|  | #define __IMFASFMultiplexer_FWD_DEFINED__ | 
|  | typedef interface IMFASFMultiplexer IMFASFMultiplexer; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFMultiplexer; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFASFIndexer_FWD_DEFINED__ | 
|  | #define __IMFASFIndexer_FWD_DEFINED__ | 
|  | typedef interface IMFASFIndexer IMFASFIndexer; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFIndexer; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFASFStreamSelector_FWD_DEFINED__ | 
|  | #define __IMFASFStreamSelector_FWD_DEFINED__ | 
|  | typedef interface IMFASFStreamSelector IMFASFStreamSelector; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFStreamSelector; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFDRMNetHelper_FWD_DEFINED__ | 
|  | #define __IMFDRMNetHelper_FWD_DEFINED__ | 
|  | typedef interface IMFDRMNetHelper IMFDRMNetHelper; | 
|  | #ifdef __cplusplus | 
|  | interface IMFDRMNetHelper; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFASFProfile_FWD_DEFINED__ | 
|  | #define __IMFASFProfile_FWD_DEFINED__ | 
|  | typedef interface IMFASFProfile IMFASFProfile; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFProfile; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFASFStreamConfig_FWD_DEFINED__ | 
|  | #define __IMFASFStreamConfig_FWD_DEFINED__ | 
|  | typedef interface IMFASFStreamConfig IMFASFStreamConfig; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFStreamConfig; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | /* Headers for imported files */ | 
|  |  | 
|  | #include <mfidl.h> | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #include <winapifamily.h> | 
|  |  | 
|  | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) | 
|  |  | 
|  | EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FILE_ID, 0x3de649b4, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); | 
|  | EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_CREATION_TIME, 0x3de649b6, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); | 
|  | EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FLAGS, 0x3de649bb, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); | 
|  | EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_PACKET_SIZE, 0x3de649bd, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); | 
|  | EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_BITRATE, 0x3de649be, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); | 
|  | EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MIN_PACKET_SIZE, 0x3de649bc, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); | 
|  | EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PACKETS, 0x3de649b7, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); | 
|  | EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PLAY_DURATION, 0x3de649b8, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); | 
|  | EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PREROLL, 0x3de649ba, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); | 
|  | EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_SEND_DURATION, 0x3de649b9, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); | 
|  | EXTERN_GUID(CLSID_WMDRMSystemID, 0x8948BB22, 0x11BD, 0x4796, 0x93, 0xE3, 0x97, 0x4D, 0x1B, 0x57, 0x56, 0x78); | 
|  | EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_KEYID, 0x8520fe3e, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); | 
|  | EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_LICENSE_URL, 0x8520fe40, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); | 
|  | EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_SECRET_DATA, 0x8520fe3f, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); | 
|  | EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_TYPE, 0x8520fe3d, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); | 
|  | EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTIONEX_ENCRYPTION_DATA, 0x62508be5, 0xecdf, 0x4924, 0xa3, 0x59, 0x72, 0xba, 0xb3, 0x39, 0x7b, 0x9d); | 
|  | EXTERN_GUID(MF_PD_ASF_LANGLIST, 0xf23de43c, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d); | 
|  | EXTERN_GUID(MF_PD_ASF_MARKER, 0x5134330e, 0x83a6, 0x475e, 0xa9, 0xd5, 0x4f, 0xb8, 0x75, 0xfb, 0x2e, 0x31); | 
|  | EXTERN_GUID(MF_PD_ASF_SCRIPT, 0xe29cd0d7, 0xd602, 0x4923, 0xa7, 0xfe, 0x73, 0xfd, 0x97, 0xec, 0xc6, 0x50); | 
|  | EXTERN_GUID(MF_PD_ASF_CODECLIST, 0xe4bb3509, 0xc18d, 0x4df1, 0xbb, 0x99, 0x7a, 0x36, 0xb3, 0xcc, 0x41, 0x19); | 
|  | EXTERN_GUID(MF_PD_ASF_METADATA_IS_VBR, 0x5fc6947a, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); | 
|  | EXTERN_GUID(MF_PD_ASF_METADATA_V8_VBRPEAK, 0x5fc6947b, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); | 
|  | EXTERN_GUID(MF_PD_ASF_METADATA_V8_BUFFERAVERAGE, 0x5fc6947c, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); | 
|  | EXTERN_GUID(MF_PD_ASF_METADATA_LEAKY_BUCKET_PAIRS, 0x5fc6947d, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); | 
|  | EXTERN_GUID(MF_PD_ASF_DATA_START_OFFSET, 0xe7d5b3e7, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed); | 
|  | EXTERN_GUID(MF_PD_ASF_DATA_LENGTH, 0xe7d5b3e8, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed); | 
|  | EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_LANGUAGE_ID_INDEX, 0x48f8a522, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); | 
|  | EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_DATA_BITRATE, 0x48f8a523, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); | 
|  | EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_BUFFERSIZE, 0x48f8a524, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); | 
|  | EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_DATA_BITRATE, 0x48f8a525, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); | 
|  | EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_BUFFERSIZE, 0x48f8a526, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); | 
|  | EXTERN_GUID(MF_SD_ASF_STREAMBITRATES_BITRATE, 0xa8e182ed, 0xafc8, 0x43d0, 0xb0, 0xd1, 0xf6, 0x5b, 0xad, 0x9d, 0xa5, 0x58); | 
|  | EXTERN_GUID(MF_SD_ASF_METADATA_DEVICE_CONFORMANCE_TEMPLATE, 0x245e929d, 0xc44e, 0x4f7e, 0xbb, 0x3c, 0x77, 0xd4, 0xdf, 0xd2, 0x7f, 0x8a); | 
|  | EXTERN_GUID(MF_PD_ASF_INFO_HAS_AUDIO, 0x80e62295, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c); | 
|  | EXTERN_GUID(MF_PD_ASF_INFO_HAS_VIDEO, 0x80e62296, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c); | 
|  | EXTERN_GUID(MF_PD_ASF_INFO_HAS_NON_AUDIO_VIDEO, 0x80e62297, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c); | 
|  | #if WINVER >= 0x0601 | 
|  | EXTERN_GUID(MFASFINDEXER_TYPE_TIMECODE, 0x49815231, 0x6bad, 0x44fd, 0x81, 0xa, 0x3f, 0x60, 0x98, 0x4e, 0xc7, 0xfd); | 
|  | EXTERN_GUID(MF_PD_ASF_LANGLIST_LEGACYORDER, 0xf23de43d, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d); | 
|  | #endif | 
|  |  | 
|  | EXTERN_GUID(MFASFMutexType_Bitrate, 0x72178C2C, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); | 
|  | EXTERN_GUID(MFASFMutexType_Language, 0x72178C2B, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); | 
|  | EXTERN_GUID(MFASFMutexType_Presentation, 0x72178C2D, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); | 
|  | EXTERN_GUID(MFASFMutexType_Unknown, 0x72178C2E, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); | 
|  | EXTERN_GUID(MFASFSampleExtension_ContentType, 0xd590dc20, 0x07bc, 0x436c, 0x9c, 0xf7, 0xf3, 0xbb, 0xfb, 0xf1, 0xa4, 0xdc); | 
|  | EXTERN_GUID(MFASFSampleExtension_Encryption_SampleID, 0x6698B84E, 0x0AFA, 0x4330, 0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D); | 
|  | EXTERN_GUID(MFASFSampleExtension_Encryption_KeyID, 0x76376591,  0x795f,  0x4da1, 0x86, 0xed, 0x9d, 0x46, 0xec, 0xa1, 0x09, 0xa9); | 
|  | EXTERN_GUID(MFASFSampleExtension_FileName, 0xe165ec0e, 0x19ed, 0x45d7, 0xb4, 0xa7, 0x25, 0xcb, 0xd1, 0xe2, 0x8e, 0x9b); | 
|  | EXTERN_GUID(MFASFSampleExtension_OutputCleanPoint, 0xf72a3c6f, 0x6eb4, 0x4ebc, 0xb1, 0x92, 0x9, 0xad, 0x97, 0x59, 0xe8, 0x28); | 
|  | EXTERN_GUID(MFASFSampleExtension_PixelAspectRatio, 0x1b1ee554, 0xf9ea, 0x4bc8, 0x82, 0x1a, 0x37, 0x6b, 0x74, 0xe4, 0xc4, 0xb8); | 
|  | EXTERN_GUID(MFASFSampleExtension_SampleDuration, 0xc6bd9450, 0x867f, 0x4907, 0x83, 0xa3, 0xc7, 0x79, 0x21, 0xb7, 0x33, 0xad); | 
|  | EXTERN_GUID(MFASFSampleExtension_SMPTE, 0x399595ec, 0x8667, 0x4e2d, 0x8f, 0xdb, 0x98, 0x81, 0x4c, 0xe7, 0x6c, 0x1e); | 
|  | EXTERN_GUID(MFASFSPLITTER_PACKET_BOUNDARY, 0xfe584a05, 0xe8d6, 0x42e3, 0xb1, 0x76, 0xf1, 0x21, 0x17, 0x5, 0xfb, 0x6f); | 
|  | EXTERN_GUID(MF_ASFPROFILE_MINPACKETSIZE, 0x22587626, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0); | 
|  | EXTERN_GUID(MF_ASFPROFILE_MAXPACKETSIZE, 0x22587627, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0); | 
|  | EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET1, 0xc69b5901, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd); | 
|  | EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET2, 0xc69b5902, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd); | 
|  | #ifndef __IMFASFProfile_FWD_DEFINED__ | 
|  | #define __IMFASFProfile_FWD_DEFINED__ | 
|  | typedef interface IMFASFProfile IMFASFProfile; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFProfile; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFASFStreamConfig_FWD_DEFINED__ | 
|  | #define __IMFASFStreamConfig_FWD_DEFINED__ | 
|  | typedef interface IMFASFStreamConfig IMFASFStreamConfig; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFStreamConfig; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFASFMutualExclusion_FWD_DEFINED__ | 
|  | #define __IMFASFMutualExclusion_FWD_DEFINED__ | 
|  | typedef interface IMFASFMutualExclusion IMFASFMutualExclusion; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFMutualExclusion; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IMFASFStreamPrioritization_FWD_DEFINED__ | 
|  | #define __IMFASFStreamPrioritization_FWD_DEFINED__ | 
|  | typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization; | 
|  | #ifdef __cplusplus | 
|  | interface IMFASFStreamPrioritization; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #define MFASFINDEXER_PER_ENTRY_BYTES_DYNAMIC 0xffff | 
|  | #define MFASFINDEXER_NO_FIXED_INTERVAL 0xffffffff | 
|  | #define MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT 0xffffffffffffffffll | 
|  | #define MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN 0xffffffffffffffffll | 
|  |  | 
|  | #define MFASF_MIN_HEADER_BYTES (sizeof (GUID) + sizeof (QWORD)) | 
|  |  | 
|  | #define  MFASF_MAX_STREAM_NUMBER 127 | 
|  | #define  MFASF_INVALID_STREAM_NUMBER (MFASF_MAX_STREAM_NUMBER + 1) | 
|  | #define  MFASF_PAYLOADEXTENSION_MAX_SIZE 0xff | 
|  | #define  MFASF_PAYLOADEXTENSION_VARIABLE_SIZE 0xffff | 
|  | #define  MFASF_DEFAULT_BUFFER_WINDOW_MS 3000 | 
|  |  | 
|  | typedef enum MFASF_SPLITTERFLAGS { | 
|  | MFASF_SPLITTER_REVERSE = 0x1, | 
|  | MFASF_SPLITTER_WMDRM = 0x2 | 
|  | } MFASF_SPLITTERFLAGS; | 
|  | typedef enum ASF_STATUSFLAGS { | 
|  | ASF_STATUSFLAGS_INCOMPLETE = 0x1 | 
|  | } ASF_STATUSFLAGS; | 
|  | typedef enum MFASF_MULTIPLEXERFLAGS { | 
|  | MFASF_MULTIPLEXER_AUTOADJUST_BITRATE = 0x1 | 
|  | } MFASF_MULTIPLEXERFLAGS; | 
|  | typedef enum MFASF_INDEXERFLAGS { | 
|  | MFASF_INDEXER_WRITE_NEW_INDEX = 0x1, | 
|  | MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK = 0x2, | 
|  | MFASF_INDEXER_WRITE_FOR_LIVEREAD = 0x4 | 
|  | } MFASF_INDEXER_FLAGS; | 
|  | typedef enum MFASF_STREAMSELECTORFLAGS { | 
|  | MFASF_STREAMSELECTOR_DISABLE_THINNING = 0x1, | 
|  | MFASF_STREAMSELECTOR_USE_AVERAGE_BITRATE = 0x2 | 
|  | } MFASF_STREAMSELECTOR_FLAGS; | 
|  | typedef enum ASF_SELECTION_STATUS { | 
|  | ASF_STATUS_NOTSELECTED = 0, | 
|  | ASF_STATUS_CLEANPOINTSONLY = 1, | 
|  | ASF_STATUS_ALLDATAUNITS = 2 | 
|  | } ASF_SELECTION_STATUS; | 
|  | typedef enum _MFSINK_WMDRMACTION { | 
|  | MFSINK_WMDRMACTION_UNDEFINED = 0, | 
|  | MFSINK_WMDRMACTION_ENCODE = 1, | 
|  | MFSINK_WMDRMACTION_TRANSCODE = 2, | 
|  | MFSINK_WMDRMACTION_TRANSCRYPT = 3, | 
|  | MFSINK_WMDRMACTION_LAST = 3 | 
|  | } MFSINK_WMDRMACTION; | 
|  |  | 
|  | typedef struct ASF_MUX_STATISTICS { | 
|  | DWORD cFramesWritten; | 
|  | DWORD cFramesDropped; | 
|  | } ASF_MUX_STATISTICS; | 
|  | typedef struct _ASF_INDEX_IDENTIFIER { | 
|  | GUID guidIndexType; | 
|  | WORD wStreamNumber; | 
|  | } ASF_INDEX_IDENTIFIER; | 
|  | typedef struct _ASF_INDEX_DESCRIPTOR { | 
|  | ASF_INDEX_IDENTIFIER Identifier; | 
|  | WORD cPerEntryBytes; | 
|  | WCHAR szDescription[32]; | 
|  | DWORD dwInterval; | 
|  | } ASF_INDEX_DESCRIPTOR; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IMFASFContentInfo interface | 
|  | */ | 
|  | #ifndef __IMFASFContentInfo_INTERFACE_DEFINED__ | 
|  | #define __IMFASFContentInfo_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IMFASFContentInfo, 0xb1dca5cd, 0xd5da, 0x4451, 0x8e,0x9e, 0xdb,0x5c,0x59,0x91,0x4e,0xad); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("b1dca5cd-d5da-4451-8e9e-db5c59914ead") | 
|  | IMFASFContentInfo : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetHeaderSize( | 
|  | IMFMediaBuffer *pIStartOfContent, | 
|  | QWORD *cbHeaderSize) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE ParseHeader( | 
|  | IMFMediaBuffer *pIHeaderBuffer, | 
|  | QWORD cbOffsetWithinHeader) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GenerateHeader( | 
|  | IMFMediaBuffer *pIHeader, | 
|  | DWORD *pcbHeader) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetProfile( | 
|  | IMFASFProfile **ppIProfile) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetProfile( | 
|  | IMFASFProfile *pIProfile) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GeneratePresentationDescriptor( | 
|  | IMFPresentationDescriptor **ppIPresentationDescriptor) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetEncodingConfigurationPropertyStore( | 
|  | WORD wStreamNumber, | 
|  | IPropertyStore **ppIStore) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IMFASFContentInfo, 0xb1dca5cd, 0xd5da, 0x4451, 0x8e,0x9e, 0xdb,0x5c,0x59,0x91,0x4e,0xad) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IMFASFContentInfoVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IMFASFContentInfo *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IMFASFContentInfo *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IMFASFContentInfo *This); | 
|  |  | 
|  | /*** IMFASFContentInfo methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetHeaderSize)( | 
|  | IMFASFContentInfo *This, | 
|  | IMFMediaBuffer *pIStartOfContent, | 
|  | QWORD *cbHeaderSize); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *ParseHeader)( | 
|  | IMFASFContentInfo *This, | 
|  | IMFMediaBuffer *pIHeaderBuffer, | 
|  | QWORD cbOffsetWithinHeader); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GenerateHeader)( | 
|  | IMFASFContentInfo *This, | 
|  | IMFMediaBuffer *pIHeader, | 
|  | DWORD *pcbHeader); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetProfile)( | 
|  | IMFASFContentInfo *This, | 
|  | IMFASFProfile **ppIProfile); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetProfile)( | 
|  | IMFASFContentInfo *This, | 
|  | IMFASFProfile *pIProfile); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GeneratePresentationDescriptor)( | 
|  | IMFASFContentInfo *This, | 
|  | IMFPresentationDescriptor **ppIPresentationDescriptor); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetEncodingConfigurationPropertyStore)( | 
|  | IMFASFContentInfo *This, | 
|  | WORD wStreamNumber, | 
|  | IPropertyStore **ppIStore); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IMFASFContentInfoVtbl; | 
|  |  | 
|  | interface IMFASFContentInfo { | 
|  | CONST_VTBL IMFASFContentInfoVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IMFASFContentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IMFASFContentInfo_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IMFASFContentInfo_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IMFASFContentInfo methods ***/ | 
|  | #define IMFASFContentInfo_GetHeaderSize(This,pIStartOfContent,cbHeaderSize) (This)->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize) | 
|  | #define IMFASFContentInfo_ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) (This)->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) | 
|  | #define IMFASFContentInfo_GenerateHeader(This,pIHeader,pcbHeader) (This)->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader) | 
|  | #define IMFASFContentInfo_GetProfile(This,ppIProfile) (This)->lpVtbl->GetProfile(This,ppIProfile) | 
|  | #define IMFASFContentInfo_SetProfile(This,pIProfile) (This)->lpVtbl->SetProfile(This,pIProfile) | 
|  | #define IMFASFContentInfo_GeneratePresentationDescriptor(This,ppIPresentationDescriptor) (This)->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor) | 
|  | #define IMFASFContentInfo_GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) (This)->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFContentInfo_QueryInterface(IMFASFContentInfo* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFContentInfo_AddRef(IMFASFContentInfo* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFContentInfo_Release(IMFASFContentInfo* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IMFASFContentInfo methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFContentInfo_GetHeaderSize(IMFASFContentInfo* This,IMFMediaBuffer *pIStartOfContent,QWORD *cbHeaderSize) { | 
|  | return This->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFContentInfo_ParseHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeaderBuffer,QWORD cbOffsetWithinHeader) { | 
|  | return This->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFContentInfo_GenerateHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeader,DWORD *pcbHeader) { | 
|  | return This->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFContentInfo_GetProfile(IMFASFContentInfo* This,IMFASFProfile **ppIProfile) { | 
|  | return This->lpVtbl->GetProfile(This,ppIProfile); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFContentInfo_SetProfile(IMFASFContentInfo* This,IMFASFProfile *pIProfile) { | 
|  | return This->lpVtbl->SetProfile(This,pIProfile); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFContentInfo_GeneratePresentationDescriptor(IMFASFContentInfo* This,IMFPresentationDescriptor **ppIPresentationDescriptor) { | 
|  | return This->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFContentInfo_GetEncodingConfigurationPropertyStore(IMFASFContentInfo* This,WORD wStreamNumber,IPropertyStore **ppIStore) { | 
|  | return This->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IMFASFContentInfo_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IMFASFMutualExclusion interface | 
|  | */ | 
|  | #ifndef __IMFASFMutualExclusion_INTERFACE_DEFINED__ | 
|  | #define __IMFASFMutualExclusion_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IMFASFMutualExclusion, 0x12558291, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("12558291-e399-11d5-bc2a-00b0d0f3f4ab") | 
|  | IMFASFMutualExclusion : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetType( | 
|  | GUID *pguidType) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetType( | 
|  | REFGUID guidType) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetRecordCount( | 
|  | DWORD *pdwRecordCount) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetStreamsForRecord( | 
|  | DWORD dwRecordNumber, | 
|  | WORD *pwStreamNumArray, | 
|  | DWORD *pcStreams) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE AddStreamForRecord( | 
|  | DWORD dwRecordNumber, | 
|  | WORD wStreamNumber) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE RemoveStreamFromRecord( | 
|  | DWORD dwRecordNumber, | 
|  | WORD wStreamNumber) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE RemoveRecord( | 
|  | DWORD dwRecordNumber) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE AddRecord( | 
|  | DWORD *pdwRecordNumber) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Clone( | 
|  | IMFASFMutualExclusion **ppIMutex) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IMFASFMutualExclusion, 0x12558291, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IMFASFMutualExclusionVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IMFASFMutualExclusion *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IMFASFMutualExclusion *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IMFASFMutualExclusion *This); | 
|  |  | 
|  | /*** IMFASFMutualExclusion methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetType)( | 
|  | IMFASFMutualExclusion *This, | 
|  | GUID *pguidType); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetType)( | 
|  | IMFASFMutualExclusion *This, | 
|  | REFGUID guidType); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetRecordCount)( | 
|  | IMFASFMutualExclusion *This, | 
|  | DWORD *pdwRecordCount); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetStreamsForRecord)( | 
|  | IMFASFMutualExclusion *This, | 
|  | DWORD dwRecordNumber, | 
|  | WORD *pwStreamNumArray, | 
|  | DWORD *pcStreams); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *AddStreamForRecord)( | 
|  | IMFASFMutualExclusion *This, | 
|  | DWORD dwRecordNumber, | 
|  | WORD wStreamNumber); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *RemoveStreamFromRecord)( | 
|  | IMFASFMutualExclusion *This, | 
|  | DWORD dwRecordNumber, | 
|  | WORD wStreamNumber); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *RemoveRecord)( | 
|  | IMFASFMutualExclusion *This, | 
|  | DWORD dwRecordNumber); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *AddRecord)( | 
|  | IMFASFMutualExclusion *This, | 
|  | DWORD *pdwRecordNumber); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Clone)( | 
|  | IMFASFMutualExclusion *This, | 
|  | IMFASFMutualExclusion **ppIMutex); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IMFASFMutualExclusionVtbl; | 
|  |  | 
|  | interface IMFASFMutualExclusion { | 
|  | CONST_VTBL IMFASFMutualExclusionVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IMFASFMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IMFASFMutualExclusion_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IMFASFMutualExclusion_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IMFASFMutualExclusion methods ***/ | 
|  | #define IMFASFMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) | 
|  | #define IMFASFMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType) | 
|  | #define IMFASFMutualExclusion_GetRecordCount(This,pdwRecordCount) (This)->lpVtbl->GetRecordCount(This,pdwRecordCount) | 
|  | #define IMFASFMutualExclusion_GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) | 
|  | #define IMFASFMutualExclusion_AddStreamForRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber) | 
|  | #define IMFASFMutualExclusion_RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) | 
|  | #define IMFASFMutualExclusion_RemoveRecord(This,dwRecordNumber) (This)->lpVtbl->RemoveRecord(This,dwRecordNumber) | 
|  | #define IMFASFMutualExclusion_AddRecord(This,pdwRecordNumber) (This)->lpVtbl->AddRecord(This,pdwRecordNumber) | 
|  | #define IMFASFMutualExclusion_Clone(This,ppIMutex) (This)->lpVtbl->Clone(This,ppIMutex) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFMutualExclusion_QueryInterface(IMFASFMutualExclusion* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFMutualExclusion_AddRef(IMFASFMutualExclusion* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFMutualExclusion_Release(IMFASFMutualExclusion* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IMFASFMutualExclusion methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFMutualExclusion_GetType(IMFASFMutualExclusion* This,GUID *pguidType) { | 
|  | return This->lpVtbl->GetType(This,pguidType); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMutualExclusion_SetType(IMFASFMutualExclusion* This,REFGUID guidType) { | 
|  | return This->lpVtbl->SetType(This,guidType); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMutualExclusion_GetRecordCount(IMFASFMutualExclusion* This,DWORD *pdwRecordCount) { | 
|  | return This->lpVtbl->GetRecordCount(This,pdwRecordCount); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMutualExclusion_GetStreamsForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD *pwStreamNumArray,DWORD *pcStreams) { | 
|  | return This->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMutualExclusion_AddStreamForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) { | 
|  | return This->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMutualExclusion_RemoveStreamFromRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) { | 
|  | return This->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMutualExclusion_RemoveRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber) { | 
|  | return This->lpVtbl->RemoveRecord(This,dwRecordNumber); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMutualExclusion_AddRecord(IMFASFMutualExclusion* This,DWORD *pdwRecordNumber) { | 
|  | return This->lpVtbl->AddRecord(This,pdwRecordNumber); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMutualExclusion_Clone(IMFASFMutualExclusion* This,IMFASFMutualExclusion **ppIMutex) { | 
|  | return This->lpVtbl->Clone(This,ppIMutex); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IMFASFMutualExclusion_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IMFASFStreamPrioritization interface | 
|  | */ | 
|  | #ifndef __IMFASFStreamPrioritization_INTERFACE_DEFINED__ | 
|  | #define __IMFASFStreamPrioritization_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IMFASFStreamPrioritization, 0x699bdc27, 0xbbaf, 0x49ff, 0x8e,0x38, 0x9c,0x39,0xc9,0xb5,0xe0,0x88); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("699bdc27-bbaf-49ff-8e38-9c39c9b5e088") | 
|  | IMFASFStreamPrioritization : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetStreamCount( | 
|  | DWORD *pdwStreamCount) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetStream( | 
|  | DWORD dwStreamIndex, | 
|  | WORD *pwStreamNumber, | 
|  | WORD *pwStreamFlags) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE AddStream( | 
|  | WORD wStreamNumber, | 
|  | WORD wStreamFlags) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE RemoveStream( | 
|  | DWORD dwStreamIndex) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Clone( | 
|  | IMFASFStreamPrioritization **ppIStreamPrioritization) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IMFASFStreamPrioritization, 0x699bdc27, 0xbbaf, 0x49ff, 0x8e,0x38, 0x9c,0x39,0xc9,0xb5,0xe0,0x88) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IMFASFStreamPrioritizationVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IMFASFStreamPrioritization *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IMFASFStreamPrioritization *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IMFASFStreamPrioritization *This); | 
|  |  | 
|  | /*** IMFASFStreamPrioritization methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetStreamCount)( | 
|  | IMFASFStreamPrioritization *This, | 
|  | DWORD *pdwStreamCount); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetStream)( | 
|  | IMFASFStreamPrioritization *This, | 
|  | DWORD dwStreamIndex, | 
|  | WORD *pwStreamNumber, | 
|  | WORD *pwStreamFlags); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *AddStream)( | 
|  | IMFASFStreamPrioritization *This, | 
|  | WORD wStreamNumber, | 
|  | WORD wStreamFlags); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *RemoveStream)( | 
|  | IMFASFStreamPrioritization *This, | 
|  | DWORD dwStreamIndex); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Clone)( | 
|  | IMFASFStreamPrioritization *This, | 
|  | IMFASFStreamPrioritization **ppIStreamPrioritization); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IMFASFStreamPrioritizationVtbl; | 
|  |  | 
|  | interface IMFASFStreamPrioritization { | 
|  | CONST_VTBL IMFASFStreamPrioritizationVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IMFASFStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IMFASFStreamPrioritization_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IMFASFStreamPrioritization_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IMFASFStreamPrioritization methods ***/ | 
|  | #define IMFASFStreamPrioritization_GetStreamCount(This,pdwStreamCount) (This)->lpVtbl->GetStreamCount(This,pdwStreamCount) | 
|  | #define IMFASFStreamPrioritization_GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) | 
|  | #define IMFASFStreamPrioritization_AddStream(This,wStreamNumber,wStreamFlags) (This)->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags) | 
|  | #define IMFASFStreamPrioritization_RemoveStream(This,dwStreamIndex) (This)->lpVtbl->RemoveStream(This,dwStreamIndex) | 
|  | #define IMFASFStreamPrioritization_Clone(This,ppIStreamPrioritization) (This)->lpVtbl->Clone(This,ppIStreamPrioritization) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamPrioritization_QueryInterface(IMFASFStreamPrioritization* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFStreamPrioritization_AddRef(IMFASFStreamPrioritization* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFStreamPrioritization_Release(IMFASFStreamPrioritization* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IMFASFStreamPrioritization methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamPrioritization_GetStreamCount(IMFASFStreamPrioritization* This,DWORD *pdwStreamCount) { | 
|  | return This->lpVtbl->GetStreamCount(This,pdwStreamCount); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamPrioritization_GetStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex,WORD *pwStreamNumber,WORD *pwStreamFlags) { | 
|  | return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamPrioritization_AddStream(IMFASFStreamPrioritization* This,WORD wStreamNumber,WORD wStreamFlags) { | 
|  | return This->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamPrioritization_RemoveStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex) { | 
|  | return This->lpVtbl->RemoveStream(This,dwStreamIndex); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamPrioritization_Clone(IMFASFStreamPrioritization* This,IMFASFStreamPrioritization **ppIStreamPrioritization) { | 
|  | return This->lpVtbl->Clone(This,ppIStreamPrioritization); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IMFASFStreamPrioritization_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IMFASFSplitter interface | 
|  | */ | 
|  | #ifndef __IMFASFSplitter_INTERFACE_DEFINED__ | 
|  | #define __IMFASFSplitter_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IMFASFSplitter, 0x12558295, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("12558295-e399-11d5-bc2a-00b0d0f3f4ab") | 
|  | IMFASFSplitter : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE Initialize( | 
|  | IMFASFContentInfo *pIContentInfo) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetFlags( | 
|  | DWORD dwFlags) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetFlags( | 
|  | DWORD *pdwFlags) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SelectStreams( | 
|  | WORD *pwStreamNumbers, | 
|  | WORD wNumStreams) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetSelectedStreams( | 
|  | WORD *pwStreamNumbers, | 
|  | WORD *pwNumStreams) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE ParseData( | 
|  | IMFMediaBuffer *pIBuffer, | 
|  | DWORD cbBufferOffset, | 
|  | DWORD cbLength) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetNextSample( | 
|  | DWORD *pdwStatusFlags, | 
|  | WORD *pwStreamNumber, | 
|  | IMFSample **ppISample) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Flush( | 
|  | ) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetLastSendTime( | 
|  | DWORD *pdwLastSendTime) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IMFASFSplitter, 0x12558295, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IMFASFSplitterVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IMFASFSplitter *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IMFASFSplitter *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IMFASFSplitter *This); | 
|  |  | 
|  | /*** IMFASFSplitter methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *Initialize)( | 
|  | IMFASFSplitter *This, | 
|  | IMFASFContentInfo *pIContentInfo); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetFlags)( | 
|  | IMFASFSplitter *This, | 
|  | DWORD dwFlags); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetFlags)( | 
|  | IMFASFSplitter *This, | 
|  | DWORD *pdwFlags); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SelectStreams)( | 
|  | IMFASFSplitter *This, | 
|  | WORD *pwStreamNumbers, | 
|  | WORD wNumStreams); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetSelectedStreams)( | 
|  | IMFASFSplitter *This, | 
|  | WORD *pwStreamNumbers, | 
|  | WORD *pwNumStreams); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *ParseData)( | 
|  | IMFASFSplitter *This, | 
|  | IMFMediaBuffer *pIBuffer, | 
|  | DWORD cbBufferOffset, | 
|  | DWORD cbLength); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetNextSample)( | 
|  | IMFASFSplitter *This, | 
|  | DWORD *pdwStatusFlags, | 
|  | WORD *pwStreamNumber, | 
|  | IMFSample **ppISample); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Flush)( | 
|  | IMFASFSplitter *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetLastSendTime)( | 
|  | IMFASFSplitter *This, | 
|  | DWORD *pdwLastSendTime); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IMFASFSplitterVtbl; | 
|  |  | 
|  | interface IMFASFSplitter { | 
|  | CONST_VTBL IMFASFSplitterVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IMFASFSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IMFASFSplitter_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IMFASFSplitter_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IMFASFSplitter methods ***/ | 
|  | #define IMFASFSplitter_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) | 
|  | #define IMFASFSplitter_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) | 
|  | #define IMFASFSplitter_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) | 
|  | #define IMFASFSplitter_SelectStreams(This,pwStreamNumbers,wNumStreams) (This)->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams) | 
|  | #define IMFASFSplitter_GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) (This)->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) | 
|  | #define IMFASFSplitter_ParseData(This,pIBuffer,cbBufferOffset,cbLength) (This)->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength) | 
|  | #define IMFASFSplitter_GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) (This)->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) | 
|  | #define IMFASFSplitter_Flush(This) (This)->lpVtbl->Flush(This) | 
|  | #define IMFASFSplitter_GetLastSendTime(This,pdwLastSendTime) (This)->lpVtbl->GetLastSendTime(This,pdwLastSendTime) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFSplitter_QueryInterface(IMFASFSplitter* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFSplitter_AddRef(IMFASFSplitter* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFSplitter_Release(IMFASFSplitter* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IMFASFSplitter methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFSplitter_Initialize(IMFASFSplitter* This,IMFASFContentInfo *pIContentInfo) { | 
|  | return This->lpVtbl->Initialize(This,pIContentInfo); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFSplitter_SetFlags(IMFASFSplitter* This,DWORD dwFlags) { | 
|  | return This->lpVtbl->SetFlags(This,dwFlags); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFSplitter_GetFlags(IMFASFSplitter* This,DWORD *pdwFlags) { | 
|  | return This->lpVtbl->GetFlags(This,pdwFlags); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFSplitter_SelectStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD wNumStreams) { | 
|  | return This->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFSplitter_GetSelectedStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD *pwNumStreams) { | 
|  | return This->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFSplitter_ParseData(IMFASFSplitter* This,IMFMediaBuffer *pIBuffer,DWORD cbBufferOffset,DWORD cbLength) { | 
|  | return This->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFSplitter_GetNextSample(IMFASFSplitter* This,DWORD *pdwStatusFlags,WORD *pwStreamNumber,IMFSample **ppISample) { | 
|  | return This->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFSplitter_Flush(IMFASFSplitter* This) { | 
|  | return This->lpVtbl->Flush(This); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFSplitter_GetLastSendTime(IMFASFSplitter* This,DWORD *pdwLastSendTime) { | 
|  | return This->lpVtbl->GetLastSendTime(This,pdwLastSendTime); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IMFASFSplitter_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IMFASFMultiplexer interface | 
|  | */ | 
|  | #ifndef __IMFASFMultiplexer_INTERFACE_DEFINED__ | 
|  | #define __IMFASFMultiplexer_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IMFASFMultiplexer, 0x57bdd80a, 0x9b38, 0x4838, 0xb7,0x37, 0xc5,0x8f,0x67,0x0d,0x7d,0x4f); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("57bdd80a-9b38-4838-b737-c58f670d7d4f") | 
|  | IMFASFMultiplexer : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE Initialize( | 
|  | IMFASFContentInfo *pIContentInfo) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetFlags( | 
|  | DWORD dwFlags) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetFlags( | 
|  | DWORD *pdwFlags) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE ProcessSample( | 
|  | WORD wStreamNumber, | 
|  | IMFSample *pISample, | 
|  | LONGLONG hnsTimestampAdjust) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetNextPacket( | 
|  | DWORD *pdwStatusFlags, | 
|  | IMFSample **ppIPacket) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Flush( | 
|  | ) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE End( | 
|  | IMFASFContentInfo *pIContentInfo) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetStatistics( | 
|  | WORD wStreamNumber, | 
|  | ASF_MUX_STATISTICS *pMuxStats) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance( | 
|  | DWORD msSyncTolerance) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IMFASFMultiplexer, 0x57bdd80a, 0x9b38, 0x4838, 0xb7,0x37, 0xc5,0x8f,0x67,0x0d,0x7d,0x4f) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IMFASFMultiplexerVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IMFASFMultiplexer *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IMFASFMultiplexer *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IMFASFMultiplexer *This); | 
|  |  | 
|  | /*** IMFASFMultiplexer methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *Initialize)( | 
|  | IMFASFMultiplexer *This, | 
|  | IMFASFContentInfo *pIContentInfo); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetFlags)( | 
|  | IMFASFMultiplexer *This, | 
|  | DWORD dwFlags); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetFlags)( | 
|  | IMFASFMultiplexer *This, | 
|  | DWORD *pdwFlags); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *ProcessSample)( | 
|  | IMFASFMultiplexer *This, | 
|  | WORD wStreamNumber, | 
|  | IMFSample *pISample, | 
|  | LONGLONG hnsTimestampAdjust); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetNextPacket)( | 
|  | IMFASFMultiplexer *This, | 
|  | DWORD *pdwStatusFlags, | 
|  | IMFSample **ppIPacket); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Flush)( | 
|  | IMFASFMultiplexer *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *End)( | 
|  | IMFASFMultiplexer *This, | 
|  | IMFASFContentInfo *pIContentInfo); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetStatistics)( | 
|  | IMFASFMultiplexer *This, | 
|  | WORD wStreamNumber, | 
|  | ASF_MUX_STATISTICS *pMuxStats); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)( | 
|  | IMFASFMultiplexer *This, | 
|  | DWORD msSyncTolerance); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IMFASFMultiplexerVtbl; | 
|  |  | 
|  | interface IMFASFMultiplexer { | 
|  | CONST_VTBL IMFASFMultiplexerVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IMFASFMultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IMFASFMultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IMFASFMultiplexer_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IMFASFMultiplexer methods ***/ | 
|  | #define IMFASFMultiplexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) | 
|  | #define IMFASFMultiplexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) | 
|  | #define IMFASFMultiplexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) | 
|  | #define IMFASFMultiplexer_ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) (This)->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) | 
|  | #define IMFASFMultiplexer_GetNextPacket(This,pdwStatusFlags,ppIPacket) (This)->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket) | 
|  | #define IMFASFMultiplexer_Flush(This) (This)->lpVtbl->Flush(This) | 
|  | #define IMFASFMultiplexer_End(This,pIContentInfo) (This)->lpVtbl->End(This,pIContentInfo) | 
|  | #define IMFASFMultiplexer_GetStatistics(This,wStreamNumber,pMuxStats) (This)->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats) | 
|  | #define IMFASFMultiplexer_SetSyncTolerance(This,msSyncTolerance) (This)->lpVtbl->SetSyncTolerance(This,msSyncTolerance) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFMultiplexer_QueryInterface(IMFASFMultiplexer* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFMultiplexer_AddRef(IMFASFMultiplexer* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFMultiplexer_Release(IMFASFMultiplexer* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IMFASFMultiplexer methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFMultiplexer_Initialize(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) { | 
|  | return This->lpVtbl->Initialize(This,pIContentInfo); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMultiplexer_SetFlags(IMFASFMultiplexer* This,DWORD dwFlags) { | 
|  | return This->lpVtbl->SetFlags(This,dwFlags); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMultiplexer_GetFlags(IMFASFMultiplexer* This,DWORD *pdwFlags) { | 
|  | return This->lpVtbl->GetFlags(This,pdwFlags); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMultiplexer_ProcessSample(IMFASFMultiplexer* This,WORD wStreamNumber,IMFSample *pISample,LONGLONG hnsTimestampAdjust) { | 
|  | return This->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMultiplexer_GetNextPacket(IMFASFMultiplexer* This,DWORD *pdwStatusFlags,IMFSample **ppIPacket) { | 
|  | return This->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMultiplexer_Flush(IMFASFMultiplexer* This) { | 
|  | return This->lpVtbl->Flush(This); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMultiplexer_End(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) { | 
|  | return This->lpVtbl->End(This,pIContentInfo); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMultiplexer_GetStatistics(IMFASFMultiplexer* This,WORD wStreamNumber,ASF_MUX_STATISTICS *pMuxStats) { | 
|  | return This->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFMultiplexer_SetSyncTolerance(IMFASFMultiplexer* This,DWORD msSyncTolerance) { | 
|  | return This->lpVtbl->SetSyncTolerance(This,msSyncTolerance); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IMFASFMultiplexer_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IMFASFIndexer interface | 
|  | */ | 
|  | #ifndef __IMFASFIndexer_INTERFACE_DEFINED__ | 
|  | #define __IMFASFIndexer_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IMFASFIndexer, 0x53590f48, 0xdc3b, 0x4297, 0x81,0x3f, 0x78,0x77,0x61,0xad,0x7b,0x3e); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("53590f48-dc3b-4297-813f-787761ad7b3e") | 
|  | IMFASFIndexer : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE SetFlags( | 
|  | DWORD dwFlags) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetFlags( | 
|  | DWORD *pdwFlags) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Initialize( | 
|  | IMFASFContentInfo *pIContentInfo) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetIndexPosition( | 
|  | IMFASFContentInfo *pIContentInfo, | 
|  | QWORD *pcbIndexOffset) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetIndexByteStreams( | 
|  | IMFByteStream **ppIByteStreams, | 
|  | DWORD cByteStreams) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetIndexByteStreamCount( | 
|  | DWORD *pcByteStreams) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetIndexStatus( | 
|  | ASF_INDEX_IDENTIFIER *pIndexIdentifier, | 
|  | WINBOOL *pfIsIndexed, | 
|  | BYTE *pbIndexDescriptor, | 
|  | DWORD *pcbIndexDescriptor) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetIndexStatus( | 
|  | BYTE *pbIndexDescriptor, | 
|  | DWORD cbIndexDescriptor, | 
|  | WINBOOL fGenerateIndex) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetSeekPositionForValue( | 
|  | const PROPVARIANT *pvarValue, | 
|  | ASF_INDEX_IDENTIFIER *pIndexIdentifier, | 
|  | QWORD *pcbOffsetWithinData, | 
|  | MFTIME *phnsApproxTime, | 
|  | DWORD *pdwPayloadNumberOfStreamWithinPacket) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GenerateIndexEntries( | 
|  | IMFSample *pIASFPacketSample) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE CommitIndex( | 
|  | IMFASFContentInfo *pIContentInfo) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetIndexWriteSpace( | 
|  | QWORD *pcbIndexWriteSpace) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetCompletedIndex( | 
|  | IMFMediaBuffer *pIIndexBuffer, | 
|  | QWORD cbOffsetWithinIndex) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IMFASFIndexer, 0x53590f48, 0xdc3b, 0x4297, 0x81,0x3f, 0x78,0x77,0x61,0xad,0x7b,0x3e) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IMFASFIndexerVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IMFASFIndexer *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IMFASFIndexer *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IMFASFIndexer *This); | 
|  |  | 
|  | /*** IMFASFIndexer methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *SetFlags)( | 
|  | IMFASFIndexer *This, | 
|  | DWORD dwFlags); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetFlags)( | 
|  | IMFASFIndexer *This, | 
|  | DWORD *pdwFlags); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Initialize)( | 
|  | IMFASFIndexer *This, | 
|  | IMFASFContentInfo *pIContentInfo); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetIndexPosition)( | 
|  | IMFASFIndexer *This, | 
|  | IMFASFContentInfo *pIContentInfo, | 
|  | QWORD *pcbIndexOffset); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetIndexByteStreams)( | 
|  | IMFASFIndexer *This, | 
|  | IMFByteStream **ppIByteStreams, | 
|  | DWORD cByteStreams); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetIndexByteStreamCount)( | 
|  | IMFASFIndexer *This, | 
|  | DWORD *pcByteStreams); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetIndexStatus)( | 
|  | IMFASFIndexer *This, | 
|  | ASF_INDEX_IDENTIFIER *pIndexIdentifier, | 
|  | WINBOOL *pfIsIndexed, | 
|  | BYTE *pbIndexDescriptor, | 
|  | DWORD *pcbIndexDescriptor); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetIndexStatus)( | 
|  | IMFASFIndexer *This, | 
|  | BYTE *pbIndexDescriptor, | 
|  | DWORD cbIndexDescriptor, | 
|  | WINBOOL fGenerateIndex); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetSeekPositionForValue)( | 
|  | IMFASFIndexer *This, | 
|  | const PROPVARIANT *pvarValue, | 
|  | ASF_INDEX_IDENTIFIER *pIndexIdentifier, | 
|  | QWORD *pcbOffsetWithinData, | 
|  | MFTIME *phnsApproxTime, | 
|  | DWORD *pdwPayloadNumberOfStreamWithinPacket); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GenerateIndexEntries)( | 
|  | IMFASFIndexer *This, | 
|  | IMFSample *pIASFPacketSample); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *CommitIndex)( | 
|  | IMFASFIndexer *This, | 
|  | IMFASFContentInfo *pIContentInfo); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetIndexWriteSpace)( | 
|  | IMFASFIndexer *This, | 
|  | QWORD *pcbIndexWriteSpace); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetCompletedIndex)( | 
|  | IMFASFIndexer *This, | 
|  | IMFMediaBuffer *pIIndexBuffer, | 
|  | QWORD cbOffsetWithinIndex); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IMFASFIndexerVtbl; | 
|  |  | 
|  | interface IMFASFIndexer { | 
|  | CONST_VTBL IMFASFIndexerVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IMFASFIndexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IMFASFIndexer_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IMFASFIndexer_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IMFASFIndexer methods ***/ | 
|  | #define IMFASFIndexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) | 
|  | #define IMFASFIndexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) | 
|  | #define IMFASFIndexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) | 
|  | #define IMFASFIndexer_GetIndexPosition(This,pIContentInfo,pcbIndexOffset) (This)->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset) | 
|  | #define IMFASFIndexer_SetIndexByteStreams(This,ppIByteStreams,cByteStreams) (This)->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams) | 
|  | #define IMFASFIndexer_GetIndexByteStreamCount(This,pcByteStreams) (This)->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams) | 
|  | #define IMFASFIndexer_GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) (This)->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) | 
|  | #define IMFASFIndexer_SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex) (This)->lpVtbl->SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex) | 
|  | #define IMFASFIndexer_GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) (This)->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) | 
|  | #define IMFASFIndexer_GenerateIndexEntries(This,pIASFPacketSample) (This)->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample) | 
|  | #define IMFASFIndexer_CommitIndex(This,pIContentInfo) (This)->lpVtbl->CommitIndex(This,pIContentInfo) | 
|  | #define IMFASFIndexer_GetIndexWriteSpace(This,pcbIndexWriteSpace) (This)->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace) | 
|  | #define IMFASFIndexer_GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) (This)->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_QueryInterface(IMFASFIndexer* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFIndexer_AddRef(IMFASFIndexer* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFIndexer_Release(IMFASFIndexer* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IMFASFIndexer methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_SetFlags(IMFASFIndexer* This,DWORD dwFlags) { | 
|  | return This->lpVtbl->SetFlags(This,dwFlags); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_GetFlags(IMFASFIndexer* This,DWORD *pdwFlags) { | 
|  | return This->lpVtbl->GetFlags(This,pdwFlags); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_Initialize(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) { | 
|  | return This->lpVtbl->Initialize(This,pIContentInfo); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_GetIndexPosition(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo,QWORD *pcbIndexOffset) { | 
|  | return This->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_SetIndexByteStreams(IMFASFIndexer* This,IMFByteStream **ppIByteStreams,DWORD cByteStreams) { | 
|  | return This->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_GetIndexByteStreamCount(IMFASFIndexer* This,DWORD *pcByteStreams) { | 
|  | return This->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_GetIndexStatus(IMFASFIndexer* This,ASF_INDEX_IDENTIFIER *pIndexIdentifier,WINBOOL *pfIsIndexed,BYTE *pbIndexDescriptor,DWORD *pcbIndexDescriptor) { | 
|  | return This->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_SetIndexStatus(IMFASFIndexer* This,BYTE *pbIndexDescriptor,DWORD cbIndexDescriptor,WINBOOL fGenerateIndex) { | 
|  | return This->lpVtbl->SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_GetSeekPositionForValue(IMFASFIndexer* This,const PROPVARIANT *pvarValue,ASF_INDEX_IDENTIFIER *pIndexIdentifier,QWORD *pcbOffsetWithinData,MFTIME *phnsApproxTime,DWORD *pdwPayloadNumberOfStreamWithinPacket) { | 
|  | return This->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_GenerateIndexEntries(IMFASFIndexer* This,IMFSample *pIASFPacketSample) { | 
|  | return This->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_CommitIndex(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) { | 
|  | return This->lpVtbl->CommitIndex(This,pIContentInfo); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_GetIndexWriteSpace(IMFASFIndexer* This,QWORD *pcbIndexWriteSpace) { | 
|  | return This->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFIndexer_GetCompletedIndex(IMFASFIndexer* This,IMFMediaBuffer *pIIndexBuffer,QWORD cbOffsetWithinIndex) { | 
|  | return This->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IMFASFIndexer_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IMFASFStreamSelector interface | 
|  | */ | 
|  | #ifndef __IMFASFStreamSelector_INTERFACE_DEFINED__ | 
|  | #define __IMFASFStreamSelector_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IMFASFStreamSelector, 0xd01bad4a, 0x4fa0, 0x4a60, 0x93,0x49, 0xc2,0x7e,0x62,0xda,0x9d,0x41); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("d01bad4a-4fa0-4a60-9349-c27e62da9d41") | 
|  | IMFASFStreamSelector : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetStreamCount( | 
|  | DWORD *pcStreams) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetOutputCount( | 
|  | DWORD *pcOutputs) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetOutputStreamCount( | 
|  | DWORD dwOutputNum, | 
|  | DWORD *pcStreams) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetOutputStreamNumbers( | 
|  | DWORD dwOutputNum, | 
|  | WORD *rgwStreamNumbers) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetOutputFromStream( | 
|  | WORD wStreamNum, | 
|  | DWORD *pdwOutput) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetOutputOverride( | 
|  | DWORD dwOutputNum, | 
|  | ASF_SELECTION_STATUS *pSelection) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetOutputOverride( | 
|  | DWORD dwOutputNum, | 
|  | ASF_SELECTION_STATUS Selection) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetOutputMutexCount( | 
|  | DWORD dwOutputNum, | 
|  | DWORD *pcMutexes) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetOutputMutex( | 
|  | DWORD dwOutputNum, | 
|  | DWORD dwMutexNum, | 
|  | IUnknown **ppMutex) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetOutputMutexSelection( | 
|  | DWORD dwOutputNum, | 
|  | DWORD dwMutexNum, | 
|  | WORD wSelectedRecord) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetBandwidthStepCount( | 
|  | DWORD *pcStepCount) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetBandwidthStep( | 
|  | DWORD dwStepNum, | 
|  | DWORD *pdwBitrate, | 
|  | WORD *rgwStreamNumbers, | 
|  | ASF_SELECTION_STATUS *rgSelections) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE BitrateToStepNumber( | 
|  | DWORD dwBitrate, | 
|  | DWORD *pdwStepNum) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetStreamSelectorFlags( | 
|  | DWORD dwStreamSelectorFlags) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IMFASFStreamSelector, 0xd01bad4a, 0x4fa0, 0x4a60, 0x93,0x49, 0xc2,0x7e,0x62,0xda,0x9d,0x41) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IMFASFStreamSelectorVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IMFASFStreamSelector *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IMFASFStreamSelector *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IMFASFStreamSelector *This); | 
|  |  | 
|  | /*** IMFASFStreamSelector methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetStreamCount)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD *pcStreams); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetOutputCount)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD *pcOutputs); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetOutputStreamCount)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD dwOutputNum, | 
|  | DWORD *pcStreams); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetOutputStreamNumbers)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD dwOutputNum, | 
|  | WORD *rgwStreamNumbers); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetOutputFromStream)( | 
|  | IMFASFStreamSelector *This, | 
|  | WORD wStreamNum, | 
|  | DWORD *pdwOutput); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetOutputOverride)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD dwOutputNum, | 
|  | ASF_SELECTION_STATUS *pSelection); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetOutputOverride)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD dwOutputNum, | 
|  | ASF_SELECTION_STATUS Selection); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetOutputMutexCount)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD dwOutputNum, | 
|  | DWORD *pcMutexes); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetOutputMutex)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD dwOutputNum, | 
|  | DWORD dwMutexNum, | 
|  | IUnknown **ppMutex); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetOutputMutexSelection)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD dwOutputNum, | 
|  | DWORD dwMutexNum, | 
|  | WORD wSelectedRecord); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetBandwidthStepCount)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD *pcStepCount); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetBandwidthStep)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD dwStepNum, | 
|  | DWORD *pdwBitrate, | 
|  | WORD *rgwStreamNumbers, | 
|  | ASF_SELECTION_STATUS *rgSelections); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *BitrateToStepNumber)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD dwBitrate, | 
|  | DWORD *pdwStepNum); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetStreamSelectorFlags)( | 
|  | IMFASFStreamSelector *This, | 
|  | DWORD dwStreamSelectorFlags); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IMFASFStreamSelectorVtbl; | 
|  |  | 
|  | interface IMFASFStreamSelector { | 
|  | CONST_VTBL IMFASFStreamSelectorVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IMFASFStreamSelector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IMFASFStreamSelector_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IMFASFStreamSelector_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IMFASFStreamSelector methods ***/ | 
|  | #define IMFASFStreamSelector_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) | 
|  | #define IMFASFStreamSelector_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs) | 
|  | #define IMFASFStreamSelector_GetOutputStreamCount(This,dwOutputNum,pcStreams) (This)->lpVtbl->GetOutputStreamCount(This,dwOutputNum,pcStreams) | 
|  | #define IMFASFStreamSelector_GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers) (This)->lpVtbl->GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers) | 
|  | #define IMFASFStreamSelector_GetOutputFromStream(This,wStreamNum,pdwOutput) (This)->lpVtbl->GetOutputFromStream(This,wStreamNum,pdwOutput) | 
|  | #define IMFASFStreamSelector_GetOutputOverride(This,dwOutputNum,pSelection) (This)->lpVtbl->GetOutputOverride(This,dwOutputNum,pSelection) | 
|  | #define IMFASFStreamSelector_SetOutputOverride(This,dwOutputNum,Selection) (This)->lpVtbl->SetOutputOverride(This,dwOutputNum,Selection) | 
|  | #define IMFASFStreamSelector_GetOutputMutexCount(This,dwOutputNum,pcMutexes) (This)->lpVtbl->GetOutputMutexCount(This,dwOutputNum,pcMutexes) | 
|  | #define IMFASFStreamSelector_GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex) (This)->lpVtbl->GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex) | 
|  | #define IMFASFStreamSelector_SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord) (This)->lpVtbl->SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord) | 
|  | #define IMFASFStreamSelector_GetBandwidthStepCount(This,pcStepCount) (This)->lpVtbl->GetBandwidthStepCount(This,pcStepCount) | 
|  | #define IMFASFStreamSelector_GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections) (This)->lpVtbl->GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections) | 
|  | #define IMFASFStreamSelector_BitrateToStepNumber(This,dwBitrate,pdwStepNum) (This)->lpVtbl->BitrateToStepNumber(This,dwBitrate,pdwStepNum) | 
|  | #define IMFASFStreamSelector_SetStreamSelectorFlags(This,dwStreamSelectorFlags) (This)->lpVtbl->SetStreamSelectorFlags(This,dwStreamSelectorFlags) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_QueryInterface(IMFASFStreamSelector* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFStreamSelector_AddRef(IMFASFStreamSelector* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFStreamSelector_Release(IMFASFStreamSelector* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IMFASFStreamSelector methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_GetStreamCount(IMFASFStreamSelector* This,DWORD *pcStreams) { | 
|  | return This->lpVtbl->GetStreamCount(This,pcStreams); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_GetOutputCount(IMFASFStreamSelector* This,DWORD *pcOutputs) { | 
|  | return This->lpVtbl->GetOutputCount(This,pcOutputs); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_GetOutputStreamCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcStreams) { | 
|  | return This->lpVtbl->GetOutputStreamCount(This,dwOutputNum,pcStreams); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_GetOutputStreamNumbers(IMFASFStreamSelector* This,DWORD dwOutputNum,WORD *rgwStreamNumbers) { | 
|  | return This->lpVtbl->GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_GetOutputFromStream(IMFASFStreamSelector* This,WORD wStreamNum,DWORD *pdwOutput) { | 
|  | return This->lpVtbl->GetOutputFromStream(This,wStreamNum,pdwOutput); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_GetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS *pSelection) { | 
|  | return This->lpVtbl->GetOutputOverride(This,dwOutputNum,pSelection); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_SetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS Selection) { | 
|  | return This->lpVtbl->SetOutputOverride(This,dwOutputNum,Selection); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_GetOutputMutexCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcMutexes) { | 
|  | return This->lpVtbl->GetOutputMutexCount(This,dwOutputNum,pcMutexes); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_GetOutputMutex(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,IUnknown **ppMutex) { | 
|  | return This->lpVtbl->GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_SetOutputMutexSelection(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,WORD wSelectedRecord) { | 
|  | return This->lpVtbl->SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_GetBandwidthStepCount(IMFASFStreamSelector* This,DWORD *pcStepCount) { | 
|  | return This->lpVtbl->GetBandwidthStepCount(This,pcStepCount); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_GetBandwidthStep(IMFASFStreamSelector* This,DWORD dwStepNum,DWORD *pdwBitrate,WORD *rgwStreamNumbers,ASF_SELECTION_STATUS *rgSelections) { | 
|  | return This->lpVtbl->GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_BitrateToStepNumber(IMFASFStreamSelector* This,DWORD dwBitrate,DWORD *pdwStepNum) { | 
|  | return This->lpVtbl->BitrateToStepNumber(This,dwBitrate,pdwStepNum); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamSelector_SetStreamSelectorFlags(IMFASFStreamSelector* This,DWORD dwStreamSelectorFlags) { | 
|  | return This->lpVtbl->SetStreamSelectorFlags(This,dwStreamSelectorFlags); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IMFASFStreamSelector_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | #if WINVER >= 0x0601 | 
|  | /***************************************************************************** | 
|  | * IMFDRMNetHelper interface | 
|  | */ | 
|  | #ifndef __IMFDRMNetHelper_INTERFACE_DEFINED__ | 
|  | #define __IMFDRMNetHelper_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IMFDRMNetHelper, 0x3d1ff0ea, 0x679a, 0x4190, 0x8d,0x46, 0x7f,0xa6,0x9e,0x8c,0x7e,0x15); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("3d1ff0ea-679a-4190-8d46-7fa69e8c7e15") | 
|  | IMFDRMNetHelper : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE ProcessLicenseRequest( | 
|  | BYTE *pLicenseRequest, | 
|  | DWORD cbLicenseRequest, | 
|  | BYTE **ppLicenseResponse, | 
|  | DWORD *pcbLicenseResponse, | 
|  | BSTR *pbstrKID) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetChainedLicenseResponse( | 
|  | BYTE **ppLicenseResponse, | 
|  | DWORD *pcbLicenseResponse) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IMFDRMNetHelper, 0x3d1ff0ea, 0x679a, 0x4190, 0x8d,0x46, 0x7f,0xa6,0x9e,0x8c,0x7e,0x15) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IMFDRMNetHelperVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IMFDRMNetHelper *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IMFDRMNetHelper *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IMFDRMNetHelper *This); | 
|  |  | 
|  | /*** IMFDRMNetHelper methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *ProcessLicenseRequest)( | 
|  | IMFDRMNetHelper *This, | 
|  | BYTE *pLicenseRequest, | 
|  | DWORD cbLicenseRequest, | 
|  | BYTE **ppLicenseResponse, | 
|  | DWORD *pcbLicenseResponse, | 
|  | BSTR *pbstrKID); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetChainedLicenseResponse)( | 
|  | IMFDRMNetHelper *This, | 
|  | BYTE **ppLicenseResponse, | 
|  | DWORD *pcbLicenseResponse); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IMFDRMNetHelperVtbl; | 
|  |  | 
|  | interface IMFDRMNetHelper { | 
|  | CONST_VTBL IMFDRMNetHelperVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IMFDRMNetHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IMFDRMNetHelper_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IMFDRMNetHelper_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IMFDRMNetHelper methods ***/ | 
|  | #define IMFDRMNetHelper_ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID) (This)->lpVtbl->ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID) | 
|  | #define IMFDRMNetHelper_GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse) (This)->lpVtbl->GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFDRMNetHelper_QueryInterface(IMFDRMNetHelper* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFDRMNetHelper_AddRef(IMFDRMNetHelper* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFDRMNetHelper_Release(IMFDRMNetHelper* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IMFDRMNetHelper methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFDRMNetHelper_ProcessLicenseRequest(IMFDRMNetHelper* This,BYTE *pLicenseRequest,DWORD cbLicenseRequest,BYTE **ppLicenseResponse,DWORD *pcbLicenseResponse,BSTR *pbstrKID) { | 
|  | return This->lpVtbl->ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFDRMNetHelper_GetChainedLicenseResponse(IMFDRMNetHelper* This,BYTE **ppLicenseResponse,DWORD *pcbLicenseResponse) { | 
|  | return This->lpVtbl->GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IMFDRMNetHelper_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | #endif | 
|  | /***************************************************************************** | 
|  | * IMFASFProfile interface | 
|  | */ | 
|  | #ifndef __IMFASFProfile_INTERFACE_DEFINED__ | 
|  | #define __IMFASFProfile_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IMFASFProfile, 0xd267bf6a, 0x028b, 0x4e0d, 0x90,0x3d, 0x43,0xf0,0xef,0x82,0xd0,0xd4); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("d267bf6a-028b-4e0d-903d-43f0ef82d0d4") | 
|  | IMFASFProfile : public IMFAttributes | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetStreamCount( | 
|  | DWORD *pcStreams) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetStream( | 
|  | DWORD dwStreamIndex, | 
|  | WORD *pwStreamNumber, | 
|  | IMFASFStreamConfig **ppIStream) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetStreamByNumber( | 
|  | WORD wStreamNumber, | 
|  | IMFASFStreamConfig **ppIStream) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetStream( | 
|  | IMFASFStreamConfig *pIStream) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE RemoveStream( | 
|  | WORD wStreamNumber) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE CreateStream( | 
|  | IMFMediaType *pIMediaType, | 
|  | IMFASFStreamConfig **ppIStream) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetMutualExclusionCount( | 
|  | DWORD *pcMutexs) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetMutualExclusion( | 
|  | DWORD dwMutexIndex, | 
|  | IMFASFMutualExclusion **ppIMutex) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE AddMutualExclusion( | 
|  | IMFASFMutualExclusion *pIMutex) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE RemoveMutualExclusion( | 
|  | DWORD dwMutexIndex) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE CreateMutualExclusion( | 
|  | IMFASFMutualExclusion **ppIMutex) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetStreamPrioritization( | 
|  | IMFASFStreamPrioritization **ppIStreamPrioritization) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE AddStreamPrioritization( | 
|  | IMFASFStreamPrioritization *pIStreamPrioritization) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE RemoveStreamPrioritization( | 
|  | ) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE CreateStreamPrioritization( | 
|  | IMFASFStreamPrioritization **ppIStreamPrioritization) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Clone( | 
|  | IMFASFProfile **ppIProfile) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IMFASFProfile, 0xd267bf6a, 0x028b, 0x4e0d, 0x90,0x3d, 0x43,0xf0,0xef,0x82,0xd0,0xd4) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IMFASFProfileVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IMFASFProfile *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IMFASFProfile *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IMFASFProfile *This); | 
|  |  | 
|  | /*** IMFAttributes methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetItem)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | PROPVARIANT *pValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetItemType)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | MF_ATTRIBUTE_TYPE *pType); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *CompareItem)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | REFPROPVARIANT Value, | 
|  | WINBOOL *pbResult); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Compare)( | 
|  | IMFASFProfile *This, | 
|  | IMFAttributes *pTheirs, | 
|  | MF_ATTRIBUTES_MATCH_TYPE MatchType, | 
|  | WINBOOL *pbResult); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetUINT32)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | UINT32 *punValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetUINT64)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | UINT64 *punValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetDouble)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | double *pfValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetGUID)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | GUID *pguidValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetStringLength)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | UINT32 *pcchLength); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetString)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | LPWSTR pwszValue, | 
|  | UINT32 cchBufSize, | 
|  | UINT32 *pcchLength); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | LPWSTR *ppwszValue, | 
|  | UINT32 *pcchLength); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetBlobSize)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | UINT32 *pcbBlobSize); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetBlob)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | UINT8 *pBuf, | 
|  | UINT32 cbBufSize, | 
|  | UINT32 *pcbBlobSize); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | UINT8 **ppBuf, | 
|  | UINT32 *pcbSize); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetUnknown)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | REFIID riid, | 
|  | LPVOID *ppv); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetItem)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | REFPROPVARIANT Value); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *DeleteItem)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( | 
|  | IMFASFProfile *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetUINT32)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | UINT32 unValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetUINT64)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | UINT64 unValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetDouble)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | double fValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetGUID)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | REFGUID guidValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetString)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | LPCWSTR wszValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetBlob)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | const UINT8 *pBuf, | 
|  | UINT32 cbBufSize); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetUnknown)( | 
|  | IMFASFProfile *This, | 
|  | REFGUID guidKey, | 
|  | IUnknown *pUnknown); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *LockStore)( | 
|  | IMFASFProfile *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *UnlockStore)( | 
|  | IMFASFProfile *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetCount)( | 
|  | IMFASFProfile *This, | 
|  | UINT32 *pcItems); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( | 
|  | IMFASFProfile *This, | 
|  | UINT32 unIndex, | 
|  | GUID *pguidKey, | 
|  | PROPVARIANT *pValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *CopyAllItems)( | 
|  | IMFASFProfile *This, | 
|  | IMFAttributes *pDest); | 
|  |  | 
|  | /*** IMFASFProfile methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetStreamCount)( | 
|  | IMFASFProfile *This, | 
|  | DWORD *pcStreams); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetStream)( | 
|  | IMFASFProfile *This, | 
|  | DWORD dwStreamIndex, | 
|  | WORD *pwStreamNumber, | 
|  | IMFASFStreamConfig **ppIStream); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)( | 
|  | IMFASFProfile *This, | 
|  | WORD wStreamNumber, | 
|  | IMFASFStreamConfig **ppIStream); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetStream)( | 
|  | IMFASFProfile *This, | 
|  | IMFASFStreamConfig *pIStream); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *RemoveStream)( | 
|  | IMFASFProfile *This, | 
|  | WORD wStreamNumber); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *CreateStream)( | 
|  | IMFASFProfile *This, | 
|  | IMFMediaType *pIMediaType, | 
|  | IMFASFStreamConfig **ppIStream); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)( | 
|  | IMFASFProfile *This, | 
|  | DWORD *pcMutexs); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)( | 
|  | IMFASFProfile *This, | 
|  | DWORD dwMutexIndex, | 
|  | IMFASFMutualExclusion **ppIMutex); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)( | 
|  | IMFASFProfile *This, | 
|  | IMFASFMutualExclusion *pIMutex); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)( | 
|  | IMFASFProfile *This, | 
|  | DWORD dwMutexIndex); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *CreateMutualExclusion)( | 
|  | IMFASFProfile *This, | 
|  | IMFASFMutualExclusion **ppIMutex); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetStreamPrioritization)( | 
|  | IMFASFProfile *This, | 
|  | IMFASFStreamPrioritization **ppIStreamPrioritization); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *AddStreamPrioritization)( | 
|  | IMFASFProfile *This, | 
|  | IMFASFStreamPrioritization *pIStreamPrioritization); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *RemoveStreamPrioritization)( | 
|  | IMFASFProfile *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *CreateStreamPrioritization)( | 
|  | IMFASFProfile *This, | 
|  | IMFASFStreamPrioritization **ppIStreamPrioritization); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Clone)( | 
|  | IMFASFProfile *This, | 
|  | IMFASFProfile **ppIProfile); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IMFASFProfileVtbl; | 
|  |  | 
|  | interface IMFASFProfile { | 
|  | CONST_VTBL IMFASFProfileVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IMFASFProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IMFASFProfile_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IMFASFProfile_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IMFAttributes methods ***/ | 
|  | #define IMFASFProfile_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) | 
|  | #define IMFASFProfile_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) | 
|  | #define IMFASFProfile_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) | 
|  | #define IMFASFProfile_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) | 
|  | #define IMFASFProfile_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) | 
|  | #define IMFASFProfile_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) | 
|  | #define IMFASFProfile_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) | 
|  | #define IMFASFProfile_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) | 
|  | #define IMFASFProfile_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) | 
|  | #define IMFASFProfile_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) | 
|  | #define IMFASFProfile_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) | 
|  | #define IMFASFProfile_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) | 
|  | #define IMFASFProfile_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) | 
|  | #define IMFASFProfile_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) | 
|  | #define IMFASFProfile_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) | 
|  | #define IMFASFProfile_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) | 
|  | #define IMFASFProfile_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) | 
|  | #define IMFASFProfile_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) | 
|  | #define IMFASFProfile_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) | 
|  | #define IMFASFProfile_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) | 
|  | #define IMFASFProfile_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) | 
|  | #define IMFASFProfile_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) | 
|  | #define IMFASFProfile_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) | 
|  | #define IMFASFProfile_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) | 
|  | #define IMFASFProfile_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) | 
|  | #define IMFASFProfile_LockStore(This) (This)->lpVtbl->LockStore(This) | 
|  | #define IMFASFProfile_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) | 
|  | #define IMFASFProfile_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) | 
|  | #define IMFASFProfile_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) | 
|  | #define IMFASFProfile_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) | 
|  | /*** IMFASFProfile methods ***/ | 
|  | #define IMFASFProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) | 
|  | #define IMFASFProfile_GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) | 
|  | #define IMFASFProfile_GetStreamByNumber(This,wStreamNumber,ppIStream) (This)->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream) | 
|  | #define IMFASFProfile_SetStream(This,pIStream) (This)->lpVtbl->SetStream(This,pIStream) | 
|  | #define IMFASFProfile_RemoveStream(This,wStreamNumber) (This)->lpVtbl->RemoveStream(This,wStreamNumber) | 
|  | #define IMFASFProfile_CreateStream(This,pIMediaType,ppIStream) (This)->lpVtbl->CreateStream(This,pIMediaType,ppIStream) | 
|  | #define IMFASFProfile_GetMutualExclusionCount(This,pcMutexs) (This)->lpVtbl->GetMutualExclusionCount(This,pcMutexs) | 
|  | #define IMFASFProfile_GetMutualExclusion(This,dwMutexIndex,ppIMutex) (This)->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex) | 
|  | #define IMFASFProfile_AddMutualExclusion(This,pIMutex) (This)->lpVtbl->AddMutualExclusion(This,pIMutex) | 
|  | #define IMFASFProfile_RemoveMutualExclusion(This,dwMutexIndex) (This)->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex) | 
|  | #define IMFASFProfile_CreateMutualExclusion(This,ppIMutex) (This)->lpVtbl->CreateMutualExclusion(This,ppIMutex) | 
|  | #define IMFASFProfile_GetStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization) | 
|  | #define IMFASFProfile_AddStreamPrioritization(This,pIStreamPrioritization) (This)->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization) | 
|  | #define IMFASFProfile_RemoveStreamPrioritization(This) (This)->lpVtbl->RemoveStreamPrioritization(This) | 
|  | #define IMFASFProfile_CreateStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization) | 
|  | #define IMFASFProfile_Clone(This,ppIProfile) (This)->lpVtbl->Clone(This,ppIProfile) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_QueryInterface(IMFASFProfile* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFProfile_AddRef(IMFASFProfile* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFProfile_Release(IMFASFProfile* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IMFAttributes methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetItem(IMFASFProfile* This,REFGUID guidKey,PROPVARIANT *pValue) { | 
|  | return This->lpVtbl->GetItem(This,guidKey,pValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetItemType(IMFASFProfile* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { | 
|  | return This->lpVtbl->GetItemType(This,guidKey,pType); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_CompareItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { | 
|  | return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_Compare(IMFASFProfile* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { | 
|  | return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 *punValue) { | 
|  | return This->lpVtbl->GetUINT32(This,guidKey,punValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 *punValue) { | 
|  | return This->lpVtbl->GetUINT64(This,guidKey,punValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetDouble(IMFASFProfile* This,REFGUID guidKey,double *pfValue) { | 
|  | return This->lpVtbl->GetDouble(This,guidKey,pfValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetGUID(IMFASFProfile* This,REFGUID guidKey,GUID *pguidValue) { | 
|  | return This->lpVtbl->GetGUID(This,guidKey,pguidValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetStringLength(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcchLength) { | 
|  | return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetString(IMFASFProfile* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { | 
|  | return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetAllocatedString(IMFASFProfile* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { | 
|  | return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetBlobSize(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcbBlobSize) { | 
|  | return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetBlob(IMFASFProfile* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { | 
|  | return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetAllocatedBlob(IMFASFProfile* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { | 
|  | return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetUnknown(IMFASFProfile* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { | 
|  | return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_SetItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value) { | 
|  | return This->lpVtbl->SetItem(This,guidKey,Value); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_DeleteItem(IMFASFProfile* This,REFGUID guidKey) { | 
|  | return This->lpVtbl->DeleteItem(This,guidKey); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_DeleteAllItems(IMFASFProfile* This) { | 
|  | return This->lpVtbl->DeleteAllItems(This); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_SetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 unValue) { | 
|  | return This->lpVtbl->SetUINT32(This,guidKey,unValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_SetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 unValue) { | 
|  | return This->lpVtbl->SetUINT64(This,guidKey,unValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_SetDouble(IMFASFProfile* This,REFGUID guidKey,double fValue) { | 
|  | return This->lpVtbl->SetDouble(This,guidKey,fValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_SetGUID(IMFASFProfile* This,REFGUID guidKey,REFGUID guidValue) { | 
|  | return This->lpVtbl->SetGUID(This,guidKey,guidValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_SetString(IMFASFProfile* This,REFGUID guidKey,LPCWSTR wszValue) { | 
|  | return This->lpVtbl->SetString(This,guidKey,wszValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_SetBlob(IMFASFProfile* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { | 
|  | return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_SetUnknown(IMFASFProfile* This,REFGUID guidKey,IUnknown *pUnknown) { | 
|  | return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_LockStore(IMFASFProfile* This) { | 
|  | return This->lpVtbl->LockStore(This); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_UnlockStore(IMFASFProfile* This) { | 
|  | return This->lpVtbl->UnlockStore(This); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetCount(IMFASFProfile* This,UINT32 *pcItems) { | 
|  | return This->lpVtbl->GetCount(This,pcItems); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetItemByIndex(IMFASFProfile* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { | 
|  | return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_CopyAllItems(IMFASFProfile* This,IMFAttributes *pDest) { | 
|  | return This->lpVtbl->CopyAllItems(This,pDest); | 
|  | } | 
|  | /*** IMFASFProfile methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetStreamCount(IMFASFProfile* This,DWORD *pcStreams) { | 
|  | return This->lpVtbl->GetStreamCount(This,pcStreams); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetStream(IMFASFProfile* This,DWORD dwStreamIndex,WORD *pwStreamNumber,IMFASFStreamConfig **ppIStream) { | 
|  | return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetStreamByNumber(IMFASFProfile* This,WORD wStreamNumber,IMFASFStreamConfig **ppIStream) { | 
|  | return This->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_SetStream(IMFASFProfile* This,IMFASFStreamConfig *pIStream) { | 
|  | return This->lpVtbl->SetStream(This,pIStream); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_RemoveStream(IMFASFProfile* This,WORD wStreamNumber) { | 
|  | return This->lpVtbl->RemoveStream(This,wStreamNumber); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_CreateStream(IMFASFProfile* This,IMFMediaType *pIMediaType,IMFASFStreamConfig **ppIStream) { | 
|  | return This->lpVtbl->CreateStream(This,pIMediaType,ppIStream); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetMutualExclusionCount(IMFASFProfile* This,DWORD *pcMutexs) { | 
|  | return This->lpVtbl->GetMutualExclusionCount(This,pcMutexs); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex,IMFASFMutualExclusion **ppIMutex) { | 
|  | return This->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_AddMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion *pIMutex) { | 
|  | return This->lpVtbl->AddMutualExclusion(This,pIMutex); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_RemoveMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex) { | 
|  | return This->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_CreateMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion **ppIMutex) { | 
|  | return This->lpVtbl->CreateMutualExclusion(This,ppIMutex); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_GetStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) { | 
|  | return This->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_AddStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization *pIStreamPrioritization) { | 
|  | return This->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_RemoveStreamPrioritization(IMFASFProfile* This) { | 
|  | return This->lpVtbl->RemoveStreamPrioritization(This); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_CreateStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) { | 
|  | return This->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFProfile_Clone(IMFASFProfile* This,IMFASFProfile **ppIProfile) { | 
|  | return This->lpVtbl->Clone(This,ppIProfile); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IMFASFProfile_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IMFASFStreamConfig interface | 
|  | */ | 
|  | #ifndef __IMFASFStreamConfig_INTERFACE_DEFINED__ | 
|  | #define __IMFASFStreamConfig_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IMFASFStreamConfig, 0x9e8ae8d2, 0xdbbd, 0x4200, 0x9a,0xca, 0x06,0xe6,0xdf,0x48,0x49,0x13); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("9e8ae8d2-dbbd-4200-9aca-06e6df484913") | 
|  | IMFASFStreamConfig : public IMFAttributes | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetStreamType( | 
|  | GUID *pguidStreamType) = 0; | 
|  |  | 
|  | virtual WORD STDMETHODCALLTYPE GetStreamNumber( | 
|  | ) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetStreamNumber( | 
|  | WORD wStreamNum) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetMediaType( | 
|  | IMFMediaType **ppIMediaType) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetMediaType( | 
|  | IMFMediaType *pIMediaType) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetPayloadExtensionCount( | 
|  | WORD *pcPayloadExtensions) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetPayloadExtension( | 
|  | WORD wPayloadExtensionNumber, | 
|  | GUID *pguidExtensionSystemID, | 
|  | WORD *pcbExtensionDataSize, | 
|  | BYTE *pbExtensionSystemInfo, | 
|  | DWORD *pcbExtensionSystemInfo) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE AddPayloadExtension( | 
|  | GUID guidExtensionSystemID, | 
|  | WORD cbExtensionDataSize, | 
|  | BYTE *pbExtensionSystemInfo, | 
|  | DWORD cbExtensionSystemInfo) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE RemoveAllPayloadExtensions( | 
|  | ) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Clone( | 
|  | IMFASFStreamConfig **ppIStreamConfig) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IMFASFStreamConfig, 0x9e8ae8d2, 0xdbbd, 0x4200, 0x9a,0xca, 0x06,0xe6,0xdf,0x48,0x49,0x13) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IMFASFStreamConfigVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IMFASFStreamConfig *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IMFASFStreamConfig *This); | 
|  |  | 
|  | /*** IMFAttributes methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetItem)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | PROPVARIANT *pValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetItemType)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | MF_ATTRIBUTE_TYPE *pType); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *CompareItem)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | REFPROPVARIANT Value, | 
|  | WINBOOL *pbResult); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Compare)( | 
|  | IMFASFStreamConfig *This, | 
|  | IMFAttributes *pTheirs, | 
|  | MF_ATTRIBUTES_MATCH_TYPE MatchType, | 
|  | WINBOOL *pbResult); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetUINT32)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | UINT32 *punValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetUINT64)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | UINT64 *punValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetDouble)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | double *pfValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetGUID)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | GUID *pguidValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetStringLength)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | UINT32 *pcchLength); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetString)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | LPWSTR pwszValue, | 
|  | UINT32 cchBufSize, | 
|  | UINT32 *pcchLength); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | LPWSTR *ppwszValue, | 
|  | UINT32 *pcchLength); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetBlobSize)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | UINT32 *pcbBlobSize); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetBlob)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | UINT8 *pBuf, | 
|  | UINT32 cbBufSize, | 
|  | UINT32 *pcbBlobSize); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | UINT8 **ppBuf, | 
|  | UINT32 *pcbSize); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetUnknown)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | REFIID riid, | 
|  | LPVOID *ppv); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetItem)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | REFPROPVARIANT Value); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *DeleteItem)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( | 
|  | IMFASFStreamConfig *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetUINT32)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | UINT32 unValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetUINT64)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | UINT64 unValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetDouble)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | double fValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetGUID)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | REFGUID guidValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetString)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | LPCWSTR wszValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetBlob)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | const UINT8 *pBuf, | 
|  | UINT32 cbBufSize); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetUnknown)( | 
|  | IMFASFStreamConfig *This, | 
|  | REFGUID guidKey, | 
|  | IUnknown *pUnknown); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *LockStore)( | 
|  | IMFASFStreamConfig *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *UnlockStore)( | 
|  | IMFASFStreamConfig *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetCount)( | 
|  | IMFASFStreamConfig *This, | 
|  | UINT32 *pcItems); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( | 
|  | IMFASFStreamConfig *This, | 
|  | UINT32 unIndex, | 
|  | GUID *pguidKey, | 
|  | PROPVARIANT *pValue); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *CopyAllItems)( | 
|  | IMFASFStreamConfig *This, | 
|  | IMFAttributes *pDest); | 
|  |  | 
|  | /*** IMFASFStreamConfig methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetStreamType)( | 
|  | IMFASFStreamConfig *This, | 
|  | GUID *pguidStreamType); | 
|  |  | 
|  | WORD (STDMETHODCALLTYPE *GetStreamNumber)( | 
|  | IMFASFStreamConfig *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetStreamNumber)( | 
|  | IMFASFStreamConfig *This, | 
|  | WORD wStreamNum); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetMediaType)( | 
|  | IMFASFStreamConfig *This, | 
|  | IMFMediaType **ppIMediaType); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetMediaType)( | 
|  | IMFASFStreamConfig *This, | 
|  | IMFMediaType *pIMediaType); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetPayloadExtensionCount)( | 
|  | IMFASFStreamConfig *This, | 
|  | WORD *pcPayloadExtensions); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetPayloadExtension)( | 
|  | IMFASFStreamConfig *This, | 
|  | WORD wPayloadExtensionNumber, | 
|  | GUID *pguidExtensionSystemID, | 
|  | WORD *pcbExtensionDataSize, | 
|  | BYTE *pbExtensionSystemInfo, | 
|  | DWORD *pcbExtensionSystemInfo); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *AddPayloadExtension)( | 
|  | IMFASFStreamConfig *This, | 
|  | GUID guidExtensionSystemID, | 
|  | WORD cbExtensionDataSize, | 
|  | BYTE *pbExtensionSystemInfo, | 
|  | DWORD cbExtensionSystemInfo); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *RemoveAllPayloadExtensions)( | 
|  | IMFASFStreamConfig *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Clone)( | 
|  | IMFASFStreamConfig *This, | 
|  | IMFASFStreamConfig **ppIStreamConfig); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IMFASFStreamConfigVtbl; | 
|  |  | 
|  | interface IMFASFStreamConfig { | 
|  | CONST_VTBL IMFASFStreamConfigVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IMFASFStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IMFASFStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IMFASFStreamConfig_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IMFAttributes methods ***/ | 
|  | #define IMFASFStreamConfig_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) | 
|  | #define IMFASFStreamConfig_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) | 
|  | #define IMFASFStreamConfig_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) | 
|  | #define IMFASFStreamConfig_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) | 
|  | #define IMFASFStreamConfig_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) | 
|  | #define IMFASFStreamConfig_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) | 
|  | #define IMFASFStreamConfig_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) | 
|  | #define IMFASFStreamConfig_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) | 
|  | #define IMFASFStreamConfig_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) | 
|  | #define IMFASFStreamConfig_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) | 
|  | #define IMFASFStreamConfig_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) | 
|  | #define IMFASFStreamConfig_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) | 
|  | #define IMFASFStreamConfig_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) | 
|  | #define IMFASFStreamConfig_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) | 
|  | #define IMFASFStreamConfig_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) | 
|  | #define IMFASFStreamConfig_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) | 
|  | #define IMFASFStreamConfig_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) | 
|  | #define IMFASFStreamConfig_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) | 
|  | #define IMFASFStreamConfig_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) | 
|  | #define IMFASFStreamConfig_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) | 
|  | #define IMFASFStreamConfig_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) | 
|  | #define IMFASFStreamConfig_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) | 
|  | #define IMFASFStreamConfig_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) | 
|  | #define IMFASFStreamConfig_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) | 
|  | #define IMFASFStreamConfig_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) | 
|  | #define IMFASFStreamConfig_LockStore(This) (This)->lpVtbl->LockStore(This) | 
|  | #define IMFASFStreamConfig_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) | 
|  | #define IMFASFStreamConfig_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) | 
|  | #define IMFASFStreamConfig_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) | 
|  | #define IMFASFStreamConfig_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) | 
|  | /*** IMFASFStreamConfig methods ***/ | 
|  | #define IMFASFStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType) | 
|  | #define IMFASFStreamConfig_GetStreamNumber(This) (This)->lpVtbl->GetStreamNumber(This) | 
|  | #define IMFASFStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum) | 
|  | #define IMFASFStreamConfig_GetMediaType(This,ppIMediaType) (This)->lpVtbl->GetMediaType(This,ppIMediaType) | 
|  | #define IMFASFStreamConfig_SetMediaType(This,pIMediaType) (This)->lpVtbl->SetMediaType(This,pIMediaType) | 
|  | #define IMFASFStreamConfig_GetPayloadExtensionCount(This,pcPayloadExtensions) (This)->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions) | 
|  | #define IMFASFStreamConfig_GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) (This)->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) | 
|  | #define IMFASFStreamConfig_AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) (This)->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) | 
|  | #define IMFASFStreamConfig_RemoveAllPayloadExtensions(This) (This)->lpVtbl->RemoveAllPayloadExtensions(This) | 
|  | #define IMFASFStreamConfig_Clone(This,ppIStreamConfig) (This)->lpVtbl->Clone(This,ppIStreamConfig) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_QueryInterface(IMFASFStreamConfig* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFStreamConfig_AddRef(IMFASFStreamConfig* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IMFASFStreamConfig_Release(IMFASFStreamConfig* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IMFAttributes methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetItem(IMFASFStreamConfig* This,REFGUID guidKey,PROPVARIANT *pValue) { | 
|  | return This->lpVtbl->GetItem(This,guidKey,pValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetItemType(IMFASFStreamConfig* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { | 
|  | return This->lpVtbl->GetItemType(This,guidKey,pType); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_CompareItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { | 
|  | return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_Compare(IMFASFStreamConfig* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { | 
|  | return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *punValue) { | 
|  | return This->lpVtbl->GetUINT32(This,guidKey,punValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 *punValue) { | 
|  | return This->lpVtbl->GetUINT64(This,guidKey,punValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double *pfValue) { | 
|  | return This->lpVtbl->GetDouble(This,guidKey,pfValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetGUID(IMFASFStreamConfig* This,REFGUID guidKey,GUID *pguidValue) { | 
|  | return This->lpVtbl->GetGUID(This,guidKey,pguidValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetStringLength(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcchLength) { | 
|  | return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetString(IMFASFStreamConfig* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { | 
|  | return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetAllocatedString(IMFASFStreamConfig* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { | 
|  | return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetBlobSize(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcbBlobSize) { | 
|  | return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetBlob(IMFASFStreamConfig* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { | 
|  | return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetAllocatedBlob(IMFASFStreamConfig* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { | 
|  | return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { | 
|  | return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_SetItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value) { | 
|  | return This->lpVtbl->SetItem(This,guidKey,Value); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_DeleteItem(IMFASFStreamConfig* This,REFGUID guidKey) { | 
|  | return This->lpVtbl->DeleteItem(This,guidKey); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_DeleteAllItems(IMFASFStreamConfig* This) { | 
|  | return This->lpVtbl->DeleteAllItems(This); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_SetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 unValue) { | 
|  | return This->lpVtbl->SetUINT32(This,guidKey,unValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_SetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 unValue) { | 
|  | return This->lpVtbl->SetUINT64(This,guidKey,unValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_SetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double fValue) { | 
|  | return This->lpVtbl->SetDouble(This,guidKey,fValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_SetGUID(IMFASFStreamConfig* This,REFGUID guidKey,REFGUID guidValue) { | 
|  | return This->lpVtbl->SetGUID(This,guidKey,guidValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_SetString(IMFASFStreamConfig* This,REFGUID guidKey,LPCWSTR wszValue) { | 
|  | return This->lpVtbl->SetString(This,guidKey,wszValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_SetBlob(IMFASFStreamConfig* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { | 
|  | return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_SetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,IUnknown *pUnknown) { | 
|  | return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_LockStore(IMFASFStreamConfig* This) { | 
|  | return This->lpVtbl->LockStore(This); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_UnlockStore(IMFASFStreamConfig* This) { | 
|  | return This->lpVtbl->UnlockStore(This); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetCount(IMFASFStreamConfig* This,UINT32 *pcItems) { | 
|  | return This->lpVtbl->GetCount(This,pcItems); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetItemByIndex(IMFASFStreamConfig* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { | 
|  | return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_CopyAllItems(IMFASFStreamConfig* This,IMFAttributes *pDest) { | 
|  | return This->lpVtbl->CopyAllItems(This,pDest); | 
|  | } | 
|  | /*** IMFASFStreamConfig methods ***/ | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetStreamType(IMFASFStreamConfig* This,GUID *pguidStreamType) { | 
|  | return This->lpVtbl->GetStreamType(This,pguidStreamType); | 
|  | } | 
|  | static __WIDL_INLINE WORD IMFASFStreamConfig_GetStreamNumber(IMFASFStreamConfig* This) { | 
|  | return This->lpVtbl->GetStreamNumber(This); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_SetStreamNumber(IMFASFStreamConfig* This,WORD wStreamNum) { | 
|  | return This->lpVtbl->SetStreamNumber(This,wStreamNum); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetMediaType(IMFASFStreamConfig* This,IMFMediaType **ppIMediaType) { | 
|  | return This->lpVtbl->GetMediaType(This,ppIMediaType); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_SetMediaType(IMFASFStreamConfig* This,IMFMediaType *pIMediaType) { | 
|  | return This->lpVtbl->SetMediaType(This,pIMediaType); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetPayloadExtensionCount(IMFASFStreamConfig* This,WORD *pcPayloadExtensions) { | 
|  | return This->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_GetPayloadExtension(IMFASFStreamConfig* This,WORD wPayloadExtensionNumber,GUID *pguidExtensionSystemID,WORD *pcbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD *pcbExtensionSystemInfo) { | 
|  | return This->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_AddPayloadExtension(IMFASFStreamConfig* This,GUID guidExtensionSystemID,WORD cbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD cbExtensionSystemInfo) { | 
|  | return This->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_RemoveAllPayloadExtensions(IMFASFStreamConfig* This) { | 
|  | return This->lpVtbl->RemoveAllPayloadExtensions(This); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IMFASFStreamConfig_Clone(IMFASFStreamConfig* This,IMFASFStreamConfig **ppIStreamConfig) { | 
|  | return This->lpVtbl->Clone(This,ppIStreamConfig); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IMFASFStreamConfig_INTERFACE_DEFINED__ */ | 
|  |  | 
|  |  | 
|  | EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_BASE_SENDTIME = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 3  }; | 
|  | EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 4  }; | 
|  | EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_DRMACTION = { { 0xa1db6f6c, 0x1d0a, 0x4cb6, 0x82, 0x54, 0xcb, 0x36, 0xbe, 0xed, 0xbc, 0x48}, 5  }; | 
|  | EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET = { { 0xa2f152fb, 0x8ad9, 0x4a11, 0xb3, 0x45, 0x2c, 0xe2, 0xfa, 0xd8, 0x72, 0x3d}, 1  }; | 
|  |  | 
|  | STDAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo); | 
|  | STDAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer); | 
|  | STDAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream, QWORD cbIndexStartOffset, IMFByteStream **pIIndexByteStream); | 
|  | STDAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink); | 
|  | STDAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate); | 
|  | STDAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer); | 
|  | STDAPI MFCreateASFProfile(IMFASFProfile **ppIProfile); | 
|  | STDAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor  *pIPD, IMFASFProfile **ppIProfile); | 
|  | STDAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter); | 
|  | STDAPI MFCreateASFStreamingMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink); | 
|  | STDAPI MFCreateASFStreamingMediaSinkActivate(IMFActivate *pByteStreamActivate, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate); | 
|  | STDAPI MFCreateASFStreamSelector(IMFASFProfile *pIASFProfile, IMFASFStreamSelector **ppSelector); | 
|  | STDAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile, IMFPresentationDescriptor **ppIPD); | 
|  | HRESULT STDMETHODCALLTYPE MFCreateWMVEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate); | 
|  | HRESULT STDMETHODCALLTYPE MFCreateWMAEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate); | 
|  | #endif | 
|  | /* Begin additional prototypes for all interfaces */ | 
|  |  | 
|  | ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *); | 
|  | unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *); | 
|  | unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); | 
|  | void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *); | 
|  |  | 
|  | /* End additional prototypes */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /* __wmcontainer_h__ */ |