wmcontainer.h (115684B) - Raw
1 /*** Autogenerated by WIDL 10.4 from include/wmcontainer.idl - Do not edit ***/ 2 3 #ifdef _WIN32 4 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 #endif 7 #include <rpc.h> 8 #include <rpcndr.h> 9 #endif 10 11 #ifndef COM_NO_WINDOWS_H 12 #include <windows.h> 13 #include <ole2.h> 14 #endif 15 16 #ifndef __wmcontainer_h__ 17 #define __wmcontainer_h__ 18 19 /* Forward declarations */ 20 21 #ifndef __IMFASFContentInfo_FWD_DEFINED__ 22 #define __IMFASFContentInfo_FWD_DEFINED__ 23 typedef interface IMFASFContentInfo IMFASFContentInfo; 24 #ifdef __cplusplus 25 interface IMFASFContentInfo; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __IMFASFMutualExclusion_FWD_DEFINED__ 30 #define __IMFASFMutualExclusion_FWD_DEFINED__ 31 typedef interface IMFASFMutualExclusion IMFASFMutualExclusion; 32 #ifdef __cplusplus 33 interface IMFASFMutualExclusion; 34 #endif /* __cplusplus */ 35 #endif 36 37 #ifndef __IMFASFStreamPrioritization_FWD_DEFINED__ 38 #define __IMFASFStreamPrioritization_FWD_DEFINED__ 39 typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization; 40 #ifdef __cplusplus 41 interface IMFASFStreamPrioritization; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __IMFASFSplitter_FWD_DEFINED__ 46 #define __IMFASFSplitter_FWD_DEFINED__ 47 typedef interface IMFASFSplitter IMFASFSplitter; 48 #ifdef __cplusplus 49 interface IMFASFSplitter; 50 #endif /* __cplusplus */ 51 #endif 52 53 #ifndef __IMFASFMultiplexer_FWD_DEFINED__ 54 #define __IMFASFMultiplexer_FWD_DEFINED__ 55 typedef interface IMFASFMultiplexer IMFASFMultiplexer; 56 #ifdef __cplusplus 57 interface IMFASFMultiplexer; 58 #endif /* __cplusplus */ 59 #endif 60 61 #ifndef __IMFASFIndexer_FWD_DEFINED__ 62 #define __IMFASFIndexer_FWD_DEFINED__ 63 typedef interface IMFASFIndexer IMFASFIndexer; 64 #ifdef __cplusplus 65 interface IMFASFIndexer; 66 #endif /* __cplusplus */ 67 #endif 68 69 #ifndef __IMFASFStreamSelector_FWD_DEFINED__ 70 #define __IMFASFStreamSelector_FWD_DEFINED__ 71 typedef interface IMFASFStreamSelector IMFASFStreamSelector; 72 #ifdef __cplusplus 73 interface IMFASFStreamSelector; 74 #endif /* __cplusplus */ 75 #endif 76 77 #ifndef __IMFDRMNetHelper_FWD_DEFINED__ 78 #define __IMFDRMNetHelper_FWD_DEFINED__ 79 typedef interface IMFDRMNetHelper IMFDRMNetHelper; 80 #ifdef __cplusplus 81 interface IMFDRMNetHelper; 82 #endif /* __cplusplus */ 83 #endif 84 85 #ifndef __IMFASFProfile_FWD_DEFINED__ 86 #define __IMFASFProfile_FWD_DEFINED__ 87 typedef interface IMFASFProfile IMFASFProfile; 88 #ifdef __cplusplus 89 interface IMFASFProfile; 90 #endif /* __cplusplus */ 91 #endif 92 93 #ifndef __IMFASFStreamConfig_FWD_DEFINED__ 94 #define __IMFASFStreamConfig_FWD_DEFINED__ 95 typedef interface IMFASFStreamConfig IMFASFStreamConfig; 96 #ifdef __cplusplus 97 interface IMFASFStreamConfig; 98 #endif /* __cplusplus */ 99 #endif 100 101 /* Headers for imported files */ 102 103 #include <mfidl.h> 104 105 #ifdef __cplusplus 106 extern "C" { 107 #endif 108 109 #include <winapifamily.h> 110 111 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 112 113 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FILE_ID, 0x3de649b4, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); 114 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_CREATION_TIME, 0x3de649b6, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); 115 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FLAGS, 0x3de649bb, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); 116 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_PACKET_SIZE, 0x3de649bd, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); 117 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_BITRATE, 0x3de649be, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); 118 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MIN_PACKET_SIZE, 0x3de649bc, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); 119 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PACKETS, 0x3de649b7, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); 120 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PLAY_DURATION, 0x3de649b8, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); 121 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PREROLL, 0x3de649ba, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); 122 EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_SEND_DURATION, 0x3de649b9, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3); 123 EXTERN_GUID(CLSID_WMDRMSystemID, 0x8948BB22, 0x11BD, 0x4796, 0x93, 0xE3, 0x97, 0x4D, 0x1B, 0x57, 0x56, 0x78); 124 EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_KEYID, 0x8520fe3e, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); 125 EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_LICENSE_URL, 0x8520fe40, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); 126 EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_SECRET_DATA, 0x8520fe3f, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); 127 EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_TYPE, 0x8520fe3d, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe); 128 EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTIONEX_ENCRYPTION_DATA, 0x62508be5, 0xecdf, 0x4924, 0xa3, 0x59, 0x72, 0xba, 0xb3, 0x39, 0x7b, 0x9d); 129 EXTERN_GUID(MF_PD_ASF_LANGLIST, 0xf23de43c, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d); 130 EXTERN_GUID(MF_PD_ASF_MARKER, 0x5134330e, 0x83a6, 0x475e, 0xa9, 0xd5, 0x4f, 0xb8, 0x75, 0xfb, 0x2e, 0x31); 131 EXTERN_GUID(MF_PD_ASF_SCRIPT, 0xe29cd0d7, 0xd602, 0x4923, 0xa7, 0xfe, 0x73, 0xfd, 0x97, 0xec, 0xc6, 0x50); 132 EXTERN_GUID(MF_PD_ASF_CODECLIST, 0xe4bb3509, 0xc18d, 0x4df1, 0xbb, 0x99, 0x7a, 0x36, 0xb3, 0xcc, 0x41, 0x19); 133 EXTERN_GUID(MF_PD_ASF_METADATA_IS_VBR, 0x5fc6947a, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); 134 EXTERN_GUID(MF_PD_ASF_METADATA_V8_VBRPEAK, 0x5fc6947b, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); 135 EXTERN_GUID(MF_PD_ASF_METADATA_V8_BUFFERAVERAGE, 0x5fc6947c, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); 136 EXTERN_GUID(MF_PD_ASF_METADATA_LEAKY_BUCKET_PAIRS, 0x5fc6947d, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1); 137 EXTERN_GUID(MF_PD_ASF_DATA_START_OFFSET, 0xe7d5b3e7, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed); 138 EXTERN_GUID(MF_PD_ASF_DATA_LENGTH, 0xe7d5b3e8, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed); 139 EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_LANGUAGE_ID_INDEX, 0x48f8a522, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); 140 EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_DATA_BITRATE, 0x48f8a523, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); 141 EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_BUFFERSIZE, 0x48f8a524, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); 142 EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_DATA_BITRATE, 0x48f8a525, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); 143 EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_BUFFERSIZE, 0x48f8a526, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80); 144 EXTERN_GUID(MF_SD_ASF_STREAMBITRATES_BITRATE, 0xa8e182ed, 0xafc8, 0x43d0, 0xb0, 0xd1, 0xf6, 0x5b, 0xad, 0x9d, 0xa5, 0x58); 145 EXTERN_GUID(MF_SD_ASF_METADATA_DEVICE_CONFORMANCE_TEMPLATE, 0x245e929d, 0xc44e, 0x4f7e, 0xbb, 0x3c, 0x77, 0xd4, 0xdf, 0xd2, 0x7f, 0x8a); 146 EXTERN_GUID(MF_PD_ASF_INFO_HAS_AUDIO, 0x80e62295, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c); 147 EXTERN_GUID(MF_PD_ASF_INFO_HAS_VIDEO, 0x80e62296, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c); 148 EXTERN_GUID(MF_PD_ASF_INFO_HAS_NON_AUDIO_VIDEO, 0x80e62297, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c); 149 #if WINVER >= 0x0601 150 EXTERN_GUID(MFASFINDEXER_TYPE_TIMECODE, 0x49815231, 0x6bad, 0x44fd, 0x81, 0xa, 0x3f, 0x60, 0x98, 0x4e, 0xc7, 0xfd); 151 EXTERN_GUID(MF_PD_ASF_LANGLIST_LEGACYORDER, 0xf23de43d, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d); 152 #endif 153 154 EXTERN_GUID(MFASFMutexType_Bitrate, 0x72178C2C, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); 155 EXTERN_GUID(MFASFMutexType_Language, 0x72178C2B, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); 156 EXTERN_GUID(MFASFMutexType_Presentation, 0x72178C2D, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); 157 EXTERN_GUID(MFASFMutexType_Unknown, 0x72178C2E, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); 158 EXTERN_GUID(MFASFSampleExtension_ContentType, 0xd590dc20, 0x07bc, 0x436c, 0x9c, 0xf7, 0xf3, 0xbb, 0xfb, 0xf1, 0xa4, 0xdc); 159 EXTERN_GUID(MFASFSampleExtension_Encryption_SampleID, 0x6698B84E, 0x0AFA, 0x4330, 0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D); 160 EXTERN_GUID(MFASFSampleExtension_Encryption_KeyID, 0x76376591, 0x795f, 0x4da1, 0x86, 0xed, 0x9d, 0x46, 0xec, 0xa1, 0x09, 0xa9); 161 EXTERN_GUID(MFASFSampleExtension_FileName, 0xe165ec0e, 0x19ed, 0x45d7, 0xb4, 0xa7, 0x25, 0xcb, 0xd1, 0xe2, 0x8e, 0x9b); 162 EXTERN_GUID(MFASFSampleExtension_OutputCleanPoint, 0xf72a3c6f, 0x6eb4, 0x4ebc, 0xb1, 0x92, 0x9, 0xad, 0x97, 0x59, 0xe8, 0x28); 163 EXTERN_GUID(MFASFSampleExtension_PixelAspectRatio, 0x1b1ee554, 0xf9ea, 0x4bc8, 0x82, 0x1a, 0x37, 0x6b, 0x74, 0xe4, 0xc4, 0xb8); 164 EXTERN_GUID(MFASFSampleExtension_SampleDuration, 0xc6bd9450, 0x867f, 0x4907, 0x83, 0xa3, 0xc7, 0x79, 0x21, 0xb7, 0x33, 0xad); 165 EXTERN_GUID(MFASFSampleExtension_SMPTE, 0x399595ec, 0x8667, 0x4e2d, 0x8f, 0xdb, 0x98, 0x81, 0x4c, 0xe7, 0x6c, 0x1e); 166 EXTERN_GUID(MFASFSPLITTER_PACKET_BOUNDARY, 0xfe584a05, 0xe8d6, 0x42e3, 0xb1, 0x76, 0xf1, 0x21, 0x17, 0x5, 0xfb, 0x6f); 167 EXTERN_GUID(MF_ASFPROFILE_MINPACKETSIZE, 0x22587626, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0); 168 EXTERN_GUID(MF_ASFPROFILE_MAXPACKETSIZE, 0x22587627, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0); 169 EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET1, 0xc69b5901, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd); 170 EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET2, 0xc69b5902, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd); 171 #ifndef __IMFASFProfile_FWD_DEFINED__ 172 #define __IMFASFProfile_FWD_DEFINED__ 173 typedef interface IMFASFProfile IMFASFProfile; 174 #ifdef __cplusplus 175 interface IMFASFProfile; 176 #endif /* __cplusplus */ 177 #endif 178 179 #ifndef __IMFASFStreamConfig_FWD_DEFINED__ 180 #define __IMFASFStreamConfig_FWD_DEFINED__ 181 typedef interface IMFASFStreamConfig IMFASFStreamConfig; 182 #ifdef __cplusplus 183 interface IMFASFStreamConfig; 184 #endif /* __cplusplus */ 185 #endif 186 187 #ifndef __IMFASFMutualExclusion_FWD_DEFINED__ 188 #define __IMFASFMutualExclusion_FWD_DEFINED__ 189 typedef interface IMFASFMutualExclusion IMFASFMutualExclusion; 190 #ifdef __cplusplus 191 interface IMFASFMutualExclusion; 192 #endif /* __cplusplus */ 193 #endif 194 195 #ifndef __IMFASFStreamPrioritization_FWD_DEFINED__ 196 #define __IMFASFStreamPrioritization_FWD_DEFINED__ 197 typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization; 198 #ifdef __cplusplus 199 interface IMFASFStreamPrioritization; 200 #endif /* __cplusplus */ 201 #endif 202 203 #define MFASFINDEXER_PER_ENTRY_BYTES_DYNAMIC 0xffff 204 #define MFASFINDEXER_NO_FIXED_INTERVAL 0xffffffff 205 #define MFASFINDEXER_READ_FOR_REVERSEPLAYBACK_OUTOFDATASEGMENT 0xffffffffffffffffll 206 #define MFASFINDEXER_APPROX_SEEK_TIME_UNKNOWN 0xffffffffffffffffll 207 208 #define MFASF_MIN_HEADER_BYTES (sizeof (GUID) + sizeof (QWORD)) 209 210 #define MFASF_MAX_STREAM_NUMBER 127 211 #define MFASF_INVALID_STREAM_NUMBER (MFASF_MAX_STREAM_NUMBER + 1) 212 #define MFASF_PAYLOADEXTENSION_MAX_SIZE 0xff 213 #define MFASF_PAYLOADEXTENSION_VARIABLE_SIZE 0xffff 214 #define MFASF_DEFAULT_BUFFER_WINDOW_MS 3000 215 216 typedef enum MFASF_SPLITTERFLAGS { 217 MFASF_SPLITTER_REVERSE = 0x1, 218 MFASF_SPLITTER_WMDRM = 0x2 219 } MFASF_SPLITTERFLAGS; 220 typedef enum ASF_STATUSFLAGS { 221 ASF_STATUSFLAGS_INCOMPLETE = 0x1 222 } ASF_STATUSFLAGS; 223 typedef enum MFASF_MULTIPLEXERFLAGS { 224 MFASF_MULTIPLEXER_AUTOADJUST_BITRATE = 0x1 225 } MFASF_MULTIPLEXERFLAGS; 226 typedef enum MFASF_INDEXERFLAGS { 227 MFASF_INDEXER_WRITE_NEW_INDEX = 0x1, 228 MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK = 0x2, 229 MFASF_INDEXER_WRITE_FOR_LIVEREAD = 0x4 230 } MFASF_INDEXER_FLAGS; 231 typedef enum MFASF_STREAMSELECTORFLAGS { 232 MFASF_STREAMSELECTOR_DISABLE_THINNING = 0x1, 233 MFASF_STREAMSELECTOR_USE_AVERAGE_BITRATE = 0x2 234 } MFASF_STREAMSELECTOR_FLAGS; 235 typedef enum ASF_SELECTION_STATUS { 236 ASF_STATUS_NOTSELECTED = 0, 237 ASF_STATUS_CLEANPOINTSONLY = 1, 238 ASF_STATUS_ALLDATAUNITS = 2 239 } ASF_SELECTION_STATUS; 240 typedef enum _MFSINK_WMDRMACTION { 241 MFSINK_WMDRMACTION_UNDEFINED = 0, 242 MFSINK_WMDRMACTION_ENCODE = 1, 243 MFSINK_WMDRMACTION_TRANSCODE = 2, 244 MFSINK_WMDRMACTION_TRANSCRYPT = 3, 245 MFSINK_WMDRMACTION_LAST = 3 246 } MFSINK_WMDRMACTION; 247 248 typedef struct ASF_MUX_STATISTICS { 249 DWORD cFramesWritten; 250 DWORD cFramesDropped; 251 } ASF_MUX_STATISTICS; 252 typedef struct _ASF_INDEX_IDENTIFIER { 253 GUID guidIndexType; 254 WORD wStreamNumber; 255 } ASF_INDEX_IDENTIFIER; 256 typedef struct _ASF_INDEX_DESCRIPTOR { 257 ASF_INDEX_IDENTIFIER Identifier; 258 WORD cPerEntryBytes; 259 WCHAR szDescription[32]; 260 DWORD dwInterval; 261 } ASF_INDEX_DESCRIPTOR; 262 263 /***************************************************************************** 264 * IMFASFContentInfo interface 265 */ 266 #ifndef __IMFASFContentInfo_INTERFACE_DEFINED__ 267 #define __IMFASFContentInfo_INTERFACE_DEFINED__ 268 269 DEFINE_GUID(IID_IMFASFContentInfo, 0xb1dca5cd, 0xd5da, 0x4451, 0x8e,0x9e, 0xdb,0x5c,0x59,0x91,0x4e,0xad); 270 #if defined(__cplusplus) && !defined(CINTERFACE) 271 MIDL_INTERFACE("b1dca5cd-d5da-4451-8e9e-db5c59914ead") 272 IMFASFContentInfo : public IUnknown 273 { 274 virtual HRESULT STDMETHODCALLTYPE GetHeaderSize( 275 IMFMediaBuffer *pIStartOfContent, 276 QWORD *cbHeaderSize) = 0; 277 278 virtual HRESULT STDMETHODCALLTYPE ParseHeader( 279 IMFMediaBuffer *pIHeaderBuffer, 280 QWORD cbOffsetWithinHeader) = 0; 281 282 virtual HRESULT STDMETHODCALLTYPE GenerateHeader( 283 IMFMediaBuffer *pIHeader, 284 DWORD *pcbHeader) = 0; 285 286 virtual HRESULT STDMETHODCALLTYPE GetProfile( 287 IMFASFProfile **ppIProfile) = 0; 288 289 virtual HRESULT STDMETHODCALLTYPE SetProfile( 290 IMFASFProfile *pIProfile) = 0; 291 292 virtual HRESULT STDMETHODCALLTYPE GeneratePresentationDescriptor( 293 IMFPresentationDescriptor **ppIPresentationDescriptor) = 0; 294 295 virtual HRESULT STDMETHODCALLTYPE GetEncodingConfigurationPropertyStore( 296 WORD wStreamNumber, 297 IPropertyStore **ppIStore) = 0; 298 299 }; 300 #ifdef __CRT_UUID_DECL 301 __CRT_UUID_DECL(IMFASFContentInfo, 0xb1dca5cd, 0xd5da, 0x4451, 0x8e,0x9e, 0xdb,0x5c,0x59,0x91,0x4e,0xad) 302 #endif 303 #else 304 typedef struct IMFASFContentInfoVtbl { 305 BEGIN_INTERFACE 306 307 /*** IUnknown methods ***/ 308 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 309 IMFASFContentInfo *This, 310 REFIID riid, 311 void **ppvObject); 312 313 ULONG (STDMETHODCALLTYPE *AddRef)( 314 IMFASFContentInfo *This); 315 316 ULONG (STDMETHODCALLTYPE *Release)( 317 IMFASFContentInfo *This); 318 319 /*** IMFASFContentInfo methods ***/ 320 HRESULT (STDMETHODCALLTYPE *GetHeaderSize)( 321 IMFASFContentInfo *This, 322 IMFMediaBuffer *pIStartOfContent, 323 QWORD *cbHeaderSize); 324 325 HRESULT (STDMETHODCALLTYPE *ParseHeader)( 326 IMFASFContentInfo *This, 327 IMFMediaBuffer *pIHeaderBuffer, 328 QWORD cbOffsetWithinHeader); 329 330 HRESULT (STDMETHODCALLTYPE *GenerateHeader)( 331 IMFASFContentInfo *This, 332 IMFMediaBuffer *pIHeader, 333 DWORD *pcbHeader); 334 335 HRESULT (STDMETHODCALLTYPE *GetProfile)( 336 IMFASFContentInfo *This, 337 IMFASFProfile **ppIProfile); 338 339 HRESULT (STDMETHODCALLTYPE *SetProfile)( 340 IMFASFContentInfo *This, 341 IMFASFProfile *pIProfile); 342 343 HRESULT (STDMETHODCALLTYPE *GeneratePresentationDescriptor)( 344 IMFASFContentInfo *This, 345 IMFPresentationDescriptor **ppIPresentationDescriptor); 346 347 HRESULT (STDMETHODCALLTYPE *GetEncodingConfigurationPropertyStore)( 348 IMFASFContentInfo *This, 349 WORD wStreamNumber, 350 IPropertyStore **ppIStore); 351 352 END_INTERFACE 353 } IMFASFContentInfoVtbl; 354 355 interface IMFASFContentInfo { 356 CONST_VTBL IMFASFContentInfoVtbl* lpVtbl; 357 }; 358 359 #ifdef COBJMACROS 360 #ifndef WIDL_C_INLINE_WRAPPERS 361 /*** IUnknown methods ***/ 362 #define IMFASFContentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 363 #define IMFASFContentInfo_AddRef(This) (This)->lpVtbl->AddRef(This) 364 #define IMFASFContentInfo_Release(This) (This)->lpVtbl->Release(This) 365 /*** IMFASFContentInfo methods ***/ 366 #define IMFASFContentInfo_GetHeaderSize(This,pIStartOfContent,cbHeaderSize) (This)->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize) 367 #define IMFASFContentInfo_ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) (This)->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader) 368 #define IMFASFContentInfo_GenerateHeader(This,pIHeader,pcbHeader) (This)->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader) 369 #define IMFASFContentInfo_GetProfile(This,ppIProfile) (This)->lpVtbl->GetProfile(This,ppIProfile) 370 #define IMFASFContentInfo_SetProfile(This,pIProfile) (This)->lpVtbl->SetProfile(This,pIProfile) 371 #define IMFASFContentInfo_GeneratePresentationDescriptor(This,ppIPresentationDescriptor) (This)->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor) 372 #define IMFASFContentInfo_GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) (This)->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore) 373 #else 374 /*** IUnknown methods ***/ 375 static inline HRESULT IMFASFContentInfo_QueryInterface(IMFASFContentInfo* This,REFIID riid,void **ppvObject) { 376 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 377 } 378 static inline ULONG IMFASFContentInfo_AddRef(IMFASFContentInfo* This) { 379 return This->lpVtbl->AddRef(This); 380 } 381 static inline ULONG IMFASFContentInfo_Release(IMFASFContentInfo* This) { 382 return This->lpVtbl->Release(This); 383 } 384 /*** IMFASFContentInfo methods ***/ 385 static inline HRESULT IMFASFContentInfo_GetHeaderSize(IMFASFContentInfo* This,IMFMediaBuffer *pIStartOfContent,QWORD *cbHeaderSize) { 386 return This->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize); 387 } 388 static inline HRESULT IMFASFContentInfo_ParseHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeaderBuffer,QWORD cbOffsetWithinHeader) { 389 return This->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader); 390 } 391 static inline HRESULT IMFASFContentInfo_GenerateHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeader,DWORD *pcbHeader) { 392 return This->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader); 393 } 394 static inline HRESULT IMFASFContentInfo_GetProfile(IMFASFContentInfo* This,IMFASFProfile **ppIProfile) { 395 return This->lpVtbl->GetProfile(This,ppIProfile); 396 } 397 static inline HRESULT IMFASFContentInfo_SetProfile(IMFASFContentInfo* This,IMFASFProfile *pIProfile) { 398 return This->lpVtbl->SetProfile(This,pIProfile); 399 } 400 static inline HRESULT IMFASFContentInfo_GeneratePresentationDescriptor(IMFASFContentInfo* This,IMFPresentationDescriptor **ppIPresentationDescriptor) { 401 return This->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor); 402 } 403 static inline HRESULT IMFASFContentInfo_GetEncodingConfigurationPropertyStore(IMFASFContentInfo* This,WORD wStreamNumber,IPropertyStore **ppIStore) { 404 return This->lpVtbl->GetEncodingConfigurationPropertyStore(This,wStreamNumber,ppIStore); 405 } 406 #endif 407 #endif 408 409 #endif 410 411 412 #endif /* __IMFASFContentInfo_INTERFACE_DEFINED__ */ 413 414 /***************************************************************************** 415 * IMFASFMutualExclusion interface 416 */ 417 #ifndef __IMFASFMutualExclusion_INTERFACE_DEFINED__ 418 #define __IMFASFMutualExclusion_INTERFACE_DEFINED__ 419 420 DEFINE_GUID(IID_IMFASFMutualExclusion, 0x12558291, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab); 421 #if defined(__cplusplus) && !defined(CINTERFACE) 422 MIDL_INTERFACE("12558291-e399-11d5-bc2a-00b0d0f3f4ab") 423 IMFASFMutualExclusion : public IUnknown 424 { 425 virtual HRESULT STDMETHODCALLTYPE GetType( 426 GUID *pguidType) = 0; 427 428 virtual HRESULT STDMETHODCALLTYPE SetType( 429 REFGUID guidType) = 0; 430 431 virtual HRESULT STDMETHODCALLTYPE GetRecordCount( 432 DWORD *pdwRecordCount) = 0; 433 434 virtual HRESULT STDMETHODCALLTYPE GetStreamsForRecord( 435 DWORD dwRecordNumber, 436 WORD *pwStreamNumArray, 437 DWORD *pcStreams) = 0; 438 439 virtual HRESULT STDMETHODCALLTYPE AddStreamForRecord( 440 DWORD dwRecordNumber, 441 WORD wStreamNumber) = 0; 442 443 virtual HRESULT STDMETHODCALLTYPE RemoveStreamFromRecord( 444 DWORD dwRecordNumber, 445 WORD wStreamNumber) = 0; 446 447 virtual HRESULT STDMETHODCALLTYPE RemoveRecord( 448 DWORD dwRecordNumber) = 0; 449 450 virtual HRESULT STDMETHODCALLTYPE AddRecord( 451 DWORD *pdwRecordNumber) = 0; 452 453 virtual HRESULT STDMETHODCALLTYPE Clone( 454 IMFASFMutualExclusion **ppIMutex) = 0; 455 456 }; 457 #ifdef __CRT_UUID_DECL 458 __CRT_UUID_DECL(IMFASFMutualExclusion, 0x12558291, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab) 459 #endif 460 #else 461 typedef struct IMFASFMutualExclusionVtbl { 462 BEGIN_INTERFACE 463 464 /*** IUnknown methods ***/ 465 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 466 IMFASFMutualExclusion *This, 467 REFIID riid, 468 void **ppvObject); 469 470 ULONG (STDMETHODCALLTYPE *AddRef)( 471 IMFASFMutualExclusion *This); 472 473 ULONG (STDMETHODCALLTYPE *Release)( 474 IMFASFMutualExclusion *This); 475 476 /*** IMFASFMutualExclusion methods ***/ 477 HRESULT (STDMETHODCALLTYPE *GetType)( 478 IMFASFMutualExclusion *This, 479 GUID *pguidType); 480 481 HRESULT (STDMETHODCALLTYPE *SetType)( 482 IMFASFMutualExclusion *This, 483 REFGUID guidType); 484 485 HRESULT (STDMETHODCALLTYPE *GetRecordCount)( 486 IMFASFMutualExclusion *This, 487 DWORD *pdwRecordCount); 488 489 HRESULT (STDMETHODCALLTYPE *GetStreamsForRecord)( 490 IMFASFMutualExclusion *This, 491 DWORD dwRecordNumber, 492 WORD *pwStreamNumArray, 493 DWORD *pcStreams); 494 495 HRESULT (STDMETHODCALLTYPE *AddStreamForRecord)( 496 IMFASFMutualExclusion *This, 497 DWORD dwRecordNumber, 498 WORD wStreamNumber); 499 500 HRESULT (STDMETHODCALLTYPE *RemoveStreamFromRecord)( 501 IMFASFMutualExclusion *This, 502 DWORD dwRecordNumber, 503 WORD wStreamNumber); 504 505 HRESULT (STDMETHODCALLTYPE *RemoveRecord)( 506 IMFASFMutualExclusion *This, 507 DWORD dwRecordNumber); 508 509 HRESULT (STDMETHODCALLTYPE *AddRecord)( 510 IMFASFMutualExclusion *This, 511 DWORD *pdwRecordNumber); 512 513 HRESULT (STDMETHODCALLTYPE *Clone)( 514 IMFASFMutualExclusion *This, 515 IMFASFMutualExclusion **ppIMutex); 516 517 END_INTERFACE 518 } IMFASFMutualExclusionVtbl; 519 520 interface IMFASFMutualExclusion { 521 CONST_VTBL IMFASFMutualExclusionVtbl* lpVtbl; 522 }; 523 524 #ifdef COBJMACROS 525 #ifndef WIDL_C_INLINE_WRAPPERS 526 /*** IUnknown methods ***/ 527 #define IMFASFMutualExclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 528 #define IMFASFMutualExclusion_AddRef(This) (This)->lpVtbl->AddRef(This) 529 #define IMFASFMutualExclusion_Release(This) (This)->lpVtbl->Release(This) 530 /*** IMFASFMutualExclusion methods ***/ 531 #define IMFASFMutualExclusion_GetType(This,pguidType) (This)->lpVtbl->GetType(This,pguidType) 532 #define IMFASFMutualExclusion_SetType(This,guidType) (This)->lpVtbl->SetType(This,guidType) 533 #define IMFASFMutualExclusion_GetRecordCount(This,pdwRecordCount) (This)->lpVtbl->GetRecordCount(This,pdwRecordCount) 534 #define IMFASFMutualExclusion_GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) (This)->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams) 535 #define IMFASFMutualExclusion_AddStreamForRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber) 536 #define IMFASFMutualExclusion_RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) (This)->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber) 537 #define IMFASFMutualExclusion_RemoveRecord(This,dwRecordNumber) (This)->lpVtbl->RemoveRecord(This,dwRecordNumber) 538 #define IMFASFMutualExclusion_AddRecord(This,pdwRecordNumber) (This)->lpVtbl->AddRecord(This,pdwRecordNumber) 539 #define IMFASFMutualExclusion_Clone(This,ppIMutex) (This)->lpVtbl->Clone(This,ppIMutex) 540 #else 541 /*** IUnknown methods ***/ 542 static inline HRESULT IMFASFMutualExclusion_QueryInterface(IMFASFMutualExclusion* This,REFIID riid,void **ppvObject) { 543 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 544 } 545 static inline ULONG IMFASFMutualExclusion_AddRef(IMFASFMutualExclusion* This) { 546 return This->lpVtbl->AddRef(This); 547 } 548 static inline ULONG IMFASFMutualExclusion_Release(IMFASFMutualExclusion* This) { 549 return This->lpVtbl->Release(This); 550 } 551 /*** IMFASFMutualExclusion methods ***/ 552 static inline HRESULT IMFASFMutualExclusion_GetType(IMFASFMutualExclusion* This,GUID *pguidType) { 553 return This->lpVtbl->GetType(This,pguidType); 554 } 555 static inline HRESULT IMFASFMutualExclusion_SetType(IMFASFMutualExclusion* This,REFGUID guidType) { 556 return This->lpVtbl->SetType(This,guidType); 557 } 558 static inline HRESULT IMFASFMutualExclusion_GetRecordCount(IMFASFMutualExclusion* This,DWORD *pdwRecordCount) { 559 return This->lpVtbl->GetRecordCount(This,pdwRecordCount); 560 } 561 static inline HRESULT IMFASFMutualExclusion_GetStreamsForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD *pwStreamNumArray,DWORD *pcStreams) { 562 return This->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams); 563 } 564 static inline HRESULT IMFASFMutualExclusion_AddStreamForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) { 565 return This->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber); 566 } 567 static inline HRESULT IMFASFMutualExclusion_RemoveStreamFromRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) { 568 return This->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber); 569 } 570 static inline HRESULT IMFASFMutualExclusion_RemoveRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber) { 571 return This->lpVtbl->RemoveRecord(This,dwRecordNumber); 572 } 573 static inline HRESULT IMFASFMutualExclusion_AddRecord(IMFASFMutualExclusion* This,DWORD *pdwRecordNumber) { 574 return This->lpVtbl->AddRecord(This,pdwRecordNumber); 575 } 576 static inline HRESULT IMFASFMutualExclusion_Clone(IMFASFMutualExclusion* This,IMFASFMutualExclusion **ppIMutex) { 577 return This->lpVtbl->Clone(This,ppIMutex); 578 } 579 #endif 580 #endif 581 582 #endif 583 584 585 #endif /* __IMFASFMutualExclusion_INTERFACE_DEFINED__ */ 586 587 /***************************************************************************** 588 * IMFASFStreamPrioritization interface 589 */ 590 #ifndef __IMFASFStreamPrioritization_INTERFACE_DEFINED__ 591 #define __IMFASFStreamPrioritization_INTERFACE_DEFINED__ 592 593 DEFINE_GUID(IID_IMFASFStreamPrioritization, 0x699bdc27, 0xbbaf, 0x49ff, 0x8e,0x38, 0x9c,0x39,0xc9,0xb5,0xe0,0x88); 594 #if defined(__cplusplus) && !defined(CINTERFACE) 595 MIDL_INTERFACE("699bdc27-bbaf-49ff-8e38-9c39c9b5e088") 596 IMFASFStreamPrioritization : public IUnknown 597 { 598 virtual HRESULT STDMETHODCALLTYPE GetStreamCount( 599 DWORD *pdwStreamCount) = 0; 600 601 virtual HRESULT STDMETHODCALLTYPE GetStream( 602 DWORD dwStreamIndex, 603 WORD *pwStreamNumber, 604 WORD *pwStreamFlags) = 0; 605 606 virtual HRESULT STDMETHODCALLTYPE AddStream( 607 WORD wStreamNumber, 608 WORD wStreamFlags) = 0; 609 610 virtual HRESULT STDMETHODCALLTYPE RemoveStream( 611 DWORD dwStreamIndex) = 0; 612 613 virtual HRESULT STDMETHODCALLTYPE Clone( 614 IMFASFStreamPrioritization **ppIStreamPrioritization) = 0; 615 616 }; 617 #ifdef __CRT_UUID_DECL 618 __CRT_UUID_DECL(IMFASFStreamPrioritization, 0x699bdc27, 0xbbaf, 0x49ff, 0x8e,0x38, 0x9c,0x39,0xc9,0xb5,0xe0,0x88) 619 #endif 620 #else 621 typedef struct IMFASFStreamPrioritizationVtbl { 622 BEGIN_INTERFACE 623 624 /*** IUnknown methods ***/ 625 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 626 IMFASFStreamPrioritization *This, 627 REFIID riid, 628 void **ppvObject); 629 630 ULONG (STDMETHODCALLTYPE *AddRef)( 631 IMFASFStreamPrioritization *This); 632 633 ULONG (STDMETHODCALLTYPE *Release)( 634 IMFASFStreamPrioritization *This); 635 636 /*** IMFASFStreamPrioritization methods ***/ 637 HRESULT (STDMETHODCALLTYPE *GetStreamCount)( 638 IMFASFStreamPrioritization *This, 639 DWORD *pdwStreamCount); 640 641 HRESULT (STDMETHODCALLTYPE *GetStream)( 642 IMFASFStreamPrioritization *This, 643 DWORD dwStreamIndex, 644 WORD *pwStreamNumber, 645 WORD *pwStreamFlags); 646 647 HRESULT (STDMETHODCALLTYPE *AddStream)( 648 IMFASFStreamPrioritization *This, 649 WORD wStreamNumber, 650 WORD wStreamFlags); 651 652 HRESULT (STDMETHODCALLTYPE *RemoveStream)( 653 IMFASFStreamPrioritization *This, 654 DWORD dwStreamIndex); 655 656 HRESULT (STDMETHODCALLTYPE *Clone)( 657 IMFASFStreamPrioritization *This, 658 IMFASFStreamPrioritization **ppIStreamPrioritization); 659 660 END_INTERFACE 661 } IMFASFStreamPrioritizationVtbl; 662 663 interface IMFASFStreamPrioritization { 664 CONST_VTBL IMFASFStreamPrioritizationVtbl* lpVtbl; 665 }; 666 667 #ifdef COBJMACROS 668 #ifndef WIDL_C_INLINE_WRAPPERS 669 /*** IUnknown methods ***/ 670 #define IMFASFStreamPrioritization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 671 #define IMFASFStreamPrioritization_AddRef(This) (This)->lpVtbl->AddRef(This) 672 #define IMFASFStreamPrioritization_Release(This) (This)->lpVtbl->Release(This) 673 /*** IMFASFStreamPrioritization methods ***/ 674 #define IMFASFStreamPrioritization_GetStreamCount(This,pdwStreamCount) (This)->lpVtbl->GetStreamCount(This,pdwStreamCount) 675 #define IMFASFStreamPrioritization_GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags) 676 #define IMFASFStreamPrioritization_AddStream(This,wStreamNumber,wStreamFlags) (This)->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags) 677 #define IMFASFStreamPrioritization_RemoveStream(This,dwStreamIndex) (This)->lpVtbl->RemoveStream(This,dwStreamIndex) 678 #define IMFASFStreamPrioritization_Clone(This,ppIStreamPrioritization) (This)->lpVtbl->Clone(This,ppIStreamPrioritization) 679 #else 680 /*** IUnknown methods ***/ 681 static inline HRESULT IMFASFStreamPrioritization_QueryInterface(IMFASFStreamPrioritization* This,REFIID riid,void **ppvObject) { 682 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 683 } 684 static inline ULONG IMFASFStreamPrioritization_AddRef(IMFASFStreamPrioritization* This) { 685 return This->lpVtbl->AddRef(This); 686 } 687 static inline ULONG IMFASFStreamPrioritization_Release(IMFASFStreamPrioritization* This) { 688 return This->lpVtbl->Release(This); 689 } 690 /*** IMFASFStreamPrioritization methods ***/ 691 static inline HRESULT IMFASFStreamPrioritization_GetStreamCount(IMFASFStreamPrioritization* This,DWORD *pdwStreamCount) { 692 return This->lpVtbl->GetStreamCount(This,pdwStreamCount); 693 } 694 static inline HRESULT IMFASFStreamPrioritization_GetStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex,WORD *pwStreamNumber,WORD *pwStreamFlags) { 695 return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags); 696 } 697 static inline HRESULT IMFASFStreamPrioritization_AddStream(IMFASFStreamPrioritization* This,WORD wStreamNumber,WORD wStreamFlags) { 698 return This->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags); 699 } 700 static inline HRESULT IMFASFStreamPrioritization_RemoveStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex) { 701 return This->lpVtbl->RemoveStream(This,dwStreamIndex); 702 } 703 static inline HRESULT IMFASFStreamPrioritization_Clone(IMFASFStreamPrioritization* This,IMFASFStreamPrioritization **ppIStreamPrioritization) { 704 return This->lpVtbl->Clone(This,ppIStreamPrioritization); 705 } 706 #endif 707 #endif 708 709 #endif 710 711 712 #endif /* __IMFASFStreamPrioritization_INTERFACE_DEFINED__ */ 713 714 /***************************************************************************** 715 * IMFASFSplitter interface 716 */ 717 #ifndef __IMFASFSplitter_INTERFACE_DEFINED__ 718 #define __IMFASFSplitter_INTERFACE_DEFINED__ 719 720 DEFINE_GUID(IID_IMFASFSplitter, 0x12558295, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab); 721 #if defined(__cplusplus) && !defined(CINTERFACE) 722 MIDL_INTERFACE("12558295-e399-11d5-bc2a-00b0d0f3f4ab") 723 IMFASFSplitter : public IUnknown 724 { 725 virtual HRESULT STDMETHODCALLTYPE Initialize( 726 IMFASFContentInfo *pIContentInfo) = 0; 727 728 virtual HRESULT STDMETHODCALLTYPE SetFlags( 729 DWORD dwFlags) = 0; 730 731 virtual HRESULT STDMETHODCALLTYPE GetFlags( 732 DWORD *pdwFlags) = 0; 733 734 virtual HRESULT STDMETHODCALLTYPE SelectStreams( 735 WORD *pwStreamNumbers, 736 WORD wNumStreams) = 0; 737 738 virtual HRESULT STDMETHODCALLTYPE GetSelectedStreams( 739 WORD *pwStreamNumbers, 740 WORD *pwNumStreams) = 0; 741 742 virtual HRESULT STDMETHODCALLTYPE ParseData( 743 IMFMediaBuffer *pIBuffer, 744 DWORD cbBufferOffset, 745 DWORD cbLength) = 0; 746 747 virtual HRESULT STDMETHODCALLTYPE GetNextSample( 748 DWORD *pdwStatusFlags, 749 WORD *pwStreamNumber, 750 IMFSample **ppISample) = 0; 751 752 virtual HRESULT STDMETHODCALLTYPE Flush( 753 ) = 0; 754 755 virtual HRESULT STDMETHODCALLTYPE GetLastSendTime( 756 DWORD *pdwLastSendTime) = 0; 757 758 }; 759 #ifdef __CRT_UUID_DECL 760 __CRT_UUID_DECL(IMFASFSplitter, 0x12558295, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab) 761 #endif 762 #else 763 typedef struct IMFASFSplitterVtbl { 764 BEGIN_INTERFACE 765 766 /*** IUnknown methods ***/ 767 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 768 IMFASFSplitter *This, 769 REFIID riid, 770 void **ppvObject); 771 772 ULONG (STDMETHODCALLTYPE *AddRef)( 773 IMFASFSplitter *This); 774 775 ULONG (STDMETHODCALLTYPE *Release)( 776 IMFASFSplitter *This); 777 778 /*** IMFASFSplitter methods ***/ 779 HRESULT (STDMETHODCALLTYPE *Initialize)( 780 IMFASFSplitter *This, 781 IMFASFContentInfo *pIContentInfo); 782 783 HRESULT (STDMETHODCALLTYPE *SetFlags)( 784 IMFASFSplitter *This, 785 DWORD dwFlags); 786 787 HRESULT (STDMETHODCALLTYPE *GetFlags)( 788 IMFASFSplitter *This, 789 DWORD *pdwFlags); 790 791 HRESULT (STDMETHODCALLTYPE *SelectStreams)( 792 IMFASFSplitter *This, 793 WORD *pwStreamNumbers, 794 WORD wNumStreams); 795 796 HRESULT (STDMETHODCALLTYPE *GetSelectedStreams)( 797 IMFASFSplitter *This, 798 WORD *pwStreamNumbers, 799 WORD *pwNumStreams); 800 801 HRESULT (STDMETHODCALLTYPE *ParseData)( 802 IMFASFSplitter *This, 803 IMFMediaBuffer *pIBuffer, 804 DWORD cbBufferOffset, 805 DWORD cbLength); 806 807 HRESULT (STDMETHODCALLTYPE *GetNextSample)( 808 IMFASFSplitter *This, 809 DWORD *pdwStatusFlags, 810 WORD *pwStreamNumber, 811 IMFSample **ppISample); 812 813 HRESULT (STDMETHODCALLTYPE *Flush)( 814 IMFASFSplitter *This); 815 816 HRESULT (STDMETHODCALLTYPE *GetLastSendTime)( 817 IMFASFSplitter *This, 818 DWORD *pdwLastSendTime); 819 820 END_INTERFACE 821 } IMFASFSplitterVtbl; 822 823 interface IMFASFSplitter { 824 CONST_VTBL IMFASFSplitterVtbl* lpVtbl; 825 }; 826 827 #ifdef COBJMACROS 828 #ifndef WIDL_C_INLINE_WRAPPERS 829 /*** IUnknown methods ***/ 830 #define IMFASFSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 831 #define IMFASFSplitter_AddRef(This) (This)->lpVtbl->AddRef(This) 832 #define IMFASFSplitter_Release(This) (This)->lpVtbl->Release(This) 833 /*** IMFASFSplitter methods ***/ 834 #define IMFASFSplitter_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) 835 #define IMFASFSplitter_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) 836 #define IMFASFSplitter_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) 837 #define IMFASFSplitter_SelectStreams(This,pwStreamNumbers,wNumStreams) (This)->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams) 838 #define IMFASFSplitter_GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) (This)->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams) 839 #define IMFASFSplitter_ParseData(This,pIBuffer,cbBufferOffset,cbLength) (This)->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength) 840 #define IMFASFSplitter_GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) (This)->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample) 841 #define IMFASFSplitter_Flush(This) (This)->lpVtbl->Flush(This) 842 #define IMFASFSplitter_GetLastSendTime(This,pdwLastSendTime) (This)->lpVtbl->GetLastSendTime(This,pdwLastSendTime) 843 #else 844 /*** IUnknown methods ***/ 845 static inline HRESULT IMFASFSplitter_QueryInterface(IMFASFSplitter* This,REFIID riid,void **ppvObject) { 846 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 847 } 848 static inline ULONG IMFASFSplitter_AddRef(IMFASFSplitter* This) { 849 return This->lpVtbl->AddRef(This); 850 } 851 static inline ULONG IMFASFSplitter_Release(IMFASFSplitter* This) { 852 return This->lpVtbl->Release(This); 853 } 854 /*** IMFASFSplitter methods ***/ 855 static inline HRESULT IMFASFSplitter_Initialize(IMFASFSplitter* This,IMFASFContentInfo *pIContentInfo) { 856 return This->lpVtbl->Initialize(This,pIContentInfo); 857 } 858 static inline HRESULT IMFASFSplitter_SetFlags(IMFASFSplitter* This,DWORD dwFlags) { 859 return This->lpVtbl->SetFlags(This,dwFlags); 860 } 861 static inline HRESULT IMFASFSplitter_GetFlags(IMFASFSplitter* This,DWORD *pdwFlags) { 862 return This->lpVtbl->GetFlags(This,pdwFlags); 863 } 864 static inline HRESULT IMFASFSplitter_SelectStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD wNumStreams) { 865 return This->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams); 866 } 867 static inline HRESULT IMFASFSplitter_GetSelectedStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD *pwNumStreams) { 868 return This->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams); 869 } 870 static inline HRESULT IMFASFSplitter_ParseData(IMFASFSplitter* This,IMFMediaBuffer *pIBuffer,DWORD cbBufferOffset,DWORD cbLength) { 871 return This->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength); 872 } 873 static inline HRESULT IMFASFSplitter_GetNextSample(IMFASFSplitter* This,DWORD *pdwStatusFlags,WORD *pwStreamNumber,IMFSample **ppISample) { 874 return This->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample); 875 } 876 static inline HRESULT IMFASFSplitter_Flush(IMFASFSplitter* This) { 877 return This->lpVtbl->Flush(This); 878 } 879 static inline HRESULT IMFASFSplitter_GetLastSendTime(IMFASFSplitter* This,DWORD *pdwLastSendTime) { 880 return This->lpVtbl->GetLastSendTime(This,pdwLastSendTime); 881 } 882 #endif 883 #endif 884 885 #endif 886 887 888 #endif /* __IMFASFSplitter_INTERFACE_DEFINED__ */ 889 890 /***************************************************************************** 891 * IMFASFMultiplexer interface 892 */ 893 #ifndef __IMFASFMultiplexer_INTERFACE_DEFINED__ 894 #define __IMFASFMultiplexer_INTERFACE_DEFINED__ 895 896 DEFINE_GUID(IID_IMFASFMultiplexer, 0x57bdd80a, 0x9b38, 0x4838, 0xb7,0x37, 0xc5,0x8f,0x67,0x0d,0x7d,0x4f); 897 #if defined(__cplusplus) && !defined(CINTERFACE) 898 MIDL_INTERFACE("57bdd80a-9b38-4838-b737-c58f670d7d4f") 899 IMFASFMultiplexer : public IUnknown 900 { 901 virtual HRESULT STDMETHODCALLTYPE Initialize( 902 IMFASFContentInfo *pIContentInfo) = 0; 903 904 virtual HRESULT STDMETHODCALLTYPE SetFlags( 905 DWORD dwFlags) = 0; 906 907 virtual HRESULT STDMETHODCALLTYPE GetFlags( 908 DWORD *pdwFlags) = 0; 909 910 virtual HRESULT STDMETHODCALLTYPE ProcessSample( 911 WORD wStreamNumber, 912 IMFSample *pISample, 913 LONGLONG hnsTimestampAdjust) = 0; 914 915 virtual HRESULT STDMETHODCALLTYPE GetNextPacket( 916 DWORD *pdwStatusFlags, 917 IMFSample **ppIPacket) = 0; 918 919 virtual HRESULT STDMETHODCALLTYPE Flush( 920 ) = 0; 921 922 virtual HRESULT STDMETHODCALLTYPE End( 923 IMFASFContentInfo *pIContentInfo) = 0; 924 925 virtual HRESULT STDMETHODCALLTYPE GetStatistics( 926 WORD wStreamNumber, 927 ASF_MUX_STATISTICS *pMuxStats) = 0; 928 929 virtual HRESULT STDMETHODCALLTYPE SetSyncTolerance( 930 DWORD msSyncTolerance) = 0; 931 932 }; 933 #ifdef __CRT_UUID_DECL 934 __CRT_UUID_DECL(IMFASFMultiplexer, 0x57bdd80a, 0x9b38, 0x4838, 0xb7,0x37, 0xc5,0x8f,0x67,0x0d,0x7d,0x4f) 935 #endif 936 #else 937 typedef struct IMFASFMultiplexerVtbl { 938 BEGIN_INTERFACE 939 940 /*** IUnknown methods ***/ 941 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 942 IMFASFMultiplexer *This, 943 REFIID riid, 944 void **ppvObject); 945 946 ULONG (STDMETHODCALLTYPE *AddRef)( 947 IMFASFMultiplexer *This); 948 949 ULONG (STDMETHODCALLTYPE *Release)( 950 IMFASFMultiplexer *This); 951 952 /*** IMFASFMultiplexer methods ***/ 953 HRESULT (STDMETHODCALLTYPE *Initialize)( 954 IMFASFMultiplexer *This, 955 IMFASFContentInfo *pIContentInfo); 956 957 HRESULT (STDMETHODCALLTYPE *SetFlags)( 958 IMFASFMultiplexer *This, 959 DWORD dwFlags); 960 961 HRESULT (STDMETHODCALLTYPE *GetFlags)( 962 IMFASFMultiplexer *This, 963 DWORD *pdwFlags); 964 965 HRESULT (STDMETHODCALLTYPE *ProcessSample)( 966 IMFASFMultiplexer *This, 967 WORD wStreamNumber, 968 IMFSample *pISample, 969 LONGLONG hnsTimestampAdjust); 970 971 HRESULT (STDMETHODCALLTYPE *GetNextPacket)( 972 IMFASFMultiplexer *This, 973 DWORD *pdwStatusFlags, 974 IMFSample **ppIPacket); 975 976 HRESULT (STDMETHODCALLTYPE *Flush)( 977 IMFASFMultiplexer *This); 978 979 HRESULT (STDMETHODCALLTYPE *End)( 980 IMFASFMultiplexer *This, 981 IMFASFContentInfo *pIContentInfo); 982 983 HRESULT (STDMETHODCALLTYPE *GetStatistics)( 984 IMFASFMultiplexer *This, 985 WORD wStreamNumber, 986 ASF_MUX_STATISTICS *pMuxStats); 987 988 HRESULT (STDMETHODCALLTYPE *SetSyncTolerance)( 989 IMFASFMultiplexer *This, 990 DWORD msSyncTolerance); 991 992 END_INTERFACE 993 } IMFASFMultiplexerVtbl; 994 995 interface IMFASFMultiplexer { 996 CONST_VTBL IMFASFMultiplexerVtbl* lpVtbl; 997 }; 998 999 #ifdef COBJMACROS 1000 #ifndef WIDL_C_INLINE_WRAPPERS 1001 /*** IUnknown methods ***/ 1002 #define IMFASFMultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1003 #define IMFASFMultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This) 1004 #define IMFASFMultiplexer_Release(This) (This)->lpVtbl->Release(This) 1005 /*** IMFASFMultiplexer methods ***/ 1006 #define IMFASFMultiplexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) 1007 #define IMFASFMultiplexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) 1008 #define IMFASFMultiplexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) 1009 #define IMFASFMultiplexer_ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) (This)->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust) 1010 #define IMFASFMultiplexer_GetNextPacket(This,pdwStatusFlags,ppIPacket) (This)->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket) 1011 #define IMFASFMultiplexer_Flush(This) (This)->lpVtbl->Flush(This) 1012 #define IMFASFMultiplexer_End(This,pIContentInfo) (This)->lpVtbl->End(This,pIContentInfo) 1013 #define IMFASFMultiplexer_GetStatistics(This,wStreamNumber,pMuxStats) (This)->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats) 1014 #define IMFASFMultiplexer_SetSyncTolerance(This,msSyncTolerance) (This)->lpVtbl->SetSyncTolerance(This,msSyncTolerance) 1015 #else 1016 /*** IUnknown methods ***/ 1017 static inline HRESULT IMFASFMultiplexer_QueryInterface(IMFASFMultiplexer* This,REFIID riid,void **ppvObject) { 1018 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1019 } 1020 static inline ULONG IMFASFMultiplexer_AddRef(IMFASFMultiplexer* This) { 1021 return This->lpVtbl->AddRef(This); 1022 } 1023 static inline ULONG IMFASFMultiplexer_Release(IMFASFMultiplexer* This) { 1024 return This->lpVtbl->Release(This); 1025 } 1026 /*** IMFASFMultiplexer methods ***/ 1027 static inline HRESULT IMFASFMultiplexer_Initialize(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) { 1028 return This->lpVtbl->Initialize(This,pIContentInfo); 1029 } 1030 static inline HRESULT IMFASFMultiplexer_SetFlags(IMFASFMultiplexer* This,DWORD dwFlags) { 1031 return This->lpVtbl->SetFlags(This,dwFlags); 1032 } 1033 static inline HRESULT IMFASFMultiplexer_GetFlags(IMFASFMultiplexer* This,DWORD *pdwFlags) { 1034 return This->lpVtbl->GetFlags(This,pdwFlags); 1035 } 1036 static inline HRESULT IMFASFMultiplexer_ProcessSample(IMFASFMultiplexer* This,WORD wStreamNumber,IMFSample *pISample,LONGLONG hnsTimestampAdjust) { 1037 return This->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust); 1038 } 1039 static inline HRESULT IMFASFMultiplexer_GetNextPacket(IMFASFMultiplexer* This,DWORD *pdwStatusFlags,IMFSample **ppIPacket) { 1040 return This->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket); 1041 } 1042 static inline HRESULT IMFASFMultiplexer_Flush(IMFASFMultiplexer* This) { 1043 return This->lpVtbl->Flush(This); 1044 } 1045 static inline HRESULT IMFASFMultiplexer_End(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) { 1046 return This->lpVtbl->End(This,pIContentInfo); 1047 } 1048 static inline HRESULT IMFASFMultiplexer_GetStatistics(IMFASFMultiplexer* This,WORD wStreamNumber,ASF_MUX_STATISTICS *pMuxStats) { 1049 return This->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats); 1050 } 1051 static inline HRESULT IMFASFMultiplexer_SetSyncTolerance(IMFASFMultiplexer* This,DWORD msSyncTolerance) { 1052 return This->lpVtbl->SetSyncTolerance(This,msSyncTolerance); 1053 } 1054 #endif 1055 #endif 1056 1057 #endif 1058 1059 1060 #endif /* __IMFASFMultiplexer_INTERFACE_DEFINED__ */ 1061 1062 /***************************************************************************** 1063 * IMFASFIndexer interface 1064 */ 1065 #ifndef __IMFASFIndexer_INTERFACE_DEFINED__ 1066 #define __IMFASFIndexer_INTERFACE_DEFINED__ 1067 1068 DEFINE_GUID(IID_IMFASFIndexer, 0x53590f48, 0xdc3b, 0x4297, 0x81,0x3f, 0x78,0x77,0x61,0xad,0x7b,0x3e); 1069 #if defined(__cplusplus) && !defined(CINTERFACE) 1070 MIDL_INTERFACE("53590f48-dc3b-4297-813f-787761ad7b3e") 1071 IMFASFIndexer : public IUnknown 1072 { 1073 virtual HRESULT STDMETHODCALLTYPE SetFlags( 1074 DWORD dwFlags) = 0; 1075 1076 virtual HRESULT STDMETHODCALLTYPE GetFlags( 1077 DWORD *pdwFlags) = 0; 1078 1079 virtual HRESULT STDMETHODCALLTYPE Initialize( 1080 IMFASFContentInfo *pIContentInfo) = 0; 1081 1082 virtual HRESULT STDMETHODCALLTYPE GetIndexPosition( 1083 IMFASFContentInfo *pIContentInfo, 1084 QWORD *pcbIndexOffset) = 0; 1085 1086 virtual HRESULT STDMETHODCALLTYPE SetIndexByteStreams( 1087 IMFByteStream **ppIByteStreams, 1088 DWORD cByteStreams) = 0; 1089 1090 virtual HRESULT STDMETHODCALLTYPE GetIndexByteStreamCount( 1091 DWORD *pcByteStreams) = 0; 1092 1093 virtual HRESULT STDMETHODCALLTYPE GetIndexStatus( 1094 ASF_INDEX_IDENTIFIER *pIndexIdentifier, 1095 WINBOOL *pfIsIndexed, 1096 BYTE *pbIndexDescriptor, 1097 DWORD *pcbIndexDescriptor) = 0; 1098 1099 virtual HRESULT STDMETHODCALLTYPE SetIndexStatus( 1100 BYTE *pbIndexDescriptor, 1101 DWORD cbIndexDescriptor, 1102 WINBOOL fGenerateIndex) = 0; 1103 1104 virtual HRESULT STDMETHODCALLTYPE GetSeekPositionForValue( 1105 const PROPVARIANT *pvarValue, 1106 ASF_INDEX_IDENTIFIER *pIndexIdentifier, 1107 QWORD *pcbOffsetWithinData, 1108 MFTIME *phnsApproxTime, 1109 DWORD *pdwPayloadNumberOfStreamWithinPacket) = 0; 1110 1111 virtual HRESULT STDMETHODCALLTYPE GenerateIndexEntries( 1112 IMFSample *pIASFPacketSample) = 0; 1113 1114 virtual HRESULT STDMETHODCALLTYPE CommitIndex( 1115 IMFASFContentInfo *pIContentInfo) = 0; 1116 1117 virtual HRESULT STDMETHODCALLTYPE GetIndexWriteSpace( 1118 QWORD *pcbIndexWriteSpace) = 0; 1119 1120 virtual HRESULT STDMETHODCALLTYPE GetCompletedIndex( 1121 IMFMediaBuffer *pIIndexBuffer, 1122 QWORD cbOffsetWithinIndex) = 0; 1123 1124 }; 1125 #ifdef __CRT_UUID_DECL 1126 __CRT_UUID_DECL(IMFASFIndexer, 0x53590f48, 0xdc3b, 0x4297, 0x81,0x3f, 0x78,0x77,0x61,0xad,0x7b,0x3e) 1127 #endif 1128 #else 1129 typedef struct IMFASFIndexerVtbl { 1130 BEGIN_INTERFACE 1131 1132 /*** IUnknown methods ***/ 1133 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1134 IMFASFIndexer *This, 1135 REFIID riid, 1136 void **ppvObject); 1137 1138 ULONG (STDMETHODCALLTYPE *AddRef)( 1139 IMFASFIndexer *This); 1140 1141 ULONG (STDMETHODCALLTYPE *Release)( 1142 IMFASFIndexer *This); 1143 1144 /*** IMFASFIndexer methods ***/ 1145 HRESULT (STDMETHODCALLTYPE *SetFlags)( 1146 IMFASFIndexer *This, 1147 DWORD dwFlags); 1148 1149 HRESULT (STDMETHODCALLTYPE *GetFlags)( 1150 IMFASFIndexer *This, 1151 DWORD *pdwFlags); 1152 1153 HRESULT (STDMETHODCALLTYPE *Initialize)( 1154 IMFASFIndexer *This, 1155 IMFASFContentInfo *pIContentInfo); 1156 1157 HRESULT (STDMETHODCALLTYPE *GetIndexPosition)( 1158 IMFASFIndexer *This, 1159 IMFASFContentInfo *pIContentInfo, 1160 QWORD *pcbIndexOffset); 1161 1162 HRESULT (STDMETHODCALLTYPE *SetIndexByteStreams)( 1163 IMFASFIndexer *This, 1164 IMFByteStream **ppIByteStreams, 1165 DWORD cByteStreams); 1166 1167 HRESULT (STDMETHODCALLTYPE *GetIndexByteStreamCount)( 1168 IMFASFIndexer *This, 1169 DWORD *pcByteStreams); 1170 1171 HRESULT (STDMETHODCALLTYPE *GetIndexStatus)( 1172 IMFASFIndexer *This, 1173 ASF_INDEX_IDENTIFIER *pIndexIdentifier, 1174 WINBOOL *pfIsIndexed, 1175 BYTE *pbIndexDescriptor, 1176 DWORD *pcbIndexDescriptor); 1177 1178 HRESULT (STDMETHODCALLTYPE *SetIndexStatus)( 1179 IMFASFIndexer *This, 1180 BYTE *pbIndexDescriptor, 1181 DWORD cbIndexDescriptor, 1182 WINBOOL fGenerateIndex); 1183 1184 HRESULT (STDMETHODCALLTYPE *GetSeekPositionForValue)( 1185 IMFASFIndexer *This, 1186 const PROPVARIANT *pvarValue, 1187 ASF_INDEX_IDENTIFIER *pIndexIdentifier, 1188 QWORD *pcbOffsetWithinData, 1189 MFTIME *phnsApproxTime, 1190 DWORD *pdwPayloadNumberOfStreamWithinPacket); 1191 1192 HRESULT (STDMETHODCALLTYPE *GenerateIndexEntries)( 1193 IMFASFIndexer *This, 1194 IMFSample *pIASFPacketSample); 1195 1196 HRESULT (STDMETHODCALLTYPE *CommitIndex)( 1197 IMFASFIndexer *This, 1198 IMFASFContentInfo *pIContentInfo); 1199 1200 HRESULT (STDMETHODCALLTYPE *GetIndexWriteSpace)( 1201 IMFASFIndexer *This, 1202 QWORD *pcbIndexWriteSpace); 1203 1204 HRESULT (STDMETHODCALLTYPE *GetCompletedIndex)( 1205 IMFASFIndexer *This, 1206 IMFMediaBuffer *pIIndexBuffer, 1207 QWORD cbOffsetWithinIndex); 1208 1209 END_INTERFACE 1210 } IMFASFIndexerVtbl; 1211 1212 interface IMFASFIndexer { 1213 CONST_VTBL IMFASFIndexerVtbl* lpVtbl; 1214 }; 1215 1216 #ifdef COBJMACROS 1217 #ifndef WIDL_C_INLINE_WRAPPERS 1218 /*** IUnknown methods ***/ 1219 #define IMFASFIndexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1220 #define IMFASFIndexer_AddRef(This) (This)->lpVtbl->AddRef(This) 1221 #define IMFASFIndexer_Release(This) (This)->lpVtbl->Release(This) 1222 /*** IMFASFIndexer methods ***/ 1223 #define IMFASFIndexer_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags) 1224 #define IMFASFIndexer_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) 1225 #define IMFASFIndexer_Initialize(This,pIContentInfo) (This)->lpVtbl->Initialize(This,pIContentInfo) 1226 #define IMFASFIndexer_GetIndexPosition(This,pIContentInfo,pcbIndexOffset) (This)->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset) 1227 #define IMFASFIndexer_SetIndexByteStreams(This,ppIByteStreams,cByteStreams) (This)->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams) 1228 #define IMFASFIndexer_GetIndexByteStreamCount(This,pcByteStreams) (This)->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams) 1229 #define IMFASFIndexer_GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) (This)->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor) 1230 #define IMFASFIndexer_SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex) (This)->lpVtbl->SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex) 1231 #define IMFASFIndexer_GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) (This)->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket) 1232 #define IMFASFIndexer_GenerateIndexEntries(This,pIASFPacketSample) (This)->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample) 1233 #define IMFASFIndexer_CommitIndex(This,pIContentInfo) (This)->lpVtbl->CommitIndex(This,pIContentInfo) 1234 #define IMFASFIndexer_GetIndexWriteSpace(This,pcbIndexWriteSpace) (This)->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace) 1235 #define IMFASFIndexer_GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) (This)->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex) 1236 #else 1237 /*** IUnknown methods ***/ 1238 static inline HRESULT IMFASFIndexer_QueryInterface(IMFASFIndexer* This,REFIID riid,void **ppvObject) { 1239 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1240 } 1241 static inline ULONG IMFASFIndexer_AddRef(IMFASFIndexer* This) { 1242 return This->lpVtbl->AddRef(This); 1243 } 1244 static inline ULONG IMFASFIndexer_Release(IMFASFIndexer* This) { 1245 return This->lpVtbl->Release(This); 1246 } 1247 /*** IMFASFIndexer methods ***/ 1248 static inline HRESULT IMFASFIndexer_SetFlags(IMFASFIndexer* This,DWORD dwFlags) { 1249 return This->lpVtbl->SetFlags(This,dwFlags); 1250 } 1251 static inline HRESULT IMFASFIndexer_GetFlags(IMFASFIndexer* This,DWORD *pdwFlags) { 1252 return This->lpVtbl->GetFlags(This,pdwFlags); 1253 } 1254 static inline HRESULT IMFASFIndexer_Initialize(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) { 1255 return This->lpVtbl->Initialize(This,pIContentInfo); 1256 } 1257 static inline HRESULT IMFASFIndexer_GetIndexPosition(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo,QWORD *pcbIndexOffset) { 1258 return This->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset); 1259 } 1260 static inline HRESULT IMFASFIndexer_SetIndexByteStreams(IMFASFIndexer* This,IMFByteStream **ppIByteStreams,DWORD cByteStreams) { 1261 return This->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams); 1262 } 1263 static inline HRESULT IMFASFIndexer_GetIndexByteStreamCount(IMFASFIndexer* This,DWORD *pcByteStreams) { 1264 return This->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams); 1265 } 1266 static inline HRESULT IMFASFIndexer_GetIndexStatus(IMFASFIndexer* This,ASF_INDEX_IDENTIFIER *pIndexIdentifier,WINBOOL *pfIsIndexed,BYTE *pbIndexDescriptor,DWORD *pcbIndexDescriptor) { 1267 return This->lpVtbl->GetIndexStatus(This,pIndexIdentifier,pfIsIndexed,pbIndexDescriptor,pcbIndexDescriptor); 1268 } 1269 static inline HRESULT IMFASFIndexer_SetIndexStatus(IMFASFIndexer* This,BYTE *pbIndexDescriptor,DWORD cbIndexDescriptor,WINBOOL fGenerateIndex) { 1270 return This->lpVtbl->SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex); 1271 } 1272 static inline HRESULT IMFASFIndexer_GetSeekPositionForValue(IMFASFIndexer* This,const PROPVARIANT *pvarValue,ASF_INDEX_IDENTIFIER *pIndexIdentifier,QWORD *pcbOffsetWithinData,MFTIME *phnsApproxTime,DWORD *pdwPayloadNumberOfStreamWithinPacket) { 1273 return This->lpVtbl->GetSeekPositionForValue(This,pvarValue,pIndexIdentifier,pcbOffsetWithinData,phnsApproxTime,pdwPayloadNumberOfStreamWithinPacket); 1274 } 1275 static inline HRESULT IMFASFIndexer_GenerateIndexEntries(IMFASFIndexer* This,IMFSample *pIASFPacketSample) { 1276 return This->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample); 1277 } 1278 static inline HRESULT IMFASFIndexer_CommitIndex(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) { 1279 return This->lpVtbl->CommitIndex(This,pIContentInfo); 1280 } 1281 static inline HRESULT IMFASFIndexer_GetIndexWriteSpace(IMFASFIndexer* This,QWORD *pcbIndexWriteSpace) { 1282 return This->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace); 1283 } 1284 static inline HRESULT IMFASFIndexer_GetCompletedIndex(IMFASFIndexer* This,IMFMediaBuffer *pIIndexBuffer,QWORD cbOffsetWithinIndex) { 1285 return This->lpVtbl->GetCompletedIndex(This,pIIndexBuffer,cbOffsetWithinIndex); 1286 } 1287 #endif 1288 #endif 1289 1290 #endif 1291 1292 1293 #endif /* __IMFASFIndexer_INTERFACE_DEFINED__ */ 1294 1295 /***************************************************************************** 1296 * IMFASFStreamSelector interface 1297 */ 1298 #ifndef __IMFASFStreamSelector_INTERFACE_DEFINED__ 1299 #define __IMFASFStreamSelector_INTERFACE_DEFINED__ 1300 1301 DEFINE_GUID(IID_IMFASFStreamSelector, 0xd01bad4a, 0x4fa0, 0x4a60, 0x93,0x49, 0xc2,0x7e,0x62,0xda,0x9d,0x41); 1302 #if defined(__cplusplus) && !defined(CINTERFACE) 1303 MIDL_INTERFACE("d01bad4a-4fa0-4a60-9349-c27e62da9d41") 1304 IMFASFStreamSelector : public IUnknown 1305 { 1306 virtual HRESULT STDMETHODCALLTYPE GetStreamCount( 1307 DWORD *pcStreams) = 0; 1308 1309 virtual HRESULT STDMETHODCALLTYPE GetOutputCount( 1310 DWORD *pcOutputs) = 0; 1311 1312 virtual HRESULT STDMETHODCALLTYPE GetOutputStreamCount( 1313 DWORD dwOutputNum, 1314 DWORD *pcStreams) = 0; 1315 1316 virtual HRESULT STDMETHODCALLTYPE GetOutputStreamNumbers( 1317 DWORD dwOutputNum, 1318 WORD *rgwStreamNumbers) = 0; 1319 1320 virtual HRESULT STDMETHODCALLTYPE GetOutputFromStream( 1321 WORD wStreamNum, 1322 DWORD *pdwOutput) = 0; 1323 1324 virtual HRESULT STDMETHODCALLTYPE GetOutputOverride( 1325 DWORD dwOutputNum, 1326 ASF_SELECTION_STATUS *pSelection) = 0; 1327 1328 virtual HRESULT STDMETHODCALLTYPE SetOutputOverride( 1329 DWORD dwOutputNum, 1330 ASF_SELECTION_STATUS Selection) = 0; 1331 1332 virtual HRESULT STDMETHODCALLTYPE GetOutputMutexCount( 1333 DWORD dwOutputNum, 1334 DWORD *pcMutexes) = 0; 1335 1336 virtual HRESULT STDMETHODCALLTYPE GetOutputMutex( 1337 DWORD dwOutputNum, 1338 DWORD dwMutexNum, 1339 IUnknown **ppMutex) = 0; 1340 1341 virtual HRESULT STDMETHODCALLTYPE SetOutputMutexSelection( 1342 DWORD dwOutputNum, 1343 DWORD dwMutexNum, 1344 WORD wSelectedRecord) = 0; 1345 1346 virtual HRESULT STDMETHODCALLTYPE GetBandwidthStepCount( 1347 DWORD *pcStepCount) = 0; 1348 1349 virtual HRESULT STDMETHODCALLTYPE GetBandwidthStep( 1350 DWORD dwStepNum, 1351 DWORD *pdwBitrate, 1352 WORD *rgwStreamNumbers, 1353 ASF_SELECTION_STATUS *rgSelections) = 0; 1354 1355 virtual HRESULT STDMETHODCALLTYPE BitrateToStepNumber( 1356 DWORD dwBitrate, 1357 DWORD *pdwStepNum) = 0; 1358 1359 virtual HRESULT STDMETHODCALLTYPE SetStreamSelectorFlags( 1360 DWORD dwStreamSelectorFlags) = 0; 1361 1362 }; 1363 #ifdef __CRT_UUID_DECL 1364 __CRT_UUID_DECL(IMFASFStreamSelector, 0xd01bad4a, 0x4fa0, 0x4a60, 0x93,0x49, 0xc2,0x7e,0x62,0xda,0x9d,0x41) 1365 #endif 1366 #else 1367 typedef struct IMFASFStreamSelectorVtbl { 1368 BEGIN_INTERFACE 1369 1370 /*** IUnknown methods ***/ 1371 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1372 IMFASFStreamSelector *This, 1373 REFIID riid, 1374 void **ppvObject); 1375 1376 ULONG (STDMETHODCALLTYPE *AddRef)( 1377 IMFASFStreamSelector *This); 1378 1379 ULONG (STDMETHODCALLTYPE *Release)( 1380 IMFASFStreamSelector *This); 1381 1382 /*** IMFASFStreamSelector methods ***/ 1383 HRESULT (STDMETHODCALLTYPE *GetStreamCount)( 1384 IMFASFStreamSelector *This, 1385 DWORD *pcStreams); 1386 1387 HRESULT (STDMETHODCALLTYPE *GetOutputCount)( 1388 IMFASFStreamSelector *This, 1389 DWORD *pcOutputs); 1390 1391 HRESULT (STDMETHODCALLTYPE *GetOutputStreamCount)( 1392 IMFASFStreamSelector *This, 1393 DWORD dwOutputNum, 1394 DWORD *pcStreams); 1395 1396 HRESULT (STDMETHODCALLTYPE *GetOutputStreamNumbers)( 1397 IMFASFStreamSelector *This, 1398 DWORD dwOutputNum, 1399 WORD *rgwStreamNumbers); 1400 1401 HRESULT (STDMETHODCALLTYPE *GetOutputFromStream)( 1402 IMFASFStreamSelector *This, 1403 WORD wStreamNum, 1404 DWORD *pdwOutput); 1405 1406 HRESULT (STDMETHODCALLTYPE *GetOutputOverride)( 1407 IMFASFStreamSelector *This, 1408 DWORD dwOutputNum, 1409 ASF_SELECTION_STATUS *pSelection); 1410 1411 HRESULT (STDMETHODCALLTYPE *SetOutputOverride)( 1412 IMFASFStreamSelector *This, 1413 DWORD dwOutputNum, 1414 ASF_SELECTION_STATUS Selection); 1415 1416 HRESULT (STDMETHODCALLTYPE *GetOutputMutexCount)( 1417 IMFASFStreamSelector *This, 1418 DWORD dwOutputNum, 1419 DWORD *pcMutexes); 1420 1421 HRESULT (STDMETHODCALLTYPE *GetOutputMutex)( 1422 IMFASFStreamSelector *This, 1423 DWORD dwOutputNum, 1424 DWORD dwMutexNum, 1425 IUnknown **ppMutex); 1426 1427 HRESULT (STDMETHODCALLTYPE *SetOutputMutexSelection)( 1428 IMFASFStreamSelector *This, 1429 DWORD dwOutputNum, 1430 DWORD dwMutexNum, 1431 WORD wSelectedRecord); 1432 1433 HRESULT (STDMETHODCALLTYPE *GetBandwidthStepCount)( 1434 IMFASFStreamSelector *This, 1435 DWORD *pcStepCount); 1436 1437 HRESULT (STDMETHODCALLTYPE *GetBandwidthStep)( 1438 IMFASFStreamSelector *This, 1439 DWORD dwStepNum, 1440 DWORD *pdwBitrate, 1441 WORD *rgwStreamNumbers, 1442 ASF_SELECTION_STATUS *rgSelections); 1443 1444 HRESULT (STDMETHODCALLTYPE *BitrateToStepNumber)( 1445 IMFASFStreamSelector *This, 1446 DWORD dwBitrate, 1447 DWORD *pdwStepNum); 1448 1449 HRESULT (STDMETHODCALLTYPE *SetStreamSelectorFlags)( 1450 IMFASFStreamSelector *This, 1451 DWORD dwStreamSelectorFlags); 1452 1453 END_INTERFACE 1454 } IMFASFStreamSelectorVtbl; 1455 1456 interface IMFASFStreamSelector { 1457 CONST_VTBL IMFASFStreamSelectorVtbl* lpVtbl; 1458 }; 1459 1460 #ifdef COBJMACROS 1461 #ifndef WIDL_C_INLINE_WRAPPERS 1462 /*** IUnknown methods ***/ 1463 #define IMFASFStreamSelector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1464 #define IMFASFStreamSelector_AddRef(This) (This)->lpVtbl->AddRef(This) 1465 #define IMFASFStreamSelector_Release(This) (This)->lpVtbl->Release(This) 1466 /*** IMFASFStreamSelector methods ***/ 1467 #define IMFASFStreamSelector_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) 1468 #define IMFASFStreamSelector_GetOutputCount(This,pcOutputs) (This)->lpVtbl->GetOutputCount(This,pcOutputs) 1469 #define IMFASFStreamSelector_GetOutputStreamCount(This,dwOutputNum,pcStreams) (This)->lpVtbl->GetOutputStreamCount(This,dwOutputNum,pcStreams) 1470 #define IMFASFStreamSelector_GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers) (This)->lpVtbl->GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers) 1471 #define IMFASFStreamSelector_GetOutputFromStream(This,wStreamNum,pdwOutput) (This)->lpVtbl->GetOutputFromStream(This,wStreamNum,pdwOutput) 1472 #define IMFASFStreamSelector_GetOutputOverride(This,dwOutputNum,pSelection) (This)->lpVtbl->GetOutputOverride(This,dwOutputNum,pSelection) 1473 #define IMFASFStreamSelector_SetOutputOverride(This,dwOutputNum,Selection) (This)->lpVtbl->SetOutputOverride(This,dwOutputNum,Selection) 1474 #define IMFASFStreamSelector_GetOutputMutexCount(This,dwOutputNum,pcMutexes) (This)->lpVtbl->GetOutputMutexCount(This,dwOutputNum,pcMutexes) 1475 #define IMFASFStreamSelector_GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex) (This)->lpVtbl->GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex) 1476 #define IMFASFStreamSelector_SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord) (This)->lpVtbl->SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord) 1477 #define IMFASFStreamSelector_GetBandwidthStepCount(This,pcStepCount) (This)->lpVtbl->GetBandwidthStepCount(This,pcStepCount) 1478 #define IMFASFStreamSelector_GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections) (This)->lpVtbl->GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections) 1479 #define IMFASFStreamSelector_BitrateToStepNumber(This,dwBitrate,pdwStepNum) (This)->lpVtbl->BitrateToStepNumber(This,dwBitrate,pdwStepNum) 1480 #define IMFASFStreamSelector_SetStreamSelectorFlags(This,dwStreamSelectorFlags) (This)->lpVtbl->SetStreamSelectorFlags(This,dwStreamSelectorFlags) 1481 #else 1482 /*** IUnknown methods ***/ 1483 static inline HRESULT IMFASFStreamSelector_QueryInterface(IMFASFStreamSelector* This,REFIID riid,void **ppvObject) { 1484 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1485 } 1486 static inline ULONG IMFASFStreamSelector_AddRef(IMFASFStreamSelector* This) { 1487 return This->lpVtbl->AddRef(This); 1488 } 1489 static inline ULONG IMFASFStreamSelector_Release(IMFASFStreamSelector* This) { 1490 return This->lpVtbl->Release(This); 1491 } 1492 /*** IMFASFStreamSelector methods ***/ 1493 static inline HRESULT IMFASFStreamSelector_GetStreamCount(IMFASFStreamSelector* This,DWORD *pcStreams) { 1494 return This->lpVtbl->GetStreamCount(This,pcStreams); 1495 } 1496 static inline HRESULT IMFASFStreamSelector_GetOutputCount(IMFASFStreamSelector* This,DWORD *pcOutputs) { 1497 return This->lpVtbl->GetOutputCount(This,pcOutputs); 1498 } 1499 static inline HRESULT IMFASFStreamSelector_GetOutputStreamCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcStreams) { 1500 return This->lpVtbl->GetOutputStreamCount(This,dwOutputNum,pcStreams); 1501 } 1502 static inline HRESULT IMFASFStreamSelector_GetOutputStreamNumbers(IMFASFStreamSelector* This,DWORD dwOutputNum,WORD *rgwStreamNumbers) { 1503 return This->lpVtbl->GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers); 1504 } 1505 static inline HRESULT IMFASFStreamSelector_GetOutputFromStream(IMFASFStreamSelector* This,WORD wStreamNum,DWORD *pdwOutput) { 1506 return This->lpVtbl->GetOutputFromStream(This,wStreamNum,pdwOutput); 1507 } 1508 static inline HRESULT IMFASFStreamSelector_GetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS *pSelection) { 1509 return This->lpVtbl->GetOutputOverride(This,dwOutputNum,pSelection); 1510 } 1511 static inline HRESULT IMFASFStreamSelector_SetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS Selection) { 1512 return This->lpVtbl->SetOutputOverride(This,dwOutputNum,Selection); 1513 } 1514 static inline HRESULT IMFASFStreamSelector_GetOutputMutexCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcMutexes) { 1515 return This->lpVtbl->GetOutputMutexCount(This,dwOutputNum,pcMutexes); 1516 } 1517 static inline HRESULT IMFASFStreamSelector_GetOutputMutex(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,IUnknown **ppMutex) { 1518 return This->lpVtbl->GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex); 1519 } 1520 static inline HRESULT IMFASFStreamSelector_SetOutputMutexSelection(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,WORD wSelectedRecord) { 1521 return This->lpVtbl->SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord); 1522 } 1523 static inline HRESULT IMFASFStreamSelector_GetBandwidthStepCount(IMFASFStreamSelector* This,DWORD *pcStepCount) { 1524 return This->lpVtbl->GetBandwidthStepCount(This,pcStepCount); 1525 } 1526 static inline HRESULT IMFASFStreamSelector_GetBandwidthStep(IMFASFStreamSelector* This,DWORD dwStepNum,DWORD *pdwBitrate,WORD *rgwStreamNumbers,ASF_SELECTION_STATUS *rgSelections) { 1527 return This->lpVtbl->GetBandwidthStep(This,dwStepNum,pdwBitrate,rgwStreamNumbers,rgSelections); 1528 } 1529 static inline HRESULT IMFASFStreamSelector_BitrateToStepNumber(IMFASFStreamSelector* This,DWORD dwBitrate,DWORD *pdwStepNum) { 1530 return This->lpVtbl->BitrateToStepNumber(This,dwBitrate,pdwStepNum); 1531 } 1532 static inline HRESULT IMFASFStreamSelector_SetStreamSelectorFlags(IMFASFStreamSelector* This,DWORD dwStreamSelectorFlags) { 1533 return This->lpVtbl->SetStreamSelectorFlags(This,dwStreamSelectorFlags); 1534 } 1535 #endif 1536 #endif 1537 1538 #endif 1539 1540 1541 #endif /* __IMFASFStreamSelector_INTERFACE_DEFINED__ */ 1542 1543 #if WINVER >= 0x0601 1544 /***************************************************************************** 1545 * IMFDRMNetHelper interface 1546 */ 1547 #ifndef __IMFDRMNetHelper_INTERFACE_DEFINED__ 1548 #define __IMFDRMNetHelper_INTERFACE_DEFINED__ 1549 1550 DEFINE_GUID(IID_IMFDRMNetHelper, 0x3d1ff0ea, 0x679a, 0x4190, 0x8d,0x46, 0x7f,0xa6,0x9e,0x8c,0x7e,0x15); 1551 #if defined(__cplusplus) && !defined(CINTERFACE) 1552 MIDL_INTERFACE("3d1ff0ea-679a-4190-8d46-7fa69e8c7e15") 1553 IMFDRMNetHelper : public IUnknown 1554 { 1555 virtual HRESULT STDMETHODCALLTYPE ProcessLicenseRequest( 1556 BYTE *pLicenseRequest, 1557 DWORD cbLicenseRequest, 1558 BYTE **ppLicenseResponse, 1559 DWORD *pcbLicenseResponse, 1560 BSTR *pbstrKID) = 0; 1561 1562 virtual HRESULT STDMETHODCALLTYPE GetChainedLicenseResponse( 1563 BYTE **ppLicenseResponse, 1564 DWORD *pcbLicenseResponse) = 0; 1565 1566 }; 1567 #ifdef __CRT_UUID_DECL 1568 __CRT_UUID_DECL(IMFDRMNetHelper, 0x3d1ff0ea, 0x679a, 0x4190, 0x8d,0x46, 0x7f,0xa6,0x9e,0x8c,0x7e,0x15) 1569 #endif 1570 #else 1571 typedef struct IMFDRMNetHelperVtbl { 1572 BEGIN_INTERFACE 1573 1574 /*** IUnknown methods ***/ 1575 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1576 IMFDRMNetHelper *This, 1577 REFIID riid, 1578 void **ppvObject); 1579 1580 ULONG (STDMETHODCALLTYPE *AddRef)( 1581 IMFDRMNetHelper *This); 1582 1583 ULONG (STDMETHODCALLTYPE *Release)( 1584 IMFDRMNetHelper *This); 1585 1586 /*** IMFDRMNetHelper methods ***/ 1587 HRESULT (STDMETHODCALLTYPE *ProcessLicenseRequest)( 1588 IMFDRMNetHelper *This, 1589 BYTE *pLicenseRequest, 1590 DWORD cbLicenseRequest, 1591 BYTE **ppLicenseResponse, 1592 DWORD *pcbLicenseResponse, 1593 BSTR *pbstrKID); 1594 1595 HRESULT (STDMETHODCALLTYPE *GetChainedLicenseResponse)( 1596 IMFDRMNetHelper *This, 1597 BYTE **ppLicenseResponse, 1598 DWORD *pcbLicenseResponse); 1599 1600 END_INTERFACE 1601 } IMFDRMNetHelperVtbl; 1602 1603 interface IMFDRMNetHelper { 1604 CONST_VTBL IMFDRMNetHelperVtbl* lpVtbl; 1605 }; 1606 1607 #ifdef COBJMACROS 1608 #ifndef WIDL_C_INLINE_WRAPPERS 1609 /*** IUnknown methods ***/ 1610 #define IMFDRMNetHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1611 #define IMFDRMNetHelper_AddRef(This) (This)->lpVtbl->AddRef(This) 1612 #define IMFDRMNetHelper_Release(This) (This)->lpVtbl->Release(This) 1613 /*** IMFDRMNetHelper methods ***/ 1614 #define IMFDRMNetHelper_ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID) (This)->lpVtbl->ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID) 1615 #define IMFDRMNetHelper_GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse) (This)->lpVtbl->GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse) 1616 #else 1617 /*** IUnknown methods ***/ 1618 static inline HRESULT IMFDRMNetHelper_QueryInterface(IMFDRMNetHelper* This,REFIID riid,void **ppvObject) { 1619 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1620 } 1621 static inline ULONG IMFDRMNetHelper_AddRef(IMFDRMNetHelper* This) { 1622 return This->lpVtbl->AddRef(This); 1623 } 1624 static inline ULONG IMFDRMNetHelper_Release(IMFDRMNetHelper* This) { 1625 return This->lpVtbl->Release(This); 1626 } 1627 /*** IMFDRMNetHelper methods ***/ 1628 static inline HRESULT IMFDRMNetHelper_ProcessLicenseRequest(IMFDRMNetHelper* This,BYTE *pLicenseRequest,DWORD cbLicenseRequest,BYTE **ppLicenseResponse,DWORD *pcbLicenseResponse,BSTR *pbstrKID) { 1629 return This->lpVtbl->ProcessLicenseRequest(This,pLicenseRequest,cbLicenseRequest,ppLicenseResponse,pcbLicenseResponse,pbstrKID); 1630 } 1631 static inline HRESULT IMFDRMNetHelper_GetChainedLicenseResponse(IMFDRMNetHelper* This,BYTE **ppLicenseResponse,DWORD *pcbLicenseResponse) { 1632 return This->lpVtbl->GetChainedLicenseResponse(This,ppLicenseResponse,pcbLicenseResponse); 1633 } 1634 #endif 1635 #endif 1636 1637 #endif 1638 1639 1640 #endif /* __IMFDRMNetHelper_INTERFACE_DEFINED__ */ 1641 1642 #endif 1643 /***************************************************************************** 1644 * IMFASFProfile interface 1645 */ 1646 #ifndef __IMFASFProfile_INTERFACE_DEFINED__ 1647 #define __IMFASFProfile_INTERFACE_DEFINED__ 1648 1649 DEFINE_GUID(IID_IMFASFProfile, 0xd267bf6a, 0x028b, 0x4e0d, 0x90,0x3d, 0x43,0xf0,0xef,0x82,0xd0,0xd4); 1650 #if defined(__cplusplus) && !defined(CINTERFACE) 1651 MIDL_INTERFACE("d267bf6a-028b-4e0d-903d-43f0ef82d0d4") 1652 IMFASFProfile : public IMFAttributes 1653 { 1654 virtual HRESULT STDMETHODCALLTYPE GetStreamCount( 1655 DWORD *pcStreams) = 0; 1656 1657 virtual HRESULT STDMETHODCALLTYPE GetStream( 1658 DWORD dwStreamIndex, 1659 WORD *pwStreamNumber, 1660 IMFASFStreamConfig **ppIStream) = 0; 1661 1662 virtual HRESULT STDMETHODCALLTYPE GetStreamByNumber( 1663 WORD wStreamNumber, 1664 IMFASFStreamConfig **ppIStream) = 0; 1665 1666 virtual HRESULT STDMETHODCALLTYPE SetStream( 1667 IMFASFStreamConfig *pIStream) = 0; 1668 1669 virtual HRESULT STDMETHODCALLTYPE RemoveStream( 1670 WORD wStreamNumber) = 0; 1671 1672 virtual HRESULT STDMETHODCALLTYPE CreateStream( 1673 IMFMediaType *pIMediaType, 1674 IMFASFStreamConfig **ppIStream) = 0; 1675 1676 virtual HRESULT STDMETHODCALLTYPE GetMutualExclusionCount( 1677 DWORD *pcMutexs) = 0; 1678 1679 virtual HRESULT STDMETHODCALLTYPE GetMutualExclusion( 1680 DWORD dwMutexIndex, 1681 IMFASFMutualExclusion **ppIMutex) = 0; 1682 1683 virtual HRESULT STDMETHODCALLTYPE AddMutualExclusion( 1684 IMFASFMutualExclusion *pIMutex) = 0; 1685 1686 virtual HRESULT STDMETHODCALLTYPE RemoveMutualExclusion( 1687 DWORD dwMutexIndex) = 0; 1688 1689 virtual HRESULT STDMETHODCALLTYPE CreateMutualExclusion( 1690 IMFASFMutualExclusion **ppIMutex) = 0; 1691 1692 virtual HRESULT STDMETHODCALLTYPE GetStreamPrioritization( 1693 IMFASFStreamPrioritization **ppIStreamPrioritization) = 0; 1694 1695 virtual HRESULT STDMETHODCALLTYPE AddStreamPrioritization( 1696 IMFASFStreamPrioritization *pIStreamPrioritization) = 0; 1697 1698 virtual HRESULT STDMETHODCALLTYPE RemoveStreamPrioritization( 1699 ) = 0; 1700 1701 virtual HRESULT STDMETHODCALLTYPE CreateStreamPrioritization( 1702 IMFASFStreamPrioritization **ppIStreamPrioritization) = 0; 1703 1704 virtual HRESULT STDMETHODCALLTYPE Clone( 1705 IMFASFProfile **ppIProfile) = 0; 1706 1707 }; 1708 #ifdef __CRT_UUID_DECL 1709 __CRT_UUID_DECL(IMFASFProfile, 0xd267bf6a, 0x028b, 0x4e0d, 0x90,0x3d, 0x43,0xf0,0xef,0x82,0xd0,0xd4) 1710 #endif 1711 #else 1712 typedef struct IMFASFProfileVtbl { 1713 BEGIN_INTERFACE 1714 1715 /*** IUnknown methods ***/ 1716 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1717 IMFASFProfile *This, 1718 REFIID riid, 1719 void **ppvObject); 1720 1721 ULONG (STDMETHODCALLTYPE *AddRef)( 1722 IMFASFProfile *This); 1723 1724 ULONG (STDMETHODCALLTYPE *Release)( 1725 IMFASFProfile *This); 1726 1727 /*** IMFAttributes methods ***/ 1728 HRESULT (STDMETHODCALLTYPE *GetItem)( 1729 IMFASFProfile *This, 1730 REFGUID guidKey, 1731 PROPVARIANT *pValue); 1732 1733 HRESULT (STDMETHODCALLTYPE *GetItemType)( 1734 IMFASFProfile *This, 1735 REFGUID guidKey, 1736 MF_ATTRIBUTE_TYPE *pType); 1737 1738 HRESULT (STDMETHODCALLTYPE *CompareItem)( 1739 IMFASFProfile *This, 1740 REFGUID guidKey, 1741 REFPROPVARIANT Value, 1742 WINBOOL *pbResult); 1743 1744 HRESULT (STDMETHODCALLTYPE *Compare)( 1745 IMFASFProfile *This, 1746 IMFAttributes *pTheirs, 1747 MF_ATTRIBUTES_MATCH_TYPE MatchType, 1748 WINBOOL *pbResult); 1749 1750 HRESULT (STDMETHODCALLTYPE *GetUINT32)( 1751 IMFASFProfile *This, 1752 REFGUID guidKey, 1753 UINT32 *punValue); 1754 1755 HRESULT (STDMETHODCALLTYPE *GetUINT64)( 1756 IMFASFProfile *This, 1757 REFGUID guidKey, 1758 UINT64 *punValue); 1759 1760 HRESULT (STDMETHODCALLTYPE *GetDouble)( 1761 IMFASFProfile *This, 1762 REFGUID guidKey, 1763 double *pfValue); 1764 1765 HRESULT (STDMETHODCALLTYPE *GetGUID)( 1766 IMFASFProfile *This, 1767 REFGUID guidKey, 1768 GUID *pguidValue); 1769 1770 HRESULT (STDMETHODCALLTYPE *GetStringLength)( 1771 IMFASFProfile *This, 1772 REFGUID guidKey, 1773 UINT32 *pcchLength); 1774 1775 HRESULT (STDMETHODCALLTYPE *GetString)( 1776 IMFASFProfile *This, 1777 REFGUID guidKey, 1778 LPWSTR pwszValue, 1779 UINT32 cchBufSize, 1780 UINT32 *pcchLength); 1781 1782 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( 1783 IMFASFProfile *This, 1784 REFGUID guidKey, 1785 LPWSTR *ppwszValue, 1786 UINT32 *pcchLength); 1787 1788 HRESULT (STDMETHODCALLTYPE *GetBlobSize)( 1789 IMFASFProfile *This, 1790 REFGUID guidKey, 1791 UINT32 *pcbBlobSize); 1792 1793 HRESULT (STDMETHODCALLTYPE *GetBlob)( 1794 IMFASFProfile *This, 1795 REFGUID guidKey, 1796 UINT8 *pBuf, 1797 UINT32 cbBufSize, 1798 UINT32 *pcbBlobSize); 1799 1800 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( 1801 IMFASFProfile *This, 1802 REFGUID guidKey, 1803 UINT8 **ppBuf, 1804 UINT32 *pcbSize); 1805 1806 HRESULT (STDMETHODCALLTYPE *GetUnknown)( 1807 IMFASFProfile *This, 1808 REFGUID guidKey, 1809 REFIID riid, 1810 LPVOID *ppv); 1811 1812 HRESULT (STDMETHODCALLTYPE *SetItem)( 1813 IMFASFProfile *This, 1814 REFGUID guidKey, 1815 REFPROPVARIANT Value); 1816 1817 HRESULT (STDMETHODCALLTYPE *DeleteItem)( 1818 IMFASFProfile *This, 1819 REFGUID guidKey); 1820 1821 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( 1822 IMFASFProfile *This); 1823 1824 HRESULT (STDMETHODCALLTYPE *SetUINT32)( 1825 IMFASFProfile *This, 1826 REFGUID guidKey, 1827 UINT32 unValue); 1828 1829 HRESULT (STDMETHODCALLTYPE *SetUINT64)( 1830 IMFASFProfile *This, 1831 REFGUID guidKey, 1832 UINT64 unValue); 1833 1834 HRESULT (STDMETHODCALLTYPE *SetDouble)( 1835 IMFASFProfile *This, 1836 REFGUID guidKey, 1837 double fValue); 1838 1839 HRESULT (STDMETHODCALLTYPE *SetGUID)( 1840 IMFASFProfile *This, 1841 REFGUID guidKey, 1842 REFGUID guidValue); 1843 1844 HRESULT (STDMETHODCALLTYPE *SetString)( 1845 IMFASFProfile *This, 1846 REFGUID guidKey, 1847 LPCWSTR wszValue); 1848 1849 HRESULT (STDMETHODCALLTYPE *SetBlob)( 1850 IMFASFProfile *This, 1851 REFGUID guidKey, 1852 const UINT8 *pBuf, 1853 UINT32 cbBufSize); 1854 1855 HRESULT (STDMETHODCALLTYPE *SetUnknown)( 1856 IMFASFProfile *This, 1857 REFGUID guidKey, 1858 IUnknown *pUnknown); 1859 1860 HRESULT (STDMETHODCALLTYPE *LockStore)( 1861 IMFASFProfile *This); 1862 1863 HRESULT (STDMETHODCALLTYPE *UnlockStore)( 1864 IMFASFProfile *This); 1865 1866 HRESULT (STDMETHODCALLTYPE *GetCount)( 1867 IMFASFProfile *This, 1868 UINT32 *pcItems); 1869 1870 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( 1871 IMFASFProfile *This, 1872 UINT32 unIndex, 1873 GUID *pguidKey, 1874 PROPVARIANT *pValue); 1875 1876 HRESULT (STDMETHODCALLTYPE *CopyAllItems)( 1877 IMFASFProfile *This, 1878 IMFAttributes *pDest); 1879 1880 /*** IMFASFProfile methods ***/ 1881 HRESULT (STDMETHODCALLTYPE *GetStreamCount)( 1882 IMFASFProfile *This, 1883 DWORD *pcStreams); 1884 1885 HRESULT (STDMETHODCALLTYPE *GetStream)( 1886 IMFASFProfile *This, 1887 DWORD dwStreamIndex, 1888 WORD *pwStreamNumber, 1889 IMFASFStreamConfig **ppIStream); 1890 1891 HRESULT (STDMETHODCALLTYPE *GetStreamByNumber)( 1892 IMFASFProfile *This, 1893 WORD wStreamNumber, 1894 IMFASFStreamConfig **ppIStream); 1895 1896 HRESULT (STDMETHODCALLTYPE *SetStream)( 1897 IMFASFProfile *This, 1898 IMFASFStreamConfig *pIStream); 1899 1900 HRESULT (STDMETHODCALLTYPE *RemoveStream)( 1901 IMFASFProfile *This, 1902 WORD wStreamNumber); 1903 1904 HRESULT (STDMETHODCALLTYPE *CreateStream)( 1905 IMFASFProfile *This, 1906 IMFMediaType *pIMediaType, 1907 IMFASFStreamConfig **ppIStream); 1908 1909 HRESULT (STDMETHODCALLTYPE *GetMutualExclusionCount)( 1910 IMFASFProfile *This, 1911 DWORD *pcMutexs); 1912 1913 HRESULT (STDMETHODCALLTYPE *GetMutualExclusion)( 1914 IMFASFProfile *This, 1915 DWORD dwMutexIndex, 1916 IMFASFMutualExclusion **ppIMutex); 1917 1918 HRESULT (STDMETHODCALLTYPE *AddMutualExclusion)( 1919 IMFASFProfile *This, 1920 IMFASFMutualExclusion *pIMutex); 1921 1922 HRESULT (STDMETHODCALLTYPE *RemoveMutualExclusion)( 1923 IMFASFProfile *This, 1924 DWORD dwMutexIndex); 1925 1926 HRESULT (STDMETHODCALLTYPE *CreateMutualExclusion)( 1927 IMFASFProfile *This, 1928 IMFASFMutualExclusion **ppIMutex); 1929 1930 HRESULT (STDMETHODCALLTYPE *GetStreamPrioritization)( 1931 IMFASFProfile *This, 1932 IMFASFStreamPrioritization **ppIStreamPrioritization); 1933 1934 HRESULT (STDMETHODCALLTYPE *AddStreamPrioritization)( 1935 IMFASFProfile *This, 1936 IMFASFStreamPrioritization *pIStreamPrioritization); 1937 1938 HRESULT (STDMETHODCALLTYPE *RemoveStreamPrioritization)( 1939 IMFASFProfile *This); 1940 1941 HRESULT (STDMETHODCALLTYPE *CreateStreamPrioritization)( 1942 IMFASFProfile *This, 1943 IMFASFStreamPrioritization **ppIStreamPrioritization); 1944 1945 HRESULT (STDMETHODCALLTYPE *Clone)( 1946 IMFASFProfile *This, 1947 IMFASFProfile **ppIProfile); 1948 1949 END_INTERFACE 1950 } IMFASFProfileVtbl; 1951 1952 interface IMFASFProfile { 1953 CONST_VTBL IMFASFProfileVtbl* lpVtbl; 1954 }; 1955 1956 #ifdef COBJMACROS 1957 #ifndef WIDL_C_INLINE_WRAPPERS 1958 /*** IUnknown methods ***/ 1959 #define IMFASFProfile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1960 #define IMFASFProfile_AddRef(This) (This)->lpVtbl->AddRef(This) 1961 #define IMFASFProfile_Release(This) (This)->lpVtbl->Release(This) 1962 /*** IMFAttributes methods ***/ 1963 #define IMFASFProfile_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 1964 #define IMFASFProfile_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 1965 #define IMFASFProfile_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 1966 #define IMFASFProfile_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 1967 #define IMFASFProfile_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 1968 #define IMFASFProfile_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 1969 #define IMFASFProfile_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 1970 #define IMFASFProfile_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 1971 #define IMFASFProfile_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 1972 #define IMFASFProfile_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 1973 #define IMFASFProfile_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 1974 #define IMFASFProfile_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 1975 #define IMFASFProfile_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 1976 #define IMFASFProfile_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 1977 #define IMFASFProfile_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 1978 #define IMFASFProfile_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 1979 #define IMFASFProfile_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 1980 #define IMFASFProfile_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) 1981 #define IMFASFProfile_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 1982 #define IMFASFProfile_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 1983 #define IMFASFProfile_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 1984 #define IMFASFProfile_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 1985 #define IMFASFProfile_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 1986 #define IMFASFProfile_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 1987 #define IMFASFProfile_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 1988 #define IMFASFProfile_LockStore(This) (This)->lpVtbl->LockStore(This) 1989 #define IMFASFProfile_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) 1990 #define IMFASFProfile_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 1991 #define IMFASFProfile_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 1992 #define IMFASFProfile_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 1993 /*** IMFASFProfile methods ***/ 1994 #define IMFASFProfile_GetStreamCount(This,pcStreams) (This)->lpVtbl->GetStreamCount(This,pcStreams) 1995 #define IMFASFProfile_GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) (This)->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream) 1996 #define IMFASFProfile_GetStreamByNumber(This,wStreamNumber,ppIStream) (This)->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream) 1997 #define IMFASFProfile_SetStream(This,pIStream) (This)->lpVtbl->SetStream(This,pIStream) 1998 #define IMFASFProfile_RemoveStream(This,wStreamNumber) (This)->lpVtbl->RemoveStream(This,wStreamNumber) 1999 #define IMFASFProfile_CreateStream(This,pIMediaType,ppIStream) (This)->lpVtbl->CreateStream(This,pIMediaType,ppIStream) 2000 #define IMFASFProfile_GetMutualExclusionCount(This,pcMutexs) (This)->lpVtbl->GetMutualExclusionCount(This,pcMutexs) 2001 #define IMFASFProfile_GetMutualExclusion(This,dwMutexIndex,ppIMutex) (This)->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex) 2002 #define IMFASFProfile_AddMutualExclusion(This,pIMutex) (This)->lpVtbl->AddMutualExclusion(This,pIMutex) 2003 #define IMFASFProfile_RemoveMutualExclusion(This,dwMutexIndex) (This)->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex) 2004 #define IMFASFProfile_CreateMutualExclusion(This,ppIMutex) (This)->lpVtbl->CreateMutualExclusion(This,ppIMutex) 2005 #define IMFASFProfile_GetStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization) 2006 #define IMFASFProfile_AddStreamPrioritization(This,pIStreamPrioritization) (This)->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization) 2007 #define IMFASFProfile_RemoveStreamPrioritization(This) (This)->lpVtbl->RemoveStreamPrioritization(This) 2008 #define IMFASFProfile_CreateStreamPrioritization(This,ppIStreamPrioritization) (This)->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization) 2009 #define IMFASFProfile_Clone(This,ppIProfile) (This)->lpVtbl->Clone(This,ppIProfile) 2010 #else 2011 /*** IUnknown methods ***/ 2012 static inline HRESULT IMFASFProfile_QueryInterface(IMFASFProfile* This,REFIID riid,void **ppvObject) { 2013 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2014 } 2015 static inline ULONG IMFASFProfile_AddRef(IMFASFProfile* This) { 2016 return This->lpVtbl->AddRef(This); 2017 } 2018 static inline ULONG IMFASFProfile_Release(IMFASFProfile* This) { 2019 return This->lpVtbl->Release(This); 2020 } 2021 /*** IMFAttributes methods ***/ 2022 static inline HRESULT IMFASFProfile_GetItem(IMFASFProfile* This,REFGUID guidKey,PROPVARIANT *pValue) { 2023 return This->lpVtbl->GetItem(This,guidKey,pValue); 2024 } 2025 static inline HRESULT IMFASFProfile_GetItemType(IMFASFProfile* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 2026 return This->lpVtbl->GetItemType(This,guidKey,pType); 2027 } 2028 static inline HRESULT IMFASFProfile_CompareItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 2029 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 2030 } 2031 static inline HRESULT IMFASFProfile_Compare(IMFASFProfile* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { 2032 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); 2033 } 2034 static inline HRESULT IMFASFProfile_GetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 *punValue) { 2035 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 2036 } 2037 static inline HRESULT IMFASFProfile_GetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 *punValue) { 2038 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 2039 } 2040 static inline HRESULT IMFASFProfile_GetDouble(IMFASFProfile* This,REFGUID guidKey,double *pfValue) { 2041 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 2042 } 2043 static inline HRESULT IMFASFProfile_GetGUID(IMFASFProfile* This,REFGUID guidKey,GUID *pguidValue) { 2044 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 2045 } 2046 static inline HRESULT IMFASFProfile_GetStringLength(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcchLength) { 2047 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 2048 } 2049 static inline HRESULT IMFASFProfile_GetString(IMFASFProfile* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { 2050 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); 2051 } 2052 static inline HRESULT IMFASFProfile_GetAllocatedString(IMFASFProfile* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 2053 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 2054 } 2055 static inline HRESULT IMFASFProfile_GetBlobSize(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 2056 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 2057 } 2058 static inline HRESULT IMFASFProfile_GetBlob(IMFASFProfile* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { 2059 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); 2060 } 2061 static inline HRESULT IMFASFProfile_GetAllocatedBlob(IMFASFProfile* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 2062 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 2063 } 2064 static inline HRESULT IMFASFProfile_GetUnknown(IMFASFProfile* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 2065 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 2066 } 2067 static inline HRESULT IMFASFProfile_SetItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value) { 2068 return This->lpVtbl->SetItem(This,guidKey,Value); 2069 } 2070 static inline HRESULT IMFASFProfile_DeleteItem(IMFASFProfile* This,REFGUID guidKey) { 2071 return This->lpVtbl->DeleteItem(This,guidKey); 2072 } 2073 static inline HRESULT IMFASFProfile_DeleteAllItems(IMFASFProfile* This) { 2074 return This->lpVtbl->DeleteAllItems(This); 2075 } 2076 static inline HRESULT IMFASFProfile_SetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 unValue) { 2077 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 2078 } 2079 static inline HRESULT IMFASFProfile_SetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 unValue) { 2080 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 2081 } 2082 static inline HRESULT IMFASFProfile_SetDouble(IMFASFProfile* This,REFGUID guidKey,double fValue) { 2083 return This->lpVtbl->SetDouble(This,guidKey,fValue); 2084 } 2085 static inline HRESULT IMFASFProfile_SetGUID(IMFASFProfile* This,REFGUID guidKey,REFGUID guidValue) { 2086 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 2087 } 2088 static inline HRESULT IMFASFProfile_SetString(IMFASFProfile* This,REFGUID guidKey,LPCWSTR wszValue) { 2089 return This->lpVtbl->SetString(This,guidKey,wszValue); 2090 } 2091 static inline HRESULT IMFASFProfile_SetBlob(IMFASFProfile* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 2092 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 2093 } 2094 static inline HRESULT IMFASFProfile_SetUnknown(IMFASFProfile* This,REFGUID guidKey,IUnknown *pUnknown) { 2095 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 2096 } 2097 static inline HRESULT IMFASFProfile_LockStore(IMFASFProfile* This) { 2098 return This->lpVtbl->LockStore(This); 2099 } 2100 static inline HRESULT IMFASFProfile_UnlockStore(IMFASFProfile* This) { 2101 return This->lpVtbl->UnlockStore(This); 2102 } 2103 static inline HRESULT IMFASFProfile_GetCount(IMFASFProfile* This,UINT32 *pcItems) { 2104 return This->lpVtbl->GetCount(This,pcItems); 2105 } 2106 static inline HRESULT IMFASFProfile_GetItemByIndex(IMFASFProfile* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 2107 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 2108 } 2109 static inline HRESULT IMFASFProfile_CopyAllItems(IMFASFProfile* This,IMFAttributes *pDest) { 2110 return This->lpVtbl->CopyAllItems(This,pDest); 2111 } 2112 /*** IMFASFProfile methods ***/ 2113 static inline HRESULT IMFASFProfile_GetStreamCount(IMFASFProfile* This,DWORD *pcStreams) { 2114 return This->lpVtbl->GetStreamCount(This,pcStreams); 2115 } 2116 static inline HRESULT IMFASFProfile_GetStream(IMFASFProfile* This,DWORD dwStreamIndex,WORD *pwStreamNumber,IMFASFStreamConfig **ppIStream) { 2117 return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream); 2118 } 2119 static inline HRESULT IMFASFProfile_GetStreamByNumber(IMFASFProfile* This,WORD wStreamNumber,IMFASFStreamConfig **ppIStream) { 2120 return This->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream); 2121 } 2122 static inline HRESULT IMFASFProfile_SetStream(IMFASFProfile* This,IMFASFStreamConfig *pIStream) { 2123 return This->lpVtbl->SetStream(This,pIStream); 2124 } 2125 static inline HRESULT IMFASFProfile_RemoveStream(IMFASFProfile* This,WORD wStreamNumber) { 2126 return This->lpVtbl->RemoveStream(This,wStreamNumber); 2127 } 2128 static inline HRESULT IMFASFProfile_CreateStream(IMFASFProfile* This,IMFMediaType *pIMediaType,IMFASFStreamConfig **ppIStream) { 2129 return This->lpVtbl->CreateStream(This,pIMediaType,ppIStream); 2130 } 2131 static inline HRESULT IMFASFProfile_GetMutualExclusionCount(IMFASFProfile* This,DWORD *pcMutexs) { 2132 return This->lpVtbl->GetMutualExclusionCount(This,pcMutexs); 2133 } 2134 static inline HRESULT IMFASFProfile_GetMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex,IMFASFMutualExclusion **ppIMutex) { 2135 return This->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex); 2136 } 2137 static inline HRESULT IMFASFProfile_AddMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion *pIMutex) { 2138 return This->lpVtbl->AddMutualExclusion(This,pIMutex); 2139 } 2140 static inline HRESULT IMFASFProfile_RemoveMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex) { 2141 return This->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex); 2142 } 2143 static inline HRESULT IMFASFProfile_CreateMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion **ppIMutex) { 2144 return This->lpVtbl->CreateMutualExclusion(This,ppIMutex); 2145 } 2146 static inline HRESULT IMFASFProfile_GetStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) { 2147 return This->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization); 2148 } 2149 static inline HRESULT IMFASFProfile_AddStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization *pIStreamPrioritization) { 2150 return This->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization); 2151 } 2152 static inline HRESULT IMFASFProfile_RemoveStreamPrioritization(IMFASFProfile* This) { 2153 return This->lpVtbl->RemoveStreamPrioritization(This); 2154 } 2155 static inline HRESULT IMFASFProfile_CreateStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) { 2156 return This->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization); 2157 } 2158 static inline HRESULT IMFASFProfile_Clone(IMFASFProfile* This,IMFASFProfile **ppIProfile) { 2159 return This->lpVtbl->Clone(This,ppIProfile); 2160 } 2161 #endif 2162 #endif 2163 2164 #endif 2165 2166 2167 #endif /* __IMFASFProfile_INTERFACE_DEFINED__ */ 2168 2169 /***************************************************************************** 2170 * IMFASFStreamConfig interface 2171 */ 2172 #ifndef __IMFASFStreamConfig_INTERFACE_DEFINED__ 2173 #define __IMFASFStreamConfig_INTERFACE_DEFINED__ 2174 2175 DEFINE_GUID(IID_IMFASFStreamConfig, 0x9e8ae8d2, 0xdbbd, 0x4200, 0x9a,0xca, 0x06,0xe6,0xdf,0x48,0x49,0x13); 2176 #if defined(__cplusplus) && !defined(CINTERFACE) 2177 MIDL_INTERFACE("9e8ae8d2-dbbd-4200-9aca-06e6df484913") 2178 IMFASFStreamConfig : public IMFAttributes 2179 { 2180 virtual HRESULT STDMETHODCALLTYPE GetStreamType( 2181 GUID *pguidStreamType) = 0; 2182 2183 virtual WORD STDMETHODCALLTYPE GetStreamNumber( 2184 ) = 0; 2185 2186 virtual HRESULT STDMETHODCALLTYPE SetStreamNumber( 2187 WORD wStreamNum) = 0; 2188 2189 virtual HRESULT STDMETHODCALLTYPE GetMediaType( 2190 IMFMediaType **ppIMediaType) = 0; 2191 2192 virtual HRESULT STDMETHODCALLTYPE SetMediaType( 2193 IMFMediaType *pIMediaType) = 0; 2194 2195 virtual HRESULT STDMETHODCALLTYPE GetPayloadExtensionCount( 2196 WORD *pcPayloadExtensions) = 0; 2197 2198 virtual HRESULT STDMETHODCALLTYPE GetPayloadExtension( 2199 WORD wPayloadExtensionNumber, 2200 GUID *pguidExtensionSystemID, 2201 WORD *pcbExtensionDataSize, 2202 BYTE *pbExtensionSystemInfo, 2203 DWORD *pcbExtensionSystemInfo) = 0; 2204 2205 virtual HRESULT STDMETHODCALLTYPE AddPayloadExtension( 2206 GUID guidExtensionSystemID, 2207 WORD cbExtensionDataSize, 2208 BYTE *pbExtensionSystemInfo, 2209 DWORD cbExtensionSystemInfo) = 0; 2210 2211 virtual HRESULT STDMETHODCALLTYPE RemoveAllPayloadExtensions( 2212 ) = 0; 2213 2214 virtual HRESULT STDMETHODCALLTYPE Clone( 2215 IMFASFStreamConfig **ppIStreamConfig) = 0; 2216 2217 }; 2218 #ifdef __CRT_UUID_DECL 2219 __CRT_UUID_DECL(IMFASFStreamConfig, 0x9e8ae8d2, 0xdbbd, 0x4200, 0x9a,0xca, 0x06,0xe6,0xdf,0x48,0x49,0x13) 2220 #endif 2221 #else 2222 typedef struct IMFASFStreamConfigVtbl { 2223 BEGIN_INTERFACE 2224 2225 /*** IUnknown methods ***/ 2226 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 2227 IMFASFStreamConfig *This, 2228 REFIID riid, 2229 void **ppvObject); 2230 2231 ULONG (STDMETHODCALLTYPE *AddRef)( 2232 IMFASFStreamConfig *This); 2233 2234 ULONG (STDMETHODCALLTYPE *Release)( 2235 IMFASFStreamConfig *This); 2236 2237 /*** IMFAttributes methods ***/ 2238 HRESULT (STDMETHODCALLTYPE *GetItem)( 2239 IMFASFStreamConfig *This, 2240 REFGUID guidKey, 2241 PROPVARIANT *pValue); 2242 2243 HRESULT (STDMETHODCALLTYPE *GetItemType)( 2244 IMFASFStreamConfig *This, 2245 REFGUID guidKey, 2246 MF_ATTRIBUTE_TYPE *pType); 2247 2248 HRESULT (STDMETHODCALLTYPE *CompareItem)( 2249 IMFASFStreamConfig *This, 2250 REFGUID guidKey, 2251 REFPROPVARIANT Value, 2252 WINBOOL *pbResult); 2253 2254 HRESULT (STDMETHODCALLTYPE *Compare)( 2255 IMFASFStreamConfig *This, 2256 IMFAttributes *pTheirs, 2257 MF_ATTRIBUTES_MATCH_TYPE MatchType, 2258 WINBOOL *pbResult); 2259 2260 HRESULT (STDMETHODCALLTYPE *GetUINT32)( 2261 IMFASFStreamConfig *This, 2262 REFGUID guidKey, 2263 UINT32 *punValue); 2264 2265 HRESULT (STDMETHODCALLTYPE *GetUINT64)( 2266 IMFASFStreamConfig *This, 2267 REFGUID guidKey, 2268 UINT64 *punValue); 2269 2270 HRESULT (STDMETHODCALLTYPE *GetDouble)( 2271 IMFASFStreamConfig *This, 2272 REFGUID guidKey, 2273 double *pfValue); 2274 2275 HRESULT (STDMETHODCALLTYPE *GetGUID)( 2276 IMFASFStreamConfig *This, 2277 REFGUID guidKey, 2278 GUID *pguidValue); 2279 2280 HRESULT (STDMETHODCALLTYPE *GetStringLength)( 2281 IMFASFStreamConfig *This, 2282 REFGUID guidKey, 2283 UINT32 *pcchLength); 2284 2285 HRESULT (STDMETHODCALLTYPE *GetString)( 2286 IMFASFStreamConfig *This, 2287 REFGUID guidKey, 2288 LPWSTR pwszValue, 2289 UINT32 cchBufSize, 2290 UINT32 *pcchLength); 2291 2292 HRESULT (STDMETHODCALLTYPE *GetAllocatedString)( 2293 IMFASFStreamConfig *This, 2294 REFGUID guidKey, 2295 LPWSTR *ppwszValue, 2296 UINT32 *pcchLength); 2297 2298 HRESULT (STDMETHODCALLTYPE *GetBlobSize)( 2299 IMFASFStreamConfig *This, 2300 REFGUID guidKey, 2301 UINT32 *pcbBlobSize); 2302 2303 HRESULT (STDMETHODCALLTYPE *GetBlob)( 2304 IMFASFStreamConfig *This, 2305 REFGUID guidKey, 2306 UINT8 *pBuf, 2307 UINT32 cbBufSize, 2308 UINT32 *pcbBlobSize); 2309 2310 HRESULT (STDMETHODCALLTYPE *GetAllocatedBlob)( 2311 IMFASFStreamConfig *This, 2312 REFGUID guidKey, 2313 UINT8 **ppBuf, 2314 UINT32 *pcbSize); 2315 2316 HRESULT (STDMETHODCALLTYPE *GetUnknown)( 2317 IMFASFStreamConfig *This, 2318 REFGUID guidKey, 2319 REFIID riid, 2320 LPVOID *ppv); 2321 2322 HRESULT (STDMETHODCALLTYPE *SetItem)( 2323 IMFASFStreamConfig *This, 2324 REFGUID guidKey, 2325 REFPROPVARIANT Value); 2326 2327 HRESULT (STDMETHODCALLTYPE *DeleteItem)( 2328 IMFASFStreamConfig *This, 2329 REFGUID guidKey); 2330 2331 HRESULT (STDMETHODCALLTYPE *DeleteAllItems)( 2332 IMFASFStreamConfig *This); 2333 2334 HRESULT (STDMETHODCALLTYPE *SetUINT32)( 2335 IMFASFStreamConfig *This, 2336 REFGUID guidKey, 2337 UINT32 unValue); 2338 2339 HRESULT (STDMETHODCALLTYPE *SetUINT64)( 2340 IMFASFStreamConfig *This, 2341 REFGUID guidKey, 2342 UINT64 unValue); 2343 2344 HRESULT (STDMETHODCALLTYPE *SetDouble)( 2345 IMFASFStreamConfig *This, 2346 REFGUID guidKey, 2347 double fValue); 2348 2349 HRESULT (STDMETHODCALLTYPE *SetGUID)( 2350 IMFASFStreamConfig *This, 2351 REFGUID guidKey, 2352 REFGUID guidValue); 2353 2354 HRESULT (STDMETHODCALLTYPE *SetString)( 2355 IMFASFStreamConfig *This, 2356 REFGUID guidKey, 2357 LPCWSTR wszValue); 2358 2359 HRESULT (STDMETHODCALLTYPE *SetBlob)( 2360 IMFASFStreamConfig *This, 2361 REFGUID guidKey, 2362 const UINT8 *pBuf, 2363 UINT32 cbBufSize); 2364 2365 HRESULT (STDMETHODCALLTYPE *SetUnknown)( 2366 IMFASFStreamConfig *This, 2367 REFGUID guidKey, 2368 IUnknown *pUnknown); 2369 2370 HRESULT (STDMETHODCALLTYPE *LockStore)( 2371 IMFASFStreamConfig *This); 2372 2373 HRESULT (STDMETHODCALLTYPE *UnlockStore)( 2374 IMFASFStreamConfig *This); 2375 2376 HRESULT (STDMETHODCALLTYPE *GetCount)( 2377 IMFASFStreamConfig *This, 2378 UINT32 *pcItems); 2379 2380 HRESULT (STDMETHODCALLTYPE *GetItemByIndex)( 2381 IMFASFStreamConfig *This, 2382 UINT32 unIndex, 2383 GUID *pguidKey, 2384 PROPVARIANT *pValue); 2385 2386 HRESULT (STDMETHODCALLTYPE *CopyAllItems)( 2387 IMFASFStreamConfig *This, 2388 IMFAttributes *pDest); 2389 2390 /*** IMFASFStreamConfig methods ***/ 2391 HRESULT (STDMETHODCALLTYPE *GetStreamType)( 2392 IMFASFStreamConfig *This, 2393 GUID *pguidStreamType); 2394 2395 WORD (STDMETHODCALLTYPE *GetStreamNumber)( 2396 IMFASFStreamConfig *This); 2397 2398 HRESULT (STDMETHODCALLTYPE *SetStreamNumber)( 2399 IMFASFStreamConfig *This, 2400 WORD wStreamNum); 2401 2402 HRESULT (STDMETHODCALLTYPE *GetMediaType)( 2403 IMFASFStreamConfig *This, 2404 IMFMediaType **ppIMediaType); 2405 2406 HRESULT (STDMETHODCALLTYPE *SetMediaType)( 2407 IMFASFStreamConfig *This, 2408 IMFMediaType *pIMediaType); 2409 2410 HRESULT (STDMETHODCALLTYPE *GetPayloadExtensionCount)( 2411 IMFASFStreamConfig *This, 2412 WORD *pcPayloadExtensions); 2413 2414 HRESULT (STDMETHODCALLTYPE *GetPayloadExtension)( 2415 IMFASFStreamConfig *This, 2416 WORD wPayloadExtensionNumber, 2417 GUID *pguidExtensionSystemID, 2418 WORD *pcbExtensionDataSize, 2419 BYTE *pbExtensionSystemInfo, 2420 DWORD *pcbExtensionSystemInfo); 2421 2422 HRESULT (STDMETHODCALLTYPE *AddPayloadExtension)( 2423 IMFASFStreamConfig *This, 2424 GUID guidExtensionSystemID, 2425 WORD cbExtensionDataSize, 2426 BYTE *pbExtensionSystemInfo, 2427 DWORD cbExtensionSystemInfo); 2428 2429 HRESULT (STDMETHODCALLTYPE *RemoveAllPayloadExtensions)( 2430 IMFASFStreamConfig *This); 2431 2432 HRESULT (STDMETHODCALLTYPE *Clone)( 2433 IMFASFStreamConfig *This, 2434 IMFASFStreamConfig **ppIStreamConfig); 2435 2436 END_INTERFACE 2437 } IMFASFStreamConfigVtbl; 2438 2439 interface IMFASFStreamConfig { 2440 CONST_VTBL IMFASFStreamConfigVtbl* lpVtbl; 2441 }; 2442 2443 #ifdef COBJMACROS 2444 #ifndef WIDL_C_INLINE_WRAPPERS 2445 /*** IUnknown methods ***/ 2446 #define IMFASFStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 2447 #define IMFASFStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This) 2448 #define IMFASFStreamConfig_Release(This) (This)->lpVtbl->Release(This) 2449 /*** IMFAttributes methods ***/ 2450 #define IMFASFStreamConfig_GetItem(This,guidKey,pValue) (This)->lpVtbl->GetItem(This,guidKey,pValue) 2451 #define IMFASFStreamConfig_GetItemType(This,guidKey,pType) (This)->lpVtbl->GetItemType(This,guidKey,pType) 2452 #define IMFASFStreamConfig_CompareItem(This,guidKey,Value,pbResult) (This)->lpVtbl->CompareItem(This,guidKey,Value,pbResult) 2453 #define IMFASFStreamConfig_Compare(This,pTheirs,MatchType,pbResult) (This)->lpVtbl->Compare(This,pTheirs,MatchType,pbResult) 2454 #define IMFASFStreamConfig_GetUINT32(This,guidKey,punValue) (This)->lpVtbl->GetUINT32(This,guidKey,punValue) 2455 #define IMFASFStreamConfig_GetUINT64(This,guidKey,punValue) (This)->lpVtbl->GetUINT64(This,guidKey,punValue) 2456 #define IMFASFStreamConfig_GetDouble(This,guidKey,pfValue) (This)->lpVtbl->GetDouble(This,guidKey,pfValue) 2457 #define IMFASFStreamConfig_GetGUID(This,guidKey,pguidValue) (This)->lpVtbl->GetGUID(This,guidKey,pguidValue) 2458 #define IMFASFStreamConfig_GetStringLength(This,guidKey,pcchLength) (This)->lpVtbl->GetStringLength(This,guidKey,pcchLength) 2459 #define IMFASFStreamConfig_GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) (This)->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength) 2460 #define IMFASFStreamConfig_GetAllocatedString(This,guidKey,ppwszValue,pcchLength) (This)->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength) 2461 #define IMFASFStreamConfig_GetBlobSize(This,guidKey,pcbBlobSize) (This)->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize) 2462 #define IMFASFStreamConfig_GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) (This)->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize) 2463 #define IMFASFStreamConfig_GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) (This)->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize) 2464 #define IMFASFStreamConfig_GetUnknown(This,guidKey,riid,ppv) (This)->lpVtbl->GetUnknown(This,guidKey,riid,ppv) 2465 #define IMFASFStreamConfig_SetItem(This,guidKey,Value) (This)->lpVtbl->SetItem(This,guidKey,Value) 2466 #define IMFASFStreamConfig_DeleteItem(This,guidKey) (This)->lpVtbl->DeleteItem(This,guidKey) 2467 #define IMFASFStreamConfig_DeleteAllItems(This) (This)->lpVtbl->DeleteAllItems(This) 2468 #define IMFASFStreamConfig_SetUINT32(This,guidKey,unValue) (This)->lpVtbl->SetUINT32(This,guidKey,unValue) 2469 #define IMFASFStreamConfig_SetUINT64(This,guidKey,unValue) (This)->lpVtbl->SetUINT64(This,guidKey,unValue) 2470 #define IMFASFStreamConfig_SetDouble(This,guidKey,fValue) (This)->lpVtbl->SetDouble(This,guidKey,fValue) 2471 #define IMFASFStreamConfig_SetGUID(This,guidKey,guidValue) (This)->lpVtbl->SetGUID(This,guidKey,guidValue) 2472 #define IMFASFStreamConfig_SetString(This,guidKey,wszValue) (This)->lpVtbl->SetString(This,guidKey,wszValue) 2473 #define IMFASFStreamConfig_SetBlob(This,guidKey,pBuf,cbBufSize) (This)->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize) 2474 #define IMFASFStreamConfig_SetUnknown(This,guidKey,pUnknown) (This)->lpVtbl->SetUnknown(This,guidKey,pUnknown) 2475 #define IMFASFStreamConfig_LockStore(This) (This)->lpVtbl->LockStore(This) 2476 #define IMFASFStreamConfig_UnlockStore(This) (This)->lpVtbl->UnlockStore(This) 2477 #define IMFASFStreamConfig_GetCount(This,pcItems) (This)->lpVtbl->GetCount(This,pcItems) 2478 #define IMFASFStreamConfig_GetItemByIndex(This,unIndex,pguidKey,pValue) (This)->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue) 2479 #define IMFASFStreamConfig_CopyAllItems(This,pDest) (This)->lpVtbl->CopyAllItems(This,pDest) 2480 /*** IMFASFStreamConfig methods ***/ 2481 #define IMFASFStreamConfig_GetStreamType(This,pguidStreamType) (This)->lpVtbl->GetStreamType(This,pguidStreamType) 2482 #define IMFASFStreamConfig_GetStreamNumber(This) (This)->lpVtbl->GetStreamNumber(This) 2483 #define IMFASFStreamConfig_SetStreamNumber(This,wStreamNum) (This)->lpVtbl->SetStreamNumber(This,wStreamNum) 2484 #define IMFASFStreamConfig_GetMediaType(This,ppIMediaType) (This)->lpVtbl->GetMediaType(This,ppIMediaType) 2485 #define IMFASFStreamConfig_SetMediaType(This,pIMediaType) (This)->lpVtbl->SetMediaType(This,pIMediaType) 2486 #define IMFASFStreamConfig_GetPayloadExtensionCount(This,pcPayloadExtensions) (This)->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions) 2487 #define IMFASFStreamConfig_GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) (This)->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo) 2488 #define IMFASFStreamConfig_AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) (This)->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo) 2489 #define IMFASFStreamConfig_RemoveAllPayloadExtensions(This) (This)->lpVtbl->RemoveAllPayloadExtensions(This) 2490 #define IMFASFStreamConfig_Clone(This,ppIStreamConfig) (This)->lpVtbl->Clone(This,ppIStreamConfig) 2491 #else 2492 /*** IUnknown methods ***/ 2493 static inline HRESULT IMFASFStreamConfig_QueryInterface(IMFASFStreamConfig* This,REFIID riid,void **ppvObject) { 2494 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 2495 } 2496 static inline ULONG IMFASFStreamConfig_AddRef(IMFASFStreamConfig* This) { 2497 return This->lpVtbl->AddRef(This); 2498 } 2499 static inline ULONG IMFASFStreamConfig_Release(IMFASFStreamConfig* This) { 2500 return This->lpVtbl->Release(This); 2501 } 2502 /*** IMFAttributes methods ***/ 2503 static inline HRESULT IMFASFStreamConfig_GetItem(IMFASFStreamConfig* This,REFGUID guidKey,PROPVARIANT *pValue) { 2504 return This->lpVtbl->GetItem(This,guidKey,pValue); 2505 } 2506 static inline HRESULT IMFASFStreamConfig_GetItemType(IMFASFStreamConfig* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) { 2507 return This->lpVtbl->GetItemType(This,guidKey,pType); 2508 } 2509 static inline HRESULT IMFASFStreamConfig_CompareItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) { 2510 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult); 2511 } 2512 static inline HRESULT IMFASFStreamConfig_Compare(IMFASFStreamConfig* This,IMFAttributes *pTheirs,MF_ATTRIBUTES_MATCH_TYPE MatchType,WINBOOL *pbResult) { 2513 return This->lpVtbl->Compare(This,pTheirs,MatchType,pbResult); 2514 } 2515 static inline HRESULT IMFASFStreamConfig_GetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *punValue) { 2516 return This->lpVtbl->GetUINT32(This,guidKey,punValue); 2517 } 2518 static inline HRESULT IMFASFStreamConfig_GetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 *punValue) { 2519 return This->lpVtbl->GetUINT64(This,guidKey,punValue); 2520 } 2521 static inline HRESULT IMFASFStreamConfig_GetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double *pfValue) { 2522 return This->lpVtbl->GetDouble(This,guidKey,pfValue); 2523 } 2524 static inline HRESULT IMFASFStreamConfig_GetGUID(IMFASFStreamConfig* This,REFGUID guidKey,GUID *pguidValue) { 2525 return This->lpVtbl->GetGUID(This,guidKey,pguidValue); 2526 } 2527 static inline HRESULT IMFASFStreamConfig_GetStringLength(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcchLength) { 2528 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength); 2529 } 2530 static inline HRESULT IMFASFStreamConfig_GetString(IMFASFStreamConfig* This,REFGUID guidKey,LPWSTR pwszValue,UINT32 cchBufSize,UINT32 *pcchLength) { 2531 return This->lpVtbl->GetString(This,guidKey,pwszValue,cchBufSize,pcchLength); 2532 } 2533 static inline HRESULT IMFASFStreamConfig_GetAllocatedString(IMFASFStreamConfig* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) { 2534 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength); 2535 } 2536 static inline HRESULT IMFASFStreamConfig_GetBlobSize(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcbBlobSize) { 2537 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize); 2538 } 2539 static inline HRESULT IMFASFStreamConfig_GetBlob(IMFASFStreamConfig* This,REFGUID guidKey,UINT8 *pBuf,UINT32 cbBufSize,UINT32 *pcbBlobSize) { 2540 return This->lpVtbl->GetBlob(This,guidKey,pBuf,cbBufSize,pcbBlobSize); 2541 } 2542 static inline HRESULT IMFASFStreamConfig_GetAllocatedBlob(IMFASFStreamConfig* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) { 2543 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize); 2544 } 2545 static inline HRESULT IMFASFStreamConfig_GetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) { 2546 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv); 2547 } 2548 static inline HRESULT IMFASFStreamConfig_SetItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value) { 2549 return This->lpVtbl->SetItem(This,guidKey,Value); 2550 } 2551 static inline HRESULT IMFASFStreamConfig_DeleteItem(IMFASFStreamConfig* This,REFGUID guidKey) { 2552 return This->lpVtbl->DeleteItem(This,guidKey); 2553 } 2554 static inline HRESULT IMFASFStreamConfig_DeleteAllItems(IMFASFStreamConfig* This) { 2555 return This->lpVtbl->DeleteAllItems(This); 2556 } 2557 static inline HRESULT IMFASFStreamConfig_SetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 unValue) { 2558 return This->lpVtbl->SetUINT32(This,guidKey,unValue); 2559 } 2560 static inline HRESULT IMFASFStreamConfig_SetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 unValue) { 2561 return This->lpVtbl->SetUINT64(This,guidKey,unValue); 2562 } 2563 static inline HRESULT IMFASFStreamConfig_SetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double fValue) { 2564 return This->lpVtbl->SetDouble(This,guidKey,fValue); 2565 } 2566 static inline HRESULT IMFASFStreamConfig_SetGUID(IMFASFStreamConfig* This,REFGUID guidKey,REFGUID guidValue) { 2567 return This->lpVtbl->SetGUID(This,guidKey,guidValue); 2568 } 2569 static inline HRESULT IMFASFStreamConfig_SetString(IMFASFStreamConfig* This,REFGUID guidKey,LPCWSTR wszValue) { 2570 return This->lpVtbl->SetString(This,guidKey,wszValue); 2571 } 2572 static inline HRESULT IMFASFStreamConfig_SetBlob(IMFASFStreamConfig* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) { 2573 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize); 2574 } 2575 static inline HRESULT IMFASFStreamConfig_SetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,IUnknown *pUnknown) { 2576 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown); 2577 } 2578 static inline HRESULT IMFASFStreamConfig_LockStore(IMFASFStreamConfig* This) { 2579 return This->lpVtbl->LockStore(This); 2580 } 2581 static inline HRESULT IMFASFStreamConfig_UnlockStore(IMFASFStreamConfig* This) { 2582 return This->lpVtbl->UnlockStore(This); 2583 } 2584 static inline HRESULT IMFASFStreamConfig_GetCount(IMFASFStreamConfig* This,UINT32 *pcItems) { 2585 return This->lpVtbl->GetCount(This,pcItems); 2586 } 2587 static inline HRESULT IMFASFStreamConfig_GetItemByIndex(IMFASFStreamConfig* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) { 2588 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue); 2589 } 2590 static inline HRESULT IMFASFStreamConfig_CopyAllItems(IMFASFStreamConfig* This,IMFAttributes *pDest) { 2591 return This->lpVtbl->CopyAllItems(This,pDest); 2592 } 2593 /*** IMFASFStreamConfig methods ***/ 2594 static inline HRESULT IMFASFStreamConfig_GetStreamType(IMFASFStreamConfig* This,GUID *pguidStreamType) { 2595 return This->lpVtbl->GetStreamType(This,pguidStreamType); 2596 } 2597 static inline WORD IMFASFStreamConfig_GetStreamNumber(IMFASFStreamConfig* This) { 2598 return This->lpVtbl->GetStreamNumber(This); 2599 } 2600 static inline HRESULT IMFASFStreamConfig_SetStreamNumber(IMFASFStreamConfig* This,WORD wStreamNum) { 2601 return This->lpVtbl->SetStreamNumber(This,wStreamNum); 2602 } 2603 static inline HRESULT IMFASFStreamConfig_GetMediaType(IMFASFStreamConfig* This,IMFMediaType **ppIMediaType) { 2604 return This->lpVtbl->GetMediaType(This,ppIMediaType); 2605 } 2606 static inline HRESULT IMFASFStreamConfig_SetMediaType(IMFASFStreamConfig* This,IMFMediaType *pIMediaType) { 2607 return This->lpVtbl->SetMediaType(This,pIMediaType); 2608 } 2609 static inline HRESULT IMFASFStreamConfig_GetPayloadExtensionCount(IMFASFStreamConfig* This,WORD *pcPayloadExtensions) { 2610 return This->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions); 2611 } 2612 static inline HRESULT IMFASFStreamConfig_GetPayloadExtension(IMFASFStreamConfig* This,WORD wPayloadExtensionNumber,GUID *pguidExtensionSystemID,WORD *pcbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD *pcbExtensionSystemInfo) { 2613 return This->lpVtbl->GetPayloadExtension(This,wPayloadExtensionNumber,pguidExtensionSystemID,pcbExtensionDataSize,pbExtensionSystemInfo,pcbExtensionSystemInfo); 2614 } 2615 static inline HRESULT IMFASFStreamConfig_AddPayloadExtension(IMFASFStreamConfig* This,GUID guidExtensionSystemID,WORD cbExtensionDataSize,BYTE *pbExtensionSystemInfo,DWORD cbExtensionSystemInfo) { 2616 return This->lpVtbl->AddPayloadExtension(This,guidExtensionSystemID,cbExtensionDataSize,pbExtensionSystemInfo,cbExtensionSystemInfo); 2617 } 2618 static inline HRESULT IMFASFStreamConfig_RemoveAllPayloadExtensions(IMFASFStreamConfig* This) { 2619 return This->lpVtbl->RemoveAllPayloadExtensions(This); 2620 } 2621 static inline HRESULT IMFASFStreamConfig_Clone(IMFASFStreamConfig* This,IMFASFStreamConfig **ppIStreamConfig) { 2622 return This->lpVtbl->Clone(This,ppIStreamConfig); 2623 } 2624 #endif 2625 #endif 2626 2627 #endif 2628 2629 2630 #endif /* __IMFASFStreamConfig_INTERFACE_DEFINED__ */ 2631 2632 2633 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_BASE_SENDTIME = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 3 }; 2634 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 4 }; 2635 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_DRMACTION = { { 0xa1db6f6c, 0x1d0a, 0x4cb6, 0x82, 0x54, 0xcb, 0x36, 0xbe, 0xed, 0xbc, 0x48}, 5 }; 2636 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET = { { 0xa2f152fb, 0x8ad9, 0x4a11, 0xb3, 0x45, 0x2c, 0xe2, 0xfa, 0xd8, 0x72, 0x3d}, 1 }; 2637 2638 STDAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo); 2639 STDAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer); 2640 STDAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream, QWORD cbIndexStartOffset, IMFByteStream **pIIndexByteStream); 2641 STDAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink); 2642 STDAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate); 2643 STDAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer); 2644 STDAPI MFCreateASFProfile(IMFASFProfile **ppIProfile); 2645 STDAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD, IMFASFProfile **ppIProfile); 2646 STDAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter); 2647 STDAPI MFCreateASFStreamingMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink); 2648 STDAPI MFCreateASFStreamingMediaSinkActivate(IMFActivate *pByteStreamActivate, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate); 2649 STDAPI MFCreateASFStreamSelector(IMFASFProfile *pIASFProfile, IMFASFStreamSelector **ppSelector); 2650 STDAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile, IMFPresentationDescriptor **ppIPD); 2651 HRESULT STDMETHODCALLTYPE MFCreateWMVEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate); 2652 HRESULT STDMETHODCALLTYPE MFCreateWMAEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate); 2653 #endif 2654 /* Begin additional prototypes for all interfaces */ 2655 2656 ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); 2657 unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); 2658 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); 2659 void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); 2660 2661 /* End additional prototypes */ 2662 2663 #ifdef __cplusplus 2664 } 2665 #endif 2666 2667 #endif /* __wmcontainer_h__ */