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

File Contents

# Content
1 /*** Autogenerated by WIDL 6.4 from include/mfplay.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 __mfplay_h__
17 #define __mfplay_h__
18
19 /* Forward declarations */
20
21 #ifndef __IMFPMediaPlayer_FWD_DEFINED__
22 #define __IMFPMediaPlayer_FWD_DEFINED__
23 typedef interface IMFPMediaPlayer IMFPMediaPlayer;
24 #ifdef __cplusplus
25 interface IMFPMediaPlayer;
26 #endif /* __cplusplus */
27 #endif
28
29 #ifndef __IMFPMediaItem_FWD_DEFINED__
30 #define __IMFPMediaItem_FWD_DEFINED__
31 typedef interface IMFPMediaItem IMFPMediaItem;
32 #ifdef __cplusplus
33 interface IMFPMediaItem;
34 #endif /* __cplusplus */
35 #endif
36
37 #ifndef __IMFPMediaPlayerCallback_FWD_DEFINED__
38 #define __IMFPMediaPlayerCallback_FWD_DEFINED__
39 typedef interface IMFPMediaPlayerCallback IMFPMediaPlayerCallback;
40 #ifdef __cplusplus
41 interface IMFPMediaPlayerCallback;
42 #endif /* __cplusplus */
43 #endif
44
45 /* Headers for imported files */
46
47 #include <unknwn.h>
48 #include <propsys.h>
49 #include <mfidl.h>
50 #include <evr.h>
51
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55
56 /**
57 * This file is part of the mingw-w64 runtime package.
58 * No warranty is given; refer to the file DISCLAIMER within this package.
59 */
60
61 #if (WINVER >= _WIN32_WINNT_WIN7)
62 #ifndef __IMFPMediaPlayer_FWD_DEFINED__
63 #define __IMFPMediaPlayer_FWD_DEFINED__
64 typedef interface IMFPMediaPlayer IMFPMediaPlayer;
65 #ifdef __cplusplus
66 interface IMFPMediaPlayer;
67 #endif /* __cplusplus */
68 #endif
69
70 #ifndef __IMFPMediaItem_FWD_DEFINED__
71 #define __IMFPMediaItem_FWD_DEFINED__
72 typedef interface IMFPMediaItem IMFPMediaItem;
73 #ifdef __cplusplus
74 interface IMFPMediaItem;
75 #endif /* __cplusplus */
76 #endif
77
78 #ifndef __IMFPMediaPlayerCallback_FWD_DEFINED__
79 #define __IMFPMediaPlayerCallback_FWD_DEFINED__
80 typedef interface IMFPMediaPlayerCallback IMFPMediaPlayerCallback;
81 #ifdef __cplusplus
82 interface IMFPMediaPlayerCallback;
83 #endif /* __cplusplus */
84 #endif
85
86 #ifndef __IMFMediaEvent_FWD_DEFINED__
87 #define __IMFMediaEvent_FWD_DEFINED__
88 typedef interface IMFMediaEvent IMFMediaEvent;
89 #ifdef __cplusplus
90 interface IMFMediaEvent;
91 #endif /* __cplusplus */
92 #endif
93
94 #ifndef __IMFNetCredential_FWD_DEFINED__
95 #define __IMFNetCredential_FWD_DEFINED__
96 typedef interface IMFNetCredential IMFNetCredential;
97 #ifdef __cplusplus
98 interface IMFNetCredential;
99 #endif /* __cplusplus */
100 #endif
101
102
103 interface IMFMediaEvent;
104 interface IMFNetCredential;
105
106 typedef UINT32 MFP_CREATION_OPTIONS;
107
108 typedef enum _MFP_CREATION_OPTIONS {
109 MFP_OPTION_NONE = 0x0,
110 MFP_OPTION_FREE_THREADED_CALLBACK = 0x1,
111 MFP_OPTION_NO_MMCSS = 0x2,
112 MFP_OPTION_NO_REMOTE_DESKTOP_OPTIMIZATION = 0x4
113 } _MFP_CREATION_OPTIONS;
114
115 typedef enum MFP_MEDIAPLAYER_STATE {
116 MFP_MEDIAPLAYER_STATE_EMPTY = 0x0,
117 MFP_MEDIAPLAYER_STATE_STOPPED = 0x1,
118 MFP_MEDIAPLAYER_STATE_PLAYING = 0x2,
119 MFP_MEDIAPLAYER_STATE_PAUSED = 0x3,
120 MFP_MEDIAPLAYER_STATE_SHUTDOWN = 0x4
121 } MFP_MEDIAPLAYER_STATE;
122
123 typedef UINT32 MFP_MEDIAITEM_CHARACTERISTICS;
124
125 typedef enum _MFP_MEDIAITEM_CHARACTERISTICS {
126 MFP_MEDIAITEM_IS_LIVE = 0x1,
127 MFP_MEDIAITEM_CAN_SEEK = 0x2,
128 MFP_MEDIAITEM_CAN_PAUSE = 0x4,
129 MFP_MEDIAITEM_HAS_SLOW_SEEK = 0x8
130 } _MFP_MEDIAITEM_CHARACTERISTICS;
131
132 typedef UINT32 MFP_CREDENTIAL_FLAGS;
133
134 typedef enum _MFP_CREDENTIAL_FLAGS {
135 MFP_CREDENTIAL_PROMPT = 0x1,
136 MFP_CREDENTIAL_SAVE = 0x2,
137 MFP_CREDENTIAL_DO_NOT_CACHE = 0x4,
138 MFP_CREDENTIAL_CLEAR_TEXT = 0x8,
139 MFP_CREDENTIAL_PROXY = 0x10,
140 MFP_CREDENTIAL_LOGGED_ON_USER = 0x20
141 } _MFP_CREDENTIAL_FLAGS;
142 STDAPI MFPCreateMediaPlayer(LPCWSTR pwszURL, BOOL fStartPlayback, MFP_CREATION_OPTIONS creationOptions, IMFPMediaPlayerCallback * pCallback, HWND hWnd, IMFPMediaPlayer ** ppMediaPlayer);
143
144 /*****************************************************************************
145 * IMFPMediaPlayer interface
146 */
147 #ifndef __IMFPMediaPlayer_INTERFACE_DEFINED__
148 #define __IMFPMediaPlayer_INTERFACE_DEFINED__
149
150 DEFINE_GUID(IID_IMFPMediaPlayer, 0xa714590a, 0x58af, 0x430a, 0x85,0xbf, 0x44,0xf5,0xec,0x83,0x8d,0x85);
151 #if defined(__cplusplus) && !defined(CINTERFACE)
152 MIDL_INTERFACE("a714590a-58af-430a-85bf-44f5ec838d85")
153 IMFPMediaPlayer : public IUnknown
154 {
155 virtual HRESULT STDMETHODCALLTYPE Play(
156 ) = 0;
157
158 virtual HRESULT STDMETHODCALLTYPE Pause(
159 ) = 0;
160
161 virtual HRESULT STDMETHODCALLTYPE Stop(
162 ) = 0;
163
164 virtual HRESULT STDMETHODCALLTYPE FrameStep(
165 ) = 0;
166
167 virtual HRESULT STDMETHODCALLTYPE SetPosition(
168 REFGUID guidPositionType,
169 const PROPVARIANT *pvPositionValue) = 0;
170
171 virtual HRESULT STDMETHODCALLTYPE GetPosition(
172 REFGUID guidPositionType,
173 PROPVARIANT *pvPositionValue) = 0;
174
175 virtual HRESULT STDMETHODCALLTYPE GetDuration(
176 REFGUID guidPositionType,
177 PROPVARIANT *pvDurationValue) = 0;
178
179 virtual HRESULT STDMETHODCALLTYPE SetRate(
180 float flRate) = 0;
181
182 virtual HRESULT STDMETHODCALLTYPE GetRate(
183 float *pflRate) = 0;
184
185 virtual HRESULT STDMETHODCALLTYPE GetSupportedRates(
186 WINBOOL fForwardDirection,
187 float *pflSlowestRate,
188 float *pflFastestRate) = 0;
189
190 virtual HRESULT STDMETHODCALLTYPE GetState(
191 MFP_MEDIAPLAYER_STATE *peState) = 0;
192
193 virtual HRESULT STDMETHODCALLTYPE CreateMediaItemFromURL(
194 LPCWSTR pwszURL,
195 WINBOOL fSync,
196 DWORD_PTR dwUserData,
197 IMFPMediaItem **ppMediaItem) = 0;
198
199 virtual HRESULT STDMETHODCALLTYPE CreateMediaItemFromObject(
200 IUnknown *pIUnknownObj,
201 WINBOOL fSync,
202 DWORD_PTR dwUserData,
203 IMFPMediaItem **ppMediaItem) = 0;
204
205 virtual HRESULT STDMETHODCALLTYPE SetMediaItem(
206 IMFPMediaItem *pIMFPMediaItem) = 0;
207
208 virtual HRESULT STDMETHODCALLTYPE ClearMediaItem(
209 ) = 0;
210
211 virtual HRESULT STDMETHODCALLTYPE GetMediaItem(
212 IMFPMediaItem **ppIMFPMediaItem) = 0;
213
214 virtual HRESULT STDMETHODCALLTYPE GetVolume(
215 float *pflVolume) = 0;
216
217 virtual HRESULT STDMETHODCALLTYPE SetVolume(
218 float flVolume) = 0;
219
220 virtual HRESULT STDMETHODCALLTYPE GetBalance(
221 float *pflBalance) = 0;
222
223 virtual HRESULT STDMETHODCALLTYPE SetBalance(
224 float flBalance) = 0;
225
226 virtual HRESULT STDMETHODCALLTYPE GetMute(
227 WINBOOL *pfMute) = 0;
228
229 virtual HRESULT STDMETHODCALLTYPE SetMute(
230 WINBOOL fMute) = 0;
231
232 virtual HRESULT STDMETHODCALLTYPE GetNativeVideoSize(
233 SIZE *pszVideo,
234 SIZE *pszARVideo) = 0;
235
236 virtual HRESULT STDMETHODCALLTYPE GetIdealVideoSize(
237 SIZE *pszMin,
238 SIZE *pszMax) = 0;
239
240 virtual HRESULT STDMETHODCALLTYPE SetVideoSourceRect(
241 const MFVideoNormalizedRect *pnrcSource) = 0;
242
243 virtual HRESULT STDMETHODCALLTYPE GetVideoSourceRect(
244 MFVideoNormalizedRect *pnrcSource) = 0;
245
246 virtual HRESULT STDMETHODCALLTYPE SetAspectRatioMode(
247 DWORD dwAspectRatioMode) = 0;
248
249 virtual HRESULT STDMETHODCALLTYPE GetAspectRatioMode(
250 DWORD *pdwAspectRatioMode) = 0;
251
252 virtual HRESULT STDMETHODCALLTYPE GetVideoWindow(
253 HWND *phwndVideo) = 0;
254
255 virtual HRESULT STDMETHODCALLTYPE UpdateVideo(
256 ) = 0;
257
258 virtual HRESULT STDMETHODCALLTYPE SetBorderColor(
259 COLORREF Clr) = 0;
260
261 virtual HRESULT STDMETHODCALLTYPE GetBorderColor(
262 COLORREF *pClr) = 0;
263
264 virtual HRESULT STDMETHODCALLTYPE InsertEffect(
265 IUnknown *pEffect,
266 WINBOOL fOptional) = 0;
267
268 virtual HRESULT STDMETHODCALLTYPE RemoveEffect(
269 IUnknown *pEffect) = 0;
270
271 virtual HRESULT STDMETHODCALLTYPE RemoveAllEffects(
272 ) = 0;
273
274 virtual HRESULT STDMETHODCALLTYPE Shutdown(
275 ) = 0;
276
277 };
278 #ifdef __CRT_UUID_DECL
279 __CRT_UUID_DECL(IMFPMediaPlayer, 0xa714590a, 0x58af, 0x430a, 0x85,0xbf, 0x44,0xf5,0xec,0x83,0x8d,0x85)
280 #endif
281 #else
282 typedef struct IMFPMediaPlayerVtbl {
283 BEGIN_INTERFACE
284
285 /*** IUnknown methods ***/
286 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
287 IMFPMediaPlayer *This,
288 REFIID riid,
289 void **ppvObject);
290
291 ULONG (STDMETHODCALLTYPE *AddRef)(
292 IMFPMediaPlayer *This);
293
294 ULONG (STDMETHODCALLTYPE *Release)(
295 IMFPMediaPlayer *This);
296
297 /*** IMFPMediaPlayer methods ***/
298 HRESULT (STDMETHODCALLTYPE *Play)(
299 IMFPMediaPlayer *This);
300
301 HRESULT (STDMETHODCALLTYPE *Pause)(
302 IMFPMediaPlayer *This);
303
304 HRESULT (STDMETHODCALLTYPE *Stop)(
305 IMFPMediaPlayer *This);
306
307 HRESULT (STDMETHODCALLTYPE *FrameStep)(
308 IMFPMediaPlayer *This);
309
310 HRESULT (STDMETHODCALLTYPE *SetPosition)(
311 IMFPMediaPlayer *This,
312 REFGUID guidPositionType,
313 const PROPVARIANT *pvPositionValue);
314
315 HRESULT (STDMETHODCALLTYPE *GetPosition)(
316 IMFPMediaPlayer *This,
317 REFGUID guidPositionType,
318 PROPVARIANT *pvPositionValue);
319
320 HRESULT (STDMETHODCALLTYPE *GetDuration)(
321 IMFPMediaPlayer *This,
322 REFGUID guidPositionType,
323 PROPVARIANT *pvDurationValue);
324
325 HRESULT (STDMETHODCALLTYPE *SetRate)(
326 IMFPMediaPlayer *This,
327 float flRate);
328
329 HRESULT (STDMETHODCALLTYPE *GetRate)(
330 IMFPMediaPlayer *This,
331 float *pflRate);
332
333 HRESULT (STDMETHODCALLTYPE *GetSupportedRates)(
334 IMFPMediaPlayer *This,
335 WINBOOL fForwardDirection,
336 float *pflSlowestRate,
337 float *pflFastestRate);
338
339 HRESULT (STDMETHODCALLTYPE *GetState)(
340 IMFPMediaPlayer *This,
341 MFP_MEDIAPLAYER_STATE *peState);
342
343 HRESULT (STDMETHODCALLTYPE *CreateMediaItemFromURL)(
344 IMFPMediaPlayer *This,
345 LPCWSTR pwszURL,
346 WINBOOL fSync,
347 DWORD_PTR dwUserData,
348 IMFPMediaItem **ppMediaItem);
349
350 HRESULT (STDMETHODCALLTYPE *CreateMediaItemFromObject)(
351 IMFPMediaPlayer *This,
352 IUnknown *pIUnknownObj,
353 WINBOOL fSync,
354 DWORD_PTR dwUserData,
355 IMFPMediaItem **ppMediaItem);
356
357 HRESULT (STDMETHODCALLTYPE *SetMediaItem)(
358 IMFPMediaPlayer *This,
359 IMFPMediaItem *pIMFPMediaItem);
360
361 HRESULT (STDMETHODCALLTYPE *ClearMediaItem)(
362 IMFPMediaPlayer *This);
363
364 HRESULT (STDMETHODCALLTYPE *GetMediaItem)(
365 IMFPMediaPlayer *This,
366 IMFPMediaItem **ppIMFPMediaItem);
367
368 HRESULT (STDMETHODCALLTYPE *GetVolume)(
369 IMFPMediaPlayer *This,
370 float *pflVolume);
371
372 HRESULT (STDMETHODCALLTYPE *SetVolume)(
373 IMFPMediaPlayer *This,
374 float flVolume);
375
376 HRESULT (STDMETHODCALLTYPE *GetBalance)(
377 IMFPMediaPlayer *This,
378 float *pflBalance);
379
380 HRESULT (STDMETHODCALLTYPE *SetBalance)(
381 IMFPMediaPlayer *This,
382 float flBalance);
383
384 HRESULT (STDMETHODCALLTYPE *GetMute)(
385 IMFPMediaPlayer *This,
386 WINBOOL *pfMute);
387
388 HRESULT (STDMETHODCALLTYPE *SetMute)(
389 IMFPMediaPlayer *This,
390 WINBOOL fMute);
391
392 HRESULT (STDMETHODCALLTYPE *GetNativeVideoSize)(
393 IMFPMediaPlayer *This,
394 SIZE *pszVideo,
395 SIZE *pszARVideo);
396
397 HRESULT (STDMETHODCALLTYPE *GetIdealVideoSize)(
398 IMFPMediaPlayer *This,
399 SIZE *pszMin,
400 SIZE *pszMax);
401
402 HRESULT (STDMETHODCALLTYPE *SetVideoSourceRect)(
403 IMFPMediaPlayer *This,
404 const MFVideoNormalizedRect *pnrcSource);
405
406 HRESULT (STDMETHODCALLTYPE *GetVideoSourceRect)(
407 IMFPMediaPlayer *This,
408 MFVideoNormalizedRect *pnrcSource);
409
410 HRESULT (STDMETHODCALLTYPE *SetAspectRatioMode)(
411 IMFPMediaPlayer *This,
412 DWORD dwAspectRatioMode);
413
414 HRESULT (STDMETHODCALLTYPE *GetAspectRatioMode)(
415 IMFPMediaPlayer *This,
416 DWORD *pdwAspectRatioMode);
417
418 HRESULT (STDMETHODCALLTYPE *GetVideoWindow)(
419 IMFPMediaPlayer *This,
420 HWND *phwndVideo);
421
422 HRESULT (STDMETHODCALLTYPE *UpdateVideo)(
423 IMFPMediaPlayer *This);
424
425 HRESULT (STDMETHODCALLTYPE *SetBorderColor)(
426 IMFPMediaPlayer *This,
427 COLORREF Clr);
428
429 HRESULT (STDMETHODCALLTYPE *GetBorderColor)(
430 IMFPMediaPlayer *This,
431 COLORREF *pClr);
432
433 HRESULT (STDMETHODCALLTYPE *InsertEffect)(
434 IMFPMediaPlayer *This,
435 IUnknown *pEffect,
436 WINBOOL fOptional);
437
438 HRESULT (STDMETHODCALLTYPE *RemoveEffect)(
439 IMFPMediaPlayer *This,
440 IUnknown *pEffect);
441
442 HRESULT (STDMETHODCALLTYPE *RemoveAllEffects)(
443 IMFPMediaPlayer *This);
444
445 HRESULT (STDMETHODCALLTYPE *Shutdown)(
446 IMFPMediaPlayer *This);
447
448 END_INTERFACE
449 } IMFPMediaPlayerVtbl;
450
451 interface IMFPMediaPlayer {
452 CONST_VTBL IMFPMediaPlayerVtbl* lpVtbl;
453 };
454
455 #ifdef COBJMACROS
456 #ifndef WIDL_C_INLINE_WRAPPERS
457 /*** IUnknown methods ***/
458 #define IMFPMediaPlayer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
459 #define IMFPMediaPlayer_AddRef(This) (This)->lpVtbl->AddRef(This)
460 #define IMFPMediaPlayer_Release(This) (This)->lpVtbl->Release(This)
461 /*** IMFPMediaPlayer methods ***/
462 #define IMFPMediaPlayer_Play(This) (This)->lpVtbl->Play(This)
463 #define IMFPMediaPlayer_Pause(This) (This)->lpVtbl->Pause(This)
464 #define IMFPMediaPlayer_Stop(This) (This)->lpVtbl->Stop(This)
465 #define IMFPMediaPlayer_FrameStep(This) (This)->lpVtbl->FrameStep(This)
466 #define IMFPMediaPlayer_SetPosition(This,guidPositionType,pvPositionValue) (This)->lpVtbl->SetPosition(This,guidPositionType,pvPositionValue)
467 #define IMFPMediaPlayer_GetPosition(This,guidPositionType,pvPositionValue) (This)->lpVtbl->GetPosition(This,guidPositionType,pvPositionValue)
468 #define IMFPMediaPlayer_GetDuration(This,guidPositionType,pvDurationValue) (This)->lpVtbl->GetDuration(This,guidPositionType,pvDurationValue)
469 #define IMFPMediaPlayer_SetRate(This,flRate) (This)->lpVtbl->SetRate(This,flRate)
470 #define IMFPMediaPlayer_GetRate(This,pflRate) (This)->lpVtbl->GetRate(This,pflRate)
471 #define IMFPMediaPlayer_GetSupportedRates(This,fForwardDirection,pflSlowestRate,pflFastestRate) (This)->lpVtbl->GetSupportedRates(This,fForwardDirection,pflSlowestRate,pflFastestRate)
472 #define IMFPMediaPlayer_GetState(This,peState) (This)->lpVtbl->GetState(This,peState)
473 #define IMFPMediaPlayer_CreateMediaItemFromURL(This,pwszURL,fSync,dwUserData,ppMediaItem) (This)->lpVtbl->CreateMediaItemFromURL(This,pwszURL,fSync,dwUserData,ppMediaItem)
474 #define IMFPMediaPlayer_CreateMediaItemFromObject(This,pIUnknownObj,fSync,dwUserData,ppMediaItem) (This)->lpVtbl->CreateMediaItemFromObject(This,pIUnknownObj,fSync,dwUserData,ppMediaItem)
475 #define IMFPMediaPlayer_SetMediaItem(This,pIMFPMediaItem) (This)->lpVtbl->SetMediaItem(This,pIMFPMediaItem)
476 #define IMFPMediaPlayer_ClearMediaItem(This) (This)->lpVtbl->ClearMediaItem(This)
477 #define IMFPMediaPlayer_GetMediaItem(This,ppIMFPMediaItem) (This)->lpVtbl->GetMediaItem(This,ppIMFPMediaItem)
478 #define IMFPMediaPlayer_GetVolume(This,pflVolume) (This)->lpVtbl->GetVolume(This,pflVolume)
479 #define IMFPMediaPlayer_SetVolume(This,flVolume) (This)->lpVtbl->SetVolume(This,flVolume)
480 #define IMFPMediaPlayer_GetBalance(This,pflBalance) (This)->lpVtbl->GetBalance(This,pflBalance)
481 #define IMFPMediaPlayer_SetBalance(This,flBalance) (This)->lpVtbl->SetBalance(This,flBalance)
482 #define IMFPMediaPlayer_GetMute(This,pfMute) (This)->lpVtbl->GetMute(This,pfMute)
483 #define IMFPMediaPlayer_SetMute(This,fMute) (This)->lpVtbl->SetMute(This,fMute)
484 #define IMFPMediaPlayer_GetNativeVideoSize(This,pszVideo,pszARVideo) (This)->lpVtbl->GetNativeVideoSize(This,pszVideo,pszARVideo)
485 #define IMFPMediaPlayer_GetIdealVideoSize(This,pszMin,pszMax) (This)->lpVtbl->GetIdealVideoSize(This,pszMin,pszMax)
486 #define IMFPMediaPlayer_SetVideoSourceRect(This,pnrcSource) (This)->lpVtbl->SetVideoSourceRect(This,pnrcSource)
487 #define IMFPMediaPlayer_GetVideoSourceRect(This,pnrcSource) (This)->lpVtbl->GetVideoSourceRect(This,pnrcSource)
488 #define IMFPMediaPlayer_SetAspectRatioMode(This,dwAspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,dwAspectRatioMode)
489 #define IMFPMediaPlayer_GetAspectRatioMode(This,pdwAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,pdwAspectRatioMode)
490 #define IMFPMediaPlayer_GetVideoWindow(This,phwndVideo) (This)->lpVtbl->GetVideoWindow(This,phwndVideo)
491 #define IMFPMediaPlayer_UpdateVideo(This) (This)->lpVtbl->UpdateVideo(This)
492 #define IMFPMediaPlayer_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr)
493 #define IMFPMediaPlayer_GetBorderColor(This,pClr) (This)->lpVtbl->GetBorderColor(This,pClr)
494 #define IMFPMediaPlayer_InsertEffect(This,pEffect,fOptional) (This)->lpVtbl->InsertEffect(This,pEffect,fOptional)
495 #define IMFPMediaPlayer_RemoveEffect(This,pEffect) (This)->lpVtbl->RemoveEffect(This,pEffect)
496 #define IMFPMediaPlayer_RemoveAllEffects(This) (This)->lpVtbl->RemoveAllEffects(This)
497 #define IMFPMediaPlayer_Shutdown(This) (This)->lpVtbl->Shutdown(This)
498 #else
499 /*** IUnknown methods ***/
500 static FORCEINLINE HRESULT IMFPMediaPlayer_QueryInterface(IMFPMediaPlayer* This,REFIID riid,void **ppvObject) {
501 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
502 }
503 static FORCEINLINE ULONG IMFPMediaPlayer_AddRef(IMFPMediaPlayer* This) {
504 return This->lpVtbl->AddRef(This);
505 }
506 static FORCEINLINE ULONG IMFPMediaPlayer_Release(IMFPMediaPlayer* This) {
507 return This->lpVtbl->Release(This);
508 }
509 /*** IMFPMediaPlayer methods ***/
510 static FORCEINLINE HRESULT IMFPMediaPlayer_Play(IMFPMediaPlayer* This) {
511 return This->lpVtbl->Play(This);
512 }
513 static FORCEINLINE HRESULT IMFPMediaPlayer_Pause(IMFPMediaPlayer* This) {
514 return This->lpVtbl->Pause(This);
515 }
516 static FORCEINLINE HRESULT IMFPMediaPlayer_Stop(IMFPMediaPlayer* This) {
517 return This->lpVtbl->Stop(This);
518 }
519 static FORCEINLINE HRESULT IMFPMediaPlayer_FrameStep(IMFPMediaPlayer* This) {
520 return This->lpVtbl->FrameStep(This);
521 }
522 static FORCEINLINE HRESULT IMFPMediaPlayer_SetPosition(IMFPMediaPlayer* This,REFGUID guidPositionType,const PROPVARIANT *pvPositionValue) {
523 return This->lpVtbl->SetPosition(This,guidPositionType,pvPositionValue);
524 }
525 static FORCEINLINE HRESULT IMFPMediaPlayer_GetPosition(IMFPMediaPlayer* This,REFGUID guidPositionType,PROPVARIANT *pvPositionValue) {
526 return This->lpVtbl->GetPosition(This,guidPositionType,pvPositionValue);
527 }
528 static FORCEINLINE HRESULT IMFPMediaPlayer_GetDuration(IMFPMediaPlayer* This,REFGUID guidPositionType,PROPVARIANT *pvDurationValue) {
529 return This->lpVtbl->GetDuration(This,guidPositionType,pvDurationValue);
530 }
531 static FORCEINLINE HRESULT IMFPMediaPlayer_SetRate(IMFPMediaPlayer* This,float flRate) {
532 return This->lpVtbl->SetRate(This,flRate);
533 }
534 static FORCEINLINE HRESULT IMFPMediaPlayer_GetRate(IMFPMediaPlayer* This,float *pflRate) {
535 return This->lpVtbl->GetRate(This,pflRate);
536 }
537 static FORCEINLINE HRESULT IMFPMediaPlayer_GetSupportedRates(IMFPMediaPlayer* This,WINBOOL fForwardDirection,float *pflSlowestRate,float *pflFastestRate) {
538 return This->lpVtbl->GetSupportedRates(This,fForwardDirection,pflSlowestRate,pflFastestRate);
539 }
540 static FORCEINLINE HRESULT IMFPMediaPlayer_GetState(IMFPMediaPlayer* This,MFP_MEDIAPLAYER_STATE *peState) {
541 return This->lpVtbl->GetState(This,peState);
542 }
543 static FORCEINLINE HRESULT IMFPMediaPlayer_CreateMediaItemFromURL(IMFPMediaPlayer* This,LPCWSTR pwszURL,WINBOOL fSync,DWORD_PTR dwUserData,IMFPMediaItem **ppMediaItem) {
544 return This->lpVtbl->CreateMediaItemFromURL(This,pwszURL,fSync,dwUserData,ppMediaItem);
545 }
546 static FORCEINLINE HRESULT IMFPMediaPlayer_CreateMediaItemFromObject(IMFPMediaPlayer* This,IUnknown *pIUnknownObj,WINBOOL fSync,DWORD_PTR dwUserData,IMFPMediaItem **ppMediaItem) {
547 return This->lpVtbl->CreateMediaItemFromObject(This,pIUnknownObj,fSync,dwUserData,ppMediaItem);
548 }
549 static FORCEINLINE HRESULT IMFPMediaPlayer_SetMediaItem(IMFPMediaPlayer* This,IMFPMediaItem *pIMFPMediaItem) {
550 return This->lpVtbl->SetMediaItem(This,pIMFPMediaItem);
551 }
552 static FORCEINLINE HRESULT IMFPMediaPlayer_ClearMediaItem(IMFPMediaPlayer* This) {
553 return This->lpVtbl->ClearMediaItem(This);
554 }
555 static FORCEINLINE HRESULT IMFPMediaPlayer_GetMediaItem(IMFPMediaPlayer* This,IMFPMediaItem **ppIMFPMediaItem) {
556 return This->lpVtbl->GetMediaItem(This,ppIMFPMediaItem);
557 }
558 static FORCEINLINE HRESULT IMFPMediaPlayer_GetVolume(IMFPMediaPlayer* This,float *pflVolume) {
559 return This->lpVtbl->GetVolume(This,pflVolume);
560 }
561 static FORCEINLINE HRESULT IMFPMediaPlayer_SetVolume(IMFPMediaPlayer* This,float flVolume) {
562 return This->lpVtbl->SetVolume(This,flVolume);
563 }
564 static FORCEINLINE HRESULT IMFPMediaPlayer_GetBalance(IMFPMediaPlayer* This,float *pflBalance) {
565 return This->lpVtbl->GetBalance(This,pflBalance);
566 }
567 static FORCEINLINE HRESULT IMFPMediaPlayer_SetBalance(IMFPMediaPlayer* This,float flBalance) {
568 return This->lpVtbl->SetBalance(This,flBalance);
569 }
570 static FORCEINLINE HRESULT IMFPMediaPlayer_GetMute(IMFPMediaPlayer* This,WINBOOL *pfMute) {
571 return This->lpVtbl->GetMute(This,pfMute);
572 }
573 static FORCEINLINE HRESULT IMFPMediaPlayer_SetMute(IMFPMediaPlayer* This,WINBOOL fMute) {
574 return This->lpVtbl->SetMute(This,fMute);
575 }
576 static FORCEINLINE HRESULT IMFPMediaPlayer_GetNativeVideoSize(IMFPMediaPlayer* This,SIZE *pszVideo,SIZE *pszARVideo) {
577 return This->lpVtbl->GetNativeVideoSize(This,pszVideo,pszARVideo);
578 }
579 static FORCEINLINE HRESULT IMFPMediaPlayer_GetIdealVideoSize(IMFPMediaPlayer* This,SIZE *pszMin,SIZE *pszMax) {
580 return This->lpVtbl->GetIdealVideoSize(This,pszMin,pszMax);
581 }
582 static FORCEINLINE HRESULT IMFPMediaPlayer_SetVideoSourceRect(IMFPMediaPlayer* This,const MFVideoNormalizedRect *pnrcSource) {
583 return This->lpVtbl->SetVideoSourceRect(This,pnrcSource);
584 }
585 static FORCEINLINE HRESULT IMFPMediaPlayer_GetVideoSourceRect(IMFPMediaPlayer* This,MFVideoNormalizedRect *pnrcSource) {
586 return This->lpVtbl->GetVideoSourceRect(This,pnrcSource);
587 }
588 static FORCEINLINE HRESULT IMFPMediaPlayer_SetAspectRatioMode(IMFPMediaPlayer* This,DWORD dwAspectRatioMode) {
589 return This->lpVtbl->SetAspectRatioMode(This,dwAspectRatioMode);
590 }
591 static FORCEINLINE HRESULT IMFPMediaPlayer_GetAspectRatioMode(IMFPMediaPlayer* This,DWORD *pdwAspectRatioMode) {
592 return This->lpVtbl->GetAspectRatioMode(This,pdwAspectRatioMode);
593 }
594 static FORCEINLINE HRESULT IMFPMediaPlayer_GetVideoWindow(IMFPMediaPlayer* This,HWND *phwndVideo) {
595 return This->lpVtbl->GetVideoWindow(This,phwndVideo);
596 }
597 static FORCEINLINE HRESULT IMFPMediaPlayer_UpdateVideo(IMFPMediaPlayer* This) {
598 return This->lpVtbl->UpdateVideo(This);
599 }
600 static FORCEINLINE HRESULT IMFPMediaPlayer_SetBorderColor(IMFPMediaPlayer* This,COLORREF Clr) {
601 return This->lpVtbl->SetBorderColor(This,Clr);
602 }
603 static FORCEINLINE HRESULT IMFPMediaPlayer_GetBorderColor(IMFPMediaPlayer* This,COLORREF *pClr) {
604 return This->lpVtbl->GetBorderColor(This,pClr);
605 }
606 static FORCEINLINE HRESULT IMFPMediaPlayer_InsertEffect(IMFPMediaPlayer* This,IUnknown *pEffect,WINBOOL fOptional) {
607 return This->lpVtbl->InsertEffect(This,pEffect,fOptional);
608 }
609 static FORCEINLINE HRESULT IMFPMediaPlayer_RemoveEffect(IMFPMediaPlayer* This,IUnknown *pEffect) {
610 return This->lpVtbl->RemoveEffect(This,pEffect);
611 }
612 static FORCEINLINE HRESULT IMFPMediaPlayer_RemoveAllEffects(IMFPMediaPlayer* This) {
613 return This->lpVtbl->RemoveAllEffects(This);
614 }
615 static FORCEINLINE HRESULT IMFPMediaPlayer_Shutdown(IMFPMediaPlayer* This) {
616 return This->lpVtbl->Shutdown(This);
617 }
618 #endif
619 #endif
620
621 #endif
622
623
624 #endif /* __IMFPMediaPlayer_INTERFACE_DEFINED__ */
625
626 EXTERN_GUID( MFP_POSITIONTYPE_100NS, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 );
627
628 /*****************************************************************************
629 * IMFPMediaItem interface
630 */
631 #ifndef __IMFPMediaItem_INTERFACE_DEFINED__
632 #define __IMFPMediaItem_INTERFACE_DEFINED__
633
634 DEFINE_GUID(IID_IMFPMediaItem, 0x90eb3e6b, 0xecbf, 0x45cc, 0xb1,0xda, 0xc6,0xfe,0x3e,0xa7,0x0d,0x57);
635 #if defined(__cplusplus) && !defined(CINTERFACE)
636 MIDL_INTERFACE("90eb3e6b-ecbf-45cc-b1da-c6fe3ea70d57")
637 IMFPMediaItem : public IUnknown
638 {
639 virtual HRESULT STDMETHODCALLTYPE GetMediaPlayer(
640 IMFPMediaPlayer **ppMediaPlayer) = 0;
641
642 virtual HRESULT STDMETHODCALLTYPE GetURL(
643 LPWSTR *ppwszURL) = 0;
644
645 virtual HRESULT STDMETHODCALLTYPE GetObject(
646 IUnknown **ppIUnknown) = 0;
647
648 virtual HRESULT STDMETHODCALLTYPE GetUserData(
649 DWORD_PTR *pdwUserData) = 0;
650
651 virtual HRESULT STDMETHODCALLTYPE SetUserData(
652 DWORD_PTR dwUserData) = 0;
653
654 virtual HRESULT STDMETHODCALLTYPE GetStartStopPosition(
655 GUID *pguidStartPositionType,
656 PROPVARIANT *pvStartValue,
657 GUID *pguidStopPositionType,
658 PROPVARIANT *pvStopValue) = 0;
659
660 virtual HRESULT STDMETHODCALLTYPE SetStartStopPosition(
661 const GUID *pguidStartPositionType,
662 const PROPVARIANT *pvStartValue,
663 const GUID *pguidStopPositionType,
664 const PROPVARIANT *pvStopValue) = 0;
665
666 virtual HRESULT STDMETHODCALLTYPE HasVideo(
667 WINBOOL *pfHasVideo,
668 WINBOOL *pfSelected) = 0;
669
670 virtual HRESULT STDMETHODCALLTYPE HasAudio(
671 WINBOOL *pfHasAudio,
672 WINBOOL *pfSelected) = 0;
673
674 virtual HRESULT STDMETHODCALLTYPE IsProtected(
675 WINBOOL *pfProtected) = 0;
676
677 virtual HRESULT STDMETHODCALLTYPE GetDuration(
678 REFGUID guidPositionType,
679 PROPVARIANT *pvDurationValue) = 0;
680
681 virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams(
682 DWORD *pdwStreamCount) = 0;
683
684 virtual HRESULT STDMETHODCALLTYPE GetStreamSelection(
685 DWORD dwStreamIndex,
686 WINBOOL *pfEnabled) = 0;
687
688 virtual HRESULT STDMETHODCALLTYPE SetStreamSelection(
689 DWORD dwStreamIndex,
690 WINBOOL fEnabled) = 0;
691
692 virtual HRESULT STDMETHODCALLTYPE GetStreamAttribute(
693 DWORD dwStreamIndex,
694 REFGUID guidMFAttribute,
695 PROPVARIANT *pvValue) = 0;
696
697 virtual HRESULT STDMETHODCALLTYPE GetPresentationAttribute(
698 REFGUID guidMFAttribute,
699 PROPVARIANT *pvValue) = 0;
700
701 virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
702 MFP_MEDIAITEM_CHARACTERISTICS *pCharacteristics) = 0;
703
704 virtual HRESULT STDMETHODCALLTYPE SetStreamSink(
705 DWORD dwStreamIndex,
706 IUnknown *pMediaSink) = 0;
707
708 virtual HRESULT STDMETHODCALLTYPE GetMetadata(
709 IPropertyStore **ppMetadataStore) = 0;
710
711 };
712 #ifdef __CRT_UUID_DECL
713 __CRT_UUID_DECL(IMFPMediaItem, 0x90eb3e6b, 0xecbf, 0x45cc, 0xb1,0xda, 0xc6,0xfe,0x3e,0xa7,0x0d,0x57)
714 #endif
715 #else
716 typedef struct IMFPMediaItemVtbl {
717 BEGIN_INTERFACE
718
719 /*** IUnknown methods ***/
720 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
721 IMFPMediaItem *This,
722 REFIID riid,
723 void **ppvObject);
724
725 ULONG (STDMETHODCALLTYPE *AddRef)(
726 IMFPMediaItem *This);
727
728 ULONG (STDMETHODCALLTYPE *Release)(
729 IMFPMediaItem *This);
730
731 /*** IMFPMediaItem methods ***/
732 HRESULT (STDMETHODCALLTYPE *GetMediaPlayer)(
733 IMFPMediaItem *This,
734 IMFPMediaPlayer **ppMediaPlayer);
735
736 HRESULT (STDMETHODCALLTYPE *GetURL)(
737 IMFPMediaItem *This,
738 LPWSTR *ppwszURL);
739
740 HRESULT (STDMETHODCALLTYPE *GetObject)(
741 IMFPMediaItem *This,
742 IUnknown **ppIUnknown);
743
744 HRESULT (STDMETHODCALLTYPE *GetUserData)(
745 IMFPMediaItem *This,
746 DWORD_PTR *pdwUserData);
747
748 HRESULT (STDMETHODCALLTYPE *SetUserData)(
749 IMFPMediaItem *This,
750 DWORD_PTR dwUserData);
751
752 HRESULT (STDMETHODCALLTYPE *GetStartStopPosition)(
753 IMFPMediaItem *This,
754 GUID *pguidStartPositionType,
755 PROPVARIANT *pvStartValue,
756 GUID *pguidStopPositionType,
757 PROPVARIANT *pvStopValue);
758
759 HRESULT (STDMETHODCALLTYPE *SetStartStopPosition)(
760 IMFPMediaItem *This,
761 const GUID *pguidStartPositionType,
762 const PROPVARIANT *pvStartValue,
763 const GUID *pguidStopPositionType,
764 const PROPVARIANT *pvStopValue);
765
766 HRESULT (STDMETHODCALLTYPE *HasVideo)(
767 IMFPMediaItem *This,
768 WINBOOL *pfHasVideo,
769 WINBOOL *pfSelected);
770
771 HRESULT (STDMETHODCALLTYPE *HasAudio)(
772 IMFPMediaItem *This,
773 WINBOOL *pfHasAudio,
774 WINBOOL *pfSelected);
775
776 HRESULT (STDMETHODCALLTYPE *IsProtected)(
777 IMFPMediaItem *This,
778 WINBOOL *pfProtected);
779
780 HRESULT (STDMETHODCALLTYPE *GetDuration)(
781 IMFPMediaItem *This,
782 REFGUID guidPositionType,
783 PROPVARIANT *pvDurationValue);
784
785 HRESULT (STDMETHODCALLTYPE *GetNumberOfStreams)(
786 IMFPMediaItem *This,
787 DWORD *pdwStreamCount);
788
789 HRESULT (STDMETHODCALLTYPE *GetStreamSelection)(
790 IMFPMediaItem *This,
791 DWORD dwStreamIndex,
792 WINBOOL *pfEnabled);
793
794 HRESULT (STDMETHODCALLTYPE *SetStreamSelection)(
795 IMFPMediaItem *This,
796 DWORD dwStreamIndex,
797 WINBOOL fEnabled);
798
799 HRESULT (STDMETHODCALLTYPE *GetStreamAttribute)(
800 IMFPMediaItem *This,
801 DWORD dwStreamIndex,
802 REFGUID guidMFAttribute,
803 PROPVARIANT *pvValue);
804
805 HRESULT (STDMETHODCALLTYPE *GetPresentationAttribute)(
806 IMFPMediaItem *This,
807 REFGUID guidMFAttribute,
808 PROPVARIANT *pvValue);
809
810 HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
811 IMFPMediaItem *This,
812 MFP_MEDIAITEM_CHARACTERISTICS *pCharacteristics);
813
814 HRESULT (STDMETHODCALLTYPE *SetStreamSink)(
815 IMFPMediaItem *This,
816 DWORD dwStreamIndex,
817 IUnknown *pMediaSink);
818
819 HRESULT (STDMETHODCALLTYPE *GetMetadata)(
820 IMFPMediaItem *This,
821 IPropertyStore **ppMetadataStore);
822
823 END_INTERFACE
824 } IMFPMediaItemVtbl;
825
826 interface IMFPMediaItem {
827 CONST_VTBL IMFPMediaItemVtbl* lpVtbl;
828 };
829
830 #ifdef COBJMACROS
831 #ifndef WIDL_C_INLINE_WRAPPERS
832 /*** IUnknown methods ***/
833 #define IMFPMediaItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
834 #define IMFPMediaItem_AddRef(This) (This)->lpVtbl->AddRef(This)
835 #define IMFPMediaItem_Release(This) (This)->lpVtbl->Release(This)
836 /*** IMFPMediaItem methods ***/
837 #define IMFPMediaItem_GetMediaPlayer(This,ppMediaPlayer) (This)->lpVtbl->GetMediaPlayer(This,ppMediaPlayer)
838 #define IMFPMediaItem_GetURL(This,ppwszURL) (This)->lpVtbl->GetURL(This,ppwszURL)
839 #define IMFPMediaItem_GetObject(This,ppIUnknown) (This)->lpVtbl->GetObject(This,ppIUnknown)
840 #define IMFPMediaItem_GetUserData(This,pdwUserData) (This)->lpVtbl->GetUserData(This,pdwUserData)
841 #define IMFPMediaItem_SetUserData(This,dwUserData) (This)->lpVtbl->SetUserData(This,dwUserData)
842 #define IMFPMediaItem_GetStartStopPosition(This,pguidStartPositionType,pvStartValue,pguidStopPositionType,pvStopValue) (This)->lpVtbl->GetStartStopPosition(This,pguidStartPositionType,pvStartValue,pguidStopPositionType,pvStopValue)
843 #define IMFPMediaItem_SetStartStopPosition(This,pguidStartPositionType,pvStartValue,pguidStopPositionType,pvStopValue) (This)->lpVtbl->SetStartStopPosition(This,pguidStartPositionType,pvStartValue,pguidStopPositionType,pvStopValue)
844 #define IMFPMediaItem_HasVideo(This,pfHasVideo,pfSelected) (This)->lpVtbl->HasVideo(This,pfHasVideo,pfSelected)
845 #define IMFPMediaItem_HasAudio(This,pfHasAudio,pfSelected) (This)->lpVtbl->HasAudio(This,pfHasAudio,pfSelected)
846 #define IMFPMediaItem_IsProtected(This,pfProtected) (This)->lpVtbl->IsProtected(This,pfProtected)
847 #define IMFPMediaItem_GetDuration(This,guidPositionType,pvDurationValue) (This)->lpVtbl->GetDuration(This,guidPositionType,pvDurationValue)
848 #define IMFPMediaItem_GetNumberOfStreams(This,pdwStreamCount) (This)->lpVtbl->GetNumberOfStreams(This,pdwStreamCount)
849 #define IMFPMediaItem_GetStreamSelection(This,dwStreamIndex,pfEnabled) (This)->lpVtbl->GetStreamSelection(This,dwStreamIndex,pfEnabled)
850 #define IMFPMediaItem_SetStreamSelection(This,dwStreamIndex,fEnabled) (This)->lpVtbl->SetStreamSelection(This,dwStreamIndex,fEnabled)
851 #define IMFPMediaItem_GetStreamAttribute(This,dwStreamIndex,guidMFAttribute,pvValue) (This)->lpVtbl->GetStreamAttribute(This,dwStreamIndex,guidMFAttribute,pvValue)
852 #define IMFPMediaItem_GetPresentationAttribute(This,guidMFAttribute,pvValue) (This)->lpVtbl->GetPresentationAttribute(This,guidMFAttribute,pvValue)
853 #define IMFPMediaItem_GetCharacteristics(This,pCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pCharacteristics)
854 #define IMFPMediaItem_SetStreamSink(This,dwStreamIndex,pMediaSink) (This)->lpVtbl->SetStreamSink(This,dwStreamIndex,pMediaSink)
855 #define IMFPMediaItem_GetMetadata(This,ppMetadataStore) (This)->lpVtbl->GetMetadata(This,ppMetadataStore)
856 #else
857 /*** IUnknown methods ***/
858 static FORCEINLINE HRESULT IMFPMediaItem_QueryInterface(IMFPMediaItem* This,REFIID riid,void **ppvObject) {
859 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
860 }
861 static FORCEINLINE ULONG IMFPMediaItem_AddRef(IMFPMediaItem* This) {
862 return This->lpVtbl->AddRef(This);
863 }
864 static FORCEINLINE ULONG IMFPMediaItem_Release(IMFPMediaItem* This) {
865 return This->lpVtbl->Release(This);
866 }
867 /*** IMFPMediaItem methods ***/
868 static FORCEINLINE HRESULT IMFPMediaItem_GetMediaPlayer(IMFPMediaItem* This,IMFPMediaPlayer **ppMediaPlayer) {
869 return This->lpVtbl->GetMediaPlayer(This,ppMediaPlayer);
870 }
871 static FORCEINLINE HRESULT IMFPMediaItem_GetURL(IMFPMediaItem* This,LPWSTR *ppwszURL) {
872 return This->lpVtbl->GetURL(This,ppwszURL);
873 }
874 static FORCEINLINE HRESULT IMFPMediaItem_GetObject(IMFPMediaItem* This,IUnknown **ppIUnknown) {
875 return This->lpVtbl->GetObject(This,ppIUnknown);
876 }
877 static FORCEINLINE HRESULT IMFPMediaItem_GetUserData(IMFPMediaItem* This,DWORD_PTR *pdwUserData) {
878 return This->lpVtbl->GetUserData(This,pdwUserData);
879 }
880 static FORCEINLINE HRESULT IMFPMediaItem_SetUserData(IMFPMediaItem* This,DWORD_PTR dwUserData) {
881 return This->lpVtbl->SetUserData(This,dwUserData);
882 }
883 static FORCEINLINE HRESULT IMFPMediaItem_GetStartStopPosition(IMFPMediaItem* This,GUID *pguidStartPositionType,PROPVARIANT *pvStartValue,GUID *pguidStopPositionType,PROPVARIANT *pvStopValue) {
884 return This->lpVtbl->GetStartStopPosition(This,pguidStartPositionType,pvStartValue,pguidStopPositionType,pvStopValue);
885 }
886 static FORCEINLINE HRESULT IMFPMediaItem_SetStartStopPosition(IMFPMediaItem* This,const GUID *pguidStartPositionType,const PROPVARIANT *pvStartValue,const GUID *pguidStopPositionType,const PROPVARIANT *pvStopValue) {
887 return This->lpVtbl->SetStartStopPosition(This,pguidStartPositionType,pvStartValue,pguidStopPositionType,pvStopValue);
888 }
889 static FORCEINLINE HRESULT IMFPMediaItem_HasVideo(IMFPMediaItem* This,WINBOOL *pfHasVideo,WINBOOL *pfSelected) {
890 return This->lpVtbl->HasVideo(This,pfHasVideo,pfSelected);
891 }
892 static FORCEINLINE HRESULT IMFPMediaItem_HasAudio(IMFPMediaItem* This,WINBOOL *pfHasAudio,WINBOOL *pfSelected) {
893 return This->lpVtbl->HasAudio(This,pfHasAudio,pfSelected);
894 }
895 static FORCEINLINE HRESULT IMFPMediaItem_IsProtected(IMFPMediaItem* This,WINBOOL *pfProtected) {
896 return This->lpVtbl->IsProtected(This,pfProtected);
897 }
898 static FORCEINLINE HRESULT IMFPMediaItem_GetDuration(IMFPMediaItem* This,REFGUID guidPositionType,PROPVARIANT *pvDurationValue) {
899 return This->lpVtbl->GetDuration(This,guidPositionType,pvDurationValue);
900 }
901 static FORCEINLINE HRESULT IMFPMediaItem_GetNumberOfStreams(IMFPMediaItem* This,DWORD *pdwStreamCount) {
902 return This->lpVtbl->GetNumberOfStreams(This,pdwStreamCount);
903 }
904 static FORCEINLINE HRESULT IMFPMediaItem_GetStreamSelection(IMFPMediaItem* This,DWORD dwStreamIndex,WINBOOL *pfEnabled) {
905 return This->lpVtbl->GetStreamSelection(This,dwStreamIndex,pfEnabled);
906 }
907 static FORCEINLINE HRESULT IMFPMediaItem_SetStreamSelection(IMFPMediaItem* This,DWORD dwStreamIndex,WINBOOL fEnabled) {
908 return This->lpVtbl->SetStreamSelection(This,dwStreamIndex,fEnabled);
909 }
910 static FORCEINLINE HRESULT IMFPMediaItem_GetStreamAttribute(IMFPMediaItem* This,DWORD dwStreamIndex,REFGUID guidMFAttribute,PROPVARIANT *pvValue) {
911 return This->lpVtbl->GetStreamAttribute(This,dwStreamIndex,guidMFAttribute,pvValue);
912 }
913 static FORCEINLINE HRESULT IMFPMediaItem_GetPresentationAttribute(IMFPMediaItem* This,REFGUID guidMFAttribute,PROPVARIANT *pvValue) {
914 return This->lpVtbl->GetPresentationAttribute(This,guidMFAttribute,pvValue);
915 }
916 static FORCEINLINE HRESULT IMFPMediaItem_GetCharacteristics(IMFPMediaItem* This,MFP_MEDIAITEM_CHARACTERISTICS *pCharacteristics) {
917 return This->lpVtbl->GetCharacteristics(This,pCharacteristics);
918 }
919 static FORCEINLINE HRESULT IMFPMediaItem_SetStreamSink(IMFPMediaItem* This,DWORD dwStreamIndex,IUnknown *pMediaSink) {
920 return This->lpVtbl->SetStreamSink(This,dwStreamIndex,pMediaSink);
921 }
922 static FORCEINLINE HRESULT IMFPMediaItem_GetMetadata(IMFPMediaItem* This,IPropertyStore **ppMetadataStore) {
923 return This->lpVtbl->GetMetadata(This,ppMetadataStore);
924 }
925 #endif
926 #endif
927
928 #endif
929
930
931 #endif /* __IMFPMediaItem_INTERFACE_DEFINED__ */
932
933
934 typedef enum MFP_EVENT_TYPE {
935 MFP_EVENT_TYPE_PLAY = 0,
936 MFP_EVENT_TYPE_PAUSE = 1,
937 MFP_EVENT_TYPE_STOP = 2,
938 MFP_EVENT_TYPE_POSITION_SET = 3,
939 MFP_EVENT_TYPE_RATE_SET = 4,
940 MFP_EVENT_TYPE_MEDIAITEM_CREATED = 5,
941 MFP_EVENT_TYPE_MEDIAITEM_SET = 6,
942 MFP_EVENT_TYPE_FRAME_STEP = 7,
943 MFP_EVENT_TYPE_MEDIAITEM_CLEARED = 8,
944 MFP_EVENT_TYPE_MF = 9,
945 MFP_EVENT_TYPE_ERROR = 10,
946 MFP_EVENT_TYPE_PLAYBACK_ENDED = 11,
947 MFP_EVENT_TYPE_ACQUIRE_USER_CREDENTIAL = 12
948 } MFP_EVENT_TYPE;
949
950 typedef struct MFP_EVENT_HEADER {
951 MFP_EVENT_TYPE eEventType;
952 HRESULT hrEvent;
953 IMFPMediaPlayer *pMediaPlayer;
954 MFP_MEDIAPLAYER_STATE eState;
955 IPropertyStore *pPropertyStore;
956 } MFP_EVENT_HEADER;
957
958 typedef struct MFP_PLAY_EVENT {
959 MFP_EVENT_HEADER header;
960 IMFPMediaItem *pMediaItem;
961 } MFP_PLAY_EVENT;
962
963 typedef struct MFP_PAUSE_EVENT {
964 MFP_EVENT_HEADER header;
965 IMFPMediaItem *pMediaItem;
966 } MFP_PAUSE_EVENT;
967
968 typedef struct MFP_STOP_EVENT {
969 MFP_EVENT_HEADER header;
970 IMFPMediaItem *pMediaItem;
971 } MFP_STOP_EVENT;
972
973 typedef struct MFP_POSITION_SET_EVENT {
974 MFP_EVENT_HEADER header;
975 IMFPMediaItem *pMediaItem;
976 } MFP_POSITION_SET_EVENT;
977
978 typedef struct MFP_RATE_SET_EVENT {
979 MFP_EVENT_HEADER header;
980 IMFPMediaItem *pMediaItem;
981 float flRate;
982 } MFP_RATE_SET_EVENT;
983
984 typedef struct MFP_MEDIAITEM_CREATED_EVENT {
985 MFP_EVENT_HEADER header;
986 IMFPMediaItem *pMediaItem;
987 DWORD_PTR dwUserData;
988 } MFP_MEDIAITEM_CREATED_EVENT;
989
990 typedef struct MFP_MEDIAITEM_SET_EVENT {
991 MFP_EVENT_HEADER header;
992 IMFPMediaItem *pMediaItem;
993 } MFP_MEDIAITEM_SET_EVENT;
994
995 typedef struct MFP_FRAME_STEP_EVENT {
996 MFP_EVENT_HEADER header;
997 IMFPMediaItem *pMediaItem;
998 } MFP_FRAME_STEP_EVENT;
999
1000 typedef struct MFP_MEDIAITEM_CLEARED_EVENT {
1001 MFP_EVENT_HEADER header;
1002 IMFPMediaItem *pMediaItem;
1003 } MFP_MEDIAITEM_CLEARED_EVENT;
1004
1005 typedef struct MFP_MF_EVENT {
1006 MFP_EVENT_HEADER header;
1007 MediaEventType MFEventType;
1008 IMFMediaEvent *pMFMediaEvent;
1009 IMFPMediaItem *pMediaItem;
1010 } MFP_MF_EVENT;
1011
1012 typedef struct MFP_ERROR_EVENT {
1013 MFP_EVENT_HEADER header;
1014 } MFP_ERROR_EVENT;
1015
1016 typedef struct MFP_PLAYBACK_ENDED_EVENT {
1017 MFP_EVENT_HEADER header;
1018 IMFPMediaItem *pMediaItem;
1019 } MFP_PLAYBACK_ENDED_EVENT;
1020
1021 typedef struct MFP_ACQUIRE_USER_CREDENTIAL_EVENT {
1022 MFP_EVENT_HEADER header;
1023 DWORD_PTR dwUserData;
1024 WINBOOL fProceedWithAuthentication;
1025 HRESULT hrAuthenticationStatus;
1026 LPCWSTR pwszURL;
1027 LPCWSTR pwszSite;
1028 LPCWSTR pwszRealm;
1029 LPCWSTR pwszPackage;
1030 LONG nRetries;
1031 MFP_CREDENTIAL_FLAGS flags;
1032 IMFNetCredential *pCredential;
1033 } MFP_ACQUIRE_USER_CREDENTIAL_EVENT;
1034 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFP_PKEY_StreamIndex = { { 0xa7cf9740, 0xe8d9, 0x4a87, { 0xbd, 0x8e, 0x29, 0x67, 0x0, 0x1f, 0xd3, 0xad } }, 0x00 };
1035 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFP_PKEY_StreamRenderingResults = { { 0xa7cf9740, 0xe8d9, 0x4a87, { 0xbd, 0x8e, 0x29, 0x67, 0x0, 0x1f, 0xd3, 0xad } }, 0x01 };
1036 #define __MFP_CAST_EVENT( pHdr, Tag ) (((pHdr)->eEventType == MFP_EVENT_TYPE_##Tag ) ? (MFP_##Tag##_EVENT*)(pHdr) : NULL)
1037 #define MFP_GET_PLAY_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, PLAY )
1038 #define MFP_GET_PAUSE_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, PAUSE )
1039 #define MFP_GET_STOP_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, STOP )
1040 #define MFP_GET_POSITION_SET_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, POSITION_SET )
1041 #define MFP_GET_RATE_SET_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, RATE_SET )
1042 #define MFP_GET_MEDIAITEM_CREATED_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, MEDIAITEM_CREATED )
1043 #define MFP_GET_MEDIAITEM_SET_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, MEDIAITEM_SET )
1044 #define MFP_GET_FRAME_STEP_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, FRAME_STEP )
1045 #define MFP_GET_MEDIAITEM_CLEARED_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, MEDIAITEM_CLEARED )
1046 #define MFP_GET_MF_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, MF )
1047 #define MFP_GET_ERROR_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, ERROR )
1048 #define MFP_GET_PLAYBACK_ENDED_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, PLAYBACK_ENDED )
1049 #define MFP_GET_ACQUIRE_USER_CREDENTIAL_EVENT( pHdr ) __MFP_CAST_EVENT( pHdr, ACQUIRE_USER_CREDENTIAL )
1050
1051 /*****************************************************************************
1052 * IMFPMediaPlayerCallback interface
1053 */
1054 #ifndef __IMFPMediaPlayerCallback_INTERFACE_DEFINED__
1055 #define __IMFPMediaPlayerCallback_INTERFACE_DEFINED__
1056
1057 DEFINE_GUID(IID_IMFPMediaPlayerCallback, 0x766c8ffb, 0x5fdb, 0x4fea, 0xa2,0x8d, 0xb9,0x12,0x99,0x6f,0x51,0xbd);
1058 #if defined(__cplusplus) && !defined(CINTERFACE)
1059 MIDL_INTERFACE("766c8ffb-5fdb-4fea-a28d-b912996f51bd")
1060 IMFPMediaPlayerCallback : public IUnknown
1061 {
1062 virtual void STDMETHODCALLTYPE OnMediaPlayerEvent(
1063 MFP_EVENT_HEADER *pEventHeader) = 0;
1064
1065 };
1066 #ifdef __CRT_UUID_DECL
1067 __CRT_UUID_DECL(IMFPMediaPlayerCallback, 0x766c8ffb, 0x5fdb, 0x4fea, 0xa2,0x8d, 0xb9,0x12,0x99,0x6f,0x51,0xbd)
1068 #endif
1069 #else
1070 typedef struct IMFPMediaPlayerCallbackVtbl {
1071 BEGIN_INTERFACE
1072
1073 /*** IUnknown methods ***/
1074 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1075 IMFPMediaPlayerCallback *This,
1076 REFIID riid,
1077 void **ppvObject);
1078
1079 ULONG (STDMETHODCALLTYPE *AddRef)(
1080 IMFPMediaPlayerCallback *This);
1081
1082 ULONG (STDMETHODCALLTYPE *Release)(
1083 IMFPMediaPlayerCallback *This);
1084
1085 /*** IMFPMediaPlayerCallback methods ***/
1086 void (STDMETHODCALLTYPE *OnMediaPlayerEvent)(
1087 IMFPMediaPlayerCallback *This,
1088 MFP_EVENT_HEADER *pEventHeader);
1089
1090 END_INTERFACE
1091 } IMFPMediaPlayerCallbackVtbl;
1092
1093 interface IMFPMediaPlayerCallback {
1094 CONST_VTBL IMFPMediaPlayerCallbackVtbl* lpVtbl;
1095 };
1096
1097 #ifdef COBJMACROS
1098 #ifndef WIDL_C_INLINE_WRAPPERS
1099 /*** IUnknown methods ***/
1100 #define IMFPMediaPlayerCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1101 #define IMFPMediaPlayerCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
1102 #define IMFPMediaPlayerCallback_Release(This) (This)->lpVtbl->Release(This)
1103 /*** IMFPMediaPlayerCallback methods ***/
1104 #define IMFPMediaPlayerCallback_OnMediaPlayerEvent(This,pEventHeader) (This)->lpVtbl->OnMediaPlayerEvent(This,pEventHeader)
1105 #else
1106 /*** IUnknown methods ***/
1107 static FORCEINLINE HRESULT IMFPMediaPlayerCallback_QueryInterface(IMFPMediaPlayerCallback* This,REFIID riid,void **ppvObject) {
1108 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1109 }
1110 static FORCEINLINE ULONG IMFPMediaPlayerCallback_AddRef(IMFPMediaPlayerCallback* This) {
1111 return This->lpVtbl->AddRef(This);
1112 }
1113 static FORCEINLINE ULONG IMFPMediaPlayerCallback_Release(IMFPMediaPlayerCallback* This) {
1114 return This->lpVtbl->Release(This);
1115 }
1116 /*** IMFPMediaPlayerCallback methods ***/
1117 static FORCEINLINE void IMFPMediaPlayerCallback_OnMediaPlayerEvent(IMFPMediaPlayerCallback* This,MFP_EVENT_HEADER *pEventHeader) {
1118 This->lpVtbl->OnMediaPlayerEvent(This,pEventHeader);
1119 }
1120 #endif
1121 #endif
1122
1123 #endif
1124
1125
1126 #endif /* __IMFPMediaPlayerCallback_INTERFACE_DEFINED__ */
1127
1128 #endif // (WINVER >= _WIN32_WINNT_WIN7)
1129 /* Begin additional prototypes for all interfaces */
1130
1131
1132 /* End additional prototypes */
1133
1134 #ifdef __cplusplus
1135 }
1136 #endif
1137
1138 #endif /* __mfplay_h__ */