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