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