source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/wmcontainer.h@ 1194

Last change on this file since 1194 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 113.9 KB
RevLine 
[1166]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__
23typedef interface IMFASFContentInfo IMFASFContentInfo;
24#ifdef __cplusplus
25interface IMFASFContentInfo;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IMFASFMutualExclusion_FWD_DEFINED__
30#define __IMFASFMutualExclusion_FWD_DEFINED__
31typedef interface IMFASFMutualExclusion IMFASFMutualExclusion;
32#ifdef __cplusplus
33interface IMFASFMutualExclusion;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IMFASFStreamPrioritization_FWD_DEFINED__
38#define __IMFASFStreamPrioritization_FWD_DEFINED__
39typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization;
40#ifdef __cplusplus
41interface IMFASFStreamPrioritization;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IMFASFSplitter_FWD_DEFINED__
46#define __IMFASFSplitter_FWD_DEFINED__
47typedef interface IMFASFSplitter IMFASFSplitter;
48#ifdef __cplusplus
49interface IMFASFSplitter;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IMFASFMultiplexer_FWD_DEFINED__
54#define __IMFASFMultiplexer_FWD_DEFINED__
55typedef interface IMFASFMultiplexer IMFASFMultiplexer;
56#ifdef __cplusplus
57interface IMFASFMultiplexer;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IMFASFIndexer_FWD_DEFINED__
62#define __IMFASFIndexer_FWD_DEFINED__
63typedef interface IMFASFIndexer IMFASFIndexer;
64#ifdef __cplusplus
65interface IMFASFIndexer;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IMFASFStreamSelector_FWD_DEFINED__
70#define __IMFASFStreamSelector_FWD_DEFINED__
71typedef interface IMFASFStreamSelector IMFASFStreamSelector;
72#ifdef __cplusplus
73interface IMFASFStreamSelector;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IMFDRMNetHelper_FWD_DEFINED__
78#define __IMFDRMNetHelper_FWD_DEFINED__
79typedef interface IMFDRMNetHelper IMFDRMNetHelper;
80#ifdef __cplusplus
81interface IMFDRMNetHelper;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __IMFASFProfile_FWD_DEFINED__
86#define __IMFASFProfile_FWD_DEFINED__
87typedef interface IMFASFProfile IMFASFProfile;
88#ifdef __cplusplus
89interface IMFASFProfile;
90#endif /* __cplusplus */
91#endif
92
93#ifndef __IMFASFStreamConfig_FWD_DEFINED__
94#define __IMFASFStreamConfig_FWD_DEFINED__
95typedef interface IMFASFStreamConfig IMFASFStreamConfig;
96#ifdef __cplusplus
97interface IMFASFStreamConfig;
98#endif /* __cplusplus */
99#endif
100
101/* Headers for imported files */
102
103#include <mfidl.h>
104
105#ifdef __cplusplus
106extern "C" {
107#endif
108
109#include <winapifamily.h>
110
111#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
112
113EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FILE_ID, 0x3de649b4, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
114EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_CREATION_TIME, 0x3de649b6, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
115EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_FLAGS, 0x3de649bb, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
116EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_PACKET_SIZE, 0x3de649bd, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
117EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MAX_BITRATE, 0x3de649be, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
118EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_MIN_PACKET_SIZE, 0x3de649bc, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
119EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PACKETS, 0x3de649b7, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
120EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PLAY_DURATION, 0x3de649b8, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
121EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_PREROLL, 0x3de649ba, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
122EXTERN_GUID(MF_PD_ASF_FILEPROPERTIES_SEND_DURATION, 0x3de649b9, 0xd76d, 0x4e66, 0x9e, 0xc9, 0x78, 0x12, 0xf, 0xb4, 0xc7, 0xe3);
123EXTERN_GUID(CLSID_WMDRMSystemID, 0x8948BB22, 0x11BD, 0x4796, 0x93, 0xE3, 0x97, 0x4D, 0x1B, 0x57, 0x56, 0x78);
124EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_KEYID, 0x8520fe3e, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
125EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_LICENSE_URL, 0x8520fe40, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
126EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_SECRET_DATA, 0x8520fe3f, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
127EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTION_TYPE, 0x8520fe3d, 0x277e, 0x46ea, 0x99, 0xe4, 0xe3, 0xa, 0x86, 0xdb, 0x12, 0xbe);
128EXTERN_GUID(MF_PD_ASF_CONTENTENCRYPTIONEX_ENCRYPTION_DATA, 0x62508be5, 0xecdf, 0x4924, 0xa3, 0x59, 0x72, 0xba, 0xb3, 0x39, 0x7b, 0x9d);
129EXTERN_GUID(MF_PD_ASF_LANGLIST, 0xf23de43c, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d);
130EXTERN_GUID(MF_PD_ASF_MARKER, 0x5134330e, 0x83a6, 0x475e, 0xa9, 0xd5, 0x4f, 0xb8, 0x75, 0xfb, 0x2e, 0x31);
131EXTERN_GUID(MF_PD_ASF_SCRIPT, 0xe29cd0d7, 0xd602, 0x4923, 0xa7, 0xfe, 0x73, 0xfd, 0x97, 0xec, 0xc6, 0x50);
132EXTERN_GUID(MF_PD_ASF_CODECLIST, 0xe4bb3509, 0xc18d, 0x4df1, 0xbb, 0x99, 0x7a, 0x36, 0xb3, 0xcc, 0x41, 0x19);
133EXTERN_GUID(MF_PD_ASF_METADATA_IS_VBR, 0x5fc6947a, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
134EXTERN_GUID(MF_PD_ASF_METADATA_V8_VBRPEAK, 0x5fc6947b, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
135EXTERN_GUID(MF_PD_ASF_METADATA_V8_BUFFERAVERAGE, 0x5fc6947c, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
136EXTERN_GUID(MF_PD_ASF_METADATA_LEAKY_BUCKET_PAIRS, 0x5fc6947d, 0xef60, 0x445d, 0xb4, 0x49, 0x44, 0x2e, 0xcc, 0x78, 0xb4, 0xc1);
137EXTERN_GUID(MF_PD_ASF_DATA_START_OFFSET, 0xe7d5b3e7, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed);
138EXTERN_GUID(MF_PD_ASF_DATA_LENGTH, 0xe7d5b3e8, 0x1f29, 0x45d3, 0x88, 0x22, 0x3e, 0x78, 0xfa, 0xe2, 0x72, 0xed);
139EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_LANGUAGE_ID_INDEX, 0x48f8a522, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
140EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_DATA_BITRATE, 0x48f8a523, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
141EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_AVG_BUFFERSIZE, 0x48f8a524, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
142EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_DATA_BITRATE, 0x48f8a525, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
143EXTERN_GUID(MF_SD_ASF_EXTSTRMPROP_MAX_BUFFERSIZE, 0x48f8a526, 0x305d, 0x422d, 0x85, 0x24, 0x25, 0x2, 0xdd, 0xa3, 0x36, 0x80);
144EXTERN_GUID(MF_SD_ASF_STREAMBITRATES_BITRATE, 0xa8e182ed, 0xafc8, 0x43d0, 0xb0, 0xd1, 0xf6, 0x5b, 0xad, 0x9d, 0xa5, 0x58);
145EXTERN_GUID(MF_SD_ASF_METADATA_DEVICE_CONFORMANCE_TEMPLATE, 0x245e929d, 0xc44e, 0x4f7e, 0xbb, 0x3c, 0x77, 0xd4, 0xdf, 0xd2, 0x7f, 0x8a);
146EXTERN_GUID(MF_PD_ASF_INFO_HAS_AUDIO, 0x80e62295, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);
147EXTERN_GUID(MF_PD_ASF_INFO_HAS_VIDEO, 0x80e62296, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);
148EXTERN_GUID(MF_PD_ASF_INFO_HAS_NON_AUDIO_VIDEO, 0x80e62297, 0x2296, 0x4a44, 0xb3, 0x1c, 0xd1, 0x3, 0xc6, 0xfe, 0xd2, 0x3c);
149#if WINVER >= 0x0601
150EXTERN_GUID(MFASFINDEXER_TYPE_TIMECODE, 0x49815231, 0x6bad, 0x44fd, 0x81, 0xa, 0x3f, 0x60, 0x98, 0x4e, 0xc7, 0xfd);
151EXTERN_GUID(MF_PD_ASF_LANGLIST_LEGACYORDER, 0xf23de43d, 0x9977, 0x460d, 0xa6, 0xec, 0x32, 0x93, 0x7f, 0x16, 0xf, 0x7d);
152#endif
153
154EXTERN_GUID(MFASFMutexType_Bitrate, 0x72178C2C, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
155EXTERN_GUID(MFASFMutexType_Language, 0x72178C2B, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
156EXTERN_GUID(MFASFMutexType_Presentation, 0x72178C2D, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
157EXTERN_GUID(MFASFMutexType_Unknown, 0x72178C2E, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB);
158EXTERN_GUID(MFASFSampleExtension_ContentType, 0xd590dc20, 0x07bc, 0x436c, 0x9c, 0xf7, 0xf3, 0xbb, 0xfb, 0xf1, 0xa4, 0xdc);
159EXTERN_GUID(MFASFSampleExtension_Encryption_SampleID, 0x6698B84E, 0x0AFA, 0x4330, 0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D);
160EXTERN_GUID(MFASFSampleExtension_Encryption_KeyID, 0x76376591, 0x795f, 0x4da1, 0x86, 0xed, 0x9d, 0x46, 0xec, 0xa1, 0x09, 0xa9);
161EXTERN_GUID(MFASFSampleExtension_FileName, 0xe165ec0e, 0x19ed, 0x45d7, 0xb4, 0xa7, 0x25, 0xcb, 0xd1, 0xe2, 0x8e, 0x9b);
162EXTERN_GUID(MFASFSampleExtension_OutputCleanPoint, 0xf72a3c6f, 0x6eb4, 0x4ebc, 0xb1, 0x92, 0x9, 0xad, 0x97, 0x59, 0xe8, 0x28);
163EXTERN_GUID(MFASFSampleExtension_PixelAspectRatio, 0x1b1ee554, 0xf9ea, 0x4bc8, 0x82, 0x1a, 0x37, 0x6b, 0x74, 0xe4, 0xc4, 0xb8);
164EXTERN_GUID(MFASFSampleExtension_SampleDuration, 0xc6bd9450, 0x867f, 0x4907, 0x83, 0xa3, 0xc7, 0x79, 0x21, 0xb7, 0x33, 0xad);
165EXTERN_GUID(MFASFSampleExtension_SMPTE, 0x399595ec, 0x8667, 0x4e2d, 0x8f, 0xdb, 0x98, 0x81, 0x4c, 0xe7, 0x6c, 0x1e);
166EXTERN_GUID(MFASFSPLITTER_PACKET_BOUNDARY, 0xfe584a05, 0xe8d6, 0x42e3, 0xb1, 0x76, 0xf1, 0x21, 0x17, 0x5, 0xfb, 0x6f);
167EXTERN_GUID(MF_ASFPROFILE_MINPACKETSIZE, 0x22587626, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0);
168EXTERN_GUID(MF_ASFPROFILE_MAXPACKETSIZE, 0x22587627, 0x47de, 0x4168, 0x87, 0xf5, 0xb5, 0xaa, 0x9b, 0x12, 0xa8, 0xf0);
169EXTERN_GUID(MF_ASFSTREAMCONFIG_LEAKYBUCKET1, 0xc69b5901, 0xea1a, 0x4c9b, 0xb6, 0x92, 0xe2, 0xa0, 0xd2, 0x9a, 0x8a, 0xdd);
170EXTERN_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__
173typedef interface IMFASFProfile IMFASFProfile;
174#ifdef __cplusplus
175interface IMFASFProfile;
176#endif /* __cplusplus */
177#endif
178
179#ifndef __IMFASFStreamConfig_FWD_DEFINED__
180#define __IMFASFStreamConfig_FWD_DEFINED__
181typedef interface IMFASFStreamConfig IMFASFStreamConfig;
182#ifdef __cplusplus
183interface IMFASFStreamConfig;
184#endif /* __cplusplus */
185#endif
186
187#ifndef __IMFASFMutualExclusion_FWD_DEFINED__
188#define __IMFASFMutualExclusion_FWD_DEFINED__
189typedef interface IMFASFMutualExclusion IMFASFMutualExclusion;
190#ifdef __cplusplus
191interface IMFASFMutualExclusion;
192#endif /* __cplusplus */
193#endif
194
195#ifndef __IMFASFStreamPrioritization_FWD_DEFINED__
196#define __IMFASFStreamPrioritization_FWD_DEFINED__
197typedef interface IMFASFStreamPrioritization IMFASFStreamPrioritization;
198#ifdef __cplusplus
199interface 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
216typedef enum MFASF_SPLITTERFLAGS {
217 MFASF_SPLITTER_REVERSE = 0x1,
218 MFASF_SPLITTER_WMDRM = 0x2
219} MFASF_SPLITTERFLAGS;
220typedef enum ASF_STATUSFLAGS {
221 ASF_STATUSFLAGS_INCOMPLETE = 0x1
222} ASF_STATUSFLAGS;
223typedef enum MFASF_MULTIPLEXERFLAGS {
224 MFASF_MULTIPLEXER_AUTOADJUST_BITRATE = 0x1
225} MFASF_MULTIPLEXERFLAGS;
226typedef 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;
231typedef enum MFASF_STREAMSELECTORFLAGS {
232 MFASF_STREAMSELECTOR_DISABLE_THINNING = 0x1,
233 MFASF_STREAMSELECTOR_USE_AVERAGE_BITRATE = 0x2
234} MFASF_STREAMSELECTOR_FLAGS;
235typedef enum ASF_SELECTION_STATUS {
236 ASF_STATUS_NOTSELECTED = 0,
237 ASF_STATUS_CLEANPOINTSONLY = 1,
238 ASF_STATUS_ALLDATAUNITS = 2
239} ASF_SELECTION_STATUS;
240typedef 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
248typedef struct ASF_MUX_STATISTICS {
249 DWORD cFramesWritten;
250 DWORD cFramesDropped;
251} ASF_MUX_STATISTICS;
252typedef struct _ASF_INDEX_IDENTIFIER {
253 GUID guidIndexType;
254 WORD wStreamNumber;
255} ASF_INDEX_IDENTIFIER;
256typedef 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
269DEFINE_GUID(IID_IMFASFContentInfo, 0xb1dca5cd, 0xd5da, 0x4451, 0x8e,0x9e, 0xdb,0x5c,0x59,0x91,0x4e,0xad);
270#if defined(__cplusplus) && !defined(CINTERFACE)
271MIDL_INTERFACE("b1dca5cd-d5da-4451-8e9e-db5c59914ead")
272IMFASFContentInfo : 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
304typedef 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
355interface 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 ***/
375static FORCEINLINE HRESULT IMFASFContentInfo_QueryInterface(IMFASFContentInfo* This,REFIID riid,void **ppvObject) {
376 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
377}
378static FORCEINLINE ULONG IMFASFContentInfo_AddRef(IMFASFContentInfo* This) {
379 return This->lpVtbl->AddRef(This);
380}
381static FORCEINLINE ULONG IMFASFContentInfo_Release(IMFASFContentInfo* This) {
382 return This->lpVtbl->Release(This);
383}
384/*** IMFASFContentInfo methods ***/
385static FORCEINLINE HRESULT IMFASFContentInfo_GetHeaderSize(IMFASFContentInfo* This,IMFMediaBuffer *pIStartOfContent,QWORD *cbHeaderSize) {
386 return This->lpVtbl->GetHeaderSize(This,pIStartOfContent,cbHeaderSize);
387}
388static FORCEINLINE HRESULT IMFASFContentInfo_ParseHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeaderBuffer,QWORD cbOffsetWithinHeader) {
389 return This->lpVtbl->ParseHeader(This,pIHeaderBuffer,cbOffsetWithinHeader);
390}
391static FORCEINLINE HRESULT IMFASFContentInfo_GenerateHeader(IMFASFContentInfo* This,IMFMediaBuffer *pIHeader,DWORD *pcbHeader) {
392 return This->lpVtbl->GenerateHeader(This,pIHeader,pcbHeader);
393}
394static FORCEINLINE HRESULT IMFASFContentInfo_GetProfile(IMFASFContentInfo* This,IMFASFProfile **ppIProfile) {
395 return This->lpVtbl->GetProfile(This,ppIProfile);
396}
397static FORCEINLINE HRESULT IMFASFContentInfo_SetProfile(IMFASFContentInfo* This,IMFASFProfile *pIProfile) {
398 return This->lpVtbl->SetProfile(This,pIProfile);
399}
400static FORCEINLINE HRESULT IMFASFContentInfo_GeneratePresentationDescriptor(IMFASFContentInfo* This,IMFPresentationDescriptor **ppIPresentationDescriptor) {
401 return This->lpVtbl->GeneratePresentationDescriptor(This,ppIPresentationDescriptor);
402}
403static 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
420DEFINE_GUID(IID_IMFASFMutualExclusion, 0x12558291, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab);
421#if defined(__cplusplus) && !defined(CINTERFACE)
422MIDL_INTERFACE("12558291-e399-11d5-bc2a-00b0d0f3f4ab")
423IMFASFMutualExclusion : 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
461typedef 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
520interface 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 ***/
542static FORCEINLINE HRESULT IMFASFMutualExclusion_QueryInterface(IMFASFMutualExclusion* This,REFIID riid,void **ppvObject) {
543 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
544}
545static FORCEINLINE ULONG IMFASFMutualExclusion_AddRef(IMFASFMutualExclusion* This) {
546 return This->lpVtbl->AddRef(This);
547}
548static FORCEINLINE ULONG IMFASFMutualExclusion_Release(IMFASFMutualExclusion* This) {
549 return This->lpVtbl->Release(This);
550}
551/*** IMFASFMutualExclusion methods ***/
552static FORCEINLINE HRESULT IMFASFMutualExclusion_GetType(IMFASFMutualExclusion* This,GUID *pguidType) {
553 return This->lpVtbl->GetType(This,pguidType);
554}
555static FORCEINLINE HRESULT IMFASFMutualExclusion_SetType(IMFASFMutualExclusion* This,REFGUID guidType) {
556 return This->lpVtbl->SetType(This,guidType);
557}
558static FORCEINLINE HRESULT IMFASFMutualExclusion_GetRecordCount(IMFASFMutualExclusion* This,DWORD *pdwRecordCount) {
559 return This->lpVtbl->GetRecordCount(This,pdwRecordCount);
560}
561static FORCEINLINE HRESULT IMFASFMutualExclusion_GetStreamsForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD *pwStreamNumArray,DWORD *pcStreams) {
562 return This->lpVtbl->GetStreamsForRecord(This,dwRecordNumber,pwStreamNumArray,pcStreams);
563}
564static FORCEINLINE HRESULT IMFASFMutualExclusion_AddStreamForRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) {
565 return This->lpVtbl->AddStreamForRecord(This,dwRecordNumber,wStreamNumber);
566}
567static FORCEINLINE HRESULT IMFASFMutualExclusion_RemoveStreamFromRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber,WORD wStreamNumber) {
568 return This->lpVtbl->RemoveStreamFromRecord(This,dwRecordNumber,wStreamNumber);
569}
570static FORCEINLINE HRESULT IMFASFMutualExclusion_RemoveRecord(IMFASFMutualExclusion* This,DWORD dwRecordNumber) {
571 return This->lpVtbl->RemoveRecord(This,dwRecordNumber);
572}
573static FORCEINLINE HRESULT IMFASFMutualExclusion_AddRecord(IMFASFMutualExclusion* This,DWORD *pdwRecordNumber) {
574 return This->lpVtbl->AddRecord(This,pdwRecordNumber);
575}
576static 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
593DEFINE_GUID(IID_IMFASFStreamPrioritization, 0x699bdc27, 0xbbaf, 0x49ff, 0x8e,0x38, 0x9c,0x39,0xc9,0xb5,0xe0,0x88);
594#if defined(__cplusplus) && !defined(CINTERFACE)
595MIDL_INTERFACE("699bdc27-bbaf-49ff-8e38-9c39c9b5e088")
596IMFASFStreamPrioritization : 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
621typedef 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
663interface 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 ***/
681static FORCEINLINE HRESULT IMFASFStreamPrioritization_QueryInterface(IMFASFStreamPrioritization* This,REFIID riid,void **ppvObject) {
682 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
683}
684static FORCEINLINE ULONG IMFASFStreamPrioritization_AddRef(IMFASFStreamPrioritization* This) {
685 return This->lpVtbl->AddRef(This);
686}
687static FORCEINLINE ULONG IMFASFStreamPrioritization_Release(IMFASFStreamPrioritization* This) {
688 return This->lpVtbl->Release(This);
689}
690/*** IMFASFStreamPrioritization methods ***/
691static FORCEINLINE HRESULT IMFASFStreamPrioritization_GetStreamCount(IMFASFStreamPrioritization* This,DWORD *pdwStreamCount) {
692 return This->lpVtbl->GetStreamCount(This,pdwStreamCount);
693}
694static FORCEINLINE HRESULT IMFASFStreamPrioritization_GetStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex,WORD *pwStreamNumber,WORD *pwStreamFlags) {
695 return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,pwStreamFlags);
696}
697static FORCEINLINE HRESULT IMFASFStreamPrioritization_AddStream(IMFASFStreamPrioritization* This,WORD wStreamNumber,WORD wStreamFlags) {
698 return This->lpVtbl->AddStream(This,wStreamNumber,wStreamFlags);
699}
700static FORCEINLINE HRESULT IMFASFStreamPrioritization_RemoveStream(IMFASFStreamPrioritization* This,DWORD dwStreamIndex) {
701 return This->lpVtbl->RemoveStream(This,dwStreamIndex);
702}
703static 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
720DEFINE_GUID(IID_IMFASFSplitter, 0x12558295, 0xe399, 0x11d5, 0xbc,0x2a, 0x00,0xb0,0xd0,0xf3,0xf4,0xab);
721#if defined(__cplusplus) && !defined(CINTERFACE)
722MIDL_INTERFACE("12558295-e399-11d5-bc2a-00b0d0f3f4ab")
723IMFASFSplitter : 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
763typedef 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
823interface 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 ***/
845static FORCEINLINE HRESULT IMFASFSplitter_QueryInterface(IMFASFSplitter* This,REFIID riid,void **ppvObject) {
846 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
847}
848static FORCEINLINE ULONG IMFASFSplitter_AddRef(IMFASFSplitter* This) {
849 return This->lpVtbl->AddRef(This);
850}
851static FORCEINLINE ULONG IMFASFSplitter_Release(IMFASFSplitter* This) {
852 return This->lpVtbl->Release(This);
853}
854/*** IMFASFSplitter methods ***/
855static FORCEINLINE HRESULT IMFASFSplitter_Initialize(IMFASFSplitter* This,IMFASFContentInfo *pIContentInfo) {
856 return This->lpVtbl->Initialize(This,pIContentInfo);
857}
858static FORCEINLINE HRESULT IMFASFSplitter_SetFlags(IMFASFSplitter* This,DWORD dwFlags) {
859 return This->lpVtbl->SetFlags(This,dwFlags);
860}
861static FORCEINLINE HRESULT IMFASFSplitter_GetFlags(IMFASFSplitter* This,DWORD *pdwFlags) {
862 return This->lpVtbl->GetFlags(This,pdwFlags);
863}
864static FORCEINLINE HRESULT IMFASFSplitter_SelectStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD wNumStreams) {
865 return This->lpVtbl->SelectStreams(This,pwStreamNumbers,wNumStreams);
866}
867static FORCEINLINE HRESULT IMFASFSplitter_GetSelectedStreams(IMFASFSplitter* This,WORD *pwStreamNumbers,WORD *pwNumStreams) {
868 return This->lpVtbl->GetSelectedStreams(This,pwStreamNumbers,pwNumStreams);
869}
870static FORCEINLINE HRESULT IMFASFSplitter_ParseData(IMFASFSplitter* This,IMFMediaBuffer *pIBuffer,DWORD cbBufferOffset,DWORD cbLength) {
871 return This->lpVtbl->ParseData(This,pIBuffer,cbBufferOffset,cbLength);
872}
873static FORCEINLINE HRESULT IMFASFSplitter_GetNextSample(IMFASFSplitter* This,DWORD *pdwStatusFlags,WORD *pwStreamNumber,IMFSample **ppISample) {
874 return This->lpVtbl->GetNextSample(This,pdwStatusFlags,pwStreamNumber,ppISample);
875}
876static FORCEINLINE HRESULT IMFASFSplitter_Flush(IMFASFSplitter* This) {
877 return This->lpVtbl->Flush(This);
878}
879static 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
896DEFINE_GUID(IID_IMFASFMultiplexer, 0x57bdd80a, 0x9b38, 0x4838, 0xb7,0x37, 0xc5,0x8f,0x67,0x0d,0x7d,0x4f);
897#if defined(__cplusplus) && !defined(CINTERFACE)
898MIDL_INTERFACE("57bdd80a-9b38-4838-b737-c58f670d7d4f")
899IMFASFMultiplexer : 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
937typedef 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
995interface 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 ***/
1017static FORCEINLINE HRESULT IMFASFMultiplexer_QueryInterface(IMFASFMultiplexer* This,REFIID riid,void **ppvObject) {
1018 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1019}
1020static FORCEINLINE ULONG IMFASFMultiplexer_AddRef(IMFASFMultiplexer* This) {
1021 return This->lpVtbl->AddRef(This);
1022}
1023static FORCEINLINE ULONG IMFASFMultiplexer_Release(IMFASFMultiplexer* This) {
1024 return This->lpVtbl->Release(This);
1025}
1026/*** IMFASFMultiplexer methods ***/
1027static FORCEINLINE HRESULT IMFASFMultiplexer_Initialize(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) {
1028 return This->lpVtbl->Initialize(This,pIContentInfo);
1029}
1030static FORCEINLINE HRESULT IMFASFMultiplexer_SetFlags(IMFASFMultiplexer* This,DWORD dwFlags) {
1031 return This->lpVtbl->SetFlags(This,dwFlags);
1032}
1033static FORCEINLINE HRESULT IMFASFMultiplexer_GetFlags(IMFASFMultiplexer* This,DWORD *pdwFlags) {
1034 return This->lpVtbl->GetFlags(This,pdwFlags);
1035}
1036static FORCEINLINE HRESULT IMFASFMultiplexer_ProcessSample(IMFASFMultiplexer* This,WORD wStreamNumber,IMFSample *pISample,LONGLONG hnsTimestampAdjust) {
1037 return This->lpVtbl->ProcessSample(This,wStreamNumber,pISample,hnsTimestampAdjust);
1038}
1039static FORCEINLINE HRESULT IMFASFMultiplexer_GetNextPacket(IMFASFMultiplexer* This,DWORD *pdwStatusFlags,IMFSample **ppIPacket) {
1040 return This->lpVtbl->GetNextPacket(This,pdwStatusFlags,ppIPacket);
1041}
1042static FORCEINLINE HRESULT IMFASFMultiplexer_Flush(IMFASFMultiplexer* This) {
1043 return This->lpVtbl->Flush(This);
1044}
1045static FORCEINLINE HRESULT IMFASFMultiplexer_End(IMFASFMultiplexer* This,IMFASFContentInfo *pIContentInfo) {
1046 return This->lpVtbl->End(This,pIContentInfo);
1047}
1048static FORCEINLINE HRESULT IMFASFMultiplexer_GetStatistics(IMFASFMultiplexer* This,WORD wStreamNumber,ASF_MUX_STATISTICS *pMuxStats) {
1049 return This->lpVtbl->GetStatistics(This,wStreamNumber,pMuxStats);
1050}
1051static 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
1068DEFINE_GUID(IID_IMFASFIndexer, 0x53590f48, 0xdc3b, 0x4297, 0x81,0x3f, 0x78,0x77,0x61,0xad,0x7b,0x3e);
1069#if defined(__cplusplus) && !defined(CINTERFACE)
1070MIDL_INTERFACE("53590f48-dc3b-4297-813f-787761ad7b3e")
1071IMFASFIndexer : 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
1129typedef 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
1212interface 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 ***/
1238static FORCEINLINE HRESULT IMFASFIndexer_QueryInterface(IMFASFIndexer* This,REFIID riid,void **ppvObject) {
1239 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1240}
1241static FORCEINLINE ULONG IMFASFIndexer_AddRef(IMFASFIndexer* This) {
1242 return This->lpVtbl->AddRef(This);
1243}
1244static FORCEINLINE ULONG IMFASFIndexer_Release(IMFASFIndexer* This) {
1245 return This->lpVtbl->Release(This);
1246}
1247/*** IMFASFIndexer methods ***/
1248static FORCEINLINE HRESULT IMFASFIndexer_SetFlags(IMFASFIndexer* This,DWORD dwFlags) {
1249 return This->lpVtbl->SetFlags(This,dwFlags);
1250}
1251static FORCEINLINE HRESULT IMFASFIndexer_GetFlags(IMFASFIndexer* This,DWORD *pdwFlags) {
1252 return This->lpVtbl->GetFlags(This,pdwFlags);
1253}
1254static FORCEINLINE HRESULT IMFASFIndexer_Initialize(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) {
1255 return This->lpVtbl->Initialize(This,pIContentInfo);
1256}
1257static FORCEINLINE HRESULT IMFASFIndexer_GetIndexPosition(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo,QWORD *pcbIndexOffset) {
1258 return This->lpVtbl->GetIndexPosition(This,pIContentInfo,pcbIndexOffset);
1259}
1260static FORCEINLINE HRESULT IMFASFIndexer_SetIndexByteStreams(IMFASFIndexer* This,IMFByteStream **ppIByteStreams,DWORD cByteStreams) {
1261 return This->lpVtbl->SetIndexByteStreams(This,ppIByteStreams,cByteStreams);
1262}
1263static FORCEINLINE HRESULT IMFASFIndexer_GetIndexByteStreamCount(IMFASFIndexer* This,DWORD *pcByteStreams) {
1264 return This->lpVtbl->GetIndexByteStreamCount(This,pcByteStreams);
1265}
1266static 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}
1269static FORCEINLINE HRESULT IMFASFIndexer_SetIndexStatus(IMFASFIndexer* This,BYTE *pbIndexDescriptor,DWORD cbIndexDescriptor,WINBOOL fGenerateIndex) {
1270 return This->lpVtbl->SetIndexStatus(This,pbIndexDescriptor,cbIndexDescriptor,fGenerateIndex);
1271}
1272static 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}
1275static FORCEINLINE HRESULT IMFASFIndexer_GenerateIndexEntries(IMFASFIndexer* This,IMFSample *pIASFPacketSample) {
1276 return This->lpVtbl->GenerateIndexEntries(This,pIASFPacketSample);
1277}
1278static FORCEINLINE HRESULT IMFASFIndexer_CommitIndex(IMFASFIndexer* This,IMFASFContentInfo *pIContentInfo) {
1279 return This->lpVtbl->CommitIndex(This,pIContentInfo);
1280}
1281static FORCEINLINE HRESULT IMFASFIndexer_GetIndexWriteSpace(IMFASFIndexer* This,QWORD *pcbIndexWriteSpace) {
1282 return This->lpVtbl->GetIndexWriteSpace(This,pcbIndexWriteSpace);
1283}
1284static 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
1301DEFINE_GUID(IID_IMFASFStreamSelector, 0xd01bad4a, 0x4fa0, 0x4a60, 0x93,0x49, 0xc2,0x7e,0x62,0xda,0x9d,0x41);
1302#if defined(__cplusplus) && !defined(CINTERFACE)
1303MIDL_INTERFACE("d01bad4a-4fa0-4a60-9349-c27e62da9d41")
1304IMFASFStreamSelector : 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
1367typedef 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
1456interface 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 ***/
1483static FORCEINLINE HRESULT IMFASFStreamSelector_QueryInterface(IMFASFStreamSelector* This,REFIID riid,void **ppvObject) {
1484 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1485}
1486static FORCEINLINE ULONG IMFASFStreamSelector_AddRef(IMFASFStreamSelector* This) {
1487 return This->lpVtbl->AddRef(This);
1488}
1489static FORCEINLINE ULONG IMFASFStreamSelector_Release(IMFASFStreamSelector* This) {
1490 return This->lpVtbl->Release(This);
1491}
1492/*** IMFASFStreamSelector methods ***/
1493static FORCEINLINE HRESULT IMFASFStreamSelector_GetStreamCount(IMFASFStreamSelector* This,DWORD *pcStreams) {
1494 return This->lpVtbl->GetStreamCount(This,pcStreams);
1495}
1496static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputCount(IMFASFStreamSelector* This,DWORD *pcOutputs) {
1497 return This->lpVtbl->GetOutputCount(This,pcOutputs);
1498}
1499static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputStreamCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcStreams) {
1500 return This->lpVtbl->GetOutputStreamCount(This,dwOutputNum,pcStreams);
1501}
1502static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputStreamNumbers(IMFASFStreamSelector* This,DWORD dwOutputNum,WORD *rgwStreamNumbers) {
1503 return This->lpVtbl->GetOutputStreamNumbers(This,dwOutputNum,rgwStreamNumbers);
1504}
1505static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputFromStream(IMFASFStreamSelector* This,WORD wStreamNum,DWORD *pdwOutput) {
1506 return This->lpVtbl->GetOutputFromStream(This,wStreamNum,pdwOutput);
1507}
1508static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS *pSelection) {
1509 return This->lpVtbl->GetOutputOverride(This,dwOutputNum,pSelection);
1510}
1511static FORCEINLINE HRESULT IMFASFStreamSelector_SetOutputOverride(IMFASFStreamSelector* This,DWORD dwOutputNum,ASF_SELECTION_STATUS Selection) {
1512 return This->lpVtbl->SetOutputOverride(This,dwOutputNum,Selection);
1513}
1514static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputMutexCount(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD *pcMutexes) {
1515 return This->lpVtbl->GetOutputMutexCount(This,dwOutputNum,pcMutexes);
1516}
1517static FORCEINLINE HRESULT IMFASFStreamSelector_GetOutputMutex(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,IUnknown **ppMutex) {
1518 return This->lpVtbl->GetOutputMutex(This,dwOutputNum,dwMutexNum,ppMutex);
1519}
1520static FORCEINLINE HRESULT IMFASFStreamSelector_SetOutputMutexSelection(IMFASFStreamSelector* This,DWORD dwOutputNum,DWORD dwMutexNum,WORD wSelectedRecord) {
1521 return This->lpVtbl->SetOutputMutexSelection(This,dwOutputNum,dwMutexNum,wSelectedRecord);
1522}
1523static FORCEINLINE HRESULT IMFASFStreamSelector_GetBandwidthStepCount(IMFASFStreamSelector* This,DWORD *pcStepCount) {
1524 return This->lpVtbl->GetBandwidthStepCount(This,pcStepCount);
1525}
1526static 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}
1529static FORCEINLINE HRESULT IMFASFStreamSelector_BitrateToStepNumber(IMFASFStreamSelector* This,DWORD dwBitrate,DWORD *pdwStepNum) {
1530 return This->lpVtbl->BitrateToStepNumber(This,dwBitrate,pdwStepNum);
1531}
1532static 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
1550DEFINE_GUID(IID_IMFDRMNetHelper, 0x3d1ff0ea, 0x679a, 0x4190, 0x8d,0x46, 0x7f,0xa6,0x9e,0x8c,0x7e,0x15);
1551#if defined(__cplusplus) && !defined(CINTERFACE)
1552MIDL_INTERFACE("3d1ff0ea-679a-4190-8d46-7fa69e8c7e15")
1553IMFDRMNetHelper : 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
1571typedef 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
1603interface 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 ***/
1618static FORCEINLINE HRESULT IMFDRMNetHelper_QueryInterface(IMFDRMNetHelper* This,REFIID riid,void **ppvObject) {
1619 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1620}
1621static FORCEINLINE ULONG IMFDRMNetHelper_AddRef(IMFDRMNetHelper* This) {
1622 return This->lpVtbl->AddRef(This);
1623}
1624static FORCEINLINE ULONG IMFDRMNetHelper_Release(IMFDRMNetHelper* This) {
1625 return This->lpVtbl->Release(This);
1626}
1627/*** IMFDRMNetHelper methods ***/
1628static 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}
1631static 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
1649DEFINE_GUID(IID_IMFASFProfile, 0xd267bf6a, 0x028b, 0x4e0d, 0x90,0x3d, 0x43,0xf0,0xef,0x82,0xd0,0xd4);
1650#if defined(__cplusplus) && !defined(CINTERFACE)
1651MIDL_INTERFACE("d267bf6a-028b-4e0d-903d-43f0ef82d0d4")
1652IMFASFProfile : 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
1712typedef 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
1952interface 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 ***/
2012static FORCEINLINE HRESULT IMFASFProfile_QueryInterface(IMFASFProfile* This,REFIID riid,void **ppvObject) {
2013 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2014}
2015static FORCEINLINE ULONG IMFASFProfile_AddRef(IMFASFProfile* This) {
2016 return This->lpVtbl->AddRef(This);
2017}
2018static FORCEINLINE ULONG IMFASFProfile_Release(IMFASFProfile* This) {
2019 return This->lpVtbl->Release(This);
2020}
2021/*** IMFAttributes methods ***/
2022static FORCEINLINE HRESULT IMFASFProfile_GetItem(IMFASFProfile* This,REFGUID guidKey,PROPVARIANT *pValue) {
2023 return This->lpVtbl->GetItem(This,guidKey,pValue);
2024}
2025static FORCEINLINE HRESULT IMFASFProfile_GetItemType(IMFASFProfile* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
2026 return This->lpVtbl->GetItemType(This,guidKey,pType);
2027}
2028static FORCEINLINE HRESULT IMFASFProfile_CompareItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
2029 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
2030}
2031static 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}
2034static FORCEINLINE HRESULT IMFASFProfile_GetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 *punValue) {
2035 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
2036}
2037static FORCEINLINE HRESULT IMFASFProfile_GetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 *punValue) {
2038 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
2039}
2040static FORCEINLINE HRESULT IMFASFProfile_GetDouble(IMFASFProfile* This,REFGUID guidKey,double *pfValue) {
2041 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
2042}
2043static FORCEINLINE HRESULT IMFASFProfile_GetGUID(IMFASFProfile* This,REFGUID guidKey,GUID *pguidValue) {
2044 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
2045}
2046static FORCEINLINE HRESULT IMFASFProfile_GetStringLength(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcchLength) {
2047 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
2048}
2049static 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}
2052static FORCEINLINE HRESULT IMFASFProfile_GetAllocatedString(IMFASFProfile* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
2053 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
2054}
2055static FORCEINLINE HRESULT IMFASFProfile_GetBlobSize(IMFASFProfile* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
2056 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
2057}
2058static 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}
2061static FORCEINLINE HRESULT IMFASFProfile_GetAllocatedBlob(IMFASFProfile* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
2062 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
2063}
2064static FORCEINLINE HRESULT IMFASFProfile_GetUnknown(IMFASFProfile* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
2065 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
2066}
2067static FORCEINLINE HRESULT IMFASFProfile_SetItem(IMFASFProfile* This,REFGUID guidKey,REFPROPVARIANT Value) {
2068 return This->lpVtbl->SetItem(This,guidKey,Value);
2069}
2070static FORCEINLINE HRESULT IMFASFProfile_DeleteItem(IMFASFProfile* This,REFGUID guidKey) {
2071 return This->lpVtbl->DeleteItem(This,guidKey);
2072}
2073static FORCEINLINE HRESULT IMFASFProfile_DeleteAllItems(IMFASFProfile* This) {
2074 return This->lpVtbl->DeleteAllItems(This);
2075}
2076static FORCEINLINE HRESULT IMFASFProfile_SetUINT32(IMFASFProfile* This,REFGUID guidKey,UINT32 unValue) {
2077 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
2078}
2079static FORCEINLINE HRESULT IMFASFProfile_SetUINT64(IMFASFProfile* This,REFGUID guidKey,UINT64 unValue) {
2080 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
2081}
2082static FORCEINLINE HRESULT IMFASFProfile_SetDouble(IMFASFProfile* This,REFGUID guidKey,double fValue) {
2083 return This->lpVtbl->SetDouble(This,guidKey,fValue);
2084}
2085static FORCEINLINE HRESULT IMFASFProfile_SetGUID(IMFASFProfile* This,REFGUID guidKey,REFGUID guidValue) {
2086 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
2087}
2088static FORCEINLINE HRESULT IMFASFProfile_SetString(IMFASFProfile* This,REFGUID guidKey,LPCWSTR wszValue) {
2089 return This->lpVtbl->SetString(This,guidKey,wszValue);
2090}
2091static FORCEINLINE HRESULT IMFASFProfile_SetBlob(IMFASFProfile* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
2092 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
2093}
2094static FORCEINLINE HRESULT IMFASFProfile_SetUnknown(IMFASFProfile* This,REFGUID guidKey,IUnknown *pUnknown) {
2095 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
2096}
2097static FORCEINLINE HRESULT IMFASFProfile_LockStore(IMFASFProfile* This) {
2098 return This->lpVtbl->LockStore(This);
2099}
2100static FORCEINLINE HRESULT IMFASFProfile_UnlockStore(IMFASFProfile* This) {
2101 return This->lpVtbl->UnlockStore(This);
2102}
2103static FORCEINLINE HRESULT IMFASFProfile_GetCount(IMFASFProfile* This,UINT32 *pcItems) {
2104 return This->lpVtbl->GetCount(This,pcItems);
2105}
2106static FORCEINLINE HRESULT IMFASFProfile_GetItemByIndex(IMFASFProfile* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
2107 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
2108}
2109static FORCEINLINE HRESULT IMFASFProfile_CopyAllItems(IMFASFProfile* This,IMFAttributes *pDest) {
2110 return This->lpVtbl->CopyAllItems(This,pDest);
2111}
2112/*** IMFASFProfile methods ***/
2113static FORCEINLINE HRESULT IMFASFProfile_GetStreamCount(IMFASFProfile* This,DWORD *pcStreams) {
2114 return This->lpVtbl->GetStreamCount(This,pcStreams);
2115}
2116static FORCEINLINE HRESULT IMFASFProfile_GetStream(IMFASFProfile* This,DWORD dwStreamIndex,WORD *pwStreamNumber,IMFASFStreamConfig **ppIStream) {
2117 return This->lpVtbl->GetStream(This,dwStreamIndex,pwStreamNumber,ppIStream);
2118}
2119static FORCEINLINE HRESULT IMFASFProfile_GetStreamByNumber(IMFASFProfile* This,WORD wStreamNumber,IMFASFStreamConfig **ppIStream) {
2120 return This->lpVtbl->GetStreamByNumber(This,wStreamNumber,ppIStream);
2121}
2122static FORCEINLINE HRESULT IMFASFProfile_SetStream(IMFASFProfile* This,IMFASFStreamConfig *pIStream) {
2123 return This->lpVtbl->SetStream(This,pIStream);
2124}
2125static FORCEINLINE HRESULT IMFASFProfile_RemoveStream(IMFASFProfile* This,WORD wStreamNumber) {
2126 return This->lpVtbl->RemoveStream(This,wStreamNumber);
2127}
2128static FORCEINLINE HRESULT IMFASFProfile_CreateStream(IMFASFProfile* This,IMFMediaType *pIMediaType,IMFASFStreamConfig **ppIStream) {
2129 return This->lpVtbl->CreateStream(This,pIMediaType,ppIStream);
2130}
2131static FORCEINLINE HRESULT IMFASFProfile_GetMutualExclusionCount(IMFASFProfile* This,DWORD *pcMutexs) {
2132 return This->lpVtbl->GetMutualExclusionCount(This,pcMutexs);
2133}
2134static FORCEINLINE HRESULT IMFASFProfile_GetMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex,IMFASFMutualExclusion **ppIMutex) {
2135 return This->lpVtbl->GetMutualExclusion(This,dwMutexIndex,ppIMutex);
2136}
2137static FORCEINLINE HRESULT IMFASFProfile_AddMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion *pIMutex) {
2138 return This->lpVtbl->AddMutualExclusion(This,pIMutex);
2139}
2140static FORCEINLINE HRESULT IMFASFProfile_RemoveMutualExclusion(IMFASFProfile* This,DWORD dwMutexIndex) {
2141 return This->lpVtbl->RemoveMutualExclusion(This,dwMutexIndex);
2142}
2143static FORCEINLINE HRESULT IMFASFProfile_CreateMutualExclusion(IMFASFProfile* This,IMFASFMutualExclusion **ppIMutex) {
2144 return This->lpVtbl->CreateMutualExclusion(This,ppIMutex);
2145}
2146static FORCEINLINE HRESULT IMFASFProfile_GetStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) {
2147 return This->lpVtbl->GetStreamPrioritization(This,ppIStreamPrioritization);
2148}
2149static FORCEINLINE HRESULT IMFASFProfile_AddStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization *pIStreamPrioritization) {
2150 return This->lpVtbl->AddStreamPrioritization(This,pIStreamPrioritization);
2151}
2152static FORCEINLINE HRESULT IMFASFProfile_RemoveStreamPrioritization(IMFASFProfile* This) {
2153 return This->lpVtbl->RemoveStreamPrioritization(This);
2154}
2155static FORCEINLINE HRESULT IMFASFProfile_CreateStreamPrioritization(IMFASFProfile* This,IMFASFStreamPrioritization **ppIStreamPrioritization) {
2156 return This->lpVtbl->CreateStreamPrioritization(This,ppIStreamPrioritization);
2157}
2158static 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
2175DEFINE_GUID(IID_IMFASFStreamConfig, 0x9e8ae8d2, 0xdbbd, 0x4200, 0x9a,0xca, 0x06,0xe6,0xdf,0x48,0x49,0x13);
2176#if defined(__cplusplus) && !defined(CINTERFACE)
2177MIDL_INTERFACE("9e8ae8d2-dbbd-4200-9aca-06e6df484913")
2178IMFASFStreamConfig : 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
2222typedef 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
2439interface 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 ***/
2493static FORCEINLINE HRESULT IMFASFStreamConfig_QueryInterface(IMFASFStreamConfig* This,REFIID riid,void **ppvObject) {
2494 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2495}
2496static FORCEINLINE ULONG IMFASFStreamConfig_AddRef(IMFASFStreamConfig* This) {
2497 return This->lpVtbl->AddRef(This);
2498}
2499static FORCEINLINE ULONG IMFASFStreamConfig_Release(IMFASFStreamConfig* This) {
2500 return This->lpVtbl->Release(This);
2501}
2502/*** IMFAttributes methods ***/
2503static FORCEINLINE HRESULT IMFASFStreamConfig_GetItem(IMFASFStreamConfig* This,REFGUID guidKey,PROPVARIANT *pValue) {
2504 return This->lpVtbl->GetItem(This,guidKey,pValue);
2505}
2506static FORCEINLINE HRESULT IMFASFStreamConfig_GetItemType(IMFASFStreamConfig* This,REFGUID guidKey,MF_ATTRIBUTE_TYPE *pType) {
2507 return This->lpVtbl->GetItemType(This,guidKey,pType);
2508}
2509static FORCEINLINE HRESULT IMFASFStreamConfig_CompareItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value,WINBOOL *pbResult) {
2510 return This->lpVtbl->CompareItem(This,guidKey,Value,pbResult);
2511}
2512static 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}
2515static FORCEINLINE HRESULT IMFASFStreamConfig_GetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *punValue) {
2516 return This->lpVtbl->GetUINT32(This,guidKey,punValue);
2517}
2518static FORCEINLINE HRESULT IMFASFStreamConfig_GetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 *punValue) {
2519 return This->lpVtbl->GetUINT64(This,guidKey,punValue);
2520}
2521static FORCEINLINE HRESULT IMFASFStreamConfig_GetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double *pfValue) {
2522 return This->lpVtbl->GetDouble(This,guidKey,pfValue);
2523}
2524static FORCEINLINE HRESULT IMFASFStreamConfig_GetGUID(IMFASFStreamConfig* This,REFGUID guidKey,GUID *pguidValue) {
2525 return This->lpVtbl->GetGUID(This,guidKey,pguidValue);
2526}
2527static FORCEINLINE HRESULT IMFASFStreamConfig_GetStringLength(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcchLength) {
2528 return This->lpVtbl->GetStringLength(This,guidKey,pcchLength);
2529}
2530static 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}
2533static FORCEINLINE HRESULT IMFASFStreamConfig_GetAllocatedString(IMFASFStreamConfig* This,REFGUID guidKey,LPWSTR *ppwszValue,UINT32 *pcchLength) {
2534 return This->lpVtbl->GetAllocatedString(This,guidKey,ppwszValue,pcchLength);
2535}
2536static FORCEINLINE HRESULT IMFASFStreamConfig_GetBlobSize(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 *pcbBlobSize) {
2537 return This->lpVtbl->GetBlobSize(This,guidKey,pcbBlobSize);
2538}
2539static 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}
2542static FORCEINLINE HRESULT IMFASFStreamConfig_GetAllocatedBlob(IMFASFStreamConfig* This,REFGUID guidKey,UINT8 **ppBuf,UINT32 *pcbSize) {
2543 return This->lpVtbl->GetAllocatedBlob(This,guidKey,ppBuf,pcbSize);
2544}
2545static FORCEINLINE HRESULT IMFASFStreamConfig_GetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,REFIID riid,LPVOID *ppv) {
2546 return This->lpVtbl->GetUnknown(This,guidKey,riid,ppv);
2547}
2548static FORCEINLINE HRESULT IMFASFStreamConfig_SetItem(IMFASFStreamConfig* This,REFGUID guidKey,REFPROPVARIANT Value) {
2549 return This->lpVtbl->SetItem(This,guidKey,Value);
2550}
2551static FORCEINLINE HRESULT IMFASFStreamConfig_DeleteItem(IMFASFStreamConfig* This,REFGUID guidKey) {
2552 return This->lpVtbl->DeleteItem(This,guidKey);
2553}
2554static FORCEINLINE HRESULT IMFASFStreamConfig_DeleteAllItems(IMFASFStreamConfig* This) {
2555 return This->lpVtbl->DeleteAllItems(This);
2556}
2557static FORCEINLINE HRESULT IMFASFStreamConfig_SetUINT32(IMFASFStreamConfig* This,REFGUID guidKey,UINT32 unValue) {
2558 return This->lpVtbl->SetUINT32(This,guidKey,unValue);
2559}
2560static FORCEINLINE HRESULT IMFASFStreamConfig_SetUINT64(IMFASFStreamConfig* This,REFGUID guidKey,UINT64 unValue) {
2561 return This->lpVtbl->SetUINT64(This,guidKey,unValue);
2562}
2563static FORCEINLINE HRESULT IMFASFStreamConfig_SetDouble(IMFASFStreamConfig* This,REFGUID guidKey,double fValue) {
2564 return This->lpVtbl->SetDouble(This,guidKey,fValue);
2565}
2566static FORCEINLINE HRESULT IMFASFStreamConfig_SetGUID(IMFASFStreamConfig* This,REFGUID guidKey,REFGUID guidValue) {
2567 return This->lpVtbl->SetGUID(This,guidKey,guidValue);
2568}
2569static FORCEINLINE HRESULT IMFASFStreamConfig_SetString(IMFASFStreamConfig* This,REFGUID guidKey,LPCWSTR wszValue) {
2570 return This->lpVtbl->SetString(This,guidKey,wszValue);
2571}
2572static FORCEINLINE HRESULT IMFASFStreamConfig_SetBlob(IMFASFStreamConfig* This,REFGUID guidKey,const UINT8 *pBuf,UINT32 cbBufSize) {
2573 return This->lpVtbl->SetBlob(This,guidKey,pBuf,cbBufSize);
2574}
2575static FORCEINLINE HRESULT IMFASFStreamConfig_SetUnknown(IMFASFStreamConfig* This,REFGUID guidKey,IUnknown *pUnknown) {
2576 return This->lpVtbl->SetUnknown(This,guidKey,pUnknown);
2577}
2578static FORCEINLINE HRESULT IMFASFStreamConfig_LockStore(IMFASFStreamConfig* This) {
2579 return This->lpVtbl->LockStore(This);
2580}
2581static FORCEINLINE HRESULT IMFASFStreamConfig_UnlockStore(IMFASFStreamConfig* This) {
2582 return This->lpVtbl->UnlockStore(This);
2583}
2584static FORCEINLINE HRESULT IMFASFStreamConfig_GetCount(IMFASFStreamConfig* This,UINT32 *pcItems) {
2585 return This->lpVtbl->GetCount(This,pcItems);
2586}
2587static FORCEINLINE HRESULT IMFASFStreamConfig_GetItemByIndex(IMFASFStreamConfig* This,UINT32 unIndex,GUID *pguidKey,PROPVARIANT *pValue) {
2588 return This->lpVtbl->GetItemByIndex(This,unIndex,pguidKey,pValue);
2589}
2590static FORCEINLINE HRESULT IMFASFStreamConfig_CopyAllItems(IMFASFStreamConfig* This,IMFAttributes *pDest) {
2591 return This->lpVtbl->CopyAllItems(This,pDest);
2592}
2593/*** IMFASFStreamConfig methods ***/
2594static FORCEINLINE HRESULT IMFASFStreamConfig_GetStreamType(IMFASFStreamConfig* This,GUID *pguidStreamType) {
2595 return This->lpVtbl->GetStreamType(This,pguidStreamType);
2596}
2597static FORCEINLINE WORD IMFASFStreamConfig_GetStreamNumber(IMFASFStreamConfig* This) {
2598 return This->lpVtbl->GetStreamNumber(This);
2599}
2600static FORCEINLINE HRESULT IMFASFStreamConfig_SetStreamNumber(IMFASFStreamConfig* This,WORD wStreamNum) {
2601 return This->lpVtbl->SetStreamNumber(This,wStreamNum);
2602}
2603static FORCEINLINE HRESULT IMFASFStreamConfig_GetMediaType(IMFASFStreamConfig* This,IMFMediaType **ppIMediaType) {
2604 return This->lpVtbl->GetMediaType(This,ppIMediaType);
2605}
2606static FORCEINLINE HRESULT IMFASFStreamConfig_SetMediaType(IMFASFStreamConfig* This,IMFMediaType *pIMediaType) {
2607 return This->lpVtbl->SetMediaType(This,pIMediaType);
2608}
2609static FORCEINLINE HRESULT IMFASFStreamConfig_GetPayloadExtensionCount(IMFASFStreamConfig* This,WORD *pcPayloadExtensions) {
2610 return This->lpVtbl->GetPayloadExtensionCount(This,pcPayloadExtensions);
2611}
2612static 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}
2615static 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}
2618static FORCEINLINE HRESULT IMFASFStreamConfig_RemoveAllPayloadExtensions(IMFASFStreamConfig* This) {
2619 return This->lpVtbl->RemoveAllPayloadExtensions(This);
2620}
2621static 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
2633EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_BASE_SENDTIME = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 3 };
2634EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE = { { 0xcddcbc82, 0x3411, 0x4119, 0x91, 0x35, 0x84, 0x23, 0xc4, 0x1b, 0x39, 0x57}, 4 };
2635EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFMEDIASINK_DRMACTION = { { 0xa1db6f6c, 0x1d0a, 0x4cb6, 0x82, 0x54, 0xcb, 0x36, 0xbe, 0xed, 0xbc, 0x48}, 5 };
2636EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET = { { 0xa2f152fb, 0x8ad9, 0x4a11, 0xb3, 0x45, 0x2c, 0xe2, 0xfa, 0xd8, 0x72, 0x3d}, 1 };
2637
2638STDAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo);
2639STDAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer);
2640STDAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream, QWORD cbIndexStartOffset, IMFByteStream **pIIndexByteStream);
2641STDAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink);
2642STDAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate);
2643STDAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer);
2644STDAPI MFCreateASFProfile(IMFASFProfile **ppIProfile);
2645STDAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD, IMFASFProfile **ppIProfile);
2646STDAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);
2647STDAPI MFCreateASFStreamingMediaSink(IMFByteStream *pIByteStream, IMFMediaSink **ppIMediaSink);
2648STDAPI MFCreateASFStreamingMediaSinkActivate(IMFActivate *pByteStreamActivate, IMFASFContentInfo *pContentInfo, IMFActivate **ppIActivate);
2649STDAPI MFCreateASFStreamSelector(IMFASFProfile *pIASFProfile, IMFASFStreamSelector **ppSelector);
2650STDAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile, IMFPresentationDescriptor **ppIPD);
2651HRESULT STDMETHODCALLTYPE MFCreateWMVEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate);
2652HRESULT STDMETHODCALLTYPE MFCreateWMAEncoderActivate(IMFMediaType *pMediaType, IPropertyStore *pEncodingConfigurationProperties, IMFActivate **ppActivate);
2653#endif
2654/* Begin additional prototypes for all interfaces */
2655
2656ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
2657unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
2658unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
2659void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
2660
2661/* End additional prototypes */
2662
2663#ifdef __cplusplus
2664}
2665#endif
2666
2667#endif /* __wmcontainer_h__ */
Note: See TracBrowser for help on using the repository browser.