ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/wmcontainer.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 116603 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

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