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__ */ 1139