2 * Copyright 2012 Austin English
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #include "wine/debug.h"
23 #include "wine/heap.h"
25 WINE_DEFAULT_DEBUG_CHANNEL(wmvcore
);
28 IWMProfile3 IWMProfile3_iface
;
29 IWMSyncReader2 IWMSyncReader2_iface
;
33 static inline WMSyncReader
*impl_from_IWMSyncReader2(IWMSyncReader2
*iface
)
35 return CONTAINING_RECORD(iface
, WMSyncReader
, IWMSyncReader2_iface
);
38 static HRESULT WINAPI
WMSyncReader_QueryInterface(IWMSyncReader2
*iface
, REFIID riid
, void **ppv
)
40 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
42 if(IsEqualGUID(riid
, &IID_IUnknown
)) {
43 TRACE("(%p)->(IID_IUnknown %p)\n", This
, ppv
);
44 *ppv
= &This
->IWMSyncReader2_iface
;
45 }else if(IsEqualGUID(riid
, &IID_IWMProfile
)) {
46 TRACE("(%p)->(IID_IWMProfile %p)\n", This
, ppv
);
47 *ppv
= &This
->IWMProfile3_iface
;
48 }else if(IsEqualGUID(riid
, &IID_IWMProfile2
)) {
49 TRACE("(%p)->(IID_IWMProfile2 %p)\n", This
, ppv
);
50 *ppv
= &This
->IWMProfile3_iface
;
51 }else if(IsEqualGUID(riid
, &IID_IWMProfile3
)) {
52 TRACE("(%p)->(IID_IWMProfile3 %p)\n", This
, ppv
);
53 *ppv
= &This
->IWMProfile3_iface
;
54 }else if(IsEqualGUID(riid
, &IID_IWMSyncReader
)) {
55 TRACE("(%p)->(IID_IWMSyncReader %p)\n", This
, ppv
);
56 *ppv
= &This
->IWMSyncReader2_iface
;
57 }else if(IsEqualGUID(riid
, &IID_IWMSyncReader2
)) {
58 TRACE("(%p)->(IID_IWMSyncReader2 %p)\n", This
, ppv
);
59 *ppv
= &This
->IWMSyncReader2_iface
;
62 FIXME("(%p)->(%s %p)\n", This
, debugstr_guid(riid
), ppv
);
66 IUnknown_AddRef((IUnknown
*)*ppv
);
70 static ULONG WINAPI
WMSyncReader_AddRef(IWMSyncReader2
*iface
)
72 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
73 LONG ref
= InterlockedIncrement(&This
->ref
);
75 TRACE("(%p) ref=%d\n", This
, ref
);
80 static ULONG WINAPI
WMSyncReader_Release(IWMSyncReader2
*iface
)
82 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
83 LONG ref
= InterlockedDecrement(&This
->ref
);
85 TRACE("(%p) ref=%d\n", This
, ref
);
93 static HRESULT WINAPI
WMSyncReader_Close(IWMSyncReader2
*iface
)
95 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
96 FIXME("(%p): stub!\n", This
);
100 static HRESULT WINAPI
WMSyncReader_GetMaxOutputSampleSize(IWMSyncReader2
*iface
, DWORD output
, DWORD
*max
)
102 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
103 FIXME("(%p)->(%d %p): stub!\n", This
, output
, max
);
107 static HRESULT WINAPI
WMSyncReader_GetMaxStreamSampleSize(IWMSyncReader2
*iface
, WORD stream
, DWORD
*max
)
109 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
110 FIXME("(%p)->(%d %p): stub!\n", This
, stream
, max
);
114 static HRESULT WINAPI
WMSyncReader_GetNextSample(IWMSyncReader2
*iface
, WORD stream
, INSSBuffer
**sample
,
115 QWORD
*sample_time
, QWORD
*sample_duration
, DWORD
*flags
, DWORD
*output_num
, WORD
*stream_num
)
117 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
118 FIXME("(%p)->(%d %p %p %p %p %p %p): stub!\n", This
, stream
, sample
, sample_time
,
119 sample_duration
, flags
, output_num
, stream_num
);
123 static HRESULT WINAPI
WMSyncReader_GetOutputCount(IWMSyncReader2
*iface
, DWORD
*outputs
)
125 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
126 FIXME("(%p)->(%p): stub!\n", This
, outputs
);
130 static HRESULT WINAPI
WMSyncReader_GetOutputFormat(IWMSyncReader2
*iface
, DWORD output_num
, DWORD format_num
,
131 IWMOutputMediaProps
**props
)
133 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
134 FIXME("(%p)->(%u %u %p): stub!\n", This
, output_num
, format_num
, props
);
138 static HRESULT WINAPI
WMSyncReader_GetOutputFormatCount(IWMSyncReader2
*iface
, DWORD output_num
, DWORD
*formats
)
140 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
141 FIXME("(%p)->(%u %p): stub!\n", This
, output_num
, formats
);
145 static HRESULT WINAPI
WMSyncReader_GetOutputNumberForStream(IWMSyncReader2
*iface
, WORD stream_num
, DWORD
*output_num
)
147 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
148 FIXME("(%p)->(%u %p): stub!\n", This
, stream_num
, output_num
);
152 static HRESULT WINAPI
WMSyncReader_GetOutputProps(IWMSyncReader2
*iface
, DWORD output_num
, IWMOutputMediaProps
**output
)
154 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
155 FIXME("(%p)->(%u %p): stub!\n", This
, output_num
, output
);
159 static HRESULT WINAPI
WMSyncReader_GetOutputSetting(IWMSyncReader2
*iface
, DWORD output_num
, const WCHAR
*name
,
160 WMT_ATTR_DATATYPE
*type
, BYTE
*value
, WORD
*length
)
162 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
163 FIXME("(%p)->(%u %s %p %p %p): stub!\n", This
, output_num
, debugstr_w(name
), type
, value
, length
);
167 static HRESULT WINAPI
WMSyncReader_GetReadStreamSamples(IWMSyncReader2
*iface
, WORD stream_num
, BOOL
*compressed
)
169 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
170 FIXME("(%p)->(%d %p): stub!\n", This
, stream_num
, compressed
);
174 static HRESULT WINAPI
WMSyncReader_GetStreamNumberForOutput(IWMSyncReader2
*iface
, DWORD output
, WORD
*stream_num
)
176 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
177 FIXME("(%p)->(%u %p): stub!\n", This
, output
, stream_num
);
181 static HRESULT WINAPI
WMSyncReader_GetStreamSelected(IWMSyncReader2
*iface
, WORD stream_num
, WMT_STREAM_SELECTION
*selection
)
183 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
184 FIXME("(%p)->(%d %p): stub!\n", This
, stream_num
, selection
);
188 static HRESULT WINAPI
WMSyncReader_Open(IWMSyncReader2
*iface
, const WCHAR
*filename
)
190 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
191 FIXME("(%p)->(%s): stub!\n", This
, debugstr_w(filename
));
195 static HRESULT WINAPI
WMSyncReader_OpenStream(IWMSyncReader2
*iface
, IStream
*stream
)
197 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
198 FIXME("(%p)->(%p): stub!\n", This
, stream
);
202 static HRESULT WINAPI
WMSyncReader_SetOutputProps(IWMSyncReader2
*iface
, DWORD output_num
, IWMOutputMediaProps
*output
)
204 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
205 FIXME("(%p)->(%u %p): stub!\n", This
, output_num
, output
);
209 static HRESULT WINAPI
WMSyncReader_SetOutputSetting(IWMSyncReader2
*iface
, DWORD output_num
, const WCHAR
*name
,
210 WMT_ATTR_DATATYPE type
, const BYTE
*value
, WORD length
)
212 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
213 FIXME("(%p)->(%d %s %d %p %d): stub!\n", This
, output_num
, debugstr_w(name
), type
, value
, length
);
217 static HRESULT WINAPI
WMSyncReader_SetRange(IWMSyncReader2
*iface
, QWORD start
, LONGLONG duration
)
219 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
220 FIXME("(%p)->(%s %s): stub!\n", This
, wine_dbgstr_longlong(start
), wine_dbgstr_longlong(duration
));
224 static HRESULT WINAPI
WMSyncReader_SetRangeByFrame(IWMSyncReader2
*iface
, WORD stream_num
, QWORD frame_num
,
227 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
228 FIXME("(%p)->(%d %s %s): stub!\n", This
, stream_num
, wine_dbgstr_longlong(frame_num
), wine_dbgstr_longlong(frames
));
232 static HRESULT WINAPI
WMSyncReader_SetReadStreamSamples(IWMSyncReader2
*iface
, WORD stream_num
, BOOL compressed
)
234 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
235 FIXME("(%p)->(%u %x): stub!\n", This
, stream_num
, compressed
);
239 static HRESULT WINAPI
WMSyncReader_SetStreamsSelected(IWMSyncReader2
*iface
, WORD stream_count
,
240 WORD
*stream_numbers
, WMT_STREAM_SELECTION
*selections
)
242 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
243 FIXME("(%p)->(%d %p %p): stub!\n", This
, stream_count
, stream_numbers
, selections
);
247 static HRESULT WINAPI
WMSyncReader2_SetRangeByTimecode(IWMSyncReader2
*iface
, WORD stream_num
,
248 WMT_TIMECODE_EXTENSION_DATA
*start
, WMT_TIMECODE_EXTENSION_DATA
*end
)
250 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
251 FIXME("(%p)->(%u %p %p): stub!\n", This
, stream_num
, start
, end
);
255 static HRESULT WINAPI
WMSyncReader2_SetRangeByFrameEx(IWMSyncReader2
*iface
, WORD stream_num
, QWORD frame_num
,
256 LONGLONG frames_to_read
, QWORD
*starttime
)
258 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
259 FIXME("(%p)->(%u %s %s %p): stub!\n", This
, stream_num
, wine_dbgstr_longlong(frame_num
),
260 wine_dbgstr_longlong(frames_to_read
), starttime
);
264 static HRESULT WINAPI
WMSyncReader2_SetAllocateForOutput(IWMSyncReader2
*iface
, DWORD output_num
, IWMReaderAllocatorEx
*allocator
)
266 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
267 FIXME("(%p)->(%d %p): stub!\n", This
, output_num
, allocator
);
271 static HRESULT WINAPI
WMSyncReader2_GetAllocateForOutput(IWMSyncReader2
*iface
, DWORD output_num
, IWMReaderAllocatorEx
**allocator
)
273 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
274 FIXME("(%p)->(%d %p): stub!\n", This
, output_num
, allocator
);
278 static HRESULT WINAPI
WMSyncReader2_SetAllocateForStream(IWMSyncReader2
*iface
, DWORD stream_num
, IWMReaderAllocatorEx
*allocator
)
280 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
281 FIXME("(%p)->(%d %p): stub!\n", This
, stream_num
, allocator
);
285 static HRESULT WINAPI
WMSyncReader2_GetAllocateForStream(IWMSyncReader2
*iface
, DWORD stream_num
, IWMReaderAllocatorEx
**allocator
)
287 WMSyncReader
*This
= impl_from_IWMSyncReader2(iface
);
288 FIXME("(%p)->(%d %p): stub!\n", This
, stream_num
, allocator
);
292 static const IWMSyncReader2Vtbl WMSyncReader2Vtbl
= {
293 WMSyncReader_QueryInterface
,
295 WMSyncReader_Release
,
298 WMSyncReader_SetRange
,
299 WMSyncReader_SetRangeByFrame
,
300 WMSyncReader_GetNextSample
,
301 WMSyncReader_SetStreamsSelected
,
302 WMSyncReader_GetStreamSelected
,
303 WMSyncReader_SetReadStreamSamples
,
304 WMSyncReader_GetReadStreamSamples
,
305 WMSyncReader_GetOutputSetting
,
306 WMSyncReader_SetOutputSetting
,
307 WMSyncReader_GetOutputCount
,
308 WMSyncReader_GetOutputProps
,
309 WMSyncReader_SetOutputProps
,
310 WMSyncReader_GetOutputFormatCount
,
311 WMSyncReader_GetOutputFormat
,
312 WMSyncReader_GetOutputNumberForStream
,
313 WMSyncReader_GetStreamNumberForOutput
,
314 WMSyncReader_GetMaxOutputSampleSize
,
315 WMSyncReader_GetMaxStreamSampleSize
,
316 WMSyncReader_OpenStream
,
317 WMSyncReader2_SetRangeByTimecode
,
318 WMSyncReader2_SetRangeByFrameEx
,
319 WMSyncReader2_SetAllocateForOutput
,
320 WMSyncReader2_GetAllocateForOutput
,
321 WMSyncReader2_SetAllocateForStream
,
322 WMSyncReader2_GetAllocateForStream
325 static inline WMSyncReader
*impl_from_IWMProfile3(IWMProfile3
*iface
)
327 return CONTAINING_RECORD(iface
, WMSyncReader
, IWMProfile3_iface
);
330 static HRESULT WINAPI
WMProfile_QueryInterface(IWMProfile3
*iface
, REFIID riid
, void **ppv
)
332 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
333 return IWMSyncReader2_QueryInterface(&This
->IWMSyncReader2_iface
, riid
, ppv
);
336 static ULONG WINAPI
WMProfile_AddRef(IWMProfile3
*iface
)
338 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
339 return IWMSyncReader2_AddRef(&This
->IWMSyncReader2_iface
);
342 static ULONG WINAPI
WMProfile_Release(IWMProfile3
*iface
)
344 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
345 return IWMSyncReader2_Release(&This
->IWMSyncReader2_iface
);
348 static HRESULT WINAPI
WMProfile_GetVersion(IWMProfile3
*iface
, WMT_VERSION
*version
)
350 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
351 FIXME("%p, %p\n", This
, version
);
355 static HRESULT WINAPI
WMProfile_GetName(IWMProfile3
*iface
, WCHAR
*name
, DWORD
*length
)
357 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
358 FIXME("%p, %p, %p\n", This
, name
, length
);
362 static HRESULT WINAPI
WMProfile_SetName(IWMProfile3
*iface
, const WCHAR
*name
)
364 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
365 FIXME("%p, %s\n", This
, debugstr_w(name
));
369 static HRESULT WINAPI
WMProfile_GetDescription(IWMProfile3
*iface
, WCHAR
*description
, DWORD
*length
)
371 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
372 FIXME("%p, %p, %p\n", This
, description
, length
);
376 static HRESULT WINAPI
WMProfile_SetDescription(IWMProfile3
*iface
, const WCHAR
*description
)
378 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
379 FIXME("%p, %s\n", This
, debugstr_w(description
));
383 static HRESULT WINAPI
WMProfile_GetStreamCount(IWMProfile3
*iface
, DWORD
*count
)
385 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
386 FIXME("%p, %p\n", This
, count
);
395 static HRESULT WINAPI
WMProfile_GetStream(IWMProfile3
*iface
, DWORD index
, IWMStreamConfig
**config
)
397 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
398 FIXME("%p, %d, %p\n", This
, index
, config
);
402 static HRESULT WINAPI
WMProfile_GetStreamByNumber(IWMProfile3
*iface
, WORD stream
, IWMStreamConfig
**config
)
404 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
405 FIXME("%p, %d, %p\n", This
, stream
, config
);
409 static HRESULT WINAPI
WMProfile_RemoveStream(IWMProfile3
*iface
, IWMStreamConfig
*config
)
411 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
412 FIXME("%p, %p\n", This
, config
);
416 static HRESULT WINAPI
WMProfile_RemoveStreamByNumber(IWMProfile3
*iface
, WORD stream
)
418 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
419 FIXME("%p, %d\n", This
, stream
);
423 static HRESULT WINAPI
WMProfile_AddStream(IWMProfile3
*iface
, IWMStreamConfig
*config
)
425 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
426 FIXME("%p, %p\n", This
, config
);
430 static HRESULT WINAPI
WMProfile_ReconfigStream(IWMProfile3
*iface
, IWMStreamConfig
*config
)
432 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
433 FIXME("%p, %p\n", This
, config
);
437 static HRESULT WINAPI
WMProfile_CreateNewStream(IWMProfile3
*iface
, REFGUID type
, IWMStreamConfig
**config
)
439 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
440 FIXME("%p, %s, %p\n", This
, debugstr_guid(type
), config
);
444 static HRESULT WINAPI
WMProfile_GetMutualExclusionCount(IWMProfile3
*iface
, DWORD
*count
)
446 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
447 FIXME("%p, %p\n", This
, count
);
451 static HRESULT WINAPI
WMProfile_GetMutualExclusion(IWMProfile3
*iface
, DWORD index
, IWMMutualExclusion
**mutual
)
453 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
454 FIXME("%p, %d, %p\n", This
, index
, mutual
);
458 static HRESULT WINAPI
WMProfile_RemoveMutualExclusion(IWMProfile3
*iface
, IWMMutualExclusion
*mutual
)
460 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
461 FIXME("%p, %p\n", This
, mutual
);
465 static HRESULT WINAPI
WMProfile_AddMutualExclusion(IWMProfile3
*iface
, IWMMutualExclusion
*mutual
)
467 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
468 FIXME("%p, %p\n", This
, mutual
);
472 static HRESULT WINAPI
WMProfile_CreateNewMutualExclusion(IWMProfile3
*iface
, IWMMutualExclusion
**mutual
)
474 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
475 FIXME("%p, %p\n", This
, mutual
);
479 static HRESULT WINAPI
WMProfile2_GetProfileID(IWMProfile3
*iface
, GUID
*guid
)
481 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
482 FIXME("%p, %p\n", This
, guid
);
486 static HRESULT WINAPI
WMProfile3_GetStorageFormat(IWMProfile3
*iface
, WMT_STORAGE_FORMAT
*storage
)
488 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
489 FIXME("%p, %p\n", This
, storage
);
493 static HRESULT WINAPI
WMProfile3_SetStorageFormat(IWMProfile3
*iface
, WMT_STORAGE_FORMAT storage
)
495 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
496 FIXME("%p, %d\n", This
, storage
);
500 static HRESULT WINAPI
WMProfile3_GetBandwidthSharingCount(IWMProfile3
*iface
, DWORD
*count
)
502 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
503 FIXME("%p, %p\n", This
, count
);
507 static HRESULT WINAPI
WMProfile3_GetBandwidthSharing(IWMProfile3
*iface
, DWORD index
, IWMBandwidthSharing
**bandwidth
)
509 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
510 FIXME("%p, %d, %p\n", This
, index
, bandwidth
);
514 static HRESULT WINAPI
WMProfile3_RemoveBandwidthSharing( IWMProfile3
*iface
, IWMBandwidthSharing
*bandwidth
)
516 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
517 FIXME("%p, %p\n", This
, bandwidth
);
521 static HRESULT WINAPI
WMProfile3_AddBandwidthSharing(IWMProfile3
*iface
, IWMBandwidthSharing
*bandwidth
)
523 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
524 FIXME("%p, %p\n", This
, bandwidth
);
528 static HRESULT WINAPI
WMProfile3_CreateNewBandwidthSharing( IWMProfile3
*iface
, IWMBandwidthSharing
**bandwidth
)
530 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
531 FIXME("%p, %p\n", This
, bandwidth
);
535 static HRESULT WINAPI
WMProfile3_GetStreamPrioritization(IWMProfile3
*iface
, IWMStreamPrioritization
**stream
)
537 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
538 FIXME("%p, %p\n", This
, stream
);
542 static HRESULT WINAPI
WMProfile3_SetStreamPrioritization(IWMProfile3
*iface
, IWMStreamPrioritization
*stream
)
544 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
545 FIXME("%p, %p\n", This
, stream
);
549 static HRESULT WINAPI
WMProfile3_RemoveStreamPrioritization(IWMProfile3
*iface
)
551 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
556 static HRESULT WINAPI
WMProfile3_CreateNewStreamPrioritization(IWMProfile3
*iface
, IWMStreamPrioritization
**stream
)
558 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
559 FIXME("%p, %p\n", This
, stream
);
563 static HRESULT WINAPI
WMProfile3_GetExpectedPacketCount(IWMProfile3
*iface
, QWORD duration
, QWORD
*packets
)
565 WMSyncReader
*This
= impl_from_IWMProfile3(iface
);
566 FIXME("%p, %s, %p\n", This
, wine_dbgstr_longlong(duration
), packets
);
570 static const IWMProfile3Vtbl WMProfile3Vtbl
=
572 WMProfile_QueryInterface
,
575 WMProfile_GetVersion
,
578 WMProfile_GetDescription
,
579 WMProfile_SetDescription
,
580 WMProfile_GetStreamCount
,
582 WMProfile_GetStreamByNumber
,
583 WMProfile_RemoveStream
,
584 WMProfile_RemoveStreamByNumber
,
586 WMProfile_ReconfigStream
,
587 WMProfile_CreateNewStream
,
588 WMProfile_GetMutualExclusionCount
,
589 WMProfile_GetMutualExclusion
,
590 WMProfile_RemoveMutualExclusion
,
591 WMProfile_AddMutualExclusion
,
592 WMProfile_CreateNewMutualExclusion
,
593 WMProfile2_GetProfileID
,
594 WMProfile3_GetStorageFormat
,
595 WMProfile3_SetStorageFormat
,
596 WMProfile3_GetBandwidthSharingCount
,
597 WMProfile3_GetBandwidthSharing
,
598 WMProfile3_RemoveBandwidthSharing
,
599 WMProfile3_AddBandwidthSharing
,
600 WMProfile3_CreateNewBandwidthSharing
,
601 WMProfile3_GetStreamPrioritization
,
602 WMProfile3_SetStreamPrioritization
,
603 WMProfile3_RemoveStreamPrioritization
,
604 WMProfile3_CreateNewStreamPrioritization
,
605 WMProfile3_GetExpectedPacketCount
608 HRESULT WINAPI
WMCreateSyncReader(IUnknown
*pcert
, DWORD rights
, IWMSyncReader
**syncreader
)
612 TRACE("(%p, %x, %p)\n", pcert
, rights
, syncreader
);
614 sync
= heap_alloc(sizeof(*sync
));
617 return E_OUTOFMEMORY
;
619 sync
->IWMProfile3_iface
.lpVtbl
= &WMProfile3Vtbl
;
620 sync
->IWMSyncReader2_iface
.lpVtbl
= &WMSyncReader2Vtbl
;
623 *syncreader
= (IWMSyncReader
*)&sync
->IWMSyncReader2_iface
;
628 HRESULT WINAPI
WMCreateSyncReaderPriv(IWMSyncReader
**syncreader
)
630 return WMCreateSyncReader(NULL
, 0, syncreader
);